声明
该公众号分享的安全工具和项目均来源于网络,仅供学术交流,请勿直接用于任何商业场合和非法用途。如用于其它用途,由使用者承担全部法律及连带责任,与工具作者和本公众号无关。
介绍
pulse 是一个用 Rust 编写的强大的网络扫描和模糊测试工具。它允许您在响应上执行并发 Web 请求、目录模糊测试和自定义正则表达式匹配。
永恒之锋出品,Rust编写,卓越的速度,顶级的高效自定义探测,让你在信息探测中脱颖而出,快人一步。
有人会问,为什么搞这个,这东西能出洞?这可能是小白经常关注的一个问题,但我想告诉你,这款工具能挖洞,但是,需要你有一定的漏洞基础和正则水平。虽然我只是把这个工具定位于渗透测试中信息收集环节,但是,它能做的事情不仅如此。当然,httpx也能做,只不过,我说过,化繁为简,我们只要最基本的,加一个正则,再配上最高性能的rust,足够了。
这东西有一点好在哪,一次编写,无需维护,哈哈,为啥?
因为它只是给你发射的武器,至于POC啥的,弹药你自己补充。就如同一把枪和子弹的关系,枪可以端在手里,但是子弹需要你自己一直更新。我相信你能看中这是一把好枪。
一个好的设计,就是这个功能已经不能再少了,而且正好够用。
https://github.com/Eonian-Sharp/pulse
参数
•
version
:显示程序版本信息。•
input
:输入 IP 或 URL,可以包含 FUZZ 标记用于模糊测试。(管他什么,一个参数搞定,主打的就是懒人模式,-i 指定目标,学会这个,恭喜你,学会了90%)- 文件模式: 指定文件即可
- 单目标模式:IP、域名、Url都可以
- Fuzz模式:在IP、域名、Url的任意位置加上FUZZ关键字(需配合-w指定字典)
•
threads
:并发请求的数量,默认为 50。•
output
:输出 CSV 文件的名称,默认为 "output.csv"。(Excel打开标题是中文会乱码,用文本文件打开(转一下编码再打开就ok),问题不大。)•
regex
:启用正则表达式匹配(核心功能)。•
wordlist
:用于模糊测试的单词列表文件路径。(FUZZ专用)•
debug
:启用调试模式。•
timeout
:设置请求超时时间,默认为 10 秒。•
custom_matches
:自定义正则表达式用于匹配响应体。•
show_code
:只显示这些状态码的响应。•
ban_code
:不显示这些状态码的响应,默认为 "401,404"。(Ban英雄会吧,那你ban响应码也会了)•
silent
:静默模式:只输出成功的 URL。(直接把ok的留下,直接管道符交给其它玩意,比如扫描漏洞的,扫描指纹的)•
dir
:要扫描的目录,逗号分隔。(/admin,/login 啥的,少量的时候)•
dir_path
:包含要扫描的目录的文件路径。(直接指定web路径字典)•
method
:HTTP 请求方法,默认为 "GET"。•
custom_headers
:自定义 HTTP 头部。•
filter_length
:不显示响应长度等于该值的响应。•
match_length
:只显示响应长度等于该值的响应。•
http_proxy
:代理 URL。•
user_agent
:使用的 User-Agent,默认为 "default",可选 "random" 或 "android"。•
no_ssl
:禁用 SSL 证书验证。
使用场景
1. 基本使用:
pulse --input "<ip,url,fuzz,file>" --threads 100 --output "results.csv"
2. 启用正则表达式匹配:
pulse --input "http://example.com" --regex
3. 使用自定义单词列表进行模糊测试:
pulse --input "http://example.com/FUZZ" --wordlist "./wordlist.txt"
可以FUZZ子域名、根域名、路径、端口、未授权、参数任何你想FUZZ的地方。
4. 设置自定义 HTTP 头部:
pulse --input "http://example.com" --custom_headers "Header-Name: Header-Value"
这对于探测一些漏洞非常有帮助。例如探测ms-15-034
5. 只显示特定状态码的响应:
pulse --input "http://example.com" --show_code 200,404
6. 使用代理:
pulse --input "http://example.com" --http_proxy "http://proxyserver:port"
可以选择代理到burp
7. 自定义 User-Agent:
pulse --input "http://example.com" --user_agent "random"
增加了android选项,可访问一些PC无法访问的页面。
8. 禁用 SSL 证书验证:
pulse --input "https://example.com" --no_ssl
9. 静默模式:
pulse --input "http://example.com" --silent
10. 扫描特定目录:
pulse --input "http://example.com/" --dir "dir1,dir2"
(-d 自定义几个 -D 指定字典;跟我一起念,大D,小d,大D,小d)
11. FUZZ模式也可以扫描目录
pulse --input "http://example.com/FUZZ" --wordlist "./wordlist.txt"
FUZZ扫描子域名
pulse --input "http://FUZZ.example.com/" --wordlist "./wordlist.txt"
FUZZ扫描参数
pulse --input "http://FUZZ.example.com/id=1&FUZZ=3" --wordlist "./wordlist.txt"
FUZZ扫描XSS、SQL注入、命令执行、文件包含...,配合正则无敌
pulse --input "http://FUZZ.example.com/id=FUZZ" --wordlist "./wordlist.txt"
12. 使用自定义正则表达式匹配响应内容:
pulse --input "http://example.com" --custom_matches "pattern1" --custom_matches "pattern2"
这是决定了这个工具没有上限的一个功能,支持正则匹配意味着你可以获取任何你想知道的内容,再配合FUZZ和目录扫描的功能,基本上可以达到很高的可玩性,例如你可以边扫描子域名边扫描目录,还能边探测指定的漏洞,过滤指定的内容。
例如,以下是文件读取的一个漏洞批量验证,非常的精确,你可以清除的看到响应码和长度。你可以工具内容/长度/响应码进行自定义的过滤和排除。如果你是红队玩家,高并发的异步请求带给你的流畅体验,将是一个高度可玩性的一个工具。
13. 设置请求超时:
pulse --input "http://example.com" --timeout 20
永恒之锋网络安全图书馆
工具已经编译好了放在咱们知识大陆的帮会里了,进来看看吧,图书馆又更新了一些书籍,软考笔记让你备考无忧,安全工具,测试利器,等等。
知识大陆两周年庆,活动期间,9.9/月 20/季 69/永久(帮会人数包含100名之前) 先到先得,名额仅剩26名
活动结束后将恢复原价15/月卡、39.9/季卡
另外,为了促进学习rust的安全师傅或者是想学rust的师傅们交流,我决定组建一个rust的群用来对rust感兴趣的人和一起交流学习使用rust为我们带来更多高效的工具。