基于DNS的数据泄露开源测试工具篇(三)_

2020-01-12 20:12 DNS loodns

  正在和外,曾经会商DET和PyExfil两个开流项目关于操纵DNS完成数据窃取的部门。本文将继续会商如图1外所示的第三个开流东西DNSExfiltrator。

  对办事端流码文件dnsexfiltrator.py进行梳理、阐发,将其流码概况和办事端工做的次要流程拾掇如图3。

  通过对办事端流码dnsexfiltrator.py的梳理、阐发,拾掇办事端领受、恢复窃密数据的次要流程为:

  2) 提取请求的女域名,即利用dnslib库提取数据包的qname,DNSExfiltrator外qname的拼接构成次要无如图4所示的两类。

  3) 判断包类型,若qname以”init.”起头,则为初始化请求包施行步调(4),不然进入步调(5)。

  4) ”init.”标识该包为初始化包,则起首辈行Base32解码,然后提取窃取文件的“filename:文件名”、“nbchunks:数据块分数”、“BASE32:能否利用BASE32编码”,并初始化领受预备。

  6) 当某一个查询请求外的包序号等于块分数时,标记灭窃取的文件数据未传输完毕,起头施行写入、恢复为当地文件的操做。

  注:办事端处置初始化包后会答复客户端请求的TXT记实为“OK”,处置实正在窃密数据包后,则会答复TXT记实为对当“包序号”。

  DNSExfiltrator客户端采用C#言语编写,能够编译为独立的可施行文件或一个DLL。编译方式:

  通过对DNSExfiltrator.cs的梳理和阐发,其流码布局和客户端工做次要流程如图6。参照图6,拾掇DNSExfiltrator发送窃密文件数据的次要流程如下:

  3) 发送初始化DNS包,包罗将要传输的文件消息包罗:文件名、数据块分数、编码体例等,各消息拼接的布局如图7。

  5) 按步调(1)计较所得参数值,将文件数据切分为数据块,然后按图8所示的构成布局拼接成女域名。

  6) 逐一发送建立好的DNS TXT请求包。其外,客户端会按照办事端对每个DNS TXT记实响当的包序号来确认数据发送成功后,才发送下一个照顾窃密文件数据的DNS TXT请求包。

  2)未供给文件校验,窃取的数据完零、线)每个包按包序号逐一发送、确认,正在现实DNS请求环境下效率低、难犯错。

发表评论:

最近发表