Tải bản đầy đủ (.pdf) (29 trang)

tiểu luận đề tài tìm hiểu về kỹ thuật crack password bằng phần mềm john the ripper

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 (3.79 MB, 29 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

TRƯỜNG ĐẠI HỌC KINH TẾ

<b>KHOA THƯƠNG MẠI ĐIỆN TỬ</b>

<b>BÁO CÁO THUYẾT TRÌNH HỌC PHẦN AN TỒNVÀ BẢO MẬT THÔNG TIN</b>

<b>HỆ THỐNG THÔNG TIN QUẢN LÝ</b>

<b>ĐỀ TÀI: Tìm hiểu về kỹ thuật Crack password bằng phần mềm John the Ripper</b>

Tên Nhóm : OvisLớp : 46K22.1Sinh viên thực hiện : Lê Ngọc Thế Dân

Nguyễn Tiến ĐạtNguyễn Trần Minh MinhHoàng Ngọc Thành Lee Junho

Giảng viên hướng dẫn : Trần Thị Thu Thảo

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

1.1. Giới thiệu tổng quan: 2Giới thiệu phần mềm John the Ripper: 2Các tính năng của John the Ripper: 2

2.7 Crack mật khẩu của người dùng kali linux 20

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

<b>● DANH MỤC HÌNH ẢNH</b>

Hình 1.1 Ngơn ngữ lập trình Python 2

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

Save to a Studylist

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

<b>CHƯƠNG 1.TỔNG QUAN VỀ JOHN THE RIPPER</b>

○ <b>1.1. Giới thiệu tổng quan:</b>

<b>1.1.1. Giới thiệu phần mềm John the Ripper: </b>

Hình 1.1 Phần mềm John the Ripper

John the Ripper là một cơng cụ bẻ khóa mật khẩu nhanh chóng, hiện tại nócó sẵn trong các phiên bản phân phối Unix, Windows, DOS, BeOS vàOpenVMS. Mục đích chính của nó là phát hiện những điểm yếu của mật khẩuUnixx. Bên cạnh đó là một vài loại hash phổ biến được tìm thấy trong các phiênbản Unix, hỗ trợ một vài dạng khác như Kerberos/AFS và Windows LM hashes.

<b>1.1.2. Các tính năng của John the Ripper: </b>

● John the Ripper được thiết kế để vừa nhanh vừa hiệu quả.

● Nó kết hợp nhiều chế độ bẻ khóa trong một chương trình và có thể cấuhình đầy đủ cho các nhu cầu cụ thể của người sử dụng.

● John có thể được sử dụng trên nhiều nền tảng khác nhau cho phép ngườidùng sử dụng cùng một trình bẻ khóa ở mọi nơi.

● Hỗ trợ (và tự động phát hiện) các loại Hash Unix crypt (3) sau: ○ DES-based truyền thống

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

○ "bigcrypt"

○ DES-based mở rộng BSDI ○ FreeBSD MD5-based,...

● Ngồi ra cịn được hỗ trợ thêm các hàm Hash Kerberos / AFS vàWindows LM (dựa trên DES), cũng như các mã ba chân dựa trên DES.

<b>1.2.Các cách thức tấn công:</b>

Các công cụ bẻ khóa mật khẩu và phân tích mật mã thường hoạt động theo3 cách khác nhau. Mục tiêu chung của cả 3 là đốn chính xác (hay cịn gọi gọi là“bẻ khóa”) một mật khẩu.

■ 1.2.1. Tấn cơng từ điển:

Đây là cuộc tấn công phổ biến và dễ sử dụng nhất trong cơng cụ bẻ khóamật khẩu JtR, sử dụng một từ đã được xác định trước hoặc danh sách các từ cóthể được sử dụng để bẻ khóa mật khẩu. Cuộc tấn công này sử dụng các từ trongdanh sách (Một tệp văn bản có các từ được xác định trước) và thử mọi từ trongdanh sách theo trình tự để bẻ khóa.

■ 1.2.2. Tấn cơng brute-force

Nếu đang sử dụng kiểu tấn cơng này thì phải thực hiện cấu hình mật khẩutrước khi sử dụng nó, như xác định độ dài tối thiểu và tối đa của mật khẩu, xácđịnh các ký tự muốn kiểm tra trong quá trình bẻ khóa như (ký tự đặc biệt, bảngchữ cái và số).

Ví dụ: Chuỗi đang sử dụng để bẻ khóa mật khẩu phải bao gồm bảng chữcái viết hoa, ký tự đặc biệt và số như ABC32 @ $

Người dùng vẫn nhận được mật khẩu khi kết hợp thành công, nhưng qtrình hiệu quả này diễn ra rất chậm. ví dụ: mật khẩu 10 ký tự bao gồm cả chữ hoavà chữ thường cùng với số và các ký tự đặc biệt sẽ mất hơn 10 năm để máy tínhđốn được.

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

■ 1.2.3. Tấn công bảng Rainbow

Tấn cơng bảng Rainbow là một phương pháp bẻ khóa mật khẩu sử dụngmột bảng đặc biệt (“bảng Rainbow”) để bẻ khóa các Hash mật khẩu trong cơ sởdữ liệu. Sau khi người dùng nhập mật khẩu để đăng nhập, mật khẩu sẽ đượcchuyển đổi thành hàm Hash và kết quả được so sánh với các hàm Hash được lưutrữ trên máy chủ để tìm kiếm Hash trùng khớp. Nếu khớp, người dùng được xácthực và có thể đăng nhập vào ứng dụng. Bản thân bảng Rainbow đề cập đến mộtbảng được tính trước có chứa giá trị Hash mật khẩu cho mỗi ký tự văn bản thuầntúy được sử dụng trong q trình xác thực. Nếu tin tặc có quyền truy cập vàodanh sách Hash mật khẩu, chúng có thể bẻ khóa tất cả mật khẩu rất nhanh bằngbảng Rainbow.

Ví dụ: Một kẻ tấn cơng phát hiện một ứng dụng web có kỹ thuật Hash mậtkhẩu lỗi thời và bảo mật tổng thể yếu. Kẻ tấn công đánh cắp các hash mật khẩuvà bằng cách sử dụng bảng cầu vồng kẻ tấn cơng có thể giải mã mật khẩu của tấtcả người dùng ứng dụng.

○ <b>1.3. Các chế độ bẻ khóa:</b>

■ 1.3.1. Chế độ Single Crack:

Chế độ Single Crack sử dụng thông tin từ các file mật khẩu UNIX như tênđầy đủ của người dùng, tên người dùng,… để đốn mật khẩu. Điều này có thểhữu ích trong trường hợp người dùng đã đặt mật khẩu cho tài khoản dựa trênthơng tin hoặc cụm từ thường có sẵn trong tên người dùng (ví dụ: user: User, an:An456).

■ 1.3.2. Chế độ Wordlist:

Đây là chế độ bẻ khóa đơn giản nhất của JtR. Giống tấn công từ điển, chếđộ này dựa vào một file văn bản lưu danh sách từ được người dùng cung cấp vớimột từ trên mỗi dòng. JtR không sắp xếp lại các mật khẩu danh sách. Tuy nhiên,vẫn có thể thực hiện bởi người dùng nếu cần. Lệnh được đề xuất để sắp xếp danhsách từ là: tr A-Z a-z < SOURCE | sort -u > TARGET.

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

■ 1.3.3. Chế độ Incremental:

Tương đương với quét cạn, chế độ Incremental của JtR là chế độ bẻ khóa mạnhnhất, nhưng tốn thời gian đối với mật khẩu đủ phức tạp. Chế độ này có thể khơngbao giờ hồn thành trong thời gian thực tế hay khơng bao giờ kết thúc. Theohướng dẫn sử dụng của Openwall: "Có rủi ro việc bẻ khóa bằng chế độ này sẽkhông bao giờ kết thúc do số lượng kết hợp quá lớn (trên thực tế, chương trình sẽkết thúc nếu người dùng đặt giới hạn độ dài mật khẩu thấp hoặc sử dụng một bộký tự nhỏ), và người dùng sẽ phải làm gián đoạn nó ngắt quãng.

○ <b>1.4. Biện pháp phịng tránh việc mật khẩu bị bẻ khóa:</b>

- Bật chế độ xác thực 2 yếu tố khi đăng nhập ở 1 thiết bị khác- Thay đổi mật khẩu định kỳ

- Đặt mật khẩu phức tạp bao gồm chữ in hoa, số, ký tự đặc biệt

- Đối với cá nhân thì cần cẩn thận và chú ý, chỉ nhập thơng tin vào những website có HTTPS. Khi truy cập vào 1 điểm wifi công cộng, cần dùng VPN

- Đối với công ty và doanh nghiệp, cần tránh những giao thức thiếu an toàn như HTTP, FTP và Telnet và thay vào đó bằng SSH, HTTPS, SFTP. Tất cả các dữ liệu gửi ra ngồi cần được mã hố, nhiều doanh nghiệp họ triển khai thêm VPN để tăng thêm 1 lớp bảo mật nữa.

- Sử dụng Salting: Salting là một kỹ thuật hiện đại được sử dụng để ngăn chặn các cuộc tấn cơng bằng bảng Rainbow. Nó thêm một giá trị ngẫu nhiên bổ sung vào mỗi mật khẩu được Hash để tạo ra một giá trị Hash khác. Hầu hết các hệ thống xác thực mật khẩu hiện đại đều bao gồm Salting, điều này đã làm giảm đáng kể số lượng các cuộc tấn công bảng Rainbow thành công.

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

Được sử dụng hiệu quả trong việc phục hồi mật khẩu bị mất.

Có nhiều tùy chọn nâng cao có sẵn trong phần mềm JtR sẽ thuận tiện cho ngườidùng nâng cao.

■ 1.5.1. Nhược điểm:

Khá phức tạp: JtR khơng có UI mà sử dụng các dạng lệnh. Người dùngbình thường khơng đủ hiểu biết về phần mềm sẽ cảm thấy khó khăn khi sử dụng. Nhược điểm khác của JtR là người dùng cần phải đăng nhập vào tài khoảnroot để cài đặt phần mềm ,sử dụng và khôi phục.

<b>CHƯƠNG 2.DEMO </b>

<b>2.1.Crack mật khẩu đã được mã hóa thành hash</b>

- Bước 1: Lưu một dịng hash (trong trường hợp này, hash có dạng SHA1)vào file SHA1_test.txt

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

Hình 2.1.1. Tệp SHA1_test.txt

- Bước 2: Tiến hành bẻ khóa dịng hash của file SHA1_test.txt. Ta dùng lệnh: john –format=raw-sha1 SHA1_test.txt (raw-sha1 định dạng loại hash có trong file SHA1_test.txt)

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

Hình 2.1.2. Bẻ khóa mật khẩu của SHA1_test.txtKết quả: mật khẩu được mã hóa thành dạng hash là “cook123”

○ <b>2.2 Crack mật khẩu bằng chế độ wordlist</b>

- Bước 1: Lưu dòng hash (trong trường hợp này, hash có dạng md5) vào filewordlisttest.txt

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

Hình 2.2.1. File wordlisttest.txt-Bước 2: Trên john ta thực hiện lệnh: john

–wordlist=/usr/share/wordlists/rockyou.txt –format=raw-md5 wordlisttest.txt với =/usr/share/wordlists/rockyou.txt là địa chỉ của từ điển (rockyou.txt là một từ điển có sẵn trong máy ảo kali linux).

Lưu ý: rockyou.txt phải được giải nén từ rockyou.txt.gz mới có thể sử dụng được

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

Hình 2.2.2. Crack hash sử dụng wordlist

Kết quả: chế độ wordlist đã crack được mật khẩu là “sunny” từ username “praisethesun”

○ <b>2.3. Crack mật khẩu bằng chế độ Incremental</b>

- Bước 1: Lưu dòng hash (trong trường hợp này, hash có dạng md5) vào file test1.txt

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

Hình 2.3.1. test1.txt

- Bước 2: Gõ lệnh: john –incremental=alpha –form=raw-md5 test1.txt với incremental=alpha giới hạn kết hợp các kí tự đến mức các chữ cái thường (form là dạng viết tắt của format)

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

--Hình 2.3.2. Crack hash bằng chế độ IncrementalKết quả: Crack dòng hash thành công, mật khẩu của username “incremental_crack” là “lethedan”.

○ <b>2.4. Crack mật khẩu của file .zip</b>

- Bước 1: lấy mã hash của file zip rồi lưu vào file ziptest.txt bằng lệnh: zip2john ziptest.zip > ziptest.txt

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

Hình 2.4.1 Sử dụng lệnh zip2john

- Bước 2: sử dụng từ điển có trong kali linux để crack dịng hash có trong ziptest.txt

Hình 2.4.2. Crack mật khẩu zip

Kết quả: ta được mật khẩu “password”, sử dụng mật khẩu này để mở file zip

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

Hình 2.4.3. Giải nén file zip thành công○ <b>2.5. Crack mật khẩu file .rar</b>

- Bước 1: lấy mã hash của file rar rồi lưu vào file rartest.txt bằng lệnh: rar2john test.rar > rartest.txt

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">

Hình 2.5.1 Sử dụng lệnh rar2john

- Bước 2: sử dụng từ điển có trong kali linux để crack dịng hash có trong rartest.txt

Hình 2.5.2. Crack mật khẩu rar

Kết quả: ta được mật khẩu “1234”, sử dụng mật khẩu này để mở file rar

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

Hình 2.5.3. Giải nén file rar thành công○ <b>2.6. Crack mật khẩu file .pdf</b>

- Bước 1: Sử dụng công cụ pdf2john.pl để tạo tệp hash pdf. Ta tìm địa chỉ câu lệnh pdf2john bằng cách: locate pdf2john

</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">

Hình 2.6.1. locate pdf2john

- Bước 2: Copy địa chỉ của pdf2john.pl. Lấy mã hash của file pdf rồi lưu vào file pdftest.txt bằng lệnh: /usr/share/john/pdf2john.pl test.pdf > pdftest.txt

</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">

Hình 2.6.2. Pdf2john

- Bước 3: sử dụng từ điển có trong kali linux để crack dịng hash có trong pdftest.txt

</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">

Hình 2.6.3. Crack mật khẩu pdf

Kết quả: crack được mật khẩu “qwerty”, dùng mật khẩu này để mở file pdf

</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">

Hình 2.6.4 Mở thành cơng file pdf○ <b>2.7 Crack mật khẩu của người dùng kali linux</b>

- Bước 1: Sử dụng lệnh: sudo unshadow /etc/passwd /etc/shadow > kalicrack.txtTrong đó: + /etc/passwd là một file dạng plain text chứa danh sách các tài khoản của hệ thống, cung cấp cho mỗi tài khoản một số thông tin hữu ích như ID người dùng, ID nhóm, thư mục chính, shell,…

+ /etc/shadow cung cấp cơ chế xác thực nâng cao cho hệ thống Linux bằng cách thắt chặt quyền truy cập ở cấp tài khoản. Tệp văn bản này lưu trữ các mật khẩu thực ở dạng hash, cùng với thông tin bổ sung liên quan đến các mật khẩu này

</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">

+ Để sử dụng câu lệnh này thì cần phải có đặc quyền của tài khoản root hoặc lệnhsudo

Hình 2.7.1. File kalicrack.txt chứa mật khẩu dạng hash của user trong máy kali- Bước 2: Dùng lệnh: john –wordlist=/usr/share/wordlists/rockyou.txt –format=crypt kalicrack.txt để tiến hành bẻ khóa các mật khẩu có trong kalicrack.txt

</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25">

Kết quả:

Hình 2.7.2. Danh sách các user và mật khẩu đã được crack của chúng

</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26">

<b>● KẾT LUẬN </b>

Từ khởi đầu của Internet đến nay, mật khẩu vẫn là phương tiện chính đểxác thực của các hệ thống máy tính. Điều này rất quan trọng đối với các cơng ty,tổ chức vì cần phải đảm bảo rằng các mật khẩu yếu khơng an tồn ở mức tốithiểu để tăng tính bảo mật. Để đảm bảo điều này, nhiều phương pháp đã đượcthực hiện, chẳng hạn như ra các chính sách đặt mật khẩu hơn và thực thi củng cốđộ mạnh của mật khẩu thường xuyên. Bằng cách sử dụng các tiện ích bẻ khóamật khẩu, chẳng hạn như John the Ripper, các tổ chức có thể tư vấn cho ngườidùng về mật khẩu yếu và do đó đảm bảo họ tuân thủ chính sách. Mặc dù loạikiểm tốn này có thể từng được coi là khơng bắt buộc, vì lý do thời gian hoặc chiphí nhưng giờ đây nó có thể được coi là một biện pháp bảo mật hợp lý bằng cáchtận dụng lại các hệ thống máy tính cũ hoặc thực hiện thủ tục bẻ khóa mật khẩutheo từng nhóm trong thời gian ngắn.

</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="27">

<b>● TÀI LIỆU THAM KHẢO</b>

1. essential-password-cracker-for-your-hacker-toolkit.html

essential-password-cracker-for-your-hacker-toolkit.html

What is a shadow password file? (techtarget.com)

9. Understanding /etc/passwd File Format - nixCraft (cyberciti.biz)

</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="28">

<b>● PHỤ LỤC</b>

</div>

×