I.Tổng quan về hệ điều hành Kali Linux1.Lịch sử2.Đặc điểm3.Các ứng dụng trong Kali LinuxII.Cài đặt Kali LinuxIII.Kiến trúc hệ điều hành Kali Linux1.Cấu trúc hệ thống Unix2.Kiến trúc nhân3.Quá trình khởi động của hệ điều hành Kali Linux4.Cấu trúc thư mụcIV.Cách thêm ứng dụng – cập nhật mã lỗi1.Cách thêm ứng dụng, plugin cho Kali Linux2.Cách cập nhật cho Kali Linux3.Hướng dẫn dùng sqlmap để khai thác lỗi sql injection
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
-TÌM HIỂU VỀ HỆ ĐIỀU HÀNH KALI LINUX
Môn học: An toàn mạng Giảng viên: Nguyễn Hoàng Thắng Nhóm sinh viên (nhóm 02):
5. Nguyễn Đình Thái – B14DCAT161
Trang 2Hệ điều hành Kali Linux
MỤC LỤC
N i dung ội dung
I Tổng quan về hệ điều hành Kali Linux 3
1 Lịch sử 3
2 Đặc điểm 3
3 Các ứng dụng trong Kali Linux 3
II Cài đặt Kali Linux 9
III Kiến trúc hệ điều hành Kali Linux 17
1 Cấu trúc hệ thống Unix 17
2 Kiến trúc nhân 18
3 Quá trình khởi động của hệ điều hành Kali Linux 19
4 Cấu trúc thư mục 22
IV Cách thêm ứng dụng – cập nhật mã lỗi 33
1 Cách thêm ứng dụng, plugin cho Kali Linux 33
2 Cách cập nhật cho Kali Linux 33
3 Hướng dẫn dùng sqlmap để khai thác lỗi sql injection 35
Trang 3I Tổng quan về hệ điều hành Kali Linux
1 Lịch sử
Kali Linux là một hệ điều hành được xây dựng trên nhân Linux, đượcthiết kế để kiểm tra bảo mật, thử nghiệm xâm nhập các hệ thống máytính Tiền thân của Kali Linux là BackTrack, xuất hiện năm 2006 vàđược các chuyên gia đánh giá bảo mật ưa chuộng sử dụng
Sau 7 năm liên tục phát triển, tháng 3 năm 2013, hãng OffensiveSecurity đã công bố phiên bản mới của BackTrack có tên là KaliLinux (được xem như phiên bản BackTrack 6) Kali Linux tập hợp vàphân loại gần như tất cả các công cụ thiết yếu mà bất kì chuyên giađánh giá bảo mật nào cũng cần sử dụng khi tác nghiệp
2 Đặc điểm
Nói về ưu điểm của Kali là nói về những thay đổi giữa BackTrack và
Kali So với BackTrack, Kali có rất nhiều cải tiến:
Kali phát triển trên nền tảng hệ điều hành Debian
Tính tương thích kiến trúc
Hỗ trợ mạng không dây tốt
Khả năng tùy biến cao
Dễ dàng nâng cấp giữa các phiên bản Kali trong tương lai
3 Các ứng dụng trong Kali Linux
Kali được cài đặt hơn 600 công cụ tùy theo nhu cầu đánh giá và nó đãđược sắp xếp, phân loại rõ ràng dựa trên mục đích sử dụng để ngườidùng có thể sử dụng những công cụ này một cách tối ưu nhất
Thu thập thông tin – Information GatheringNhóm phân loại này gồm những công cụ tập trung vào việc thuthập thông tin về mục tiêu Trong phân loại này có một sốlượng lớn các công cụ được phân chia theo loại thông tin cần
Trang 4Hệ điều hành Kali Linux
Network Scanners (Dò quét cổng, dò quét mạng, dò quétphiên bản dịch vụ)
SSL Analysis (Phân tích giao thức SSL)
VoIP Analysis (Phân tích giao thức VoIP)
Trong số các công cụ trên có một số công cụ rất nổi tiếng, cực
kỳ hữu ích khi thực hiện đánh giá bảo mật hạ tầng mạng lướiđiện toán, đó chính là Nmap Với Nmap, chúng ta có thể biếtđược Ports (cổng dịch vụ) nào đang Open, Filtered hoặcClosed, ngoài ra còn có thể xác định được phiên bản dịch vụ(Banner version) và cũng có thể thực hiện phá đoán phiên bản
hệ điều hành mà mục tiêu đang sử dụng
Phân tích lỗ hổng – Vulnerability AnalysisNhững công cụ nằm trong nhóm này tập trung vào việc pháthiện các lỗ hổng bảo mật như: lỗ hổng ứng dụng, lỗ hổng trong
hạ tầng mạng, mạng lưới cho đến phần cứng chuyên dụng Vìvậy ở đây có rất nhiều các công cụ Vulnerability Scanner (Dòquét lỗ hổng) và Fuzzers (Kiểm thử) Một số công cụ có thể kểđến như:
SQLMap: Đây là một công cụ tuyệt vời mà thực sự có thể giúpbạn tìm kiếm và khai thác các lỗ hổng SQL Injection Với công
cụ này, bạn chỉ định các ứng dụng web và các thông số bạnmuốn kiểm tra, phần còn lại phần mềm sẽ tự động hóa thựchiện
Ứng dụng Web – Web ApplicationsNhóm phân loại này gồm những công cụ dùng để phát hiện vàtấn công các lỗ hổng ứng dụng Web Trong đó có một số công
cụ rất đáng để chúng ta quan tâm, chính là Burp Suite (có haiphiên bản Free và Pro)
Một trong những tính năng chính và cơ bản Burp Suite là khảnăng Intercept (đánh chặn) tất cả các HTTP Request được gửiđến các ứng dụng Web, nhờ đó chúng ta có thể chỉnh sửa, thayđổi, kiểm thử tham số và gửi đến ứng dụng
Trang 5Burp Suite không chỉ là một công cụ đánh chặn, mà còn là mộttrong những công cụ tốt nhất để thực hiện các phân tích lỗ hổngứng dụng Web tự động hoặc thủ công.
Đánh giá CSDL – Database AssesmentNhóm này gồm các ứng dụng chủ yếu liên quan đến cơ sở dữliệu SQL
JSQL là một ứng dụng nhẹ được sử dụng để tìm thông tin
cơ sở dữ liệu từ một máy chỉ ở xa
SQLNinja là một công cụ nhằm khai thác các lỗ hổngSQL Injection trên một ứng dụng web sử dụng MicrosoftSQL Server làm backend của nó
Tấn công mật khẩu – Password AttacksTrong nhóm này chúng ta có thể tìm thấy những công cụ bẻkhóa mật khẩu Offline hay khởi tạo các cuộc tấn công mật khẩuvào các giao thức Công cụ đáng chú ý trong phân loại này làJohn the Ripper, oclhashcat-plus, Medusa và THC-Hydra
Nhiều công cụ hữu ích có thể được tìm thấy ở đây, từ công cụtấn công bằng mật khẩu trực tuyến đến các cuộc tấn công ngoạituyến chống lại sự mã hóa hoặc các hệ thống băm
John the Ripper là một công cụ phần mềm bẻ khóa mật khẩuban đầu được phát triển cho hệ điều hành Unix Nó là một trongnhững chương trình testing/breaking mật khẩu phổ biến nhất vì
có kết hợp một số bộ cracker mật khẩu, tự động phát hiện cáckiểu mật khẩu và có một bộ cracker có khả năng tùy chỉnh.Công cụ này có thể được chạy cho các định dạng mật khẩu đãđược mã hóa chẳng hạn như các kiểu mật khẩu mã hóa vẫn thấytrong một số bản Unix khác (dựa trên DES, MDS hoặcBlowfish), Kerberos AFS và Windows NT/2000/XP/2003 LMhash Bên cạnh đó còn có các modul bổ sung mở rộng khả nănggồm có cả các kiểu mật khẩu MD4 và các mật khẩu được lưutrong LDAP, MySQL và các thành phần khác
Trang 6Hệ điều hành Kali Linux
Oclhashcat-plus là công cụ dùng để giải mã md5crypt, phpass,mscash2 và WPA / WPA2
Medusa và THC-Hydra có thể giúp khởi tạo các cuộc tấn côngBrute Force đối với các giao thức như HTTP, FTP, SSH, RDC
Tấn công mạng không dây – Wireless Attacks
Sự phổ biến của mạng không dây khiến chúng luôn là mục tiêuthường bị tấn công Các công cụ thuộc nhóm này dùng để phântích và tấn công các giao thức mạng như IEEE 802.11
Công cụ hữu dụng nhất trong phần này để thực hiện phân tíchgiao thức IEEE 802.11 (WiFi) là aircrack-ng Công cụ này chophép thực hiện nhiều kiểu tấn công khác nhau với các cơ chếxác thực (authentication) và ủy quyền (authorization) của mạngWiFi
Reverse Engineering Phân tích malware (viruses, trojans, worms ) để biết đượcchúng lây lan ra sao, lấy cắp thông tin cá nhân như thế nào? Đểxóa chúng khỏi hệ thống, hay điều tra thông tin về người pháttán, cần thực hiện những hành động điều tra gì?
Ví dụ: OllyDbg, đây là một trình gỡ lỗi sử dụng hợp ngữ trênnền Windows 32-bit chú trọng đến việc phân tích mã nhị phân
và rất hữu dụng để gỡ lỗi những chương trình không được cungcấp mã nguồn Nó dò xét các thanh ghi, nhận diện các thủ tục,các lời gọi hàm API, các khóa chuyển, các bảng, hằng số vàcác chuỗi, cũng như chỉ ra vị trí các routines từ các tập tin đốitượng và các thư viện
Exploitation ToolsKhai thác, lợi dụng các lỗ hổng đã được xác định, cho phépđiều khiển các máy tính, thiết bị từ xa
Ví dụ: metasploit framework là một môi trường dùng để kiểmtra ,tấn công và khai thác lỗi của các service Metasploit được
Trang 7xây dựng từ ngôn ngữ hướng đối tượng Perl, với nhữngcomponents được viết bằng C, assembler, và Python.Metasploit
có thể chạy trên hầu hết các hệ điều hành: Linux, Windows,MacOS
Nghe lén/ giả mạo – Sniffing/SpoofingSniffing/Spoofing cung cấp các công cụ để chặn lưu lượngmạng trên đường truyền, có thể xác định giao thức được sửdụng, phân tích các dữ liệu quan trọng
Một trong những chương trình nghe lén tốt nhất hiện nay chính
là Wireshark Với Wireshark bạn sẽ có thể intercept lưu lượngmạng và có thể xác định giao thức được sử dụng, phân tích vàhighlight các dữ liệu quan trọng
Post ExploitationMột khi bạn đã có quyền truy cập vào một hệ thống, bạnthường sẽ muốn duy trì mức độ truy cập đó hoặc mở rộng kiểmsoát bằng cách di chuyển ngang qua mạng
Các công cụ hỗ trợ cho các mục tiêu này được tìm thấy ở đây
Ví dụ: backdoor factory, là một shellcode cho phép bạn tiêmvào bất kỳ một file thực thi chạy trên windows 32/64bit, mà filethực thi vẫn chạy bình thường Công cụ này được viết bởi nhànghiên cứu bảo mật Joshua Pitts được trình diễn tại hội nghịbảo mật Debycon 2013
ForensicMục đích sử dụng của kỹ thuật forensics là tìm kiếm, duy trì vàphân tích thông tin trên hệ thống máy tính để tìm kiếm bằngchứng phạm tội cho một vụ án
Ví dụ: chkrootkit là một chương trình của Unix nhằm giúp các
Trang 8Hệ điều hành Kali Linux
như các chuỗi và các lệnh grep để tìm kiếm các dấu hiệu trongcác chương trình hệ thống lõi và so sánh sự mâu thuẫn của/proc filesystem với đầu ra của lệnh ps (process status) nhằmtìm kiếm những vấn đề khác nhau Chương trình này có thểđược sử dụng từ một “đĩa giải cứu” hoặc có có thể sử dụng mộtthư mục khác để chạy tất cả các lệnh của riêng nó Tuy vậy vẫn
có một số hạn chế cố hữu về độ tin cậy của bất cứ chương trìnhnào muốn phát hiện sự thỏa hiệp (chẳng hạn như các rootkit vàcác virus máy tính) Các rootkit mới hơn có thể phát hiện vàthỏa hiệp các copy của các chương trình chkrootkit hoặc dùngcác thủ đoạn khác để vòng tránh sự phát hiện bởi chương trìnhnày
Reporting ToolsReporting Tools (Các công cụ dành cho việc báo cáo): gồm cáccông cụ giúp tạo ra những bản báo cáo sau khi hoàn tất côngviệc đánh giá bảo mật, dựa trên các kết quả mà chúng ta đã tìmthấy
Ví dụ, công cụ recordMyDesktop, nhiệm vụ đơn giản của nóchính là tạo ra các File video ghi lại những hoạt động của bạntrên máy tính
Social Engineering ToolsĐây là phương pháp tấn công đơn giản nhưng lại vô cùng hiệuquả vì nó tấn công trực tiếp vào sự thiếu hiểu biết của ngườidùng Phương pháp này kể từ khi ra đời đến nay vẫn là phươngpháp cực kỳ hiệu quả do không có một dạng cố địch, có thể tùybiến tùy vào kẻ tấn công và khả năng phòng thủ là vô cùng khókhăn
VD: social engineering toolkit(SET) là một bộ công cụ mãnguồn mở trợ giúp cho việc thử nghiệm xâm nhập theo kiểuSocial Engineering Social Engineering là một phương pháp kỹthuật đột nhập vào hệ thống hoặc mạng công ty Đó là quá trìnhđánh lừa người dùng của hệ thống, hoặc thuyết phục họ cung
Trang 9cấp thông tin có thể giúp chúng ta đánh bại bộ phận an ninh.Hình thức tấn công chia làm 2 dạng chính:
- Human-base: dựa vào những kỹ thuật khai thác mối quan
hệ giữa người với người
- Computer-base: tấn công dựa vào sự trợ giúp của máytính Những hình thức này được biết như là phising, fakewebsite…
System ServicesDanh mục này chứa các công cụ cho phép bạn khởi động vàdừng ứng dụng chạy dưới nền hệ thống như các dịch vụ
VD: beef start, beef stop
II Cài đặt Kali Linux
1) Chuẩn bị:
- Bản cài đặt Kali Linux dưới dạng file ISO
- Phần mềm VMWare2) Chúng ta mở phần mềm VMWare và tùy chọn như bình thường,đến phần chọn hệ điều hành:
Trang 10Hệ điều hành Kali Linux
Chọn Customize hardware để chỉnh sửa một vài thông số
(Ram >= 1.5 GB – Processors > 2 – Network chọn bridged)
Trang 113) Cài đặt cấu hình cơ bản:
Chọn ngôn ngữ hiển thị
Chọn vùng và quốc gia:
Trang 12Hệ điều hành Kali Linux
Chọn loại bàn phím:
Sau đó, đợi khoảng 1 phút để cài đặt các thành phần từ CD-ROM
Trang 13Cấu hình Kali Linux:
Tiếp theo sẽ điền hostname cho Kali Linux
Điền domain: (Phần này có thể bỏ trống )
Tạo mật khẩu cho tài khoản root:
Trang 14Hệ điều hành Kali Linux
4) Lựa chọn phân vùng cài đặtChúng ta sẽ chọn Guide-use entire disk để cho Kali tự động phânvùng
Trang 15Giờ đến phần cấu hình mạng, chọn Yes để dùng bất kì mạng nào trong hệ thống
Quá trình cấu hình sẽ chạy 1 lần nữa Lưu ý bước sau này cực kỳ quan trọng đây, đó là tùy chọn nạp GRUB vào mục khởi động của Kali Linux, bắt buộc phải chọn Yes nhé:
Trang 16Hệ điều hành Kali Linux
Về cơ bản như vậy là đã xong, khi màn hình thông
báo Installation complete , các bạn bấm Continue và hệ thống sẽ
tự khởi động lại:
Vậy là chúng ta đã cài đặt xong Kali Linux:
- Sau khi nhập user, mật khẩu root và đây là màn hình khởi động của Kali Linux
Trang 17III Kiến trúc hệ điều hành Kali Linux
1 Cấu trúc hệ thống Unix
Sơ đồ dưới là cấu trúc của một hệ thống Unix
Trang 18Hệ điều hành Kali Linux
Khái niệm chính mà được thống nhất trong tất cả các phiên bảnUnix gồm 4 cơ sở sau:
Kernel: Kernel là trái tim của hệ điều hành Nó tương tác với
phần cứng và hầu hết nhiệm vụ như quản lý bộ nhớ, quản lý file,lên chương trình nhiệm vụ
Shell: Shell là một tiện ích mà xử lý các yêu cầu của bạn Khi bạn
gõ một lệnh tại terminal của bạn, shell biên dịch lệnh đó và gọichương trình mà bạn muốn Shell sử dụng cú pháp chuẩn cho tất
cả các lệnh C Shell, Bourne Shell và Korn Shell là những shellđược biết đến nhiều nhất và có sẵn trong hầu hết các phiên bảnUnix
Các lệnh và các tiện ích: Có rất nhiều lệnh và tiện ích mà bạn có
thể sử dụng trong công việc hàng ngày cp, mv, cat và grep … là
một số ví dụ của lệnh và tiện ích Có trên 250 lệnh tiêu chuẩn cộngvới một số lệnh khác được cung cấp bởi phần mềm thứ 3 Tất cảcác lệnh này đi cùng với các tùy chọn (chức năng) của nó
File và thư mục: Tất cả dữ liệu trong Unix được tổ chức trong các
file Tất cả các file được tổ chức vào trong các thư mục Nhữngthư mục này được tổ chức trong một cấu trúc dạng cây được gọinhư là hệ thống file
2 Kiến trúc nhân
Hình 2: Kiến trúc nhân
Trang 19Kali Linux cũng là hệ điều hành và tức nhiên là nó cũng phải cókernel, do phát triển từ Debian và Debian thì lại thuộc GNU/Linuxnên Kali Linux cũng được thừa hưởng từ cha.
Kernel đóng vai trò giao tiếp giữa phần mềm và phần cứng, vàđược hỗ trợ trên rất nhiều loại phần cứng vì vậy sẽ được tích hợprất nhiều những driver không cần thiết trong kernel gốc Việc biêndịch kernel cho phép ta loại bỏ cũng như thêm vào những tínhnăng mà ta thấy cần thiết, tối ưu cho một loại phần cứng nhất định(ở đây là máy tính của bạn)
3 Quá trình khởi động của hệ điều hành Kali Linux
Hình 3: Quá trình khởi động của hệ điều hành kali linux
Power-on:
BIOS (một phần mềm được cài đặt sẵn (embedded) vào các chípPROM, EPROM hay bộ nhớ flash nằm trên bo mạch chủ) làchương trình được chạy đầu tiên khi bạn nhấn nút nguồn hoặc nútreset trên máy tính của mình BIOS thực hiện một công việc gọi làPOST (Power-on Self-test) nhằm kiểm tra thông số và trạng tháicủa các phần cứng máy tính khác như bộ nhớ, CPU, thiết bị lưu
Trang 20Hệ điều hành Kali Linux
Nếu quá trình POST kết thúc thành công (tức, các phần cứng ởtrạng thái tốt, BIOS không phát hiện ra các trục trặc nào), thì sau
đó BIOS sẽ cố gắng tìm kiếm và khởi chạy (boot) một hệ điều
hành được chứa trong các thiết bị lưu trữ như ổ cứng, CD/DVD,USB… Thứ tự tìm kiếm có thể được thay đổi bởi người dùng
Master Boot Record (MBR):
Sector đầu tiên (được đánh số 0) của một thiết bị lưu trữ dữ liệuđược gọi là MBR, thường sector 0 này có kích thước là 512-
byte Sau khi BIOS xác định được thiết bị lưu trữ nào sẽ được ưu
tiên để tìm kiếm đầu tiên thì thực chất BIOS sẽ đọc trong MBR củathiết bị này để nạp vào bộ nhớ một chương trình rất nhỏ (dưới 512-byte) Chương trình nhỏ này sẽ định vị và khởi động boot loader –đây là chương trình chịu trách nhiệm cho việc tìm và nạp nhân(kernel) của hệ điều hành
Chú ý, hệ điều hành sẽ được nạp bởi boot loader không nhất thiếtphải nằm chung thiết bị lưu trữ với boot loader đó (những nămtrước đây có thể bạn đã từng nghe tới đĩa mềm khởi động, thực rachúng chỉ chứa boot loader mà thôi.)
Boot loader:
Có 2 bootloader phổ biến trên Linux là GRUB và LILO (tiền thâncủa GRUB) Cả 2 chương trình này đều có chung mục đích: chophép bạn lựa chọn một trong các hệ điều hành có trên máy tính đểkhởi động, sau đó chúng sẽ nạp kernel của hệ điều hành đó vào bộnhớ và chuyển quyền điều khiển máy tính cho kernel này
GRUB hay LILO đều có thể khởi động cho cả Linux và Windows,nhưng ngược lại các bootloader trên Windows như (NTLDR,BOOTMGR) thì không hỗ trợ khởi động cho các hệ điều hànhLinux Trong thế giới Linux, các bootloader cũng có thể nạp thêmcác ramdisk hoặc các INITRD, lát nữa chúng ta sẽ nói thêm vềchúng
Linux kernel được nạp và khởi chạy: