反制团队架构设计
当⼀个事件产生,从蓝队的大流程中过来,经过了监控、分析、研判、应急等流程,作为反制,我们的木的是为了获取红队相关基础设施的权限、以及进⼀步反制溯源到⼈员。反制,作为蓝队整个⼯作中的⼀环,偏向于事件的后续处理流程的⼀个闭环。作为⼀个闭环需要哪些知识栈的⼈员进行组合呢?
渗透人员至少1名: 主要对需要反制的目标进行反渗透;
内网成员1名:需要擅长内网、钓鱼、cs/msf 、免杀等红队技能点;
情报/社工反制人员至少1名: 对拿到的ioc 、id等进行分析及社工反制相关人员;
逆向分析成员:至少需要1名,分析获取到的相关样本,提取关键有用信息,分析红队人员后门;
漏洞分析成员:需要熟悉主流web漏洞、浏览器及2进制漏洞,能够快速制作相关反制的paylaod;
从技术层面的反制思路
作为反制规则,我们的目标肯定是要拿下对方的基础设施、以及定位到具体的⼈员为⽬标。
发现涉事服务器
当从研判组研判分析后,的确为攻击者的服务器,那么就可以对该服务器进行反渗透,进⼀步进行取证分析。 反渗透的具体⼿法就不多说了,熟悉渗透的师傅应该都清楚。
定位分析技巧
当获取到对方服务器的权限后,那么可以从这些姿势里面进一步进行溯源到背后人员的真实身份。 基本上现在的大多数红队人员对自己的基础设施保护不会跳太多层,拿下对方的⼀台常见节点的服务器,就能达到溯源的目的。
windows 跳板服务器溯源
windows security日志/rdp 日志
里面能够拿到security或者rdp日志的ip信息,假如对方跳板是win的话,顺藤摸瓜可以拿到对方真实连跳板的ip
Netstat ⽹络连接
netstat 里的ip连接也可以提取出来,进行定位真实的ip定位
进程
tasklist 里面的进程信息、运行了哪些服务和程序,特别对定位运行的c2 的server端等信息比较有用
chrome 、firefox、ie、360浏览器等浏览器的密码等记录。浏览器记录、以及保存的账号密码也可作为进⼀步进行社工的重要依据(⼤家就点到为止,没必要扒光,都是江湖见的兄弟)
密码管理类的凭据保存记录
比如⼀些密码管理类的工具里面保存的可以尝试进行提取然后进行分析
第三⽅应⽤的相关⽇志
以及⼀些第三方应用等的日志,里面或许也会有记录相关信息,比如python或者某些ftp 等临时开启放⼀些中转的的文件,里面的⼀些web 日志也能够分析到相关红队成员真实ip 的信息,按照心理学来说肯定自己会先访问下看服务和文件是否正常,除了受害者的信息就是红队人员自己的信息了。 那么这里可以提取相关ip 进行分析受害者有哪些、红队成员ip 有哪些。
frp 等代理的日志
比如⼀些代理等日志,里面会记录连接的ip信息
linux 跳板服务器溯源
进程与网络连接
linux 机器里,netstat 、进程与windows 分析方式类似 ,查看运行的进程和网络连接情况。
进程查看:ps auxwwfw
⽹络查看: netstat -anp
日志记录
每个用户下的history 日志: 记录了历史操作的命令
/var/log/lastlog : 最后成功登入的日志记录
/var/log/secure: 安全日志的记录
/var/log/btmp: 登入失败信息的记录
/var/log/wtmp: 所有用户的登入信息记录
第三方应用日志的记录、代理frp等的日志记录
针对红队成员电脑pc的分析及控制
假如反制直接拿到红队成员电脑,那么以下方式可做参考。 当然首要的就是权限维持好,⻓期控着该红队人员才是目的。
qq/wx 的id文件夹的文件
这些常见社交软件,里面保存的文件夹的id 可以进⼀步作为定位⼈员的关键证据,以及相关db 数据库,拿到进行数据库解密,获取相关聊天信息对整个红队成员定位然后进行⼀锅端(github有相关解密代码改改就可以用,这里就不放出来了)。
webshell 管理器
红队成员电脑里的webshell 管理器的db 库,这个可以直接拖下来进⾏分析然后分析受害情况
⽂档资料
红队成员每天记录的文档报告以及云端同步的资料,这个很重要,关系到整个后续反制成果的展现。
团队基础信息的深入
根据解密的社交联系软件或者相关协作的工具平台定位分析红队人员,然后在以控制住的这个红队成员的电脑为跳板,对他们的关键设施的工具武器进⾏劫持植入后门或者进⼀步定位及控制到更多红队成员的机器权限为主(方法很多,这里就不展开细说了,用红队的思维来进行反制红队)。
红队常见工具反制
cs 的反制 4.0-4.4
参考: https://adamsvoboda.net/sleeping-with-a-mask-on-cobaltstrike/
https://www.elastic.co/cn/blog/detecting-cobalt-strike-with-memory-signatures
CS 4.2+开始,默认 the obfuscation is using XOR with a 13 byte keys ,除⾮去改beacon 源码或者用钩子绕过(https://www.arashparsa.com/hook-heaps-and-live-free/),否则从4.0-4.4 基本gg,这也被逼着要么自己写c2 ,要么用⼀些冷门的c2框架或者2开cs 避免⼀特征。
拿到红队人员的上线样本文件后以下开源工具可参考使用:
https://github.com/CCob/BeaconEye (可以自己进行改下优化下该寻找内存中cs的beacon信标的工具)
https://github.com/jas502n/CS_mock 或者 https://github.com/hariomenkel/CobaltSpam(根据样本提取到公钥和metadata usl可以反制模拟上线打满列表的工具)
https://github.com/Sentinel-One/CobaltStrikeParser( 解析配置的工具)
其中,下载配置文件的位置主要在这:
32位的特征码:8? 68 74 74 70
64位的特征码:9? 68 74 74 70
然后需要注意的是,假如对方的是随机的cs profile 或者自己改了profile 的话,⽤CS_mock 模拟上线的话,需要手工修改cookie 值。
第⼀步: 找到主机内存里的cs 后门进程和下载配置文件的那个url
2: 第⼆步用parse_beacon_config.py 进⾏解析提取cs的配置文件下载地址的⽂件
这⾥发现对方修改了cookie 里的值,这个值需要修改后面的cs_mock
3: 知道了上线的cs server 和publish key ,还有修改的cookie 值,那么进行反制,修改下cs_mock.py
4: 任意进行虚假反制上线直接打满cs 列表