Tải bản đầy đủ (.docx) (39 trang)

Công cụ Whatweb trong Kali Linux

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.2 MB, 39 trang )

HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG
KHOA CƠNG NGHỆ THƠNG TIN

HỌC PHẦN: AN TỒN MẠNG NÂNG CAO

BÀI TIỂU LUẬN :
GIỚI THIỆU, HƯỚNG DẪN SỬ DỤNG TOOL WHATWEB
TRONG KALI LINUX
Giảng viên hướng dẫn: TS. Đặng Minh Tuấn
Nhóm mơn học:

Nhóm 03

Sinh viên thực hiện:

Phan Tuấn Anh

Mã sinh viên:

B17DCAT013
Hà Nội


Mục lục

2


Lời mở đầu
Lĩnh vực CNTT hiện nay là một lĩnh vực nóng với những tiến bộ vượt bậc của
cơng nghệ điện toán đám mây, bigdata, AI… và sự bùng nổ của việc ứng dụng


internet vào mọi thứ giúp chúng ta có khả năng truy cập vào kho tài nguyên phong
phú mọi lúc mọi nơi, giải trí, giảm thời gian và tăng năng suất công việc. Đi kèm
với sự phát triển của internet thì bảo mật cũng là một vấn đề chiếm được sự quan
tâm của rất nhiều người. Các cuộc tấn công nhắm vào Web Applications diễn ra
ngày càng nhiều.
Dưới sự giảng dạy và hướng dẫn của thầy Đặng Minh Tuấn – giảng viên bộ
mơn An tồn mạng nâng cao, em thực hiện giới thiệu và hướng dẫn sử dụng tool
Whatweb nhằm xác định các trang web, và trả lời cho câu hỏi : “Trang Web đó là gì
?”. Trong q trình làm bài cịn có những hạn chế, mong nhận được những góp ý
của thầy!

3


Danh mục hình ảnh

4


Danh mục viết tắt
STT

Tên viết tắt

Tên đầy đủ

1

CMS


Content Management System

2

CSS

4

HTML

5

HTTP

6

JSON

7

SQL

8

TOR

9

URL


10

XML

10

XSS

Ý nghĩa

Một hệ thống giúp quản
trị nội dung website
Cascading Style Sheets
Ngôn ngữ được dùng để
định dạng các phần tử do
ngôn ngữ đánh dấu
Hypertext Markup Language Ngôn ngữ đánh dấu siêu
văn bản
Hypertext Transfer Protocol Giao thức truyền tải siêu
văn bản
JavaScript Object Notation
Kiểu dữ liệu mở trong
JavaScript
Structured Query Language Ngôn ngữ truy vấn mang
tính cấu trúc
The Onion Router
Thực hiện giao thức phân
tuyến kiểu củ hành
( onion routing ) thế hệ
thứ hai

Uniform Resource Locator
Tham chiếu tới tài
nguyên trên mạng
Internet
Extensible Markup Language Ngôn ngữ đánh dấu mở
rộng
Cross-site Scripting
Kỹ thuật tấn cơng code
injection ngay trên phía
client

5


Phần 1 : Giới thiệu chung về Web Applications
1. Khái niệm :
Web app là một loại chương trình có khả năng làm máy tính thực hiện trực tiếp
cơng việc nào đó mà người dùng mong muốn. Các trang web này có sự tương tác,
cho phép người dùng nhận, nhập, thao tác dữ liệu. Với các chương trình này, chúng
thường có sự kết nối chặt chẽ, có lệnh gửi tới máy chủ một cách liên tục với số
lượng nhiều.
Điển hình cho các loại web applications bạn có thể đã biết như các phần mềm,
các trang mạng xã hội, các trang thương mại điện tử, website bán hàng, website
quản lý siêu thị, phần mềm quản lý nhà trọ Mona House (với cả bản web app và
app điện thoại)… Tại đó, bạn có thể tìm kiếm tương tác, chia sẻ thơng tin, đăng tin,
thực hiện các thao tác đặc thù mà từng web app cung cấp.

2. Cách các ứng dụng Web hoạt động:
Các ứng dụng web khơng cần tải xuống vì chúng được truy cập qua
mạng. Người dùng có thể truy cập ứng dụng Web thơng qua trình duyệt web như

