metasploit使用外部数据库(TODO)

metasploit不能使用外部的pgsql数据库搞得一直很蛋疼,这篇小记只是记录下如何一步步让metasploit使用外部的pgsql,本篇文章中使用pgsql的docker ...

September 30, 2020 · 2 分钟

Python内存加载shellcode

生成 首先生成一个测试的msf shellcode 1 msfvenom -p windows/x64/exec CMD=calc.exe -f python 把其中的shellcode复制出来留待待会使用 原理 大部分脚本语言加载 shellcode 其实都是通过 c 的 ffi 去调用操作系统的api,其实并没有太多的技巧在里面,明白了原理,只需要查一下对应的脚本语言怎么调用 c 即可。 那么我们只需要明白 c 通常是怎么加载 shellcode 的即可一通百通。 那么 c 是怎么加载 shellcode 呢,我们直接从汇编开始探究。 shellcode 这个东西我们明白是一串可执行的二进制(一般可执行文件的拥有可执行权限的section为.text),那么我们先通过其他的手段开辟一片拥有可读可写可执行权限的区域放入我们的 shellcode,然后跳转到 shellcode 首地址去执行就行了,汇编里面改变eip(即当前指令的下一条即将运行指令的虚拟地址)的方法有不少,最简单的就是直接 jmp 过去了。也就是写成伪码大概意思就是(动态申请内存就不写了) 1 2 lea eax, shellcode; jmp eax; 那么我们用 c 怎么表示呢?我这里也写一段伪码(因为本文的重点并不是在于 c 代码的编写) 那么按照刚才的思路,先申请一块可执行的内存,放入 shellcode 然后跳转过去执行即可。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 // shellcode unsigned char shellcode[] = "\xd9\xeb\x9b\xd9\x74\x24\xf4\x31\xd2\xb2\x77\x31\xc9" "\x64\x8b\x71\x30\x8b\x76\x0c\x8b\x76\x1c\x8b\x46\x08" "\x8b\x7e\x20\x8b\x36\x38\x4f\x18\x75\xf3\x59\x01\xd1" ....

November 13, 2019 · 2 分钟