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
Bài báo cáo:
Password Attacks
Tools: PrinceProcessor
Giảng viên hướng dẫn:
TS. Đặng Minh Tuấn
Sinh viên thực hiện:
Đặng Đoàn Huy
Mã sinh viên:
B18DCAT105
Nhóm mơn học:
02
Hà Nội 2021
Lời Cảm ơn
Đầu tiên, em xin gửi lời cảm ơn chân thành đến Học viện Cơng nghệ Bưu
chính viễn thơng đã đưa mơn học “An tồn mạng" vào trương trình giảng dạy. Đặc
biệt, em xin gửi lời cảm ơn sâu sắc đến giảng viên bộ môn – Thầy Đặng Minh Tuấn
đã dạy dỗ, truyền đạt những kiến thức quý báu cho em trong suốt thời gian học
tập vừa qua. Trong thời gian tham gia lớp họcan toàn mạng của thầy, em đã có
thêm cho mình nhiều kiến thức bổ ích, tinh thần học tập hiệu quả, nghiêm túc. Đây
chắc chắn sẽ là những kiến thức quý báu, là hành trang để em có thể vững bước
sau này.
Bộ mơn “An tồn mạng” là mơn học thú vị, vơ cùng bổ ích và có tính thực tế
cao. Đảm bảo cung cấp đủ kiến thức, gắn liền với nhu cầu thực tiễn của sinh viên.
Tuy nhiên, do vốn kiến thức còn nhiều hạn chế và khả năng tiếp thu thực tế còn
nhiều bỡ ngỡ. Mặc dù em đã cố gắng hết sức nhưng chắc chắn bài báo cáo khó
có thể tránh khỏi những thiếu sót và nhiều chỗ cịn chưa chính xác, kính mong
thầy xem xét và góp ý để bài báo cáo của em được hoàn thiện hơn.
Em xin chân thành cảm ơn!
Mục lục
LỜI MỞ ĐẦU .................................................................................................................... 4
1. Giới thiệu, lịch sử hình thành .................................................................................... 5
1.1.
Giới thiệu .............................................................................................................. 5
1.2.
Lịch sử hình thành ............................................................................................... 5
2. Hướng dẫn cài đặt....................................................................................................... 6
2.1.
Cài đặt trên Kali Linux ....................................................................................... 6
2.2.
Cài đặt trên Debian, Linux Mint, Ubuntu ....................................................... 15
3. Bài lab, kịch bản demo ............................................................................................. 15
3.1.
Kịch bản và demo 1 ............................................................................................ 15
3.2.
Demo 2 ................................................................................................................. 21
3.3.
Demo 3 ................................................................................................................. 22
4. So sánh, đánh giá ...................................................................................................... 23
4.1.
So sánh ................................................................................................................ 23
4.2.
Đánh giá .............................................................................................................. 28
Kết luận ............................................................................................................................ 29
Tài liệu tham khảo ...................................................................................................... 30
LỜI MỞ ĐẦU
Cùng với sự phát triển nhanh chóng của công nghệ, ứng dụng web ngày càng cải
tiến và được sử dụng rộng rãi. Kéo theo là những tiềm ẩn trong việc bảo mật ứng dụng
web đang càng ngày gây quan ngại cho người dùng, do đó, vấn đề bảo mật web đang là
lĩnh vực vơ cùng nóng hổi, thu hút được nhiều sự chú ý. Ứng dụng web ngày nay dần trở
thành mục tiêu tấn công phổ biến của tin tặc, các hình thức tấn cơng của các hacker cũng
ngày càng tinh vi và phức tạp hơn. Cho tới hiện nay, password vẫn được sử dụng rất
nhiều. Song song đó, khao khát để phá vỡ tính Bí mật và Bảo mật của password từ các
hacker ngày một tăng, bởi khi có được password đúng, hacker có tồn quyền với các
tài nguyên/dịch vụ của người dùng được xác thực bởi password đó. Và người dùng
hiện nay thường dùng chung một password cho nhiều dịch vụ khác nhau.
Trong bài báo cáo này em xin giới thiệu và demo về prinprocessor - một công cụ
đắc lực giúp ta tạo ra những phỏng đốn mật khẩu có thể được coi là một cuộc tấn công
Combinator nâng cao.
1. Giới thiệu, lịch sử hình thành
1.1.
Giới thiệu
- Cơ chế được sử dụng rộng rãi nhất để xác thực người dùng là mật khẩu. Do
đó, password attack là một cuộc tấn công phổ biến và hiệu quả. Phần lớn
các vụ đánh cắp thông tin liên quan đến quyền truy cập tài khoản. Ngay cả
thông tin xác thực của ngườ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á tồn bộ hệ thống.
- Princeprocessor là một trình tạo mật khẩu sử dụng thuật tốn PRINCE
(PRobability INfinite Chained Elements) và có thể được coi là một cuộc tấn
công Combinator nâng cao. Jens Steube đã thiết kế công cụ này để xâu chuỗi
các mật khẩu riêng lẻ từ file đầu vào theo các quy tắc đặc biệt và do đó tạo ra
các mật khẩu mới. Các chuỗi này có thể chứa một đến N từ bắt nguồn từ file
đầu vào và được nối với nhau. Vì vậy, ví dụ: nếu nó đang xuất ra các phỏng
đốn có độ dài bốn, nó có thể tạo ra chúng bằng cách sử dụng các kết hợp từ
file đầu vào như:
4 chữ cái
2 chữ cái + 2 chữ cái
1 chữ cái + 1 chữ cái + 2 chữ cái
1 chữ cái + 2 chữ cái + 1 chữ cái
2 chữ cái + 1 chữ cái + 1 chữ cái
1 chữ cái + 1 chữ cái + 1 chữ cái + 1 chữ cái
………
1.2.
Lịch sử hình thành
- Cho đến thời điểm này, mã nguồn của PRINCE vẫn chưa được phát hành. Do
đó nó chỉ được chạy thử nghiệm với các từ nhỏ khác nhau bằng chính công
cụ này và xem đầu ra theo cách thủ công.
2. Hướng dẫn cài đặt
2.1. Cài đặt trên Kali Linux
− Trước tiên cần sử dụng máy ảo (Virtualbox hoặc Vmware) để cài đặt hệ điều
hành Kali Linux
• Tạo một máy ảo mới và chọn hệ điều hành tương ứng
• Thêm file .iso
• Cài đặt ngôn ngữ
• Lựa chọn khu vực
• Cài đặt mạng
• Cài đặt mật khẩu
• Lựa chọn phân vùng ổ đĩa
• Chờ đợi q trình cài đặt hồn tất
• Đăng nhập
− Sau khi cài đặt máy ảo Kali thành công thì chúng ta sẽ cài đặt tools
Princeprocessor theo câu lệnh “sudo apt install princeprocessor”.
-
Một số phiên bản Kali Linux cũ sẽ không cài đặt được, ở đây ta phải sử dụng
lệnh update “apt-get update && apt-get update”.
2.2.
Cài đặt trên Debian, Linux Mint, Ubuntu
- Đối với những hệ điều hành này ta tiến hành cài đặt tương tự và ta sử dụng câu
lệnh :
"sudo
-
apt install git
git clone />cd princeprocessor/src
make
./pp64.bin -h "
Và cách sử dụng ở đây ta dùng câu lệnh " ./pp64.bin [options] [<] wordlist".
Trên đây là 2 cách cài đặt phổ biến nhất đối với Tool Princeprocessor, ngồi ra
nó cịn có thể cài đặt ở trên BlackArch và Windows ( ở đây em sẽ khơng trình
bày về phần này nữa).
3. Bài lab, kịch bản demo
3.1.
Kịch bản và demo 1
-
Đầu tiên ta phải đảm bảo là phải xóa những từ trùng lặp ở trong file nguồn
trước khi chạy PRINCE.
-
Sau khi PRINCE đọc trong từ điển nhập liệu, nó sẽ lưu trữ từng từ (phần tử),
trong một bảng bao gồm tất cả các từ có cùng độ dài. Sau đó, PRINCE xây
dựng các chuỗi bao gồm 1 đến N phần tử khác nhau. Ngay bây giờ, có vẻ như
N bằng tám, (được xác nhận khi sử dụng tùy chọn --elem-cnt-min). Nó thực
hiện điều này bằng cách thiết lập cấu trúc của các bảng khác nhau và sau đó
điền chúng vào. Ví dụ với file đầu vào :
A
Nó sẽ tạo ra những phỏng đoán sau :
A
AA
AAA
AAAA
AAAAA
AAAAAA
AAAAAAA
…….
-
Tương tự với 1 đầu vào khác lớn hơn 1 phần tử :
A
BB
Biglnput
Nó sẽ tạo ra các phỏng đoán sau :
A
AA
BBA
AABB
Biglnput
bbabb
aaa
bb
…….
-
-
Ở đây e demo với 1 file txt tạo trong Kali Linux
Tạo 1 file test.txt với nội dung bên trong là " yellow, green, black, blue"
Ta dùng lệnh " cd /home/kali/Desktop " để chuyển hướng tới thư mục ở
Desktop, sau đó sử dụng lệnh " cat test " để mở thư mục test.txt.
Sử dụng lệnh " cat test | princeprocessor " để lọc ra tất cả những trường hợp
mật khẩu có thể ghép được.
Sử dụng lệnh " princeprocessor keyspace test" để dự đoán số lượng mật khẩu
ghép được. Và ở đây ta dự đốn ghép được độ khoảng 78 mật khẩu có thể tạo
thành từ file " test.txt".
3.2.
Demo 2
-
Ở demo này em sẽ giới hạn lại số lượng mật khẩu được đề xuất. Em vẫn sẽ sử
dụng các từ ở file " test.txt", soạn chuỗi có độ dài tối thiểu là 2 phần tử sử dụng
dòng lệnh " –elem-cnt-min =2 " và tối đa là 2 phần tử sử dụng dòng lệnh " –
elem-cnt-max=2", tức là mỗi chuỗi chỉ chứa tối đa 2 từ.
Câu lệnh " princeprocessor –elem-cnt-min=2 –elem-cnt-max=2 test"
3.3.
Demo 3
-
Ở demo này em sẽ in ra những mật khẩu được đề xuất có độ dài trong 1
khoảng nhất định. Với độ dài nhỏ nhất là 4 em sử dụng câu lệnh " –pw-min=4"
và lớn nhất bằng 10 em sử dụng câu lệnh "—pw-max=10".
Câu lệnh " princeprocessor –pw-min=4 –pw-max=10 test".
4. So sánh, đánh giá
- Bảng về mức độ dự đoán mật khẩu khác nhau và các thuộc tính
thường thấy trong mật khẩu
4.1.
So sánh
• PRINCE: được dự định sẽ là 1 chương trình hồn toàn tự động.
- Cấu trúc mật khẩu : ta sẽ không thể chỉ định cấu trúc mật khẩu riêng
rẽ cho Prince. Nó sẽ lấy một tập hợp các từ và kết hợp chúng lại với
nhau theo nhiều cách khác nhau để tạo ra các phỏng đốn. Người
dùng khơng thể thiết lập 1 mật khẩu dù là trực tiếp hay gián tiếp, do
đó thuộc tính này khơng thể được xem xét.
- Đầu vào : sử dụng các từ trong file đầu vào để đốn mật khẩu là thuộc
tính của PRINCE, vì vậy nó sẽ sử dụng từ trực tiếp từ file đầu vào.
- Với các từ ở File đầu vào chứa kí tự đặc biệt: ở đây PRINCE sẽ khơng
phân biệt nó với bất kì từ nào khác hoặc sử dụng nó theo bất kì cách
đặc biệt nào. Vì vậy, muốn sử dụng được thuộc tính này nó cần sử
dụng 1 cách gián tiếp.
- Các chính sách mật khẩu: PRINCE sử dụng từ điển đầu vào để tính độ
dài phổ biến nhất và tiến hành đốn độ dài đó trước. Như vậy, nó có
thể được coi là sử dụng độ dài thuộc tính phụ một cách gián tiếp.
Dường như khơng có cách nào để PRINCE tính đến các chính sách về
yêu cầu ký tự đặc biệt. Tuy nhiên, việc sử dụng từ điển chỉ có 'từ' đáp
ứng các yêu cầu về ký tự sẽ có thể dẫn đến các phỏng đốn được
chính sách chấp nhận. Vì lý do đó, các ký tự đặc biệt thuộc tính phụ
cũng được quyết định xem xét gián tiếp.
• HASCAT: Hashcat khơng nhằm mục đích trở thành một chương trình
tự động và khơng có thuộc tính nào được coi là thuộc tính tự động.
Tuy nhiên, kẻ tấn cơng sử dụng Hashcat có thể quyết định xem có sử
dụng hầu hết các thuộc tính hay khơng và sử dụng như thế nào.
- Cấu trúc mật khẩu: Kẻ tấn công sử dụng Hashcat có thể cung cấp cho
nó các cấu trúc mật khẩu và Hashcat sẽ tiến hành phỏng đoán đáp ứng
các cấu trúc đó. Đây là những gì chế độ "brute force" dành cho. Nó
được chỉ định trong điều kiện ‘mặt nạ’ là một chuỗi các nhóm ký tự
khớp với mật khẩu để đốn. Vì mặt nạ được cung cấp cho Hashcat
được sử dụng trực tiếp và có mục đích nên nó được coi là sử dụng
trực tiếp. Không thể sử dụng Hashcat để đưa ra cấu trúc mật khẩu tự
động.
- Đầu vào: Kẻ tấn cơng sử dụng Hashcat có thể cung cấp cho nó một
nguồn đầu vào sẽ được sử dụng làm cơ sở cho các phỏng đốn, đó là
chế độ ‘Straight’ (kiểm tra tất cả các từ trong đầu vào. Chế độ này
cũng hỗ trợ quy tắc đọc từ, là những cách để thao tác với các từ trong
đầu vào. Ví dụ về quy tắc ghép chữ bao gồm thêm một chữ số, đảo
ngược từ hoặc viết hoa chữ cái đầu tiên).
- Với các từ ở File đầu vào chứa kí tự đặc biệt: Có thể danh sách các từ
mà Hashcat sử dụng sẽ chứa các kí tự đặc biệt của người dùng, sau đó
sẽ được sử dụng làm cơ sở cho các phép đoán mật khẩu mới được tạo
ra. Hashcat coi đây là những từ thông thường và không phải là kí tự
đặc biệt, vì vậy khơng có sự phân biệt nào. Vì lý do đó, thuộc tính này
được sử dụng gián tiếp bởi Hashcat.
- Các chính sách mật khẩu: Khi nói đến độ dài thuộc tính phụ, có thể
đặt độ dài tối đa trong một số chế độ. Khi nói đến các ký tự đặc biệt
của thuộc tính phụ, bạn có thể chỉ định mặt nạ sẽ chỉ tạo mật khẩu
được chính sách chấp nhận. Đây là một lý do để phân loại độ dài là
thứ được sử dụng trực tiếp bởi Hashcat. Khơng thể chỉ định chính
sách mật khẩu cho Hashcat và nó chỉ tạo ra các phỏng đốn được
chính sách chấp nhận. Tuy nhiên, bạn có thể chỉ định các cấu trúc mật
khẩu khác nhau (mặt nạ) sẽ chỉ khớp với mật khẩu cho một chính sách
nhất định. Điều này địi hỏi một số cơng việc bổ sung, nhưng có thể
nói rằng Hashcat sử dụng thuộc tính con này trực tiếp.