Google Chrome, Mozilla Firefox hoặc Safari.
Để một ứng dụng web hoạt động, nó cần có máy chủ Web, máy chủ ứng dụng
và cơ sở dữ liệu. Máy chủ web quản lý các yêu cầu đến từ máy khách, trong khi
máy chủ ứng dụng hoàn thành tác vụ được yêu cầu. Một cơ sở dữ liệu có thể được
sử dụng để lưu trữ bất kỳ thông tin cần thiết nào.
Các ứng dụng web thường có chu kỳ phát triển ngắn và có thể được thực hiện
với các nhóm phát triển nhỏ. Hầu hết các ứng dụng Web được viết
bằng JavaScript , HTML5 hoặc Trang tính kiểu xếp tầng (CSS). Lập trình clientside thường sử dụng những ngơn ngữ, trong đó giúp xây dựng một ứng dụng front6


end . Lập trình phía máy chủ được thực hiện để tạo các tập lệnh mà một ứng dụng
Web sẽ sử dụng. Các ngôn ngữ như Python , Java và Ruby thường được sử dụng
trong lập trình phía máy chủ.
• Những lợi ích
Các ứng dụng web có nhiều cách sử dụng khác nhau, và với những cách sử
dụng đó, mang lại nhiều lợi ích tiềm năng. Một số lợi ích chung của ứng dụng Web
bao gồm:
Cho phép nhiều người dùng truy cập vào cùng một phiên bản của một ứng



dụng.


Ứng dụng web khơng cần phải được cài đặt.



Các ứng dụng web có thể được truy cập thơng qua nhiều nền tảng khác nhau
như máy tính để bàn, máy tính xách tay hoặc thiết bị di động.

Có thể được truy cập thơng qua nhiều trình duyệt.



3.
















Danh sách các tool Kali - Web Applications
Apache-users
Arachni
BBQSQL
BlindElephant
Burp Suite
CutyCapt
DAVTest
eblaze

DIRB
DirBuster
fimap
FunkLoad
Gobuster
Grabber
hURL
7
































jboss-autopwn
joomscan
jSQL Injection
Maltego Teeth
Nikto
PadBuster
Paros
Parsero
plecost
Powerfuzzer
ProxyStrike
Recon-ng
Skipfish
sqlmap
Sqlninja
sqlsus
ua-tester
Uniscan
w3af
WebScarab
Webshag

WebSlayer
WebSploit
Wfuzz
WhatWeb
WPScan
XSSer
Zaproxy

8


Phần 2: Tool Whatweb
Whatweb - Công cụ phát hiện lỗ hổng bảo mật với ứng dụng web của bạn

Next generation web scanner. Identify the technology stack that powers a
website and explore the Web of Things.
Tải xuống />Giấy phép GPLv2
Tác giả Andrew Horton (urbanadventurer) và Brendan Coles (bcoles)
Wiki The WhatWeb Wiki
Kali Linux />Thử it Live />Nguồn />
1. Giới thiệu :
WhatWeb xác định các trang web. Mục tiêu của nó là trả lời câu hỏi, “Trang
web đó là gì?”. WhatWeb cơng nhận các công nghệ web bao gồm hệ thống quản lý
nội dung (CMS), nền tảng blog, gói thống kê / phân tích, thư viện JavaScript, máy
9


chủ web và thiết bị nhúng. WhatWeb có hơn 1700 plugin, mỗi plugin để nhận ra
một cái gì đó khác nhau. WhatWeb cũng xác định số phiên bản, địa chỉ email, ID
tài khoản, mô-đun khuôn khổ web, lỗi SQL, v.v.

WhatWeb có thể lén lút và nhanh chóng, hoặc triệt để nhưng chậm. WhatWeb
hỗ trợ mức độ gây hấn để kiểm soát sự đánh đổi giữa tốc độ và độ tin cậy. Khi bạn
truy cập một trang web trong trình duyệt của mình, giao dịch bao gồm nhiều gợi ý
về những công nghệ web nào đang cung cấp năng lượng cho trang web đó. Đơi khi
một lượt truy cập trang web chứa đủ thông tin để xác định một trang web nhưng
khi khơng, WhatWeb có thể thẩm vấn trang web đó thêm. Mức độ xâm nhập mặc
định, được gọi là 'lén lút', là mức nhanh nhất và chỉ yêu cầu một yêu cầu HTTP của
một trang web. Điều này phù hợp để quét các trang web công cộng. Các chế độ tích
cực hơn đã được phát triển để sử dụng trong các thử nghiệm thâm nhập.
Hầu hết các plugin WhatWeb đều kỹ lưỡng và nhận ra một loạt các dấu hiệu từ
tinh tế đến hiển nhiên. Ví dụ: hầu hết các trang web WordPress có thể được xác
định bằng thẻ meta HTML, ví dụ: ”, nhưng một số ít các trang web WordPress loại
bỏ thẻ nhận dạng này nhưng điều này khơng cản trở WhatWeb. Plugin WhatWeb
của WordPress có hơn 15 bài kiểm tra, bao gồm kiểm tra biểu tượng yêu thích, tệp
cài đặt mặc định, trang đăng nhập và kiểm tra “/ wp-content /” trong các liên kết
tương đối.

