พัฒนาโดย Andrew Horton urbanadventurer และ Brendan Coles bcoles
รุ่นล่าสุด: v0.5.5 16 มกราคม 2021
ใบอนุญาต: GPLv2
ผลิตภัณฑ์นี้อยู่ภายใต้ข้อกำหนดรายละเอียดในข้อตกลงใบอนุญาต สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ WhatWeb โปรดไปที่:
หน้าแรก: https://morningstarsecurity.com/research/whatweb
วิกิ: https://github.com/urbanadventurer/WhatWeb/wiki/
หากคุณมีคำถาม ความคิดเห็น หรือข้อกังวลใดๆ เกี่ยวกับ WhatWeb โปรดอ่านเอกสารประกอบก่อนที่จะติดต่อนักพัฒนารายใดรายหนึ่ง ความคิดเห็นของคุณยินดีต้อนรับเสมอ
WhatWeb ระบุเว็บไซต์ เป้าหมายคือการตอบคำถาม "เว็บไซต์นั้นคืออะไร" WhatWeb จดจำเทคโนโลยีเว็บ รวมถึงระบบการจัดการเนื้อหา (CMS), แพลตฟอร์มบล็อก, แพ็คเกจสถิติ/การวิเคราะห์, ไลบรารี JavaScript, เว็บเซิร์ฟเวอร์ และอุปกรณ์ฝังตัว WhatWeb มีปลั๊กอินมากกว่า 1,800 รายการ ซึ่งแต่ละปลั๊กอินสามารถจดจำบางสิ่งที่แตกต่างกันได้ WhatWeb ยังระบุหมายเลขเวอร์ชัน ที่อยู่อีเมล รหัสบัญชี โมดูลกรอบงานเว็บ ข้อผิดพลาด SQL และอื่นๆ
WhatWeb อาจเป็นความลับและรวดเร็ว หรือทั่วถึงแต่ช้า WhatWeb รองรับระดับความก้าวร้าวเพื่อควบคุมการแลกเปลี่ยนระหว่างความเร็วและความน่าเชื่อถือ เมื่อคุณเยี่ยมชมเว็บไซต์ในเบราว์เซอร์ของคุณ การทำธุรกรรมจะรวมถึงคำแนะนำมากมายว่าเทคโนโลยีเว็บใดที่ขับเคลื่อนเว็บไซต์นั้น บางครั้งการเข้าชมหน้าเว็บครั้งเดียวอาจมีข้อมูลเพียงพอที่จะระบุเว็บไซต์ได้ แต่เมื่อไม่เป็นเช่นนั้น WhatWeb ก็สามารถซักถามเว็บไซต์เพิ่มเติมได้ ระดับความก้าวร้าวเริ่มต้นซึ่งเรียกว่า 'ซ่อนตัว' เป็นระดับที่เร็วที่สุดและต้องการเพียงคำขอ HTTP เดียวจากเว็บไซต์ เหมาะสำหรับการสแกนเว็บไซต์สาธารณะ โหมดก้าวร้าวเพิ่มเติมได้รับการพัฒนาเพื่อใช้ในการทดสอบการเจาะ
ปลั๊กอิน WhatWeb ส่วนใหญ่มีความละเอียดรอบคอบและจดจำสัญญาณต่างๆ ได้ตั้งแต่แบบละเอียดไปจนถึงแบบชัดเจน ตัวอย่างเช่น เว็บไซต์ WordPress ส่วนใหญ่สามารถระบุได้ด้วยแท็ก meta HTML เช่น '' แต่เว็บไซต์ WordPress ส่วนน้อยจะลบแท็กระบุนี้ออก แต่ไม่ได้ขัดขวาง WhatWeb ปลั๊กอิน WordPress WhatWeb มีการทดสอบมากกว่า 15 ครั้ง ซึ่งรวมถึงการตรวจสอบ favicon ไฟล์การติดตั้งเริ่มต้น หน้าเข้าสู่ระบบ และการตรวจสอบ "/wp-content/" ภายในลิงก์ที่เกี่ยวข้อง
ใช้ WhatWeb เพื่อสแกน Reddit.com
$ ./whatweb reddit.com
http://reddit.com [301 Moved Permanently] Country[UNITED STATES][US], HTTPServer[snooserv], IP[151.101.65.140], RedirectLocation[https://www.reddit.com/], UncommonHeaders[retry-after,x-served-by,x-cache-hits,x-timer], Via-Proxy[1.1 varnish]
https://www.reddit.com/ [200 OK] Cookies[edgebucket,eu_cookie_v2,loid,rabt,rseor3,session_tracker,token], Country[UNITED STATES][US], Email[[email protected],[email protected]], Frame, HTML5, HTTPServer[snooserv], HttpOnly[token], IP[151.101.37.140], Open-Graph-Protocol[website], Script[text/javascript], Strict-Transport-Security[max-age=15552000; includeSubDomains; preload], Title[reddit: the front page of the internet], UncommonHeaders[fastly-restarts,x-served-by,x-cache-hits,x-timer], Via-Proxy[1.1 varnish], X-Frame-Options[SAMEORIGIN]
.$$$ $. .$$$ $.
$$$$ $$. .$$$ $$$ .$$$$$$. .$$$$$$$$$$. $$$$ $$. .$$$$$$$. .$$$$$$.
$ $$ $$$ $ $$ $$$ $ $$$$$$. $$$$$ $$$$$$ $ $$ $$$ $ $$ $$ $ $$$$$$.
$ `$ $$$ $ `$ $$$ $ `$ $$$ $$' $ `$ `$$ $ `$ $$$ $ `$ $ `$ $$$'
$. $ $$$ $. $$$$$$ $. $$$$$$ `$ $. $ :' $. $ $$$ $. $$$$ $. $$$$$.
$::$ . $$$ $::$ $$$ $::$ $$$ $::$ $::$ . $$$ $::$ $::$ $$$$
$;;$ $$$ $$$ $;;$ $$$ $;;$ $$$ $;;$ $;;$ $$$ $$$ $;;$ $;;$ $$$$
$$$$$$ $$$$$ $$$$ $$$ $$$$ $$$ $$$$ $$$$$$ $$$$$ $$$$$$$$$ $$$$$$$$$'
WhatWeb - Next generation web scanner version 0.5.5.
Developed by Andrew Horton (urbanadventurer) and Brendan Coles (bcoles)
Homepage: https://morningstarsecurity.com/research/whatweb
Usage: whatweb [options] <URLs>
TARGET SELECTION:
<TARGETs> Enter URLs, hostnames, IP addresses, filenames or
IP ranges in CIDR, x.x.x-x, or x.x.x.x-x.x.x.x
format.
--input-file=FILE, -i Read targets from a file. You can pipe
hostnames or URLs directly with -i /dev/stdin.
TARGET MODIFICATION:
--url-prefix Add a prefix to target URLs.
--url-suffix Add a suffix to target URLs.
--url-pattern Insert the targets into a URL. Requires --input-file,
eg. www.example.com/%insert%/robots.txt
AGGRESSION:
The aggression level controls the trade-off between speed/stealth and
reliability.
--aggression, -a=LEVEL Set the aggression level. Default: 1.
Aggression levels are:
1. Stealthy Makes one HTTP request per target. Also follows redirects.
3. Aggressive If a level 1 plugin is matched, additional requests will be
made.
4. Heavy Makes a lot of HTTP requests per target. Aggressive tests from
all plugins are used for all URLs.
HTTP OPTIONS:
--user-agent, -U=AGENT Identify as AGENT instead of WhatWeb/0.5.5.
--header, -H Add an HTTP header. eg "Foo:Bar". Specifying a default
header will replace it. Specifying an empty value, eg.
"User-Agent:" will remove the header.
--follow-redirect=WHEN Control when to follow redirects. WHEN may be `never',
`http-only', `meta-only', `same-site', or `always'.
Default: always.
--max-redirects=NUM Maximum number of contiguous redirects. Default: 10.
AUTHENTICATION:
--user, -u=<user:password> HTTP basic authentication.
--cookie, -c=COOKIES Provide cookies, e.g. 'name=value; name2=value2'.
--cookiejar=FILE Read cookies from a file.
PROXY:
--proxy <hostname[:port]> Set proxy hostname and port.
Default: 8080.
--proxy-user <username:password> Set proxy user and password.
PLUGINS:
--list-plugins, -l List all plugins.
--info-plugins, -I=[SEARCH] List all plugins with detailed information.
Optionally search with keywords in a comma
delimited list.
--search-plugins=STRING Search plugins for a keyword.
--plugins, -p=LIST Select plugins. LIST is a comma delimited set of
selected plugins. Default is all.
Each element can be a directory, file or plugin name and
can optionally have a modifier, eg. + or -
Examples: +/tmp/moo.rb,+/tmp/foo.rb
title,md5,+./plugins-disabled/
./plugins-disabled,-md5
-p + is a shortcut for -p +plugins-disabled.
--grep, -g=STRING|REGEXP Search for STRING or a Regular Expression. Shows
only the results that match.
Examples: --grep "hello"
--grep "/he[l]*o/"
--custom-plugin=DEFINITIONtDefine a custom plugin named Custom-Plugin,
--custom-plugin=DEFINITION Define a custom plugin named Custom-Plugin,
Examples: ":text=>'powered by abc'"
":version=>/powered[ ]?by ab[0-9]/"
":ghdb=>'intitle:abc "powered by abc"'"
":md5=>'8666257030b94d3bdb46e05945f60b42'"
--dorks=PLUGIN List Google dorks for the selected plugin.
OUTPUT:
--verbose, -v Verbose output includes plugin descriptions. Use twice
for debugging.
--colour,--color=WHEN control whether colour is used. WHEN may be `never',
`always', or `auto'.
--quiet, -q Do not display brief logging to STDOUT.
--no-errors Suppress error messages.
LOGGING:
--log-brief=FILE Log brief, one-line output.
--log-verbose=FILE Log verbose output.
--log-errors=FILE Log errors.
--log-xml=FILE Log XML format.
--log-json=FILE Log JSON format.
--log-sql=FILE Log SQL INSERT statements.
--log-sql-create=FILE Create SQL database tables.
--log-json-verbose=FILE Log JSON Verbose format.
--log-magictree=FILE Log MagicTree XML format.
--log-object=FILE Log Ruby object inspection format.
--log-mongo-database Name of the MongoDB database.
--log-mongo-collection Name of the MongoDB collection. Default: whatweb.
--log-mongo-host MongoDB hostname or IP address. Default: 0.0.0.0.
--log-mongo-username MongoDB username. Default: nil.
--log-mongo-password MongoDB password. Default: nil.
--log-elastic-index Name of the index to store results. Default: whatweb
--log-elastic-host Host:port of the elastic http interface. Default: 127.0.0.1:9200
PERFORMANCE & STABILITY:
--max-threads, -t Number of simultaneous threads. Default: 25.
--open-timeout Time in seconds. Default: 15.
--read-timeout Time in seconds. Default: 30.
--wait=SECONDS Wait SECONDS between connections.
This is useful when using a single thread.
HELP & MISCELLANEOUS:
--short-help Short usage help.
--help, -h Complete usage help.
--debug Raise errors in plugins.
--version Display version information. (WhatWeb 0.5.5).
EXAMPLE USAGE:
* Scan example.com.
./whatweb example.com
* Scan reddit.com slashdot.org with verbose plugin descriptions.
./whatweb -v reddit.com slashdot.org
* An aggressive scan of wired.com detects the exact version of WordPress.
./whatweb -a 3 www.wired.com
* Scan the local network quickly and suppress errors.
whatweb --no-errors 192.168.0.0/24
* Scan the local network for https websites.
whatweb --no-errors --url-prefix https:// 192.168.0.0/24
* Scan for crossdomain policies in the Alexa Top 1000.
./whatweb -i plugin-development/alexa-top-100.txt
--url-suffix /crossdomain.xml -p crossdomain_xml
รองรับการบันทึกประเภทต่อไปนี้:
คุณสามารถส่งออกไปยังบันทึกหลายรายการพร้อมกันได้โดยการระบุตัวเลือกการบันทึกบรรทัดคำสั่งหลายรายการ ผู้ใช้ขั้นสูงที่ต้องการเอาต์พุต SQL ควรอ่านซอร์สโค้ดเพื่อดูคุณสมบัติที่ไม่รองรับ
การแข่งขันทำด้วย:
หากต้องการแสดงรายการปลั๊กอินที่รองรับ:
$ ./whatweb -l
Plugin Name - Description
--------------------------------------------------------------------------------
1024-CMS - 1024 is one of a few CMS's leading the way with the implementation...
360-Web-Manager - 360-Web-Manager
3COM-NBX - 3COM NBX phone system. The NBX NetSet utility is a web interface i...
3dcart - 3dcart - The 3dcart Shopping Cart Software is a complete ecommerce s...
4D - 4D web application deployment server
4images - 4images is a powerful web-based image gallery management system. Fe...
... (truncated)
หากต้องการดูรายละเอียดเพิ่มเติมเกี่ยวกับปลั๊กอินหรือค้นหาปลั๊กอินสำหรับคำหลัก:
$ ./whatweb -I phpBB
WhatWeb Detailed Plugin List
Searching for phpBB
================================================================================
Plugin: phpBB
--------------------------------------------------------------------------------
Description: phpBB is a free forum
Website: http://phpbb.org/
Author: Andrew Horton
Version: 0.3
Features: [Yes] Pattern Matching (7)
[Yes] Version detection from pattern matching
[Yes] Function for passive matches
[Yes] Function for aggressive matches
[Yes] Google Dorks (1)
Google Dorks:
[1] "Powered by phpBB"
================================================================================
ปลั๊กอินทั้งหมดจะถูกโหลดตามค่าเริ่มต้น
ปลั๊กอินสามารถเลือกได้ตามไดเร็กทอรี ไฟล์ หรือชื่อปลั๊กอิน โดยเป็นรายการที่คั่นด้วยเครื่องหมายจุลภาคด้วยตัวเลือกบรรทัดคำสั่ง -p หรือ --plugin
แต่ละรายการอาจมีตัวแก้ไข: + เพิ่มไปยังชุดเต็ม - ลบออกจากชุดเต็มและไม่มีตัวแก้ไขใดแทนที่ค่าเริ่มต้น
ตัวเลือกบรรทัดคำสั่ง --dorks จะส่งคืน google dorks สำหรับปลั๊กอินที่เลือก ตัวอย่างเช่น --dorks wordpress ส่งคืน "ขับเคลื่อนโดย WordPress อย่างภาคภูมิใจ"
ตัวเลือกบรรทัดคำสั่ง --grep, -g ค้นหาหน้าเป้าหมายสำหรับสตริงที่เลือก และส่งคืนการจับคู่ในปลั๊กอินชื่อ Grep หากพบ
WhatWeb มีคุณสมบัติก้าวร้าวหลายระดับ ตามค่าเริ่มต้น ระดับความก้าวร้าวจะถูกตั้งค่าเป็น 1 (ซ่อนตัว) ซึ่งจะส่งคำขอ HTTP GET เดียวและติดตามการเปลี่ยนเส้นทางด้วย
--aggression, -a
1. Stealthy Makes one HTTP request per target. Also follows redirects.
2. Unused
3. Aggressive Can make a handful of HTTP requests per target. This triggers
aggressive plugins for targets only when those plugins are
identified with a level 1 request first.
4. Heavy Makes a lot of HTTP requests per target. Aggressive tests from
all plugins are used for all URLs.
ปลั๊กอินเชิงรุกระดับ 3 จะคาดเดา URL มากขึ้นและดำเนินการที่อาจไม่เหมาะสมโดยไม่ได้รับอนุญาต ปัจจุบัน WhatWeb ไม่รองรับการทดสอบระดับการบุกรุก/การหาประโยชน์ในปลั๊กอิน
การสแกนแบบซ่อนเร้นระดับ 1 ระบุว่า smartor.is-root.com/forum/ ใช้ phpBB เวอร์ชัน 2:
$ ./whatweb smartor.is-root.com/forum/
http://smartor.is-root.com/forum/ [200] PasswordField[password], HTTPServer[Apache/2.2.15], PoweredBy[phpBB], Apache[2.2.15], IP[88.198.177.36], phpBB[2], PHP[5.2.13], X-Powered-By[PHP/5.2.13], Cookies[phpbb2mysql_data,phpbb2mysql_sid], Title[Smartors Mods Forums - Reloaded], Country[GERMANY][DE]
การสแกนเชิงรุกระดับ 3 จะกระตุ้นให้เกิดการทดสอบเพิ่มเติมในปลั๊กอิน phpBB ซึ่งระบุว่าเว็บไซต์ใช้ phpBB เวอร์ชัน 2.0.20 หรือสูงกว่า:
$ ./whatweb -p plugins/phpbb.rb -a 3 smartor.is-root.com/forum/
http://smartor.is-root.com/forum/ [200] phpBB[2,>2.0.20]
สังเกตการใช้อาร์กิวเมนต์ -p เพื่อเลือกเฉพาะปลั๊กอิน phpBB ขอแนะนำ แต่ไม่บังคับ ในการเลือกปลั๊กอินเฉพาะเมื่อพยายามสแกนลายนิ้วมือเวอร์ชันซอฟต์แวร์ในโหมดก้าวร้าว วิธีนี้เป็นวิธีที่ซ่อนเร้นมากกว่ามากเนื่องจากจะจำกัดจำนวนคำขอ
WhatWeb ไม่มีแคช ดังนั้นหากคุณใช้ปลั๊กอินเชิงรุกในการเปลี่ยนเส้นทาง URL คุณอาจดึงไฟล์เดียวกันได้หลายครั้ง
WhatWeb มีตัวเลือกมากมายเพื่อเพิ่มประสิทธิภาพและความเสถียร
คำสั่ง --wait และ --max-threads สามารถใช้เพื่อช่วยในการหลีกเลี่ยง IDS
การเปลี่ยน user-agent โดยใช้ตัวเลือกบรรทัดคำสั่ง -U หรือ --user-agent จะหลีกเลี่ยงกฎ Snort IDS สำหรับ WhatWeb
หากคุณกำลังสแกนช่วงที่อยู่ IP การใช้เครื่องสแกนพอร์ตเช่น Massscan เพื่อค้นหาว่ามีพอร์ต 80 เปิดอยู่ก่อนที่จะสแกนด้วย WhatWeb จะมีประสิทธิภาพมากกว่ามาก
การตรวจจับชุดอักขระด้วยปลั๊กอิน Charset จะลดประสิทธิภาพลงอย่างมากโดยต้องใช้ CPU มากขึ้น สิ่งนี้จำเป็นสำหรับการบันทึก JSON และ MongoDB
หากต้องการเปิดใช้งานการบันทึก MongoDB ให้ติดตั้ง mongo gem gem ติดตั้ง mongo
หากต้องการเปิดใช้งานการตรวจจับชุดอักขระและการบันทึก MongoDB ให้ติดตั้ง rchardet gem gem ติดตั้ง rchardet cp Plugins-disabled/charset.rb my-plugins/
ปลั๊กอินเขียนได้ง่าย เริ่มต้นด้วยการดูบทช่วยสอนปลั๊กอินในโฟลเดอร์ my-plugins/
ภาพรวมของบทช่วยสอนปลั๊กอินอยู่ที่นี่ ปลั๊กอิน-tutorials.txt
หลังจากผ่านบทช่วยสอนแล้ว ให้อ่านส่วนการพัฒนาของวิกิ
โครงสร้างการพัฒนา WhatWeb มีการอัปเดตเป็นประจำ
เรียกดูวิกิเพื่อดูเอกสารเพิ่มเติมและเทคนิคการใช้งานขั้นสูง
ขอขอบคุณบุคคลต่อไปนี้ที่มีส่วนร่วมใน WhatWeb
เป็นการยากที่จะติดตามผู้คนทุกคนที่มีส่วนร่วมใน WhatWeb หากชื่อของคุณหายไปโปรดแจ้งให้เราทราบ