Surf:一款针对现代云环境的SSRF漏洞检测和利用工具

2023-11-20 16:17:20 浏览数 (1)

关于Surf

Surf允许我们输入一个目标主机列表,工具会自动过滤主机列表,并返回可能存在SSRF漏洞的主机信息(列表)。该工具可以使用本地主机向输入列表中的每一台目标主机发送一个HTTP请求,并收集所有未响应的主机信息,然后将它们分别转储到面向外部和面向内部的主机列表,以此来实现SSRF漏洞识别。

接下来,我们就可以对这些潜在的目标主机执行进一步分析,以确认SSRF漏洞存在的准确位置。由于大多数SSRD过滤器只关注内部网络或受限的IP地址范围,但是当你无法使用本地设备并通过HTTP(S)从外部IP访问并利用SSRF时,那就会打开新世界的大门。一般来说,拥有云环境的大型组织都会为内部网络应用程序提供一个外部IP,传统的SSRF过滤器并不会关注这一点,这也就是Surf的强大之处。

工具要求

Go v1.19 httpx

工具安装

由于该工具基于Go v1.19开发,因此我们首先需要在本地设备上安装并配置好Go v1.19环境。该工具还会使用httpx来进行HTTP探测,因此我们也需要安装好httpx。

接下来,广大研究人员就可以直接使用下列命令将该项目源码克隆至本地了:

代码语言:javascript复制


git clone https://github.com/assetnote/surf.git

或者也可以使用go命令直接安装Surf:

代码语言:javascript复制


go install github.com/assetnote/surf/cmd/surf@latest

工具使用

假设,一个名为bigcorp.txt的文件中已经包含了bigcorp.com的子域名列表,此时你需要扫描子域名列表中可能存在SSRF漏洞的目标域名,那么我们就可以直接通过下列方法来实现扫描:

代码语言:javascript复制
# 搜索所有可能包含SSRF漏洞的目标域名
surf -l bigcorp.txt
# 搜索所有可能包含SSRF漏洞的目标域名,并设置超时时间和并发线程数
surf -l bigcorp.txt -t 10 -c 200
# 搜索所有可能包含SSRF漏洞的目标域名,并打印所有主机信息
surf -l bigcorp.txt -d
# 搜索指向一个内部/私有IP地址的全部主机信息
surf -l bigcorp.txt -x

工具可使用的参数选项信息如下:

代码语言:javascript复制


❯ surf -h

 

███████╗██╗   ██╗██████╗ ███████╗

██╔════╝██║   ██║██╔══██╗██╔════╝

███████╗██║   ██║██████╔╝█████╗  

╚════██║██║   ██║██╔══██╗██╔══╝  

███████║╚██████╔╝██║  ██║██║     

╚══════╝ ╚═════╝ ╚═╝  ╚═╝╚═╝         

                                 

by shubs @ assetnote                                 

 

Usage: surf [--hosts FILE] [--concurrency CONCURRENCY] [--timeout SECONDS] [--retries RETRIES] [--disablehttpx] [--disableanalysis]

 

Options:

  --hosts FILE, -l FILE  目标列表(主机地址或子域名)

  --concurrency CONCURRENCY, -c CONCURRENCY  并发线程数 [默认: 100]

  --timeout SECONDS, -t SECONDS 任务超时时间秒数 [默认: 3]

  --retries RETRIES, -r RETRIES 失败重新尝试次数 [默认: 2]

  --disablehttpx, -x     禁用httpx,仅输出地址解析为内部IP的所有主机信息 [默认: false]

  --disableanalysis, -d  禁用分析功能,仅输出主界列表 [默认: false]

  --help, -h             显示工具帮助信息和退出

工具输出

在运行Surf时,工具会将所有可能存在SSRF漏洞的目标信息打印到STDOUT,同时将结果存储在以下两个文件中:

external-{timestamp}.txt internal-{timestamp}.txt

这两个文件都会包含可能存在SSRF漏洞的目标信息列表,但外部目标列表中目标存在SSRF漏洞的可能性要高得多。

项目地址

Surf:https://github.com/assetnote/surf

0 人点赞