10


Hình 1: Giao diện sau khi mở tool whatweb

2. Đặc trưng
• Hơn 1700 plugin
• Kiểm sốt sự đánh đổi giữa tốc độ / tàng hình và độ tin cậy
• Các plugin bao gồm các URL mẫu
• Điều chỉnh hiệu suất. Kiểm soát bao nhiêu trang web để quét đồng thời.

11



• Nhiều định dạng nhật ký: Tóm tắt (có thể tải được), Chi tiết (con người có
thể đọc được), XML, JSON, MagicTree, RubyObject, MongoDB, SQL và
ElasticSearch.
• Hỗ trợ proxy bao gồm TOR
• Tiêu đề HTTP tùy chỉnh
• Xác thực HTTP cơ bản
• Kiểm sốt chuyển hướng trang web
• Dải IP kiểu Nmap
• So khớp mờ
• Nhận thức về kết quả chắc chắn
• Các plugin tùy chỉnh được xác định trên dịng lệnh
Whatweb có thể xác định tất cả các loại thơng tin về một trang web trực tiếp,
như:


Nền tảng



Nền tảng CMS



Loại tập lệnh



Google Analytics




Nền tảng máy chủ web



Địa chỉ IP, Quốc gia



Tiêu đề máy chủ, Cookie và hơn thế nữa.

Whatweb cung cấp cả quét thụ động và kiểm tra tích cực. Quét thụ động chỉ
trích xuất dữ liệu từ các tiêu đề HTTP mơ phỏng một lượt truy cập bình
thường. Các tùy chọn linh hoạt trở nên sâu sắc hơn với đệ quy và nhiều loại truy
vấn khác nhau và xác định tất cả các công nghệ giống như một máy quét lỗ hổng
bảo mật.
12


Vì vậy, một pentester có thể sử dụng cơng cụ này như một cơng cụ dị tìm và
qt lỗ hổng bảo mật. Có nhiều tính năng khác như hỗ trợ proxy, dò quét, quét một
loạt các IP, thêu, v.v.
3. Một số tùy chọn
Cú pháp: whatweb [options] <URLs>
Tùy chọn không được dùng nữa. Chỉ các tùy chọn chính hoặc được liệt kê. Truy
cập trang chủ cơng cụ để có các tùy chọn hồn chỉnh.




LỰA CHỌN MỤC TIÊU :

<URLs> Nhập URL, tên tệp hoặc dải IP định dạng nmap.
--input-file = FILE, -i Xác định các URL được tìm thấy trong FILE, ví dụ. -i /
dev / stdin



SỬA ĐỔI MỤC TIÊU :

--url-prefix Thêm tiền tố vào URL mục tiêu
hậu tố --url Thêm hậu tố vào các URL đích
--url-pattern Chèn các mục tiêu vào một URL. u cầu --input-file,



VỊ TRÍ :

Mức độ gây hấn kiểm soát sự cân bằng giữa tốc độ / tàng hình và độ tin cậy.
--aggression, -a = LEVEL Đặt mức gây hấn. Mặc định: 1
Mức độ quyết liệt là: 1,2,3 & 4.



TÙY CHỌN HTTP :

--user-agent, -U = AGENT Xác định là ĐẠI LÝ thay vì WhatWeb / 0.4.8-dev.
--follow-redirect = WHEN Kiểm soát thời điểm thực hiện theo các chuyển
hướng. mặc định: luôn luôn
13



--max-redirects = NUM Số lượng chuyển hướng liền kề tối đa. Mặc định: 10.



XÁC NHẬN :

--user, -u = <user: password> Xác thực cơ bản HTTP
Thêm cookie phiên với --header, ví dụ --header "Cookie: SESSID = 1a2b3c;"



PROXY :

--proxy <hostname [: port]> Đặt tên máy chủ proxy và cổng Mặc định: 8080
--proxy-user <username: password> Đặt mật khẩu và người dùng proxy.



PLUGINS :

--list-plugins, -l Liệt kê tất cả các plugin.



ĐẦU RA :

