详细内容或原文请订阅后点击阅览
结合 dns-pydivert 和 dnsresolver
我使用我的工具 dns-pydivert 和 dnsresolver.py 进行软件(恶意软件和良性软件)的动态分析。在进行动态分析的虚拟机上,我禁用了 IPv6 支持。我安装了 dnslib 并使用以下命令运行 dnsresolver.py,例如: 第一个命令是解析命令:DNS A 对 example.com 的查询将 […]
来源:Didier Stevens _恶意软件我使用我的工具 dns-pydivert 和 dnsresolver.py 对软件(恶意软件和良性软件)进行动态分析。
dns-pydivert dnsresolver.py在进行动态分析的虚拟机上,我禁用了 IPv6 支持。
我安装了 dnslib 并使用如下命令运行 dnsresolver.py,例如:
dnslibdnsresolver.py "type=resolve,label=example.com,answer=. 1 IN A 127.0.0.1" "type=forwarder,server=8.8.8.8"
dnsresolver.py "type=resolve,label=example.com,answer=. 1 IN A 127.0.0.1" "type=forwarder,server=8.8.8.8"
第一个命令是解析命令:对 example.com 的 DNS A 查询将解析为 IPv4 地址 127.0.0.1,TTL 为 1 分钟。
第二个命令是转发器命令:所有未被其他命令处理的 DNS 请求都将转发到 8.8.8.8。请确保转发请求的 DNS 服务器的 IPv4 地址与 VM 的默认 DNS 服务器不同,否则此转发也将被 dns-pydivert 重定向。
如果 VM 与 Internet 隔离,我不会使用第二个解析器命令,我只在想要允许与 Internet 进行某些交互时才使用它。
然后我安装 pydivert 并以管理员身份运行 dns-pydivert.py。
pydivert如果没有管理员权限,则无法正确运行 dns-pydivert.py:
当 dns-pydivert.py 和 dnsresolver.py 运行时,DNS 流量会根据我们的设置进行更改。
例如(上图),当我在 VM 内部发出“ping google.com”命令时,dns-pydivert 会看到第一个 DNS 数据包,并使用该数据包中的地址配置自身:192.168.32.129 是 Windows VM 的 IPv4 地址,192.168.32.2 是此 Windows VM 的 DNS 服务器的 IPv4 地址。
它将第一个请求更改为重定向到 VM 本身(192.168.32.2 -> 192.168.32.129)。
然后 dnsresolver 接收此数据包,并将其转发到 DNS 服务器 8.8.8.8。 它从 DNS 服务器 8.8.8.8 接收回复,并将其转发到 Windows VM(192.168.32.129)。
因此,ping 命令会 ping 本地主机,而不是 example.com 的 Web 服务器。