声明:课程内容为泷羽Sec网络安全B站课程——Shodan (2),知识产权为其所有。本文目的为学习与技术分享,所有内容仅供参考。任何使用或参考本文内容所造成的法律后果与本人无关,特此声明。
学习目标
通过批量查找并验证CVE-2019-0708漏洞,进一步学习shodan的使用,体验漏洞的搜索与捕获的过程
学习内容
内容摘要
介绍了一个普遍性漏洞——CVE-2019-0708。通过shodan收集这个漏洞的靶机,并对这些靶机的漏洞信息批量下载与解析。
一、漏洞指纹
漏洞指纹是通过特定的特征或模式(如错误消息、异常行为、十六进制数据)来识别软件或系统中安全漏洞的技术。这些指纹可用于快速检测和评估潜在的安全风险,帮助安全团队及时采取措施,防止漏洞被恶意利用。
CVE-2019-0708漏洞介绍
CVE-2019-0708(BlueKeep)的十六进制漏洞指纹 '\x03\x00\x00\x0b\x06\xd0\x00\x00\x124\x00' 是一个特定的RDP握手消息的一部分,用于触发漏洞。关于此漏洞的详情请参考技术博客:Windows远程桌面服务远程执行代码漏洞(CVE-2019-0708)
十六进制指纹释义
\x03 \x00 \x00 \x0b \x06 \xd0 \x00 \x00 \x12 4 \x00
\x03:RDP 协议版本号的一部分,表示这是一个RDP连接请求。
\x00 \x00 \x0b:表示后续数据的长度,这里长度为11字节。
\x06 \xd0:这是RDP连接的类型标识符,表示这是一个特定类型的RDP连接请求,是触发漏洞的关键部分
\x00 \x00:预留字段,通常为0。
\x12:表示某种标志或选项,具体含义取决于RDP协议的上下文。
4:字符 '4' 的ASCII码为0x34,这里可能是某种特定的值或标志。
\x00:结束标志或填充字节,通常为0
二、漏洞收集与验证
1. 搜索CVE-2019-0708的漏洞指纹收集得到批量的漏洞主机
shodan search --limit 10 --fields ip_str,port '"\x03\x00\x00\x0b\x06\xd0\x00\x00\x124\x00"' country:jp
2. 选择一个中靶IP,展示靶机的漏洞细节
3. 弱口令尝试漏洞
用远程桌面连接此靶机,验证漏洞是否存在。然后尝试用弱口令:administrator,Administrator,admin,Admin etc 进行验证
三、漏洞批量验证
1. 用收集到的资产生成一个.txt文件(即cve-0708.txt)
shodan search --limit 10 --fields ip_str, port '"\x03\x00\x00\x0b\x06\xd0\x00\x00\x124\x00"' country:jp > cve-0708.txt
2. 打开kali自带的msfconsole工具进行检测
3. 在msfconsole搜索0708漏洞
search 0708
4. 选择一个具体漏洞
这里选择的为:exploit/windows/rdp/cve_2019_0708_bluekeep_rce
5. 查看这个具体漏洞的详细信息
6. 利用收集到的资产(批量IP文本)批量扫描
7. 验证,筛选出可以进行漏洞利用的IP
*:不能利用 +:可以利用
四、资产批量下载并解析
shodan download
1. 功能:下载shodan search的结果,将它存储为一个压缩的JSON文件
2. 用shodan download利用CVE-2019-0708的十六进制漏洞指纹搜索并下载对应的资产
download后面cve-0708_cn即为下载后的文件名
shdoan parse
1. 功能:从下载得到的JSON文件中解析出有用的漏洞信息
2. 从下载的JSON文件中解析出IP信息
此时下载好的文件信息就都可以看得见了
3. 解析JSON文件的IP地址,并将其重定向到文本文件
注:json.gz其实就是一个压缩文件,也可以用windows的解压工具解压
总结与思考
1. 为何不直接用漏洞名称去搜索,而是要用漏洞指纹?
理论上可以用shodan search vuln:CVE-2019-0708 命令去搜,但是这需要shodan的高级账号权限,所以本文采用此漏洞的一个十六进制指纹:'"\x03\x00\x00\x0b\x06\xd0\x00\x00\x124\x00"' 。目的就是绕过vuln高级权限
2. 批量攻击后找不到可以利用这个漏洞的靶机
- show options看清payload,ip端口要填对
- show targets支持windows7,server等,注意设置正确的targets