<返回更多

不出网主机的几种上线方式

2021-11-03    安全客小安
加入收藏
不出网主机的几种上线方式

 

前言

拿到一台边缘机器后,内网的机器很有可能大多数都不出网,这时又想上线cs方便后续操作。本文就如何上线不出网主机的方式进行了总结。

环境搭建

目标内网机器

不出网主机的几种上线方式

 

边缘机器

不出网主机的几种上线方式

 

攻击机器

不出网主机的几种上线方式

 

由于边缘主机出网,选择reverse反向连接,现在已经上线边缘主机

不出网主机的几种上线方式

 

SMB Beacon

不出网主机的几种上线方式

 

该方法通过已有的父Beacon使用SMB协议进行正向连接不出网机器,要求目标开启445端口,通过命名管道进行认证即可上线。其实有点像psexec这样的工具,有用户名和hash后,即可执行远程命令,其原理相似。内网的机器密码相同的情况很多,这也是为什么现在为了提高安全性不能批量设置密码,内网渗透一但有了密码往往有时候就宣告结束。

并且有个好处就是SMB协议一般防火墙是不拦截的,在一定程度上可以规避防火墙拦截。

先使用hashdump和logonpasswords命令抓一波密码。由于这里是win2012系统,是无法直接抓取明文密码的,这里也不需要去修改注册表,或者通过mimilib.dll注入的方式去获取明文密码,有hash就足够了,SMB验证身份本身用的就是NTMLv2协议。

这里是抓到了该机器上的hash

不出网主机的几种上线方式

 

有个小tips,如果对方机器是64位的,最好就用x64的exe上线就可以了,以前我觉得x32和x64都行。虽然都可以上线,但是如果用的是x32的beacon,很有可能是抓不到64位机器上的密码的,使用cs集成的mimikatz会提示:32位的mimikatz无法抓取到64位机器的密码。所以目标是最好就用64位就用64位的artifact。

然后通过端口扫描,发现内网机器:

不出网主机的几种上线方式

 


不出网主机的几种上线方式

 

到这里不懂原理的小白(我)可能就会直接使用cs自带的psexec功能直接去横向,恰巧我之前就是这么做的,想起来还挺有意思的。

不出网主机的几种上线方式

 


不出网主机的几种上线方式

 

结果就是服务已经创建了,但是上不了线,那会儿自己心里想肯定是cs出bug了,还烦了一会儿,现在想起来还挺有意思的。

不出网主机的几种上线方式

 

本身是没有问题的,说明psexec已经成功的完成了ntml认证,并且认证成功,但是这时候shell是反弹给边缘机器的,如果要上线就要再新建一个SMB Beacon Listener。相当于通过边缘机器再中转一下,反弹shell到vps。

不出网主机的几种上线方式

 


不出网主机的几种上线方式

 

选择子Beacon:SMB Beacon。成功上线。

不出网主机的几种上线方式

 


不出网主机的几种上线方式

 

(出去吃个饭回来内网机器ip变了。。)

这里可以看下拓扑图,是通过边缘机器正向连接了不出网的内网主机。

不出网主机的几种上线方式

 

在external后面有一个oooo,这实际上是标明了当前SMB的连接状态:

SMB Beacon有两个命令:link,unlink。

unlink则会断开连接,link会重新连接

执行命令unlink

unlink 192.168.57.140

后面的oooo变成了oo oo,说明已经断开连接,但是只是断开了连接,进程并没有被杀掉。

不出网主机的几种上线方式

 


不出网主机的几种上线方式

 

使用命令重新回连:

link 192.168.57.140
不出网主机的几种上线方式

 

我在实战中暂时没有用到过这个功能,但应该是有一定作用的,持久化后门,更加隐蔽?这里具体的实战情景明白的师傅可以说一下。

TCP Beacon

这种方式一般试用于:密码撞不上,内网机器有web服务。

这里做个代理,假设已经写入了shell文件,用冰蝎挂代理去连webshell。

不出网主机的几种上线方式

 


不出网主机的几种上线方式

 


不出网主机的几种上线方式

 

在cs上新增一个Listen,Tcp Beacon

不出网主机的几种上线方式

 

横向的时候最好都使用这个带s的windows可执行文件,s的含义为Stageless,相对的是Stager。下面是我自己的理解:

Stager是分步式,分阶段的,只用少部分代码来请求和加载payload,cs的加载payload模式为反射加载beacon.dll,但这个beacon.dll并不在可执行文件中,而是在远程C2服务端。

Stageless则是将beacon.dll包含在可执行文件中,并且可能有写额外的操作,于是文件比较大,特征也更明显,但是适合横向不出网机器,因为不出网所以有可能请求不了c2服务端上的beacon.dll。

不出网主机的几种上线方式

 


不出网主机的几种上线方式

 

Stageless的可执行文件比Stager的可执行文件大了将近15倍。真的离谱。

不出网主机的几种上线方式

 

然后用冰蝎上传beacon.exe。然后执行

不出网主机的几种上线方式

 

执行后使用connect 命令连接:

connect 192.168.57.140
不出网主机的几种上线方式

 

拓扑图如下,为tcp正向连接:

不出网主机的几种上线方式

 

同样是可以使用unlink来断开连接,这里与SMB Beacon不一样的是,如果Beacon进程是以普通权限运行的话,进程会直接死掉,再connect就会失败。

这里由于是Administrator权限,unlink后可以通过connect重新连接回来。

不出网主机的几种上线方式

 

Reverse TCP Beacon

也可以被称为中继上线。

同样需要有内网web,传shell。右键跳板机shell,选择Pivoting->Listener。

不出网主机的几种上线方式

 

Listen Host为内网ip。

这里要注意一下,如果有多张网卡,这个默认的Listen Host是需要改的,需要填入同一网段的ip。

比如我这里的跳板机器就有两张网卡,默认填入的host是192.168.1.103,这个就需要改,因为内网不出网机器是无法访问到192.168.1.103这张网卡的,只能访问192.168.57.143(跳板机ip又变了)

不出网主机的几种上线方式

 

同样生成Stageless的可执行文件。

不出网主机的几种上线方式

 

上传后执行beacon.exe

不出网主机的几种上线方式

 

执行后回来看cs就已经上线,不需要link或者connect了。

不出网主机的几种上线方式

 

拓扑图为反向的tcp连接

不出网主机的几种上线方式

 

值得注意的是,中继方法无法unlink后重连,不管权限如何,一旦unlink后进程直接结束。要想重新上线只能重新执行beacon.exe。

不出网主机的几种上线方式

 

后记

实际情况下,由于环境原因,网络状况错综复杂。比如:stageless的可执行文件比较大,又因为挂了代理,传不上去怎么办。其实就可以将beacon.exe上传到跳板机器上,用windows自带的certutil工具,直接在内网机器上请求下载跳板机上的beacon.exe。这样确实是更加稳当的。

上面这个tips是我再看星球中的@emmm…分享的pdf学到的,感谢分享。

本文由ppoocn原创发布
转载,请参考转载声明,注明出处: https://www.anquanke.com/post/id/254671
安全客 - 有思想的安全新媒体

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>