告示

前期内容中我们一共介绍了两种关于隧道上线的协议,分别是smb和icmp。这次我们将介绍到两款协议实现隧道上线,还有专门针对mac和linux上线的插件。

DNS上线

分析

防火墙开启禁用tcp的全部流量(出站),那我们想用反向后门的方式(tcp后门)就不可能了。既然win10是在内网当中,我们不可能让cs服务器去正向找到win10,那么只能考虑使用udp的方式了。在cs自带的监听器中,能使用到的udp协议只有dns(dns是tcp也是udp协议

战斗

原理:因为dns是域名解析服务,在域名解析时候用到的是udp,区域传输时是tcp,那我们就需要使用到他的域名解析。让流量以域名转换成ip的udp方式绕过tcp的检测

需要准备一个域名,对他添加一条A记录和两条NS记录

我们在cs上新建监听器,里面都填写域名。ns1,2的地址会解析到cs,cs会解析到我们的cs服务器ip

对这个监听器生成后门上传到win10

确认防火墙已经开启

运行后门,cs会变成黑窗口,我们此时敲入命令mode dns-txt

成功上线

DNS隧道通讯

对于这个入站规则,上面介绍到的木马是可以正常通讯的,毕竟是反向木马。但如果实在实战环境中,win10也是一个有自己独立ip的机器,那么想要正向找到他是不行的。

为了方便通讯,或者说为了使建立起来的通讯不被破坏,我们可以利用一些三方软件建立隧道

https://github.com/yarrick/iodine

此项目利用与建立dns隧道通信,适用于各种操作平台,最好条件是双方都是linux,因为windows会下载一个openvpn插件,对于渗透测试环境过分耀眼。并且要使用管理员权限

记得先开启openvpn

开启服务端,创建一个0.1网段

开启客户端,加入0.1网段

此时就成功建立通讯,可以看到xshell里面一直有流量在跑,查看服务端网卡可以看到多了一张,这张网卡就是我们和win10建立起的隧道,win10也会多一张0.2的网卡

SSH隧道通讯

对于此实验,核心为跳板机必须为linux系统

我们假装本地的虚拟机kail是作为win10的跳板机,假设已经取得kail的root权限,建立一条和cs服务器的隧道方便通讯。因为kail是在内网环境中,我们使用反向连接

此命令目的是在kail本地访问win10的80端口,把win10的80端口流量通过ssh传输给cs服务器7000端口

我们在cs服务器上就可以访问到7000端口的流量

当然使用正向也可以,但前提是得建立隧道,我这里使用前面提到的dns隧道,直接贴图了

Linux后门上线

没配图,用到了一款插件https://gloxec.github.io/CrossC2/zh_cn/usage/genCross.html

我们在github上下载源码,有一个cna文件,然后解压zip,里面有两个cna文件,将这三个cna文件直接添加插件到cs客户端,对源码的.linux,.mac,.win文件对应自己的cs服务端系统上传。更多内容见github原文https://github.com/gloxec/CrossC2/

打开cs生成一个https的监听器

生成linux后门

此时会生成一串命令

将他复制到cs服务器上运行,注意要使用我们上传的对应cs服务器版本的可执行程序对他生成

取出来上传到kail上

成功