CS学习记录-探测_提取配置
<title></title>
CS
学
习
记
录
-
探
测
&
提
取
配
置
Beacon
是
Cobalt¨NBSP;Strike
运
⾏
在
⽬
标
主
机
上
的
payload
,
Beacon
在
隐
蔽
信
道
上
我
们
提
供
服
务
,
⽤
于
⻓
期
控
制
受
感
染
主
机
。
它
的
⼯
作
⽅
式
与
Metasploit Framework Payload
类
似
。
在
实
际
渗
透过
程
中
,
我
们
可
以
将
其
嵌
⼊到
可
执
⾏
⽂
件
、
添
加到
Word
⽂
档
或
者
通过
利
⽤
主
机
漏
洞
来
传
递
Beacon
。
https://cobalt-strike.github.io/community_kit/ <https://cobalt-strike.github.io/community_kit/>
Cobalt Strike
服
务
器
附
带
⼀个
默
认证
书
,
显
示
序
列
号
、
发
⾏
者
、
主
题
和
证
书
有
效
性
的
特
定
值
,
如
下
所
示
。
Default cert:
ssl.cert.serial:146473198
https://www.shodan.io/search?query=ssl.cert.serial%3A146473198 <https://www.shodan.io/search?query=ssl.cert.serial%3A146473198>
如
果
它
们
没
有
被
攻
击
者
修
改
,
则
可
以使
⽤
shodan
请
求
轻
松
发
现
这
些
服
务
器
。
在
撰
写
本
⽂
时
,
有
800+
台
服
务
器
与
此
证
书
序
列
号匹
配
。
Cobalt Strike
介
绍
Beacon
是
什么
⼯
具包
发
现
C&C
服
务
器
默
认证
书
对
于
3.13 <https://download.cobaltstrike.com/releasenotes.txt>
之
前
的
Cobalt Strike
版
本
,
http
响
应
在
http
状
态
的
末
尾
显
示
⼀个
⽆
关
的
空
格
。
⽂
档
介
绍
https://trial.cobaltstrike.com/help-malleable-c2 <https://trial.cobaltstrike.com/help-malleable-c2>
根
据
⼤
量
的
malleable C2 profile
编
写
查
询
。
示
例使
⽤
微
软
更
新
malleable C2 profile
⽂
件
来
检
测
团
队
服
务
器
的
查
询
。
此
资
料
可
以使
⽤
www[.]windowsupdate.com
,
伪
装
成
⼀个
合
法
的
微
软
证
书
证
书
。
https://github.com/bluscreenofjeff/Malleable-C2-Randomizer/blob/master/Sample%20Templates/microsoftupdate_getonly.profile
<https://github.com/bluscreenofjeff/Malleable-C2-Randomizer/blob/master/Sample%20Templates/microsoftupdate_getonly.profile>
ssl.cert.subject.cn:"www.windowsupdate.com"
HTTP
响
应
malleable C2 profile
https://www.shodan.io/search?query=ssl.jarm%3A07d14d16d21d21d00042d41d00041de5fb3038104f457d92ba02e9311512c2
<https://www.shodan.io/search?query=ssl.jarm%3A07d14d16d21d21d00042d41d00041de5fb3038104f457d92ba02e9311512c2>
00014d16d21d21d00042d41d00041df1e57cd0b3bf64d18696fb4fce056610
00014d16d21d21d07c42d41d00041d47e4e0ae17960b2a5b4fd6107fbb0926
05d02d16d04d04d05c05d02d05d04d4606ef7946105f20b303b9a05200e829
05d02d20d21d20d05c05d02d05d20dd7fc4c7c6ef19b77a4ca0787979cdc13
05d13d20d21d20d05c05d13d05d20dd7fc4c7c6ef19b77a4ca0787979cdc13
07d00016d21d21d00042d41d00041df1e57cd0b3bf64d18696fb4fce056610
07d0bd0fd06d06d07c07d0bd07d06d9b2f5869a6985368a9dec764186a9175
07d0bd0fd21d21d07c07d0bd07d21d9b2f5869a6985368a9dec764186a9175
07d13d15d21d21d07c07d13d07d21dd7fc4c7c6ef19b77a4ca0787979cdc13
07d14d16d21d21d00007d14d07d21d3fe87b802002478c27f1c0da514dbf80
07d14d16d21d21d00042d41d00041d47e4e0ae17960b2a5b4fd6107fbb0926
07d14d16d21d21d00042d41d00041de5fb3038104f457d92ba02e9311512c2
07d14d16d21d21d07c07d14d07d21d4606ef7946105f20b303b9a05200e829
07d14d16d21d21d07c07d14d07d21d9b2f5869a6985368a9dec764186a9175
07d14d16d21d21d07c07d14d07d21dee4eea372f163361c2623582546d06f8
07d14d16d21d21d07c42d41d00041d24a458a375eef0c576d23a7bab9a9fb1
07d14d16d21d21d07c42d41d00041d58c7162162b6a603d3d90a2b76865b53
07d14d16d21d21d07c42d43d00041d24a458a375eef0c576d23a7bab9a9fb1
07d19d1ad21d21d00007d19d07d21d25f4195751c61467fa54caf42f4e2e61
15d15d15d3fd15d00042d42d00042d1279af56d3d287bbc5d38e226153ba9e
15d3fd16d21d21d00042d43d000000fe02290512647416dcf0a400ccbc0b6b
15d3fd16d29d29d00015d3fd15d29d1f9d8d2d24bf6c1a8572e99c89f1f5f0
15d3fd16d29d29d00042d43d000000ed1cf37c9a169b41886e27ba8fad60b0
15d3fd16d29d29d00042d43d000000fbc10435df141b3459e26f69e76d5947
15d3fd16d29d29d00042d43d000000fe02290512647416dcf0a400ccbc0b6b
16d16d16d00000022c43d43d00043d370cd49656587484eb806b90846875a0
1dd28d28d00028d00042d41d00041df1e57cd0b3bf64d18696fb4fce056610
1dd28d28d00028d1dc1dd28d1dd28d3fe87b802002478c27f1c0da514dbf80
21b10b00021b21b21b21b10b21b21b3b0d229d76f2fd7cb8e23bb87da38a20
21d10d00021d21d21c21d10d21d21d696c1bb221f80034f540b6754152d3b8
21d19d00021d21d21c42d43d000000624c0617d7b1f32125cdb5240cd23ec9
29d29d00029d29d00029d29d29d29de1a3c0d7ca6ad8388057924be83dfc6a
29d29d00029d29d08c29d29d29d29dcd113334714fbefb4b0aba4000bcef62
29d29d00029d29d21c29d29d29d29dce7a321e4956e8298ba917e9f2c22849
29d29d15d29d29d21c29d29d29d29d7329fbe92d446436f2394e041278b8b2
2ad00016d2ad2ad22c42d42d00042ddb04deffa1705e2edc44cae1ed24a4da
2ad2ad0002ad2ad0002ad2ad2ad2ade1a3c0d7ca6ad8388057924be83dfc6a
2ad2ad0002ad2ad00042d42d000000301510f56407964db9434a9bb0d4ee4a
2ad2ad0002ad2ad00042d42d0000005d86ccb1a0567e012264097a0315d7a7
2ad2ad0002ad2ad22c2ad2ad2ad2ad6a7bd8f51d54bfc07e1cd34e5ca50bb3
2ad2ad0002ad2ad22c2ad2ad2ad2adce7a321e4956e8298ba917e9f2c22849
2ad2ad16d2ad2ad00042d42d00042ddb04deffa1705e2edc44cae1ed24a4da
2ad2ad16d2ad2ad22c42d42d00042d58c7162162b6a603d3d90a2b76865b53
2ad2ad16d2ad2ad22c42d42d00042de4f6cde49b80ad1e14c340f9e47ccd3a
3fd3fd15d3fd3fd00042d42d00000061256d32ed7779c14686ad100544dc8d
3fd3fd15d3fd3fd21c3fd3fd3fd3fdc110bab2c0a19e5d4e587c17ce497b15
3fd3fd15d3fd3fd21c42d42d0000006f254909a73bf62f6b28507e9fb451b5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
Plain Text
复
制
代
码
⽔
印
305419896
已
与
Maze
勒
索
软
件
相
关
联
:
https://labs.sentinelone.com/enter-the-maze-demystifying-an-affiliate-involved-in-maze-snow/
<https://labs.sentinelone.com/enter-the-maze-demystifying-an-affiliate-involved-in-maze-snow/>
/submit.php
/jquery-3.3.2.min.js
除
了
部
署
在团
队
服
务
器
本
身
上
的
SSL
证
书
外
,
信
标
还
与⼀个
额
外
的
SSL
公
钥
捆
绑
在
⼀
起
。
这
是
公
钥
/
私
钥
对
的
⼀
部
分
,
每
当
有
⼈
安
装
CobalteStrike
时
,
服
务
器
上
就
会
⽣
成
公
钥
/
私
钥
对
。
公
钥
随
后
嵌
⼊
在
同
⼀
服
务
器
上
⽣
成
并
⽤
于
C2
签
到
。
需
要
注
意
的
是
,
此
密
钥
对
与
团
队
服
务
器
上
⽤
于
HTTPS
证
书
的
SSL
密
钥
对完
全
不
同
。
与
⽔
印
不
同
,
存
储
在
Beacon
配
置
中
的
SSL
公
钥
提
供了
⼀
种
聚
集
信
标
的
⽅
法
。
我
们
实
际
上
可
以保
证
每
个
团
队
服
务
器
安
装
的
密
钥
是
唯
⼀
的
,
但
它
们
经
常
会
被
重
⽤
,
例
如
通过
虚
拟
机
重
新
部
署
。
在
⼀
些
情
况
下,
攻
击
者
使
⽤
单
个
团
队
服
务
器
来
配
置
从
其
控
制
范
围
内
的
其
他
服
务
器
部
署
的
有
效
负
载
,
这
使
得
我
们
可
以
发
现
、
跟
踪
和
监
控
他们
的
基
础
设
施
。
总
的
来
说
,
37%
的
信
标
提
供了
前
5
个
SSL
公
钥
。
有
⼏
个
最
受
欢
迎
的
密
钥
属
于
APT
组织
。
当
从
订
阅
或
OSINT
源
收
集
的
Beacon IP
时
,
通
常
可
以
找
到
⼀
些
共
享
同
⼀个
SSL
公
钥
的
信
标
。
这
种
情
况
下,
除⾮
产
⽣
与
基
础
设
施
相
关
的
进
⼀
步
的
IP
地址
和
情报
,
否
则
可
能
是
不
相
关
的
。
利
⽤
这
种
集
群
技
术
对
扩
展
C2
基
础
设
施
的
情报
⾮
常
有
帮
助
。
它
帮
助
我
们
找
到
了
各
种
组织
和
攻
击
活
动
之
间
的
联
系
,
包
括
⽬
前
活
跃
的
和历史
活
跃
的
。
https://www.shodan.io/search?query=server.publickey_md5%3A+defb5d95ce99e1ebbf421a1a38d9cb64 <https://www.shodan.io/search?
query=server.publickey_md5%3A+defb5d95ce99e1ebbf421a1a38d9cb64>
server.publickey_md5: defb5d95ce99e1ebbf421a1a38d9cb64
常
⻅
的
URI
●
●
ssl public keys
已
知
威
胁
组织
使
⽤
的
⼏
个
流
⾏
的
SSL
公
钥
包
括
:
defb5d95ce99e1ebbf421a1a38d9cb64
e9ae865f5ce035176457188409f6020a
81a3eeb8ceb74cf508f6bcfc408e0305
79b6e333634c506f6f710dde179796ed
1186914578623be126e5f3e8c058d719
8ac540617dddcdf575f6dc207abb7344
f61884abc8f4ba7a0caa288b326a70ee
94a0ea78a00b04d14d25e55dacba3ac3
c4fdbd072a73ab1b9087f716d5399807
0ce7b6482c1f24e42f2935f5026d338d
1
2
3
4
5
6
7
8
9
10
常
⻅
的
公
钥
md5
JSON
复
制
代
码
MD5 Beacon
数
量
组织
1186914578623be126e5f3e8c058d719
1412
MAN1
8ac540617dddcdf575f6dc207abb7344
1318
DoppelPaymer
f61884abc8f4ba7a0caa288b326a70ee
621
Kegtap
0ce7b6482c1f24e42f2935f5026d338d
257
TA575/Dridex
b3e6b9dd84dae6be68cb40cda4366b77
23
APT41
e9ae865f5ce035176457188409f6020a
defb5d95ce99e1ebbf421a1a38d9cb64
79b6e333634c506f6f710dde179796ed
58c3c0a918d473ecd9f39285d17379ef
c4fdbd072a73ab1b9087f716d5399807
c9e300c118949adc574287b2a1264ec5
c2897b1cf5ecaee579935f2a31cd35a9
0ce7b6482c1f24e42f2935f5026d338d
8ccc9bf8410deef2f2008cde472662a5
13eb42adf1b78ea4e1ac3c87b4e3dd56
1
2
3
4
5
6
7
8
9
10
前
⼗
⼤
SSL
公
钥
md5
JSON
复
制
代
码
绝
⼤多
数
从
Beacon
配
置
集
合
中
提
取
的
SSL
公
钥
,
能
与
已
有
的
数据
库
的
⼀个
或
多
个
Beacon
集
群
。
基
于
DNS
响
应
对
团
队
服
务
器
进
⾏
指
纹
识
别
的
⽅
法
:
Detecting Exposed Cobalt Strike DNS Redirectors
:
https://labs.f-secure.com/blog/detecting-
exposed-cobalt-strike-dns-redirectors/ <https://labs.f-secure.com/blog/detecting-exposed-cobalt-strike-dns-redirectors/>
从
shodan
中
搜
索
Beacon
的
IP
,
并
保
存
到
本
地
,
⻅
下
节
。
绝
⼤
部
分
信
标
被
配
置
为使
⽤
0.0.0.0
作为
DNS
空
闲
IP
。
正
如
F-Secure
的研
究
⼈
员
所
提
到
的
,
0.0.0.0 DNS
空
闲
值
是
默
认
值
,不
应
该
在
⽣
产
环
境
中使
⽤
。
因
此
,
我
们
可
以
在
a
记
录
中
探
测
DNS
服
务
器
上
的
0.0.0.0
响
应
,
这
可
以作为
在
野
外
识
别
团
队
服
务
器
的
另
⼀
种
可
靠
机
制
。
Cobalt Strike DNS
重
定
向
from scapy.all import *
from scapy.layers.dns import DNSRR, DNS, DNSQR
from scapy.layers.inet import IP, UDPc
def checkDNS(name):
ip = name
try:
ans = sr1(IP(dst=ip)/UDP(sport=RandShort(), dport=53)/DNS(rd=1,qd=DNSQR(qname="google.com",qtype="TXT")),
verbose=False, timeout=0.5)
ansTXT = ans[DNSRR][0].rdata
ans = sr1(IP(dst=ip)/UDP(sport=RandShort(), dport=53)/DNS(rd=1,qd=DNSQR(qname="amazon.com",qtype="A")), ve
rbose=False, timeout=0.5)
ansA1 = ans[DNSRR][0].rdata
ans = sr1(IP(dst=ip)/UDP(sport=RandShort(), dport=53)/DNS(rd=1,qd=DNSQR(qname="google.com",qtype="A")), ve
rbose=False, timeout=0.5)
ansA2 = ans[DNSRR][0].rdata
if ansTXT == ansA1 and ansA1 == ansA2 and ansA2 != '' and valid_ip(ansA1):
print("[+] Cs Detected: " + ip + " replied with: " + ansTXT)
except Exception as e:
pass
def nslookup(target: str) -> None:
DNS_PORT = 53
DNS_SERVER = "8.8.8.8"
msg = IP(dst=DNS_SERVER) / UDP(dport=DNS_PORT) / DNS(rd=1, qd=DNSQR(qname=target))
ans = sr1(msg, verbose=0)
print(ans[DNSRR].rdata)
if __name__ == '__main__':
#name = "49.232.161.221"
#checkDNS(name)
#nslookup("google.com")
with open("cobalt.txt", 'r', encoding='UTF-8', errors='ignore') as f:
while True:
line = f.readline()
if not line:
break
checkDNS(line.strip())
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
checkDNS.py
Python
复
制
代
码
> pip install shodan
> shodan init YOUR_API_KEY
> shodan search --fields ip_str,port,org,hostnames server.publickey_md5: defb5d95ce99e1ebbf421a1a38d9cb64
101.43.208.122 80 Tencent Cloud Computing (Beijing) Co., Ltd
110.42.159.151 443 Tencent cloud computing (Beijing) Co., Ltd.
101.43.208.122 8443 Tencent Cloud Computing (Beijing) Co., Ltd
147.78.47.231 443 M Nets SAL undefined.hostname.localhost
31.44.184.187 443 Petersburg Internet Network ltd.
39.109.68.117 443 HONG KONG BRIDGE INFO-TECH LIMITED
47.96.120.47 80 Aliyun Computing Co., LTD
116.204.211.180 80
5.199.162.174 80 UAB Cherry Servers
49.232.161.221 443 Tencent cloud computing (Beijing) Co., Ltd.
5.199.162.174 443 UAB Cherry Servers
81.71.133.220 80 Tencent Cloud Computing (Beijing) Co., Ltd
103.146.179.94 443 HONGKONG NEWS COMMENTARY AGENCY CO. ,LIMITED
117.50.37.182 80 Shanghai UCloud Information Technology Company Limited
103.146.179.94 80 HONGKONG NEWS COMMENTARY AGENCY CO. ,LIMITED
31.44.184.73 80 Petersburg Internet Network ltd.
120.53.232.55 443 Shandong Servsd Technology Co. Ltd.
82.156.29.211 9999 Tencent Cloud Computing (Beijing) Co., Ltd
193.201.9.199 443 Infolink LLC
31.44.184.187 8080 Petersburg Internet Network ltd.
121.41.89.180 443 Aliyun Computing Co., LTD
124.222.177.70 82 Tencent cloud computing (Beijing) Co., Ltd.
47.98.164.231 443 Aliyun Computing Co., LTD
31.44.184.232 80 Petersburg Internet Network ltd.
101.43.208.122 443 Tencent Cloud Computing (Beijing) Co., Ltd
81.71.133.220 443 Tencent Cloud Computing (Beijing) Co., Ltd
31.44.184.187 80 Petersburg Internet Network ltd.
175.24.62.158 4443 Tencent cloud computing (Beijing) Co., Ltd.
103.146.179.94 4433 HONGKONG NEWS COMMENTARY AGENCY CO. ,LIMITED
110.42.159.151 8080 Tencent cloud computing (Beijing) Co., Ltd.
31.44.184.84 443 Petersburg Internet Network ltd.
116.204.211.180 443
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
Bash
复
制
代
码
https://community.riskiq.com/search/components/Command%20and%20Control%20Server/Cobalt%20Strike/
<https://community.riskiq.com/search/components/Command%20and%20Control%20Server/Cobalt%20Strike/>
https://quake.360.cn/quake/#/searchResult?
searchVal=app%3A%22CobaltStrike%22&selectIndex=quake_service&ignore_cache=false&timeRange=2021-08-
25%2000%3A00%3A00&timeRange=2022-08-25%2000%3A00%3A00&t=1661392013192 <https://quake.360.cn/quake/#/searchResult?
searchVal=app%3A%22CobaltStrike%22&selectIndex=quake_service&ignore_cache=false&timeRange=2021-08-
25%2000%3A00%3A00&timeRange=2022-08-25%2000%3A00%3A00&t=1661392013192>
riskiq
360quake
SleepTime
{
"BeaconType": ["HTTP"],
"Port": 81,
"SleepTime": 450000,
"MaxGetSize": 1048576,
"Jitter": 37, //
⼼
跳
存
在
37% * 450000
毫
秒
(
166500
毫
秒
)
的
随
机
抖
动
,
⼼
跳
间隔
可
能
在
毫
秒
283000
之
间
450000
(
4.7 - 7.5
分
钟
)
"MaxDNS": "Not Found",
"PublicKey": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCmmpL6y1jDqhxvFx5mTgprRUYNG2IchQmPW05GBhd5Gp0HhuY3JH7lfcecW6
pYLjDCx6WYubVwWY1mHj7+Ae8zbrhWVtlAlMcZOSpZqmqrJ03JS1B7grZsbcsfCptHZF+cTl4THGSfloBm2AsqNVN/93Y/6l8gt8YVauRlDbBzowID
AQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAA==", //Cobalt Strike TeamServer
使
⽤
该
字
段
来
加
密
服
务
器
和
信
标
之
间
的
通
信
。
这
与
使
⽤
浏
览
器
或
数据
传
输
库
(
如
curl
)
访
问
C2
域
时
使
⽤
的
普
通
TLS
证
书
不
同
。
此
字
段
值
得
注
意
,
因
为
TeamServer
对
每
个
信
标
使
⽤
相
同
的
公
钥
,
因
此此
字
段
在
将
信
标
与
Teamserver
服
务
器
聚
类
时
很
有
价
值
,
因
为
威
胁
参
与
者
经
常
使
⽤
同
⼀个
TeamServer
进
⾏
多
个
活
动
,
因
此
配
置
中
的
这
些
数据
可
以
⽤
于
将
威
胁
组织
关
联
到
多
个
活
动
和
基
础
设
施
。
"PublicKey_MD5": "fe1a19bb796adc7029eac04bc5d07139",
"C2Server": "8.142.124.166,/j.ad",
"UserAgent": "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)",
"HttpPostUri": "/submit.php",
"Malleable_C2_Instructions": [],
"HttpGet_Metadata": {
"ConstHeaders": [],
"ConstParams": [],
"Metadata": ["base64", "header \"Cookie\""],
"SessionId": [],
"Output": []
},
"HttpPost_Metadata": {
"ConstHeaders": ["Content-Type: application/octet-stream"],
"ConstParams": [],
"Metadata": [],
"SessionId": ["parameter \"id\""],
"Output": ["print"]
},
"SpawnTo": "AAAAAAAAAAAAAAAAAAAAAA==",
"PipeName": "Not Found",
"DNS_Idle": "Not Found",
"DNS_Sleep": "Not Found",
"SSH_Host": "Not Found",
"SSH_Port": "Not Found",
"SSH_Username": "Not Found",
"SSH_Password_Plaintext": "Not Found",
"SSH_Password_Pubkey": "Not Found",
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
JSON
复
制
代
码
"SleepTime": 450000,
"Jitter": 37,
⼼
跳
存
在
37% * 450000
毫
秒
(
166500
毫
秒
)
的
随
机
抖
动
,
⼼
跳
间隔
可
能
在
毫
秒
283000
之
间
450000
(
4.7 - 7.5
分
钟
)
"ProcInject_Stub": "BOChG+WRR6jXPSs+n+qDLA==",
stub
字
段
:
Cobalt Strike Jar
包
的
⽂
件
MD5
值
,
经
Base64
编
码
。
最
后
,
我
们
可
以
通过
访
问
https://verify.cobaltstrike.com/ <https://verify.cobaltstrike.com/>
,
并
搜
索
哈
希
来
使
⽤
CobaltStrike
验
证
SHA256
哈
希
以
识
别
Jar
包
的
版
本
。
ProcInject_Stub
Watermark(license_id)
⽔
印
,
9
位
值
的
唯
⼀
许
可
证
,
虽
然
可
以修
改
此
值
,
但
它
仍
然
可
以
与
process-inject.stub
和
publickey
字
段
(上
⾯
讨论
过
)
结
合
使
⽤
,
以
集
群
基
础
设
施
和
活
动
组织
。
CobaltStrikeParser
解
析
名
为
Watermark
libcsce
解
析
名
为
license_id
,
0
代
表
破
解
版
●
●
获
取
stage
#!/usr/bin/python3
import requests
import rstr
import sys
import urllib3
if len(sys.argv) < 2:
print("Usage: %s http[s]://<server_address>" % (sys.argv[0]))
sys.exit(1)
url = sys.argv[1]
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
headers = {"User-Agent":""}
def generate_checksum8_uri(arch):
# x86 = 92
# x64 = 93
value = 0
while value != arch:
rand = rstr.xeger(r'[A-Za-z0-9]{4}')
value = (sum([ord(ch) for ch in rand]) % 0x100)
return "/" + str(rand)
def get_shellcode(url,uri):
f_url = url + uri
try:
resp = requests.get(f_url, timeout=5, headers=headers, verify=False)
except requests.exceptions.RequestException as e:
print('[!] Connection error %s' % (e))
sys.exit(1)
if(resp.status_code==200):
print('[+] Got response from %s' % (url))
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
get_x86_stage
Python
复
制
代
码
以
如
下
指
令
开
始
:
FC->cld
指
令
,
将
标
志
寄存
器
Flag
的
⽅
向
标
志
位
DF
清
零
。
E8->call
指
令
stageless
⽅
式
上
线
的
shellcode
或
者
beacon
⽂
件
,
能
够
利
⽤
CobaltStrikeParser
提
取
配
置
(
Staged
和
Stageless
的
区
别
.
前
者
的
实
际
功
能
只
是
和
C2
建
⽴
连
接
并
接收
Payload,
然
后
加
载
执
⾏
,
⽽
Stageless
直
接
省
去
了
接收
Payload
的
步
骤
. Stageless
⽣
成
除
了
的
Payload
都
会
⽐
Staged
类
型
的
要
⼤
很
多
,
⽽
且
包
含
了
特
征
明
细
)
。
https://github.com/Sentinel-One/CobaltStrikeParser <https://github.com/Sentinel-One/CobaltStrikeParser>
shellcode
特
征
beacon
配
置
提
取
PS E:\cs_beacon_conf> python .\get_x86_stage.py http://8.142.124.166:81
[+] Generating x86 check8 uri
[+] Making request to suspected C2 server
[+] Got response from http://8.142.124.166:81
[+] Response written to /out, response might be shellcode
1
2
3
4
5
Bash
复
制
代
码
%
E
%
E
%
A
%
E
%
B
%
B
%
%
E
%
F
%
%
E
%
F
%
%
E
%
%
D
%
E
%
BD
%
AE
%
%
C
%
C
o
bal
t
%
其
他
⼯
具
:
https://github.com/strozfriedberg/cobaltstrike-config-extractor <https://github.com/strozfriedberg/cobaltstrike-config-extractor>
https://www.anquanke.com/post/id/224535 <https://www.anquanke.com/post/id/224535>
https://www.blackberry.com/us/en/forms/enterprise/ebook-beacons-in-the-dark <https://www.blackberry.com/us/en/forms/enterprise/ebook-
beacons-in-the-dark>
引
⽤
链
接
PS E:\tools\CobaltStrikeParser-master\CobaltStrikeParser-master\samples> python ..\parse_beacon_config.py --json
.\8.142.124.166.shellcode
{"BeaconType": ["HTTP"], "Port": 81, "SleepTime": 60000, "MaxGetSize": 1048576, "Jitter": 0, "MaxDNS": "Not Found"
, "PublicKey": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCmmpL6y1jDqhxvFx5mTgprRUYNG2IchQmPW05GBhd5Gp0HhuY3JH7lfcecW6p
YLjDCx6WYubVwWY1mHj7+Ae8zbrhWVtlAlMcZOSpZqmqrJ03JS1B7grZsbcsfCptHZF+cTl4THGSfloBm2AsqNVN/93Y/6l8gt8YVauRlDbBzowIDAQ
ABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAA==", "PublicKey_MD5": "fe1a19bb796adc7029eac04bc5d07139", "C2Server": "8.142.124.166,/j.ad", "UserAgen
t": "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)", "HttpPostUri": "/submit.php", "Malleable_C2_Instructions"
: [], "HttpGet_Metadata": {"ConstHeaders": [], "ConstParams": [], "Metadata": ["base64", "header \"Cookie\""], "Ses
sionId": [], "Output": []}, "HttpPost_Metadata": {"ConstHeaders": ["Content-Type: application/octet-stream"], "Cons
tParams": [], "Metadata": [], "SessionId": ["parameter \"id\""], "Output": ["print"]}, "SpawnTo": "AAAAAAAAAAAAAAAA
AAAAAA==", "PipeName": "Not Found", "DNS_Idle": "Not Found", "DNS_Sleep": "Not Found", "SSH_Host": "Not Found", "SS
H_Port": "Not Found", "SSH_Username": "Not Found", "SSH_Password_Plaintext": "Not Found", "SSH_Password_Pubkey": "N
ot Found", "SSH_Banner": "", "HttpGet_Verb": "GET", "HttpPost_Verb": "POST", "HttpPostChunk": 0, "Spawnto_x86": "%w
indir%\\syswow64\\rundll32.exe", "Spawnto_x64": "%windir%\\sysnative\\rundll32.exe", "CryptoScheme": 0, "Proxy_Conf
ig": "Not Found", "Proxy_User": "Not Found", "Proxy_Password": "Not Found", "Proxy_Behavior": "Use IE settings", "W
atermark": 100000, "bStageCleanup": "False", "bCFGCaution": "False", "KillDate": 0, "bProcInject_StartRWX": "True"
, "bProcInject_UseRWX": "True", "bProcInject_MinAllocSize": 0, "ProcInject_PrependAppend_x86": "Empty", "ProcInject
_PrependAppend_x64": "Empty", "ProcInject_Execute": ["CreateThread", "SetThreadContext", "CreateRemoteThread", "Rtl
CreateUserThread"], "ProcInject_AllocationMethod": "VirtualAllocEx", "ProcInject_Stub": "BOChG+WRR6jXPSs+n+qDLA=="
, "bUsesCookies": "True", "HostHeader": "", "smbFrameHeader": "AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAA=", "tcpFrameHeader": "AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", "headersToRemove": "Not Foun
d", "DNS_Beaconing": "Not Found", "DNS_get_TypeA": "Not Found", "DNS_get_TypeAAAA": "Not Found", "DNS_get_TypeTXT"
: "Not Found", "DNS_put_metadata": "Not Found", "DNS_put_output": "Not Found", "DNS_resolver": "Not Found", "DNS_st
rategy": "round-robin", "DNS_strategy_rotate_seconds": -1, "DNS_strategy_fail_x": -1, "DNS_strategy_fail_seconds":
-1}
PS E:\tools\CobaltStrikeParser-master\CobaltStrikeParser-master\samples> python ..\parse_beacon_config.py --json
.\8.142.124.166.shellcode > .\8.142.124.166.shellcode.conf
1
2
3
Bash
复
制
代
码
点击关注,共同学习!
安全狗的自我修养