Giải ngố Kali Linux – Phần 1: Kali Linux là gì?

Như đã nhiều lần đề cập trong Series Giải ngố VirtualizationGiải ngố Linux, hôm nay tôi xin phép thu hẹp phạm vi chém gió để tập trung vào một đối tượng rất thú vị, đó là Kali Linux.

Kali Linux là sản phẩm của Offensive Security hiện được giang hồ bảo mật đánh giá là một trong những nền tảng penetration testing (kiểm tra xâm nhập) mạnh mẽ nhất thế giới. Con hàng này hiện không đơn thuần chỉ là “bộ tool” nữa mà đã trở thành một framework cực kỳ linh hoạt để người dùng tùy biến theo nhu cầu cụ thể. Vậy…

#1 Kali Linux làm được gì?

Như đã nói trên thì Kali Linux phục vụ chính cho penetration testing and security auditing. Nhưng để cụ thể hơn, bạn có thể xem chức năng của Kali Linux qua cái Applications Menu như sau:

Kali Linux Applications Menu
Kali Linux Applications Menu
  • Information Gathering: Thu thập thông tin về mục tiêu bao gồm kiến trúc hệ thống, network, OS, service,…;
  • Vulnerability Analysis: Phân tích lỗ hổng để xác định nhanh xem mục tiêu có thể bị ảnh hưởng bởi các lỗ hổng đã biết công khai hoặc cấu hình không bảo mật hay không;
  • Web Application Analysis: Phân tích để xác định các điểm cấu hình sai hoặc điểm yếu của web application;
  • Database Assessment: Đánh giá Database thông qua các phương án tấn công như SQL Injection hay trích xuất dữ liệu;
  • Password Attacks: Các thể loại tấn công password online/ offline vào hệ thống encryption/hashing;
  • Wireless Attacks: Các phương án tấn công nhiều dạng wireless networks;
  • Reverse Engineering: Cái này có thể dùng để nhận diện lỗ hổng hoặc phân tích malware (bạn có thể xem thêm Malware ở đây)
  • Exploitation Tools: Đám này tập trung khai thác các lỗ hổng đã xác định để chiếm quyền điều khiển (từ xa) đối với thiết bị từ đó làm bàn đạp cho các mưu đồ đen tối khác như privilege escalation;
  • Sniffing & Spoofing: Hỗ trợ thực hiện truy cập vào dữ liệu lưu thông trong network;
  • Post Exploitation: Hoạt động sau khi khai thác thành công mục tiêu (ví dụ triển khai duy trì truy cập hoặc tấn công hàng xóm của mục tiêu);
  • Forensics: Bao gồm các dạng data imaging (kiểu như sao chụp dữ liệu), phân tích sự cố;
  • Reporting Tools: Bao gồm tool hỗ trợ lập báo cáo cho quá trình penetration testing;
  • Social Engineering Tools: Bao gồm các công cụ hỗ trợ các kỹ thuật giao lưu phối hợp, gây tác động lên tác nhân con người để tấn công hệ thống;
  • System Services: Quản lý các ứng dụng của hệ thống.

#2 Các phương án triển khai cài đặt

Các phương án triển khai cài đặt phổ biến bao gồm:

  • Cài trên laptop của mấy ông làm penetration testing hoặc ông forensic analysts (phân tích điều tra – kiểu như trong series phim Crime Scene Investigation: Cyber ấy)
  • Cài trên server của system administrators (quản trị hệ thống) để giám sát hệ thống;
  • Cài trên embedded devices (tôi thấy người ta hay dịch là “thiết bị nhúng” nhưng thiệt tình tôi thấy chữ “nhúng” này nó sao sao ấy). Thường đây là đám thiết bị chạy ARM CPU, rất cơ động nên có dễ quăng vô vùng chiến sự có wireless network hay thậm chí kết nối vô máy tính của mục tiêu;
  • Triển khai trên cloud để làm hệ thống crack password.

#3 Các phương án sử dụng

Nhìn chung, tôi thấy có 3 phương án sử dụng chính như sau.

#3.1 Sử dụng bản cài đặt persistence trên ổ cứng của máy tính

Phương án này thì bạn ăn ngủ với Kali Linux hàng ngày nên vấn đề đầu tiên là phải xác định độ tin cậy của nó (nếu bạn quên thì tôi xin nhắc lại, cái Kali Linux này Free nên nguyên tắc là tự xài tự chịu chứ không “bắt đền” ai được đâu nhé). Chỗ này này phải cám ơn mấy đại ca Offensive Security vì đã xây dựng và phát triển theo đúng chuẩn bảo mật. Các source packages được kiểm tra xác nhận với checksum và phân phối trên signed repository nên người người, nhà nhà ai cũng đều có thể kiểm tra source code. Đây là yếu tố quan trọng để bạn có thể bảo đảm cái con hàng này có đáng tin hay không (tất nhiên bạn phải có kỹ năng mới kiểm tra được )