--verbose, -v Đầu ra chi tiết bao gồm các mô tả plugin. Sử dụng hai lần để gỡ
lỗi.

--colour, - color = KHI kiểm sốt xem màu có được sử dụng hay khơng. WHEN
= 'luôn luôn', 'không bao giờ' hoặc 'tự động'
--quiet, -q Không hiển thị ghi nhật ký ngắn gọn vào STDOUT
- khơng có lỗi Loại bỏ thơng báo lỗi.



ĐĂNG NHẬP :

--log -rief = FILE Tóm tắt nhật ký, đầu ra một dòng
--log-verbose = FILE Đầu ra dài dòng của nhật ký
--log-xml = FILE Định dạng XML nhật ký.



HIỆU SUẤT & ỔN ĐỊNH :
14


--max-thread, -t Số luồng đồng thời. Mặc định: 25.
--open-timeout Thời gian tính bằng giây. Mặc định: 15
--read-timeout Thời gian tính bằng giây. Mặc định: 30
--wait = SECONDS Chờ SECONDS giữa các kết nối.



TRỢ GIÚP & THƠNG CẢM :

--help, -h Cái này giúp
--debug Tăng lỗi trong plugin

--version Hiển thị thông tin phiên bản. (WhatWeb 0.4.8-dev)

15


Hình 2: Các tùy chọn của tool

16


Hình 3 : Các tùy chọn của tool

17


Hình 4 : Giới thiệu các tùy chọn của tool

18


4. Bổ sung
Các cuộc tấn công được thực hiện với :
o

Text strings (case sensitive) ( chuỗi văn bản / có phân biệt chữ hoa chữ
thường)

o

Regular expressions ( Biểu thức chính quy)


o

Google Hack Database queries (limited set of keywords) ( Truy vấn CSDL
Google Hack / bộ từ khóa giới hạn)

o

MD5 hashes ( Hàm băm MD5)

o

URL recognition (Nhận dạng URL)

o

HTML tag patterns (Các mẫu thẻ HTML )

o

Custom ruby code for passive and aggressive operations ( Mã ruby tùy chỉnh
cho các hoạt động thụ động và tích cực )
Để liệt kê các plugin được hỗ trợ : lệnh whatweb -l

Hình 5 : Một số plugin được hỗ trợ

19


Để xem chi tiết về một plugin hoặc các plugin tìm kiếm cho một từ khóa :

VD : plugin phpBB
Lệnh : whatweb –IphpBB

Hình 6 : Chi tiết về plugin phpBB

20


Tất cả các plugin được tải theo mặc định. Plugin có thể được chọn theo thư
mục, tệp hoặc tên plugin dưới dạng danh sách được phân tách bằng dấu phẩy với
tùy chọn dòng lệnh -p hoặc –plugin.
Mỗi mục danh sách có thể có một cơng cụ sửa đổi: + thêm vào tập hợp đầy
đủ, - xóa khỏi tập hợp đầy đủ và khơng có cơng cụ sửa đổi nào ghi đè các giá trị
mặc định.
Ví dụ:
o

–Plugins + plugin bị vơ hiệu hóa, -foobar

o

–Plugins + / tmp / moo.rb

o

–Plugins foobar (chỉ chọn foobar)

o

-p title, md5, +. / plugins-disable /


o

-p ./plugins-disabled,-md5
Tùy chọn dòng lệnh –dorks <tên plugin> trả về google dorks cho plugin đã
chọn. Ví dụ, –dorks wordpress trả về “được cung cấp một cách tự hào bởi
WordPress”.
Tùy chọn dòng lệnh –grep, -g tìm kiếm trang mục tiêu cho chuỗi đã chọn và trả
về kết quả khớp trong một plugin có tên Grep nếu nó được tìm thấy.

5. Sự tấn cơng
WhatWeb có một số cấp độ gây hấn. Theo mặc định, mức xâm nhập được đặt
thành 1 (lén lút) sẽ gửi một yêu cầu HTTP GET duy nhất và cũng theo sau các
chuyển hướng. –Aggression, -a
1. Stealthy: Tạo một yêu cầu HTTP cho mỗi mục tiêu. Cũng theo sau chuyển
hướng.
2. Không được sử dụng
21


