🌟想了解其它网安工具?看看这个:[网安工具] 网络安全工具管理 —— 工具仓库 · 管理手册
0x01:WhatWeb 工具简介
WhatWeb 是一款功能强大的开源网络扫描工具,旨在识别网站所使用的技术细节,包括内容管理系统、服务器类型、JavaScript 库、博客平台等。它拥有超过 1800 个插件,支持多种输出格式,可快速或全面地检测网站信息,适用于渗透测试和网站安全审计。
0x02:WhatWeb 使用教程
Kali Linux 中默认已经安装了 WhatWeb,我们无需再次安装,若您想更新,可以使用下面的命令
┌──(root㉿kali)-[~] └─# sudo apt install dirb
本部分笔者将先演示一些 Dirb 的使用示例,如果你对该工具已经有所了解,仅仅是为了查询参数用法,可以跳转到本文的第三部分,即 “速查手册” 部分。
0x0201:快速扫描指定站点,并获取相关信息
如果不携带任何参数,直接运行 whatweb + 目标地址,可以让 whatweb 快速输出扫描结果,就是有点丑,且信息也不全:
whatweb https://cn.wordpress.org/
0x0202:扫描目标站点,并获取详细的插件描述
通过 -v
参数,我们能让 whatweb 输出关于目标的更详细的信息,这个比较常用:
whatweb -v https://cn.wordpress.org/
笔者上面目前就两个例子,像比于 WhatWeb 那么多的参数确实显得单调了。不过笔者观点很简单,虽然工具功能那么多,但实战就用那么几个。且对于信息收集,你应该先明确自己要收集啥,然后再来看工具。收集了不会用,等于没收集,至于如何去利用,可以多打打靶场,多实战。
0x03:WhatWeb 速查手册
0x0301:WhatWeb 常见用法 — 速查表
### 快速扫描指定站点,并输出简易的扫描结果
whatweb https://cn.wordpress.org/
### 扫描指定站点,并获取详细的插件描述
whatweb -v https://cn.wordpress.org/
### 对指定站点发起攻击性扫描,检测目标详细版本信息
whatweb -v -a 3 https://cn.wordpress.org/
0x0302:WhatWeb 参数说明 — 中文版
名称:
WhatWeb - 新一代网络扫描工具
该工具由 Andrew Horton(urbanadventurer)和 Brendan Coles(bcoles) 开发
主页: https://www.morningstarsecurity.com/research/whatweb
用法:
whatweb [options] <URLs>
目标选择:
<TARGETs> 输入 URLs、主机名、IP 地址、文件名或 IP 范围,格式为 CIDR、x.x.x-x 或 x.x.x.x-x.x.x.x
--input-file=FILE, -i
从文件中读取目标,可以通过 -i /dev/stdin 直接管道传输主机名或 URLs
目标修改:
--url-prefix 为目标 URL 添加前缀
--url-suffix 为目标 URL 添加后缀
--url-pattern 将目标插入到 URL 中,例如: example.com/%insert%/robots.txt
攻击性级别: 该分类下的参数用于控制速度/隐蔽性和可靠性之间的平衡。
--aggression, -a=LEVEL
设置攻击性级别。默认值为 1。
1. 隐蔽模式: 每个目标发送一个 HTTP 请求,并且跟随重定向。
2. 攻击模式: 如果匹配到 1 级插件,则会发出额外的请求。
3. 强力模式: 每个目标发送大量 HTTP 请求。尝试所有插件中的 URL。
HTTP 选项:
--user-agent, -U=AGENT
自定义 HTTP User-Agent 标签,而不再是 "WhatWeb/0.5.5"
--header, -H
添加 HTTP 头。例如: "Foo:Bar"。指定默认头将会替换它。指定空值,例如 "User-Agent:" 将移除该请求头
--follow-redirect=WHEN
控制何时跟随重定向。WHEN 可以是 'never', 'http-only', 'meta-only', 'same-site' 或 'always'。默认是值 always。
--max-redirects=NUM
最大重定向次数。默认值: 10。
认证:
--user, -u=<user:password>
HTTP 基本认证
--cookie,-c=COOKIES
使用 cookie,例如: "name=value;name2=value2"
--cookie-jar=FILE
从文件中读取 cookie
代理:
--proxy <hostname[:port]>
设置代理主机名和端口。默认值是 8080。
--proxy-user <username:password>
设置代理用户名和密码。
插件:
--list-plugins, -l
列出所有插件。
--info-plugins, -l=[SEARCH]
列出所有插件的详细信息,可以在逗号分隔的列表中使用关键字进行搜索。
--search-plugins=STRING
搜索功能,用于搜索插件中的关键字
--plugins, -p=LIST
选择插件。LIST 是逗号分隔的插件列表。默认为全部。每个元素可以是目录、文件或插件名称,还可以通过 + / - 符号,选择添加或移除插件。
例如: +/tmp/moo.rb,+/tmp/foo.rb
title,md5,+./plugins-disabled/
./plugins-disabled,-md5
--grep, -g=STRING|REGEXP
搜索参考 STRGIN 或正则表达式。仅显示匹配的结果。
例如: --grep "hello"
--grep "/he[l]*o/"
--custom-plugin=DEFINITION
定义一个名为 Custom-Plugin 的自定义插件
例如: ":text=>'powered by abc'"
":version=>/powered[ ]?by ab[0-9]/"
":ghdb=>'intitle:abc \"powered by abc\"'"
":md5=>'8666257030b94d3bdb46e05945f60b42'"
"{:text=>'powered by abc'}"
--dorks=PLUGIN
列出所选插件的 Google Dorks。
输出:
--verbose, -v
详细输出包括插件描述。两次使用该参数可以进入调试模式。
--colour, --color=WHEN
控制是否使用颜色。WHEN 可以是 'never', 'always' 或 'auto'。
--quiet, -q
不在 STDOUT 上显示简要日志。
--no-errors
抑制错误消息。
日志记录
--log-brief=FILE 记录简要的一行输出
--log-verbose=FILE 记录详细输出
--log-errors=FILE 记录错误
--log-xml=FILE 使用 XML 格式记录日志
--log-json=FILE 使用 JSON 格式记录日志
--log-sql=FILE 记录 SQL 插入语句
--log-sql-create=FILE 创建 SQL 数据库表
--log-json-verbose=FILE 记录详细的 JSON 格式
--log-magictree=FILE 记录 MagicTree XML 格式
--log-object=FILE 记录 Ruby 对象检查格式
--log-mongo-database MongoDB 数据库名称
--log-mongo-collection MongoDB 集合名称。默认值: whatweb
--log-mongo-host MongoDB 主机名或 IP 地址。默认值: 0.0.0.0
--log-mongo-username MongoDB 用户名。默认值: nil
--log-mongo-password MongoDB 密码,默认值: nil
--log-elastic-index 存储结果的索引名称。默认值: whatweb
--log-elastic-host Elasticsearch HTTP 接口的主机端口。默认值: 127.0.0.1:9200
性能与稳定性:
--max-threads, -t
同时运行的现成数。默认值: 25
--open-timeout
超时时间(秒)。默认值: 15
--read-timeout
读取超时时间(秒)。默认值: 30
--wait=SECONDS
在连接期间等待 SECONDS 秒(这在使用单线程时非常有用)
帮助及其它:
--short-help 简短的帮助信息
--help, -h 完整的帮助信息
--debug 在插件中引发错误
--version 显示版本信息
示例用法:
* 扫描 example.com
./whatweb example.com
* 扫描 reddit.com 和 slahdot.org,并显示详细的插件描述
./whatweb -v reddit.com slahdot.org
* 对 wired.com 进行攻击性扫描,检测 WordPress 的准确版本
./whatweb -a 3 www.wired.com
* 快速扫描本地网络并抑制错误
whatweb --no-errors 192.168.0.0/24
* 扫描本地网络中的 https 网站
whatweb --no-errors --url-prefix https://192.168.0.0/24
* 扫描 Alexa 排名前 1000 的网站中的跨域策略
./whatweb -i plugin-development/alexa-top-100.txt --url-suffix /crossdomain.xml -p crossdomain_xml
0x04:WhatWeb 参考资料
Web 扫描神器:WhatWeb 保姆级教程(附链接)-CSDN博客文章浏览阅读7.5k次,点赞50次,收藏28次。分析网站架构(一):WhatWeb 工具https://blog.csdn.net/2302_82189125/article/details/135976188
[工具使用]WhatWeb-CSDN博客文章浏览阅读1.4w次,点赞9次,收藏43次。网站指纹识别工具WhatWebWhatWeb简介用法因为想要面对一个新的开始,一个人必须有梦想、有希望、有对未来的憧憬。如果没有这些,就不叫新的开始,而叫逃亡。————玛丽亚·杜埃尼亚斯WhatWeb简介web指纹扫描主要用于对应用名称(版本)、服务器软件(版本)、编程语言(版本)、应用框架(版本)四大特征的识别,以实现对目标应用的准确标识。现有产品比如知道创宇的:ZoomEye网站指纹信息包括:应用名、版本、前端框架、后端框架、服务端语言、服务器操作系https://blog.csdn.net/m0_46363249/article/details/120013263
whatweb | Kali Linux ToolsWhatWeb Usage Exampleroot@kali:~# whatweb -v -a 3 192.168.0.102WhatWeb report for http://192.168.0.102Status : 200 OKTitle : Toolz TestBedIP : 192.168.0.102Country : RESERVED, ZZSummary : JQuery, Script, X-UA-Compatible[IE=edge], HTML5, Apache[2.2,2.2.22], HTTPServer[Ubuntu Linux][Apache/2.2.22 (Ubuntu)]Detected Plugins:[ Apache ] The Apache HTTP Server Project is an effort to develop and maintain an open-source HTTP server for modern operating systems including UNIX and Windows NT. The goal of this project is to provide a secure, efficient and extensible server that provides HTTP services in sync with the current HTTP standards. Version : 2.2.22 (from HTTP Server Header) Version : 2.2 Version : 2.2 Google Dorks: (3) Website : http://httpd.apache.org/[ HTML5 ] HTML version 5, detected by the doctype declaration[ HTTPServer ] HTTP server header string. This plugin also attempts to identify the operating system from the server header. OS : Ubuntu Linux String : Apache/2.2.22 (Ubuntu) (from server string)[ JQuery ] A fast, concise, JavaScript that simplifies how to traverse HTML documents, handle events, perform animations, and add AJAX. Website : http://jquery.com/[ Script ] This plugin detects instances of script HTML elements and returns the script language/type.[ X-UA-Compatible ] This plugin retrieves the X-UA-Compatible value from the HTTP header and meta http-equiv tag. - More Info: http://msdn.microsoft.com/en-us/library/cc817574.aspx String : IE=edgeHTTP Headers: HTTP/1.1 200 OK Server: Apache/2.2.22 (Ubuntu) Last-Modified: Fri, 02 Feb 2018 15:27:56 GMT ETag: "11f-2e38-5643c5b56a8d3" Accept-Ranges: bytes Vary: Accept-Encoding Content-Encoding: gzip Content-Length: 3541 Connection: close Content-Type: text/htmlroot@kali:~#https://www.kali.org/tools/whatweb/