无论是在渗透测试或是实网攻防场景中,对于
DNSLOG
的依赖是必不可少的,然而公开的DNSLOG
平台毫无疑问已经躺在了各种设备的黑名单里,自行部署一个强大易用的DNSLOG
平台非常有必要。
interactsh
同知名扫描器 nuclei
一样,是项目 projectdiscovery
下的一个分支,专门用来设计检测外带场景的交互请求。
跟其他 DNSLOG
平台对比优势还是非常明显的,不但支持的协议多而且功能更全面,你甚至可以用它来充当 JNDI
漏洞利用反连的服务端或拉取命令执行的 http
服务器。
客户端支持也很全面,总之适用于各种安全场景(详细信息戳官方仓库)。官方也提供了公有 Web
版,但实际使用起来延迟较高,体验并不是特别好。
interactsh
分为客户端和服务器端,服务端监听各种协议的请求以及负责处理对客户端的认证,而客户端仅仅是拉取数据再展示而已。
在部署前首先你需要有一个域名,并设置 NS
记录指向到你的 DNSLOG
服务器上,服务端使用了 Go
语言实现,直接一个单文件启动就可以了:
1#https://github.com/projectdiscovery/interactsh/releases/tag/v1.2.0 2./interactsh-server -domain NS记录的域名 -http-index banner.html -dr -sa -a -dv -acao-url http://localhost:3000 -ip DNSLOG服务端IP 3#这里跟的很多参数并不是必须的,部署时按照自己的需求选择填写 4 5 _ __ __ __ 6 (_)___ / /____ _________ ______/ /______/ /_ 7 / / __ \/ __/ _ \/ ___/ __ '/ ___/ __/ ___/ __ \ 8 / / / / / /_/ __/ / / /_/ / /__/ /_(__ ) / / / 9/_/_/ /_/\__/\___/_/ \__,_/\___/\__/____/_/ /_/ 10 11 projectdiscovery.io 12 13[INF] Current interactsh version 1.1.9 (outdated) 14[INF] Client Token: A441b7a0cb4e70b7c4b9f20bcd9590fa56a404d9700a3e3813c6c06e8a873ef9 15[INF] Using custom server index: /root/Tools 16[INF] Listening with the following services: 17[DNS] Listening on TCP 0.0.0.0:53 18[LDAP] Listening on TCP 0.0.0.0:389 19[HTTP] Listening on TCP 0.0.0.0:80 20[SMTP] Listening on TCP 0.0.0.0:25 21[DNS] Listening on UDP 0.0.0.0:53
启动后输出的 Token
需要填写到对应的客户端中,用来进行合法性认证。不过这里似乎并不能手动选择启动的协议。
它的客户端也是提供了很多选择,除了可通过插件与 burpsuite
集成外,还提供了 win/mac/linux
的客户端程序以及 Web
版。我这里选择部署的是 Web
版。
1git clone https://github.com/projectdiscovery/interactsh-web 2cd interactsh-web 3yarn install 4yarn build
yarn build
后会生成打包好的文件,直接将部署至根目录,访问填写服务端地址和 token
即可。
服务端在默认部署时如果你的服务器没有备案,通过 http
回显访问后可能会访问到阿里云的备案拦截页面,不过影响不大,服务端仍会获得到请求,但某些时候回显的内容中可能还会存在被探测到为 DNSLOG
的特征
帮助里介绍可以使用 --banner
指定一个 html
作为回显页面,但不知何原因,我指定后并没有效果,以致于我最终直接选择了修改服务端对应的代码来规避这个问题。
另外部署到公网后配置认证是必不可少的,以免被盗用。