Drunkmars's Blog

CS中上线不出网主机

字数统计: 874阅读时长: 3 min
2021/11/05

总结一下cs中上线不出网主机的几种方式。

SMB Beacon

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

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

image-20211104224540698

上线边缘主机

image-20211104224834575

设置smb监听

image-20211104224915794

进行内网ip扫描

image-20211104224931562

发现ip为128的主机

image-20211104225154236

使用psexec64进行横向

image-20211104225208702

使用管理员的密码进行pth

image-20211104225238256

如下所示

image-20211104225423624

看下拓扑图,使用正向连接了内网主机

image-20211104232011954

SMB Beacon有两个命令:link,unlink。unlink则会断开连接,link会重新连接

TCP Beacon

这种方式一般试用于:密码撞不上,内网机器有web服务。这里做个代理,假设已经写入了shell文件,用冰蝎挂代理去连webshell。

image-20211104230308747

image-20211104230738594

冰蝎连接shell成功

image-20211104230744747

然后创建一个tcp隧道,这里端口默认的是4444

image-20211104230757833

横向的时候最好都使用这个带s的windows可执行文件,s的含义为Stageless,相对的是Stager。

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

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

stager需要get请求才能把真正的shellcode注入到内存,而stagerless不需要get请求,整个shellcode都在在文件中,无需发起get请求。而在内网中的机器往往无法访问外网(vps)所以无法发起get请求,故没有stager的tcp beacon

image-20211104230807843

看一下无状态文件跟普通文件的大小区别

image-20211104230926988

上传生成的beacon.exe

image-20211104231023296

执行beacon.exe

image-20211104231036007

这里执行之后还需要执行connect ip的操作

image-20211104231118242

可以发现已经连接成功

image-20211104231133276

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

image-20211104231945982

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

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

image-20211104231234093

Reverse TCP Beacon

也可以被称为中继上线。

同样需要有内网web,传shell。右键跳板机shell,选择中转操作,监听中转

image-20211104231316922

新建监听,注意这个地方需要设置为内网能够访问到的网卡地址

image-20211104231417515

还是生成无状态的后门文件

image-20211104231440650

image-20211104231500222

执行beacon.exe就可以直接上线

image-20211104231603376

拓扑图为反向的tcp连接

image-20211104231625621

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

image-20211104231825333

后记

感谢hxd@SD的文章,受益匪浅!

CATALOG
  1. 1. SMB Beacon
  2. 2. TCP Beacon
  3. 3. Reverse TCP Beacon
  4. 4. 后记