PolarCTF2026春季个人赛 Web方向全解
字数 4333
更新时间 2026-03-24 14:21:45

内网安全攻防:从信息收集到漏洞利用的完整实战手册

本文档基于阿里云先知社区文章《内网安全攻防系列一:信息收集及漏洞利用(上)》整理而成,旨在系统性地教学内网渗透测试中从信息收集到漏洞利用的全流程关键技术、工具与方法论。内容涵盖网络拓扑探测、用户与凭证获取、漏洞扫描与利用、权限维持等多个核心环节,并结合实战工具进行演示。


第一章:信息收集

信息收集是渗透测试的基石,目标是尽可能全面地掌握目标网络的结构、资产、用户和潜在弱点。

1.1 主机发现与网络扫描

目标是确定网络中存活的主机及其开放的服务端口。

  • 原理与方法
    • ICMP Ping 扫描:利用 ICMP Echo Request 数据包探测主机是否存活。现代网络常禁 Ping,需结合其他方法。
    • TCP/UDP 端口扫描:向目标端口发送特定协议的握手包或探测包,根据响应判断端口状态(开放、关闭、过滤)。
    • ARP 扫描:在局域网内,通过发送 ARP 请求来发现同一网段内存活的主机,最为准确高效。
  • 常用工具
    • Nmap:网络发现和安全审计的瑞士军刀。
      • 基本存活扫描:nmap -sn 192.168.1.0/24
      • 端口与服务版本探测:nmap -sV 192.168.1.100
      • 操作系统探测:nmap -O 192.168.1.100
    • Masscan:高速端口扫描器,适合大范围IP段扫描。
    • Netdiscover:专用于局域网内的主动/被动 ARP 探测。

1.2 网络拓扑与资产探测

在发现存活主机后,需描绘网络结构和识别关键资产。

  • 关键点
    • 路由追踪:使用 tracert (Windows) 或 traceroute (Linux) 了解数据包经过的路径,推断网络分区。
    • DNS 信息枚举:通过 nslookupdig 等工具查询域名的 A 记录、MX 记录、NS 记录等,发现子域名、邮件服务器等资产。
    • SMB/NetBIOS 枚举:在 Windows 网络中,利用 nbtscan 或 Nmap 的 NSE 脚本 (smb-os-discovery) 获取主机名、工作组、MAC 地址等信息。
    • SNMP 枚举:如果目标设备开启 SNMP 且使用弱社区字符串(如 public/private),可使用 snmpwalk 等工具获取详尽的系统、网络、进程信息。

1.3 用户与凭证信息收集

获取有效的用户账户和密码是权限提升和横向移动的关键。

  • 本地信息收集
    • Windows 系统
      • whoami /all:查看当前用户权限、SID、所属组。
      • net usernet localgroup administrators:枚举本地用户和管理员。
      • net share:查看共享资源。
      • 注册表查询reg query 命令可查询保存在注册表中的自动登录凭证等信息。
    • Linux/Unix 系统
      • id:查看当前用户 UID、GID 和所属组。
      • cat /etc/passwdcat /etc/shadow(需 root 权限):获取用户列表和密码哈希。
      • history:查看命令历史,可能包含密码等信息。
  • 内存凭证提取
    • Mimikatz:Windows 下最强大的内存凭证提取工具,可提取明文密码、NTLM 哈希、Kerberos 票据等。
      • 常用命令:privilege::debug 提权,sekurlsa::logonpasswords 提取内存密码。
    • Procdump + Mimikatz 离线分析:在受限环境下,先用微软官方工具 Procdump 导出 lsass.exe 进程内存,再到攻击机用 Mimikatz 分析。
  • 密码哈希传递攻击
    • Pass-The-Hash (PtH):在仅获得用户 NTLM 哈希而非明文密码时,可直接使用该哈希进行身份验证,无需破解。
    • 工具:Mimikatz (sekurlsa::pth)、Impacket 套件中的 psexec.pysmbexec.py 等。

1.4 内网服务与漏洞探测

针对特定的内网服务进行深度扫描,发现已知漏洞。

  • 漏洞扫描工具
    • Nessus / OpenVAS:专业的漏洞扫描器,拥有庞大的漏洞库,可生成详细报告。
    • Nmap NSE 脚本:Nmap 的脚本引擎包含大量用于漏洞检测的脚本(如 vuln 类别)。
  • 针对性服务探测
    • SMB 协议:利用 NSE 脚本 smb-vuln-* 检测 MS17-010 (EternalBlue)、MS08-067 等经典漏洞。
    • Web 服务:使用 dirbgobuster 进行目录爆破,使用 nikto 进行漏洞扫描。
    • 数据库:对 MySQL、MSSQL、Redis 等进行弱口令爆破或未授权访问测试。

第二章:漏洞利用与权限提升

在发现漏洞后,将其转化为有效的系统控制权限。

2.1 远程漏洞利用

