0.零散知识
0x00 添加图标:
尝试了几种大众方法,感觉还是这篇文章的方法好用
https://www.sqlsec.com/2020/10/csexe.html#%E6%B7%BB%E5%8A%A0%E5%9B%BE%E6%A0%87
0x01 添加签名:
sigthief下载地址:https://github.com/secretsquirrel/SigThief
python sigthief.py -i "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe" -t C:\Users\xx\Desktop\Project1.exe -o 1.exe
0x02 降低熵值
熵值也是一些杀软查杀的条件之一,把shellcode和loader分开能有效降低熵值
0x03 免杀入门杂谈文章推荐
- https://xz.aliyun.com/t/13332?time__1311=mqmxnDBG0QiQPGNDQ0KBKg77x9YreDcjYoD&alichlgref=https%3A%2F%2Fxz.aliyun.com%2F%3Fpage%3D3
- https://myzxcg.com/archives/
- 浅析杀软系列:https://0range-x.github.io/2022/03/31/%E6%B5%85%E6%9E%90%E6%9D%80%E8%BD%AF/
- 闲谈免杀:https://cloud.tencent.com/developer/article/2368173
- 加载器总结:https://www.cnblogs.com/henry666/p/17429771.html
- https://www.cnblogs.com/fdxsec/p/17827348.html
- 回调函数加载器总结:https://www.freebuf.com/articles/web/269158.html
- 免杀技术汇总:https://blog.csdn.net/jentle8/article/details/126771022
0x05 隐藏窗口
360会检测这个,例如远程加载shellcode360不会杀,但是加上隐藏窗口会杀,但是我们必须隐藏窗口,所以只能另外修改其他特征,例如隐藏窗口加上远程加载加上异常处理就不会杀
1.ShowWindow(GetConsoleWindow(), SW_HIDE);
2.#pragma comment(linker,"/subsystem:\"windows\" /entry:\"mainCRTStartup\"")
3.我们将主函数改成WinMain,几个参数意义如下:
- hInstance:当前实例的句柄。
- hPrevInstance:先前实例的句柄,在现代的Windows系统中这个参数总是NULL。
- lpCmdLine:命令行参数,是一个指向以空字符结尾的字符串的指针。
- nCmdShow:指定窗口应该以何种形式显示。
#include <Windows.h>
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
// ... 其他初始化工作 ...
// 创建窗口并显示
HWND hWnd = CreateWindow(/* 创建窗口的参数 */);
ShowWindow(hWnd, SW_HIDE); // 将窗口隐藏起来
return 0;
}
0x06 nt、zw等底层函数查询网站
1.杀软总结
参考了橘神的文章和自己的尝试,橘神的博客就是上面浅析杀软系列那一篇。
1x0 eset
- 上线方面
loader使用shellcode分离的方式
- 操作方面
不是企业版没碰到有拦截一些常规操作,eset是一个对行为操作极其敏感的杀软。所以在对抗行为检测类杀软的时候,cs尽量使用模块化插件的方式去获取cmd或者pw回显信息。
1x1 卡巴斯基
内存扫描能力很强,默认的cs beacon会被检测
- 上线方面
修改cs的profile,卡巴接触不多,我也没办法多说什么
- 操作方面
常规操作是不拦截的
1x2 火绒
- 上线方面
没啥注意,火绒有本地沙箱内置了一个本地的虚拟化环境,但是感觉火绒沙箱稍微好过
- 操作方面
不要去做一些乱搞的配置,很容易绕过,不要随意使用提权工具
心跳间隔不要过短
1x3 360
- 360核心防护
开启了核晶防护之后,需要操作是受限的,大部分的CMD命令是无法使用的,判断是否开启核晶防护,上传EXE执行提升拒绝访问,就算上线了,becaon下运行cmd命令提示拒绝访问
- 上线方面
如果有核晶防护,DLL白加黑解决上线问题
- 操作方面
即便有system权限也没办法实现CMD命令注入,就上传我们自己写好的代码进行注入,或者用bof插件进行相关的替代
1x4 windows defender
Defender两个核心: AMSI、ETW。
- 上线方面
沙箱检测动态查杀有点强,感觉shellcode传到内存一解密就杀,火绒360还不会
针对cs,不要使用stager shellcode ,使用stage shellcode 上线是要立刻被干掉的,用stageless的shellcode。
- 操作方面
如果出发恶意行为,如提权之类的,会关联到loader程序,上线后可以注入到另外的进程去操作,
使用cs内置的execute-assembly 可能会导致beacon掉线,原因:C#的程序本身是不免杀的,会经过ASMI的扫描
1x5 其他杀软
- sangfor edr: 静态查杀很强,不会查杀父进程,过了静态就可以乱来
- 麦咖啡: 麦咖啡静态查杀也很强,没有行为查杀
- 阿里安骑士:静态一般,但拦截高危cmd操作
- 趋势科技:监控恶意服务创建,行为检测基本无
- G01:静态上传不管是exe还是dll都会被杀,有黑名单机制