Ở Việt Nam, chúng ta thường hay để mật khẩu liên quan đến họ tên, ngày sinh, nghề nghiệp, … Vì vây, không chỉ chúng ta mà kẻtấn công cũng có thể tạo ra một danh sách hay một thư viện các
Trang 1BỘ THÔNG TIN VÀ TRUYỀN THÔNG HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
~~~~~~*~~~~~~
Học phần: An toàn mạng
BÀI BÁO CÁO:
CÔNG CỤ WORDLISTER TRONG KALI LINUX VÀ ỨNG DỤNG TRONG
Trang 3LỜI MỞ ĐẦU
Thế kỷ XXI bắt đầu đã mở ra kỷ nguyên mới về công nghệ số,đánh dấu bước phát triển vượt bậc của Internet và các dịch vụ số.Nhờ vào khả năng tiếp cận dễ dàng mọi lúc, mọi nơi và sự thân thiệnkhi sử dụng, chúng dần trở thành một phần không thể thiếu trongcuộc sống hiện đại ngày nay Theo báo cáo của Hootsuite, đạt tới con
số 4.66 tỷ người, trong đó có đến trên 90% lượng người dùng mạng
xã hội (tính đến tháng 01/2021) [1]
Mặc dù vậy, đặc tính không-giới-hạn của không gian ảo trênInternet cũng đặt ra vấn đề nan giải cho mỗi người dùng, dù là tổchức hay cá nhân trong việc xác thực danh tính cũng như bảo mậtthông tin Thông thường, người dùng chọn cách “khóa” tài khoản củamình lại, và đặt ra một mật khẩu - chìa khóa - nhằm ngăn chặn sựxâm nhập của người khác Phần lớn các vụ đánh cắp thông tin liênquan đến quyền truy cập tài khoản Ngay cả thông tin xác thực củangười dùng bình thường rơi vào tay kẻ xấu cũng có thể biến thành vũkhí tàn phá toàn bộ hệ thống Mật khẩu có thể khó nhớ, đặc biệt nếubạn tuân theo các quy tắc để tạo một mật khẩu mạnh Khi nhập mậtkhẩu cũng khá tốn thời gian, đặc biệt là trên các thiết bị di động vớibàn phím nhỏ Khi cố gắng để sử dụng các mật khẩu khác nhau chomỗi tài khoản cũng gây bất tiện và mất thời gian Tuy nhiên, nếuhacker sở hữu mật khẩu của bạn, thời gian bạn mất sẽ nhiều hơn sovới việc nhập mật mật khẩu mạnh
Ở Việt Nam, chúng ta thường hay để mật khẩu liên quan đến
họ tên, ngày sinh, nghề nghiệp, … Vì vây, không chỉ chúng ta mà kẻtấn công cũng có thể tạo ra một danh sách hay một thư viện các mậtkhẩu để tấn công vét cạn (brute-force) vào các ứng dụng dịch vụnhư: Wifi, Facebook, Zalo, … Những danh sách các mật khẩu nàythường được tích hợp vào trong các công cụ để tin tặc có thể dễdàng sử dụng và truy xuất, Wordlister là một công cụ như thế.Wordlister là một phần mềm mã nguồn mở trong Kali Linux được sử
Trang 4dụng để tạo các tổ hợp mật khẩu tùy chỉnh phục vụ cho việc tạo racác mật khẩu mạnh và bẻ khoá mật khẩu.
Trong báo cáo này, em sẽ trình bày kết quả tìm hiểu của bảnthân về Wordlister và ứng dụng của nó Bài báo cáo bao gồm cácphần:
1 Giới thiệu về Wordlister và các phương pháp bẻ khoá mậtkhẩu
2 Hướng dẫn cài đặt Wordlister trong Kali
3 Kịch bản demo ứng dụng của Wordlist trong tấn công bẻkhoá mật khẩu
4 So sánh và đánh giá
5 Kết luận
Do thời gian và tài liệu có hạn, bài báo cáo chắc chắn khôngthể tránh khỏi những thiếu sót, em rất mong sẽ nhận được ý kiếnđóng góp từ thầy để bài viết được hoàn thiện hơn
Em xin chân thành cảm ơn thầy!
Trang 5DANH SÁCH THUẬT NGỮ TIẾNG ANH VÀ VIẾT TẮT
Từ viết
tắt Thuật ngữ tiếng Anh Thuật ngữ tiếng Việt/Giải thích
ENC Encoded Mã hoá
MITM Man-in-the-middle Tấn công người đứng giữa
SSID Service Set Identifier Mã nhận dạng các nhóm thiết bị
mạng không dâyuserID User Identification Định danh người dùng
Wi-Fi Wireless Fidelity Hình thức kết nối mạng cục bộ
và internet sử dụng sóng vô tuyến để truyền tín hiệuWPA Wi-Fi Protected
Access Một giao thức an ninh trên mạngkhông dây sử dụng mã hoá RC4Cluster bomb Hình thức tấn công đồng loạt
(tương tự như bom chùm trong chiến tranh)
Phishing Tấn công giả mạoPayload Tải trọng – Phần dữ liệu vận
chuyển của một gói tin giữa 2 đối tượng
Social Engineering Tấn công phi kỹ thuậtSniffing Hình thức tấn công nghe lén các
thông tin được truyền đi trong các lưu lượng mạng
Trang 6DANH MỤC HÌNH ẢNH
Hình 1: Ảnh minh hoạ một wordlist 6Hình 2: Tải xuống Wordlister từ GitHub 8Hình 3: Chạy file wordlister.py bằng python3 8Hình 4: Menu trợ giúp và các đối số của Wordlister 9Hình 5: Tệp chứa danh sách password ban đầu 9Hình 6: Thực hiện hoán vị mật khẩu 10Hình 7: Kết quả sau khi hoán vị và kết hợp danh sách 10Hình 8: Số lượng mật khẩu tăng lên sau khi thay đổi giá trị -perm 11Hình 9: Tạo mật khẩu với tuỳ chọn -leet 11Hình 10: Tạo mật khẩu với tuỳ chọn cap 12Hình 11: Tạo mật khẩu với tuỳ chọn –up 12Hình 12: Tạo mật khẩu với tuỳ chọn append 13Hình 13: Wordlist được chuẩn bị sẵn 14Hình 14: Dừng tiến trình đang sử dụng wlan0 14Hình 15: Khởi động chế độ giám sát wlan0 15Hình 16: Các mạng wifi được quét thấy 15Hình 17: Theo dõi AP mục tiêu 16Hình 18: Gửi các yêu cầu DeAuth để ngắt kết nối dịch vụ 16Hình 19: So sánh mã hash của handshake và wordlist 17Hình 20: Thành công tìm được mật khẩu wifi 17Hình 21: Cửa sổ Burp Intruder 19Hình 22: Tệp chứa danh sách tài khoản cơ sở 19Hình 23: Danh sách tài khoản được tạo bởi Wordlister 20Hình 24: Danh sách mật khẩu tạo bởi Wordlister 20Hình 25:Truy cập login page trong proxy mode 21Hình 26: Request chứa tham số TaiKhoan và MatKhau 21Hình 27: Tuỳ chọn Send to Intruder 21Hình 28: Chỉnh sửa các vị trí đầu vào cho payloads và chọn hình thức
Hình 29: Thêm danh sách tài khoản từ tệp output.txt vào payload list
23Hình 30: Đưa danh sách tài khoản từ tệp output2.txt vào payload list
Hình 31: Giao diện Intruder Attack – quá trình tấn công đang diễn ra
24Hình 32: Response cho biết chưa đúng tài khoản & mật khẩu 24Hình 33: Response có khả năng đã đúng tài khoản & mật khẩu 25Hình 34: Đăng nhập thành công với tài khoản và mật khẩu 25Hình 35: Cú pháp cơ bản để tạo mật khẩu với Crunch 26Hình 36: Giao diện dòng lệnh của CeWL trên Kali Linux 26
DANH MỤC BẢNG BIỂU
Trang 7Bảng 1 So sánh đặc điểm Wordlister và Crunch 27
Trang 8Chương 1 Giới thiệu
1.1 Tổng quan về Wordlister
Wordlister là một trình tạo và quản lý danh sách từ (wordlist)được viết bằng Python Các tính năng chính của Wordlister bao gồmtận dụng đa xử lý của Python để có tốc độ nhanh hơn và một số cáctuỳ chọn hoán vị, bao gồm trường từ vựng, ký tự viết hoa, khả năngnối và thêm từ
Hình 1: Ảnh minh hoạ một worlist
Wordlister được phát triển dưới dạng mã nguồn mở source), được thêm vào cơ sở dữ liệu của Kali vào ngày 3/9/2019,phiên bản mới nhất hiện nay là 48.d63f5ab – được cập nhật ngày6/1/2021 Hiện nay chúng ta còn có thể thấy một phiên bản ứngdụng web của Wordlister, báo cáo này sẽ tập trung vào phiên bảnphổ biến chạy trên Kali Linux
(open-1.2 Tổng quan về bẻ khoá mật khẩu (Password
Attacking/Cracking)
Tấn công password là ta tìm cách để có được password của mộtuserID nào đó
để xâm nhập vào hệ thống của họ
Một cách tổng quan, có 4 dạng tấn công mật khẩu là:
Trang 9• Passive Online: Nghe trộm sự thay đổi mật khẩu trênmạng Cuộc tấn công thụ động trực tuyến bao gồm: sniffing,MITM, và replay attacks (tấn công dựa vào phản hồi)
• Active Online: Đoán trước mật khẩu nguời quản trị Cáccuộc tấn công trực tuyến bao gồm việc đoán password tự động
• Offline: Các kiểu tấn công như Dictionary, hybrid, vàbrute-force
• Non-Electronic: Các cuộc tấn công dựa vào yếu tố conngười như Social engineering, Phishing… [2]
Chúng ta sẽ không đi sâu vào đặc điểm của chúng một cách chitiết mà chỉ tập trung vào điểm chung cơ bản của đa số các dạng tấncông đó là chúng có sử dụng từ điển mật khẩu Vấn đề quan trọngnhất đặt ra - lấy từ điển ở đâu? Các tác vụ khác nhau yêu cầu các từđiển khác nhau:
- Nếu chúng ta bắt buộc đăng nhập vào một dịch vụ từ xa, thìchúng ta không cần những từ điển quá lớn, nhưng với những tênngười dùng và mật khẩu phổ biến nhất Điều này là do thực tế là hầuhết các dịch vụ mạng đều có chế độ bảo vệ tùy chỉnh Để IP không bịchặn bởi một tập lệnh tự động, chúng ta phải chờ một khoảng thờigian dài giữa các lần thử Sẽ mất rất nhiều thời gian, vì vậy sẽ hợp lýkhi chỉ bắt đầu với những bộ từ phổ biến nhất
- Bắt buộc mật khẩu mạng Wi-Fi, chúng ta vẫn cần một từ điểnchất lượng cao với các mật khẩu phổ biến, nhưng từ điển càng lớncàng tốt, đặc biệt nếu bạn có phần cứng trung bình hoặc mạnh
- Bắt buộc cung cấp địa chỉ của khu vực quản trị, tên miền phụ,thư mục, tệp - ta cần một từ điển chuyên ngành với các địa chỉ phổbiến nhất
Ta có thể rút ra một kết luận: bạn không thể có một từ điển tốtnhất cho mọi trường hợp Vì vậy các công cụ tạo ra từ điển mật khẩuhay danh sách từ được xem là sự lựa chọn tối ưu cho mục đích trên
Trang 10Đầu tiên chúng ta cần tải xuống Wordlister từ GitHub, có thể sử dụngcâu lệnh git clone hoặc dùng cách phổ biến hơn áp dụng được cho
mọi bản distro đó là sử dụng tiện ích wget Câu lệnh ở đây sẽ là:
wget
https://raw.githubusercontent.com/4n4nk3/Wordlister/master/wor dlister.py
Hình 2: Tải xuống Wordlister từ GitHub
Sau đó mở worlister.py bằng câu lệnh của python 3:
Hình 3: Chạy file wordlister.py bằng python3
Như ta có thể thấy Wordlister cung cấp một số thông tin về cách dùng bao gồm các đối số được yêu cầu Sử dụng cờ -h để mở menu trợ giúp về các chức năng cũng như thông số chi tiết của Wordlister:
Trang 11Hình 4: Menu trợ giúp và các đối số của Wordlister
2.2 Sử dụng Wordlister để tạo ra danh sách từ (thư viện mật khẩu)
Để sử dụng Wordlister, trước tiên chúng ta cần một tệp đầu vàochứa danh sách các mật khẩu mà chúng ta muốn tạo hoán vị
Tạo một tệp văn bản chứa một vài mât khẩu phổ biến để làm cơ sở thực hiện list password
Hình 5: Tệp chứa danh sách password ban đầu
Trang 12Khi có danh sách password ban đầu, để có thể sử dụng các câu lệnh với Wordlister, ta cần ghi nhớ các đối số bắt buộc của chúng:
- input = tên của tệp văn bản chứa danh sách mật khẩu
- perm = số lượng hoán vị trên cùng một dòng
- min = độ dài tối thiểu của một hoán vị
- max = độ dài tối đa của một hoán vị
Ví dụ ta sẽ thực hiện câu lệnh sau
python3 wordlister.py input pass.txt perm 2 min 6 max 32
Hình 6: Thực hiện hoán vị mật khẩu
Kết quả được Wordlister tự động lưu vào file output.txt :
Hình 7: Kết quả sau khi hoán vị và kết hợp danh sách
Ta có thể tăng giảm số lượng mật khẩu được tạo ra bằng cách thay
đổi giá trị của đối số perm:
Trang 13Hình 8: Số lượng mật khẩu tăng lên sau khi thay đổi giá trị -perm
Chúng ta có thể thấy rằng nó chỉ đơn thuần là kết hợp các mật khẩu đã cho thành tất cả các hoán vị có thể có Wordlister còn hỗ trợmột số tùy chọn bổ sung thêm như leet, cap, up, append, …
Chẳng hạn như tuỳ chọn leet sẽ làm thay đổi các ký tự chữ thành số
tương ứng và ngược lại (leetspeak):
Hình 9: Tạo mật khẩu với tuỳ chọn -leet
cap sẽ viết hoa chữ cái đầu tiên của mật khẩu:
Trang 14Hình 10: Tạo mật khẩu với tuỳ chọn cap
Hay như up sẽ thay đổi một ký tự trước khi hoán vị thành chữ in hoa
Hình 11: Tạo mật khẩu với tuỳ chọn –up
Trang 15append sẽ thêm bất kì chuỗi nào mà ta muốn vào sau các hoán vị:
Hình 12: Tạo mật khẩu với tuỳ chọn append
Trang 16Chương 3 Demo
3.1 Tấn công vét cạn (brute-force) mật khẩu wifi
3.1.1 Chuẩn bị
Mục tiêu tấn công: Wifi
Công cụ sử dụng: Wordlister (tạo danh sách mật khẩu) và Aircrack-ng
3.1.2 Demo tấn công
Bước 1: Tạo danh sách mật khẩu với Wordlister
Bằng các câu lệnh và thao tác đơn giản sử dụng các từ khoá phổ biến trong mật khẩu wifi ta tạo được một wordlist như hình
Hình 13: Wordlist được chuẩn bị sẵn
Bước 2: Bắt đầu sử dụng các lệnh để thực thi chức năng của
Aircrack-ng Lưu ý: các lệnh của Aircrack-ng phải được chạy dưới quyền root Ta chạy lệnh đầu tiên
“airmon-ng check kill” Lệnh này chạy để dừng tất cả các tiến trình khác đang sử dụng interface của wifi
Trang 17Hình 14: Dừng tiến trình đang sử dụng wlan0
Bước 3: Ta chạy lệnh “airmon-ng start wlan0” Lệnh này giúp ta khởi
động chạy
chế độ giám sát wlan0 (interface wifi được lựa chọn để tấn công)
Hình 15: Khởi động chế độ giám sát wlan0
Bước 4: Ta chạy lệnh “airodump-ng wlan0mon” Lệnh này được thực
hiện ở bước Kiểm thử dò quét hệ thống để biết các thông tin liên quan đến wifi và các thông tin cần thiết cho cuộc tấn công
Hình 16: Các mạng wifi được quét thấy
Ở bước này ta xác định được mục tiêu cần tấn công với các thông tinnhư sau:
Trang 18- CH:11
- BSSID: 7C:A1:07:16:DB:08
- ENC: WPA2
Bước 5: Lấy WPA handshake
Sau khi đã có các thông tin đó thì ta chỉ cần theo dõi cái AP mà tatấn công như sau
“airodump-ng bssid [nhập bssid của mục tiêu] -c [channel của mụctiêu] -w [tên file muốn viết].txt [wireless adapter]mon”
Hình 17: Theo dõi AP mục tiêu
Bước 6: Để đảm bảo quá trình nghe lén này thành công ta mở 1
terminal khác và gõ lệnh sau để ngắt kết nối các client đang kết nốivới AP Khi đó client sẽ thực hiện lại 4-way handshake và ta sẽ bắtđược gói tin cần thiết
“aireplay-ng deauth [số khung bỏ xác thực , giá trị bằng 0 thì là liêntục] -a [BSSID] [wireless adapter]mon”
Hình 18: Gửi các yêu cầu DeAuth để ngắt kết nối dịch vụ
Bước 7: Wordlist attack
Trang 19Ở bước này ta sẽ sử dụng bộ danh sách từ đã tạo sẵn trước đóbằng Wordlister Sử dụng câu lệnh sau:
aircrack-ng [file cap đã bắt được] -w [file wordlist đã chuẩn bị]
Lệnh này sẽ tiến hành tạo mã hash cho mỗi password trong wordlist
và tiến hành so sánh với password đã hash bắt được trong file cap.
Hình 19: So sánh mã hash của handshake và wordlist
Bước 8: Đến khi thấy xuất hiện “KEY FOUND” là ta đã tìm được mật
khẩu wifi
Hình 20: Thành công tìm được mật khẩu wifi
Trang 203.2 Tấn công vét cạn (brute-force) trang đăng nhập
3.2.1 Chuẩn bị
Mục tiêu tấn công: dieutrathuysan.gso.gov.vn
Đây là hệ thống thử nghiệm của ứng dụng Quản lí & Điều tra Thuỷ sản của Tổng cục thống kê nên sẽ được phép khai thác với quyền nhất định (Người làm báo cáo được cho phép)
Công cụ sử dụng: Wordlister (tạo danh sách mật khẩu) và Burp Suite (thực hiện tấn công)
3.2.1.1 Giới thiệu về Burp Suite
Burp Suite là trình quét bảo mật phổ biến được sử dụng rộng rãi nhấthiện nay được tích hợp với nhiều tính năng mạnh mẽ cùng các phần mềm mở rộng tùy chọn có khả năng kiểm tra được tính bảo mật của ứng dụng web và cả các thành phần khác nhau có trong web
Burp Suite sẽ giúp người dùng đánh giá một số các tiêu chí bảo mật như kiểm tra các vấn đề về phiên bản người dùng, tiến hành kiểm tra
cơ chế xác thực, liệt kê và đánh giá các tham số đầu vào của ứng dụng,
Burp Suite có các chức năng chính như sau:
Decoder
Decoder là chức năng giúp giải mã (decode) và mã hóa (encode) cácchuỗi theo nhiều dạng format khác nhau Để sử dụng Decoder, bạn vào tab decoder và nhập các dữ liệu cần giải mã hoặc mã hoá
Proxy Server
Proxy Server được thiết kế để bắt các yêu cầu và tuỳ ý sửa đổi chúngtrước khi gửi lên máy chủ Người dùng cần bật Burp Suite và vào tab proxy, sau đó option đánh dấu vào ô Running để sử dụng chức năng này
Repeater
Chức năng Repeater cho phép người dùng sử dụng request được gửi đến máy chủ và có thể nhanh chóng sửa đổi nội dung yêu cầu một cách tuỳ ý trong nhiều lần khác nhau
Comparer
Comparer là tính năng được sử dụng để phân biệt được sự khác nhaugiữa các yêu cầu (requests) và phản hồi (reponses), so sánh một cách dễ dàng các tệp tin và các dữ liệu có dung lượng lớn
Web spider
Web spider là tính năng duyệt web tự động được dùng với mục đích xác định cấu trúc của một trang web Để có thể sử dụng tính năng này, bạn cần vào tab Sitemap và Target, sau đó thực hiện thao tác click chuột phải vào mục tiêu và lựa chọn spider cho máy chủ
Intruder
Trang 21Intruder được sử dụng để tự động hóa các cuộc tấn công tùy chỉnh chống lại các ứng dụng Web Nó có bốn panel: mục tiêu, vị trí, tải trọng và các tùy chọn – như trong hình
Hình 21: Cửa sổ Burp Intruder
3.2.2: Demo tấn công
Bước 1: Chuẩn bị danh sách mật khẩu cơ sở
Thông tin được biết trước về một tài khoản với chức danh Giám sát tỉnh như sau:
Tài khoản: Gst22001 – Mật khẩu: a@
Giả định kẻ tấn công do thám được thông tin của một tài khoảnvới chức danh như trên, giờ mục tiêu tấn công để tìm ra tài khoản và mật khẩu của cá nhân có quyền cao hơn để có thể thực hiện được nhiều chức năng hơn trên ứng dụng
Ta sẽ tạo tệp chứa tài khoản dựa trên các chức danh viết tắt: gsv (Giám sát vụ), gsc (Giám sát cục), gsh (Giám sát huyện) và các
số liền sau có thể là mã tỉnh: 01 – 64 ; 001-009