通过网络直接攻击存在漏洞的服务。

  • 流程
    1. 选择利用模块:根据漏洞扫描结果,在 Metasploit、Searchsploit 或公开 EXP 中选择对应利用代码。
    2. 配置参数:设置目标地址(RHOSTS)、端口(RPORT)、载荷(Payload)等。
    3. 执行利用:运行漏洞利用代码,建立会话或获取 Shell。
  • 工具框架
    • Metasploit Framework (MSF):最主流的渗透测试框架,集成了漏洞利用、载荷生成、后门植入等功能。
    • Impacket:一套用于处理网络协议的 Python 类库,包含大量针对 SMB、MSSQL、LDAP 等协议的攻击脚本,如 psexec.pywmiexec.py,常用于哈希传递和命令执行。

2.2 本地权限提升

在获得一个低权限 Shell 后,将其提升为高权限(如 SYSTEM、root)。

  • Windows 提权
    • 内核漏洞提权:利用操作系统内核驱动或组件的漏洞。流程:使用 systeminfo 获取系统补丁信息,用 wes-ng 等工具查找缺失补丁对应的本地提权 EXP,上传并执行。
    • 服务提权:利用错误配置的服务路径、弱服务权限、可执行文件替换等。
    • 凭证滥用:通过内存提取或配置文件找到管理员密码或哈希,进行横向移动或本地登录。
    • AlwaysInstallElevated 策略:如果注册表中启用此策略,可以以 SYSTEM 权限安装 MSI 包。
  • Linux 提权
    • 内核漏洞提权:同 Windows,通过 uname -a 查看内核版本,寻找对应 EXP。
    • SUID/GUID 文件滥用:查找设置了 SUID 位的可执行文件(find / -perm -u=s -type f 2>/dev/null),如果其属主是 root 且存在漏洞(如 nmap 旧版本的交互模式),可利用来获取 root shell。
    • sudo 权限滥用:检查 sudo -l 查看当前用户能以 root 身份运行哪些命令。如果配置不当(如允许运行 vifindawk 等),可逃逸到 root shell。
    • 计划任务/服务:检查 /etc/crontab 和用户级计划任务,是否有全局可写的脚本被 root 定期执行。

第三章:横向移动与权限维持

在控制一台主机后,以此为跳板,向网络内部其他主机渗透,并建立持久化后门。

3.1 横向移动

利用已获得的凭证或会话,攻击网络内其他主机。

  • 方法
    • 凭证重用/传递攻击:在域环境中,一个用户的凭证可能在多台机器上可用。使用 Mimikatz 或 Impacket 工具进行 PtH 攻击。
    • 利用共享与服务:通过 SMB、WMI、WinRM、RDP 等协议,配合获得的凭证,远程执行命令或建立会话。
    • MSF 会话派生:在 MSF 中获得一个 Meterpreter 会话后,可使用 run post/windows/manage/migrate 迁移到更稳定的进程,或使用 autoroute 添加路由,通过此会话攻击内网其他网段。
  • 工具
    • CrackMapExec (CME):内网横向移动的“瑞士军刀”,支持通过 SMB、WinRM、MSSQL 等多种协议,使用密码或哈希对大量主机进行爆破、命令执行、模块执行等。

3.2 权限维持

防止已获得的访问权限因重启、登出或密码更改而丢失。

  • Windows 持久化
    • 计划任务:创建高权限计划任务,定期执行后门。
    • 服务创建:创建一个自启动的恶意系统服务。
    • 注册表自启动:修改 HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run 等注册表项。
    • WMI 事件订阅:创建一个 WMI 事件过滤器(如开机事件)并绑定一个执行后门的消费者,隐蔽性较高。
    • 黄金票据/白银票据(域环境):在获取域控权限和 krbtgt 账户哈希后,可以伪造任意用户的 Kerberos 票据(黄金票据),实现持久的域内权限维持。
  • Linux 持久化
    • 计划任务 (cron):编辑 /etc/crontab 或用户的 crontab 文件。
    • SSH 公钥注入:将攻击者的公钥写入目标用户 .ssh/authorized_keys 文件。
    • 修改系统启动脚本:如 /etc/rc.local、profile 文件等。
    • 创建 SUID 后门:将一个后门 shell 复制为 root 属主并设置 SUID 位。

第四章:总结与最佳实践建议

  1. 深度优于广度:全面的信息收集是后续所有步骤成功的前提,不要急于利用。
  2. 隐蔽性:在实战中,注意操作对目标系统日志、网络流量产生的影响,尽量使用合法工具或流量加密。
  3. 凭证是王道:内网中,获取一个高权限用户的密码或哈希,往往比利用一个远程漏洞更有效、更通用。
  4. 理解协议:深入理解 SMB、Kerberos、LDAP 等内网核心协议的工作原理,是进行高级攻击(如 PtH、票据攻击)的基础。
  5. 工具是助手,思路是灵魂:掌握工具用法是必要的,但更重要的是理解其背后的攻击原理和防御逻辑,才能灵活应变。
  6. 合法授权:所有技术必须仅在获得明确书面授权的渗透测试或安全研究环境中使用。

本文档内容基于提供的先知社区文章整理扩展而成,部分细节和扩展知识融合了通用的内网安全攻防知识体系。

相似文章
相似文章
 全屏