PE注入

  1. 前言
  2. 环境
  3. 实验
  4. 参考链接

前言

早上在先知社区看见一篇手动PE注入的文章。看起来挺感兴趣,研究了一下
timg?image&quality=80&size=b9999_10000&sec=1576669956890&di=e9cbb8db1d6e158ce9582ac2ed35968c&imgtype=0&src=http%3A%2F%2Fi0.hdslb.com%2Fbfs%2Farticle%2Ff5e33db662e3f26526b0b1c234c55512534dac28.jpg

环境

OS:windows 7
工具:
LordPE
OD
HxD
PESecurity-master https://github.com/NetSPI/PESecurity

实验

首先实验PEsecurity检查是否有ASLR

ASLR(Address space layout randomization)是一种针对缓冲区溢出的安全保护技术,通过对堆、栈、共享库映射等线性区布局的随机化,通过增加攻击者预测目的地址的难度,防止攻击者直接定位攻击代码位置,达到阻止溢出攻击的目的

Q7OXFg.png

无ASLR,那么使用LordPE打开,并新建一个区段
Q7Xgcn.md.png

Q7jK3j.md.png

由于新加了一个区段,EXE现在无法打开,使用HxD插入1000个00(就是虚拟大小)
Q7vpZV.png

测试能否正常打开
Q7vfFU.png

OD打开找到添加的区段
Q7vbex.png

将入口点改为

jmp 00412000

Q7xQ00.png

之后单独保存为一个exe,然后在打开右键跟随jmp就可以去到定义的空白区段了
Q7x2jA.png

msfvenom生成一个弹Messagebox的shellcode(32位)

msfvenom -p windows/messagebox text="it's demo" -f hex

(懒得在生成一遍)
Q7xxEV.png
复制生成的shellcode,然后在空白区段选中大部分,二进制->二进制粘贴
Q7zEHx.png

之后在保存执行即可看见效果
Q7zK8e.png

恢复程序正常执行,既然执行了我们要的玩意那么就要恢复原来的程序正常执行
PS:生成什么反弹meterpreter和执行命令的shellcode,之后之后貌似无法还原。。。一堆几把问题。弄了一下午

先打开未被修改过的exe在和修改过的exe对比入口点
Q7z6aV.png

执行完上面的之后可以看到进入了下一个区段,把区段的地址拿出来

00405331  |.  68 A0614000   push Hash.004061A0

最后得出要修改的

push ebp
mov ebp,esp
push -0x1
jmp 00405331
-------------------------------------------------
00412103    90              nop
00412104    9D              popfd //恢复堆栈
00412105    61              popad //恢复堆栈
00412106    55              push ebp
00412107    8BEC            mov ebp,esp
00412109    6A FF           push -0x1
0041210B  - E9 2132FFFF     jmp Hash7.00405331 //跳转到下一个区段00405331

找到shellcode最后的call然后替换为上面的
(修改前)
Q7zqPO.png

(修改后)
QHSZss.png

在另存为一个单独的exe,效果如下
QHSTyj.md.gif

执行calc的
QHpVfO.md.gif

为了把calc弄的和上面可以正常返回,开始了折腾数小时的操作…..

  • popfd和popad不行 X
  • 堆栈平衡,calc好像弹不出 X

堆栈平衡:shellcode之前的ESP-shellcode执行之后的ESP=差值
QH9S4f.png

QH94MQ.md.png

尝试F8到calc弹出之后在返回 X
QHCAzD.md.png

QHClJf.md.gif

尝试和原文反弹nc和meterpreter的,可以是可以。问题和上面如上,不过nc反弹的话海星
QHPMnJ.md.png

QHPGh6.png

后面十分纠结…问了某dalao说是shellcode的问题

由于本人太垃圾没有找到解决的方法,待定…..

自动化的工具使用:
[kali linux捆绑工具shellter的安装及使用(https://blog.csdn.net/qq_34444097/article/details/79573798)

参考链接

Fully undetectable backdooring PE file
手工shellcode注入PE文件 - 先知社区
[原创]使用“PE文件加区段工具”、“LordPE”、“WinHex”、“OllyDbg”为PE文件添加section、dll(API)-『软件逆向』-看雪安全论坛
PE文件 – backup


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。

文章标题:PE注入

本文作者:九世

发布时间:2019-12-18, 17:00:34

最后更新:2019-12-18, 18:26:31

原始链接:http://jiushill.github.io/posts/76f3e4e2.html

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录