网安 | 利用ShellCode生成木马
一、利用Python执行ShellCode
1、支持的源码格式
2、生成ShellCode
生成的内容如下:
3、编写Python加载器
4、MSF监听实现反弹
5、利用Pyinstaller打包Python代码为可执行程序
在生成的目录下找到pyshell.exe,实现与MSF的连接。(通常此时杀毒软件会预警)。
使用Java加载Java版本的ShellCode:
https://www.4hou.com/index.php/posts/j6xW
二、使用Python 64位版加载器
1、生成x64位的ShellCode
2、使用64位版Python加载器
3、在64位的Python环境安装PyInstaller,同样可以生成exe文件。
上述加载器代码更加简洁,但是无论怎样的ShellCode,或是生成exe木马,均无法过杀毒软件,所以需要免杀。
三、Python加载器实现免杀
1、Python编码实现
https://www.cnblogs.com/f-carey/p/16577962.html
https://forum.butian.net/share/1690
2、ShellCode Loader
(1)下载:https://github.com/Axx8/ShellCode_Loader
(2)安装Python和PyInstaller,安装Pycrypto:pycryptodome,另外,本实验需要Python 64位环境,最好使用最新版
(3)进入Python插件目录:\Python311\Lib\site-packages 将目录 crypto 修改为大写开头:Crypto
(4)利用MSF或CobaltStrike生成C语言的ShellCode,如使用以下msfvenom命令生成:
或直接使用CobaltStrike生成也可以。
(5)运行:Shellcode_encryption.exe payload.c 对ShellCode代码进行加密处理
(6)将生成的密文ShellCode 填至 ShellCode_Loader.py 里的 Data = '密文Shellcode' 处
(7)运行ShellCode_Loader.py,确认MSF或CobaltStrike是否上线
(8)利用PyInstaller生成可执行程序,利用杀毒软件进行检测,火绒目前不免杀,但是360免杀
四、加壳程序实现免杀
压缩壳:upx,aspack ,fsg ,pecompach
加密壳:ASProtect ,Armadillo(穿山甲),EXEcryptor,Themida,ZProtect
虚拟机壳:VMProtect
静态扫描:文件特征,内存特征,文件校验和
动态监控:hook,监控API,函数调用,注册表,文件操作
云查杀:云沙箱运行前关注静态特征,运行后关注动态特征
https://github.com/HZzz2/python-shellcode-loader
https://github.com/HZzz2/python-shellcode-loader
pyinstaller --key 123456 --hidden-import=base64 可以删除一些特征
静态特征:ShellCode分段拼接,ShellCode和加载器代码放到外部服务器上进行下载,加载器代码与分离,+加密 + 变量定义
内存特征:花指令:无效或无意义的指令、
绕沙箱:
CS teamserver 启动时,加载一个 profile 文件, 如jquery...profile