Lưu ý:

  • Vấn đề checksum tôi có bàn ở đây;
  • Nếu muốn soi source code ngay thì bạn vào đây.

#3.2 Sử dụng dạng Live System

Đây là dạng sử dụng không cần cài đặt. Với phương án này bạn có thể boot trực tiếp từ USB chứa Kali Linux ISO image. Phương án này rất cơ động nhưng có một vấn đề bạn cần nhớ là mặc định các tinh chỉnh hệ thống sẽ biến mất sau khi khởi động lại (cũng có phương án cho nó lưu lại các thay đổi giống như persistence nói trên nhưng tôi nghĩ phần chuyên sâu này bàn sau đi).

Với chế độ Live (forensic mode) kích hoạt từ Boot menu, bạn sẽ ngăn việc tác động đến dữ liệu trên hệ thống đang được phân tích (ví dụ như auto-mount disk). Do vậy phương án Live Sytem cũng sẽ phù hợp cho các các kiểu ForensicKali Linux được chạy trực tiếp trên USB chứ không truy cập vào ổ đĩa của hệ thống được phân tích.

Kali Linux Live (forensic mode)
Kali Linux Live (forensic mode)

#3.3 Sử dụng trên ARM Devices

Kali Linux cũng có binary packages cho các ARM architectures (armel, armhf và arm64) nhằm hỗ trợ việc chiến mọi lúc, mọi nơi trên nhiều dạng thiết bị như smartphone, tablet, Rasperry Pi hay thậm chí Wi-Fi routers.

Lưu ý: Binary packages là dạng packages bao gồm (pre-built) executables – tức là hàng “dựng” sẵn để có thể “ăn liền”

#4 Đọc kỹ hướng dẫn trước khi sử dụng

Mặc dù ai cũng biết việc đọc hướng dẫn trước khi sử dụng là quan trọng nhưng thực sự đa số chỉ lọ mọ đi đọc lại thông tin hướng dẫn sau khi đã ăn hành ngập mặt. Với trường hợp của Kali Linux, tôi cực lực phản đối cái trường phái đợi “nước đến mõm mới nhảy” nói trên. Kể cả đang test trong môi trường ảo, bạn cũng nên tập thói quen lập kế hoạch và phân tích các tác động có thể có trước khi “ra tay” (với hệ thống thật bên ngoài thì bạn có thể còn phải kiểm tra thêm các quy định pháp luật liên quan để tránh rắc rối phát sinh). Ngoài ra, ở quá trình thiết lập để sử dụng ban đầu, bạn cũng cần lưu ý 2 nội dung sau.

#4.1 Hạn chế sử dụng Root User

Thực ra Linux nói chung cũng đều khuyến khích bạn sử dụng user “thường” nhiều nhất có thể. Chừng kẹt quá bắt buộc phải có root privileges thì mới dùng utility như “sudo”. Việc này sẽ ngăn bạn vô tình “chơi ngu lấy tiếng”, vì một phút bốc đồng mà phá banh nguyên hệ thống. Trường hợp sử dụng tool bắt buộc root privileges, bạn có thể chuyển sang user root làm xong việc rồi quay lại user thường cho chắc.

#4.2 Tắt các dịch vụ khi không cần sử dụng

Với công việc penetration test, việc tối thiểu hóa khả năng bị phát hiện khi đang “mần ăn” là vấn đề quan trọng. Do vậy, nguyên tắc cơ bản là kiểm tra và tắt các service không cần thiết trước khi đi vào vùng chiến sự (ví dụ các service listen trên public network interface như HTTPSSH).

Việc tùy chỉnh này rất quan trọng và bạn nên dựa theo nhu cầu thực tế để kiểm tra và thực hiện ngay lần đăng nhập đầu tiên vào hệ thống (nếu muốn chơi dạng cao cấp hơn bạn có thể sử dụng  Live-build để sáng tác một phiên bản cho riêng mình bằng cách quy định cụ thể sẽ cài đặt features/packages theo nhu cầu).

3 thoughts on “Giải ngố Kali Linux – Phần 1: Kali Linux là gì?”

Leave a Reply

Your email address will not be published. Required fields are marked *