3. Aggressive: Có thể thực hiện một số yêu cầu HTTP cho mỗi mục tiêu. Điều
này chỉ kích hoạt các plugin tích cực cho các mục tiêu khi các plugin đó được xác
định bằng yêu cầu cấp 1 trước tiên.
4. Heavy: Tạo ra nhiều yêu cầu HTTP cho mỗi mục tiêu. Kiểm tra tích cực từ tất
cả các plugin được sử dụng cho tất cả các URL. Các plugin tích cực cấp 3 sẽ đoán
nhiều URL hơn và thực hiện các hành động có khả năng khơng phù hợp mà không
được phép. WhatWeb hiện không hỗ trợ bất kỳ bài kiểm tra mức độ xâm nhập /
khai thác nào trong các plugin.
Ví dụ về các kết quả khác nhau giữa cấp độ 1 và cấp độ 3:
Ở cấp độ 1, quét lén lút nhận dạng smartor.is-root.com/forum/ sử dụng phpBB

phiên bản 2:

Hình 7 : Quét nhận dạng sử dụng phpBB phiên bản 2

Cấp độ 3, quét tích cực kích hoạt các thử nghiệm bổ sung trong plugin
phpBB xác định rằng trang web sử dụng phiên bản phpBB 2.0.20 trở lên:

Hình 8 : Quét nhận dạng sử dụng phpBB phiên bản 2.0.20 trở lên

Lưu ý việc sử dụng đối số -p để chỉ chọn plugin phpBB. Bạn nên chọn một
plugin cụ thể nhưng không bắt buộc khi cố gắng tạo dấu vân tay các phiên bản
phần mềm ở chế độ tích cực. Cách tiếp cận này bí mật hơn nhiều vì nó sẽ giới hạn
22


số lượng u cầu. WhatWeb khơng có bộ nhớ đệm, vì vậy nếu bạn sử dụng các
plugin tích cực để chuyển hướng URL, bạn có thể tìm nạp các tệp giống nhau nhiều
lần.

23


6. Hiệu suất và sự ổn định
WhatWeb có một số tùy chọn để tăng hiệu suất và độ ổn định.
--max-thread, -t Số luồng đồng thời. Mặc định: 25.
--open-timeout Thời gian tính bằng giây. Mặc định: 15
- thời gian chờ đọc tính bằng giây. Mặc định: 30
--wait = SECONDS Chờ SECONDS giữa các kết nối
Điều này hữu ích khi sử dụng một chuỗi đơn.


Các lệnh –wait và –max-thread có thể được sử dụng để hỗ trợ việc né IDS.
Thay đổi tác nhân người dùng bằng cách sử dụng tùy chọn dòng lệnh -U hoặc –
user-agent sẽ tránh quy tắc Snort IDS cho WhatWeb.
Nếu bạn đang quét các dải địa chỉ IP, sẽ hiệu quả hơn nhiều nếu sử dụng trình quét
cổng như nmap để phát hiện xem có cổng 80 đang mở trước khi quét bằng
WhatWeb.
Phát hiện bộ ký tự, với plugin Charset làm giảm đáng kể hiệu suất do yêu cầu nhiều
CPU hơn. Điều này được yêu cầu bởi ghi nhật ký JSON và MongoDB.

• Sự phụ thuộc tùy chọn
24


Để sử dụng JSON chúng ta cần cài đặt :
gem install json
Để sử dụng MongoDB chúng ta cần cài đặt :
gem install mongo
Để kích hoạt tính năng phát hiện bộ ký tự và ghi nhật ký MongoDB, hãy cài đặt
gem rchardet.
gem install rchardet
cp plugins-disable/charset.rb my-plugins/

• Lịch sử phát hành và nhà phát triển
• Phiên bản 0.3 được phát hành tại Kiwicon III (kiwicon.org), ngày 2 tháng













11 năm 2009
Phiên bản 0.4 phát hành ngày 14 tháng 3 năm 2010
Phiên bản 0.4.1 được phát hành ngày 28 tháng 4 năm 2010
Phiên bản 0.4.2 được phát hành vào ngày 30 tháng 4 năm 2010 Phiên bản
0.4.3 Phát hành ngày 24 tháng 5 năm 2010
Phiên bản 0.4.4 được phát hành ngày 29 tháng 6 năm 2010
Phiên bản 0.4.5 phát hành ngày 17 tháng 8 năm 2010
Phiên bản 0.4.6 được phát hành ngày 25 tháng 3 năm 2011
Phiên bản 0.4.7 được phát hành ngày 5 tháng 4 năm 2011
Phiên bản 0.4.8-dev (Phát hành liên tục từ 2012 đến 2017)
Phiên bản 0.4.9 được phát hành ngày 23 tháng 11 năm 2017
Phiên bản 0.5.0 phát hành ngày 4 tháng 10 năm 2019

25


×