问题:

我尝试找到用shellcode内置的pdf隐藏的明文

我尝试过的内容javascript,我按如下方式挖掘pdf:

浏览JavaScript里面: />
root@kali:~# pdfid APT9001.pdf 
PDFiD 0.0.12 APT9001.pdf
 PDF Header: %PDF-1.5
 obj                   10
 endobj                 9
 stream                 3
 endstream              3
 xref                   2
 trailer                2
 startxref              2
 /Page                  3(2)
 /Encrypt               0
 /ObjStm                0
 /JS                    1(1)
 /JavaScript            1(1)
 /AA                    0
 /OpenAction            1(1)
 /AcroForm              0
 /JBIG2Decode           1(1)
 /RichMedia             0
 /Launch                0
 /EmbeddedFile          0
 /Colors > 2^24         0


如果打开JavaScript文件,我可以快速找到shellcode:




这部分,现在我该如何进一步探索:

我认为可能的可能解决方案是

,将这些shellcode转换为exe并将其导出为txt后,文本是通过探索其中的堆栈而恢复的{假设}

我是正确的方式?还是有任何社区想法对这些内容进行反向工程?

评论

它们看起来像一堆unicode字符!

resources.infosecinstitute.com/hacking-pdf-part-1

#1 楼

shellcode是unicode转义的。您可以使用简单的python脚本将其转换为十六进制表示形式。
from binascii import unhexlify as unhx

encoded = open('encoded.txt').read() # The shellcode dump
out = open('shellcode.bin', 'wb')

for s in encoded.split('%'):
    if len(s) == 5:
        HI_BYTE = s[3:]
        LO_BYTE = s[1:3]
        out.write(unhx(HI_BYTE))
        out.write(unhx(LO_BYTE))
out.close()


shellcode.bin包含二进制形式的shellcode。您可以使用以下C模板或诸如此类的在线工具将Shellcode转换为可执行文件。




评论


pdf拥有的,哈哈哈好好利用

– Abr001am
15年6月22日在17:28

#2 楼

极限编码器的答案很棒,我想在这里分享我的方法:

我使用REMnux中的工具将其转换为可执行文件: >
shellcode将某些东西放到堆栈上:



如果我将其拆分并仔细观察: >
所以我猜得到的答案是wa1ch.d3m.spl01ts@flare-on.com