CHƯƠNG 8: SYSTEM HACKING<br />
Phạm Thanh Tân<br />
Trong các chương trước, chúng ta đã khảo sát qua quá trình thu thập thông tin của mục tiêu<br />
cần tấn công. Những kỹ thuật như Footprinting, Social engineering, Enumeration, Google<br />
Hacking…đã được áp dụng cho mục đích truy tìm thông tin.<br />
Đến chương này, bạn bắt đầu đi vào quá trình tấn công hệ thống thật sự. Mục tiêu của bạn<br />
bây giờ đã lộ rõ trước mắt, bạn phải tiến hành những kỹ thuật khác nhau để làm sao vào<br />
được trong hệ thống đó, thực hiện những việc mà mình mong muốn, như xóa dữ liệu, chạy<br />
chương trình trojan, keylogger…<br />
<br />
Quá trình tấn công hệ thống<br />
Trước khi tiếp tục nói về System Hacking chúng ta dành chút thời<br />
gian cho việc tìm hiểu một quá trình tấn công hệ thống. Mục tiêu<br />
phía trước của chúng ta là một hệ thống máy tính. Các bước để<br />
tấn công, đánh sập nó, có thể được liệt kê như hình vẽ bên cạnh.<br />
Nó gồm 6 công đoạn như sau:<br />
1. Enumerate (liệt kê): Trích ra tất cả những thông tin có<br />
thể về user trong hệ thống. Sử dụng phương pháp thăm dò<br />
SNMP để có được những thông tin hữu ích, chính xác hơn.<br />
Bạn đã tìm hiểu về phương pháp SNMP trong phần trước.<br />
2. Crack: Công đoạn này có lẽ hấp dẫn nhiều hacker nhất.<br />
Bước này yêu cầu chúng ta bẽ khóa mật khẩu đăng nhập<br />
của user. Hoặc bằng một cách nào khác, mục tiêu phải đạt<br />
tới là quyền truy cập vào hệ thống.<br />
3. Escalste (leo thang): Nói cho dễ hiểu là chuyển đổi giới<br />
hạn truy cập từ user binh thường lên admin hoặc user có<br />
quyền cao hơn đủ cho chúng ta tấn công.<br />
4. Execute (thực thi): Thực thi ứng dụng trên hệ thống máy<br />
đích. Chuẩn bị trước malware, keylogger, rootkit…để chạy Hình 8. 1: Quy trình<br />
tấn công hệ thống<br />
nó trên máy tính tấn công.<br />
5. Hide (ẩn file): Những file thực thi, file soucecode chạy<br />
chương trình…cần phải được làm ẩn đi, tránh bị mục tiêu phát hiện tiêu diệt.<br />
<br />
6. Tracks (dấu vết): Tất nhiên không phải là để lại dấu vết. Những thông tin có liên<br />
quan đến bạn cần phải bị xóa sạch, không để lại bất cứ thứ gì. Nếu không khả năng<br />
bạn bị phát hiện là kẻ đột nhập là rất cao.<br />
Trong chương này, bạn sẽ cùng trải qua những công nghệ thực hiện các bước trên để tấn<br />
công hệ thống. Qua đó chúng ta sẽ đưa ra những giải pháp để chống lại tấn công đó. Phần<br />
Enumeration đã được thảo luận trong chương trước, nên sẽ không đề cập trong phần này.<br />
<br />
Phần 1: Cracking Passwords<br />
1. Mật khẩu và các kiểu tấn công mật khẩu<br />
Một vài kiểu password dùng để truy cập vào hệ thống. Các ký tự dùng làm mật khẩu có thể<br />
rơi vào các trường hợp sau.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Chỉ là chữ cái. VD: ABCDJ<br />
Chỉ là số. VD: 457895<br />
Chỉ là những ký tự đặc biệt. VD: #$^@&*<br />
Chữ cái và số. VD: asw04d5s<br />
Chỉ là số và ký tự đặc biệt. VD: #$345%4#4<br />
Chữ cái ,số, và ký tự đặc biệt. VD: P@ssw0rd<br />
<br />
Độ mạnh của mật khẩu phụ thuộc vào khả năng nhạy cảm của hacker. Quy tắc sau đây, đề<br />
nghị của Hội đồng EC, phải được áp dụng khi bạn tạo một mật khẩu, để bảo vệ nó chống<br />
lại các cuộc tấn công.<br />
Không chứa tên tài khoản người dùng<br />
Ngắn nhất phải 8 ký tự<br />
Phải chứa các ký tự từ ít nhất ba trong số các loại sau<br />
o Có chứa các ký tự đặc biệt/<br />
o Chứa chữ số.<br />
o Chữ cái viết thường<br />
o Chữ cái viết hoa.<br />
Một hacker dùng các cách tấn công khác nhau để tìm password và tiếp tục truy cập vào hệ<br />
thống. Các kiểu tấn công password thường ở dạng sau:<br />
<br />
Hình 8. 2: Các kiểu tấn công mật khẩu<br />
Passive Online: Nghe trôm sự thay đổi mật khẩu trên mạng. Cuộc tấn công thụ<br />
động trực tuyến bao gồm: sniffing, man-in-the-middle, và replay attacks (tấn công<br />
dựa vào phản hồi)<br />
Active Online: Đoán trước mật khẩu nguời quản trị. Các cuộc tấn công trực tuyến<br />
bao gồm việc đoán password tự động.<br />
Offline: Các kiểu tấn công như Dictionary, hybrid, và brute-force.<br />
Non-Electronic: Các cuộc tấn công dựa vào yếu tố con người như Social<br />
engineering, Phising…<br />
<br />
Passive Online Attacks<br />
Một cuộc tấn công thụ động trực tuyến là đánh hơi (sniffing) để tìm các dấu vết, các mật<br />
khẩu trên một mạng. Mật khẩu là bị bắt (capture) trong quá trình xác thực và sau đó có thể<br />
được so sánh với một từ điển (dictionary) hoặc là danh sách từ (word list). Tài khoản người<br />
dùng có mật khẩu thường được băm (hashed) hoặc mã hóa (encrypted) trước khi gửi lên<br />
mạng để ngăn chặn truy cập trái phép và sử dụng. Nếu mật khẩu được bảo vệ bằng cách<br />
trên,một số công cụ đặc biệt giúp hacker có thể phá vỡ các thuật toán mã hóa mật khẩu.<br />
<br />
Active Online Attacks<br />
Cách dễ nhất để đạt được cấp độ truy cập của một quản trị viên hệ thống là phải đoán từ<br />
đơn giản thông qua giả định là các quản trị viên sử dụng một mật khẩu đơn giản. Mật khẩu<br />
<br />
đoán là để tấn công. Active Online Attack dựa trên các yếu tố con người tham gia vào việc<br />
tạo ra mật khẩu và cách tấn công này chỉ hữu dụng với những mật khẩu yếu.<br />
Trong chương 6, khi chúng ta thảo luận về các giai đoạn Enumeration, bạn đã học được<br />
những lỗ hổng của NetBIOS Enumeration và Null Session. Giả sử rằng NetBIOS TCP mở<br />
port 139, phương pháp hiệu quả nhất để đột nhập vào Win NT hoặc hệ thống Windows<br />
2000 là đoán mật khẩu. Cái này được thực hiện bằng cách cố gắng kết nối đến hệ thống<br />
giống như một quản trị viên thực hiện. Tài khoản và mật khẩu được kết hợp để đăng nhập<br />
vào hệ thống.<br />
Một hacker, đầu tiên có thể thử để kết nối với tài nguyên chia sẽ mặc định là Admin$, C$<br />
hoặc C:\Windows. Để kết nối tới các ổ đĩa máy tính, ổ đĩa chia sẻ, gõ lệnh sau đây trong<br />
Start > Run:<br />
\\ ip_address \ c$<br />
<br />
Các chương trình tự động có thể nhanh chóng tạo ra file từ điển, danh sách từ, hoặc kết<br />
hợp tất cả có thể có của các chữ cái, số và ký tự đặc biệt và cố gắng để đăng nhập vào. Hầu<br />
hết các hệ thống ngăn chặn kiểu tấn công này bằng cách thiết lập một số lượng tối đa của<br />
các nỗ lực đăng nhập vào một hệ thống trước khi tài khoản bị khóa. (ví dụ khi bạn đăng<br />
nhập vào một trang web mà bạn nhập sai password 5 lần thì tài khoản bạn từ động bị khóa<br />
lại 1 ngày)<br />
Trong các phần sau, chúng ta sẽ thảo luận làm thế nào hacker có thể thực hiện việc tự động<br />
đoán mật khẩu chặt chẽ hơn, cũng như các biện pháp đối phó với các cuộc tấn công như<br />
vậy.<br />
Performing Automated Password Guessing: (Tự Động Đoán Mật Khẩu)<br />
Để tăng tốc độ đoán của mật khẩu, hacker thường dùng công cụ tự động. Một cách có quá<br />
trình, dễ dàng để tự động đoán mật khẩu là sử dụng cửa sổ lệnh dựa trên cú pháp chuẩn<br />
của lệnh NET USE. Để tạo ra một kịch bản đơn giản cho việc đoán mật khẩu tự động, thực<br />
hiện các bước sau đây:<br />
1. Tạo ra một tên người dùng đơn giản và tập tin mật khẩu bằng cách sử dụng các cửa<br />
sổ notepad. Dùng các dòng lệnh để tạo ra danh sách các từ điển. Và sau đó lưu vào<br />
các tập tin vào ổ đĩa C, với tên là credentials.txt<br />
2. Sử dụng lênh FOR<br />
C:\> FOR /F “token=1, 2*” %i in (credentials.txt)<br />
<br />
3. Gõ lệnh<br />
net use \\targetIP\IPC$ %i /u: %j<br />
<br />
để sử dụng file credentials.txt cố gắng logon vào hệ thống chia sẽ ẩn trên hệ thống mục<br />
tiêu<br />
Bảo Vệ Chống Lại Các Hoạt Động Đoán Mật Khẩu<br />
Có hai vấn đề tồn tại là bảo vệ chống lại đoán mật khẩu và tấn công mật khẩu. Cả hai cách<br />
tấn công đều rất thông minh tạo trạng thái bất an khi người dùng tạo mật khẩu riêng của<br />
họ. Một người sử dụng cũng có thể được chứng thực (authenticated) và xác nhận (validated)<br />
bằng cách kiểm tra. Trong đó yêu cầu hai hình thức nhận dạng (chẳng hạn như các thẻ<br />
thông minh (smart card) và mật khẩu) khi xác thực người dùng. Bằng cách yêu cầu một cái<br />
gì đó người dùng có thể có (smart card) và một cái gì đó mà người dùng biết (mật khẩu) ,<br />
bảo mật tăng, và không dễ dàng tấn công .<br />
<br />
Offline Attacks<br />
Cuộc tấn công Offline được thực hiện tại một vị trí khác hơn là hành động tại máy tính có<br />
chứa mật khẩu hoặc nơi mật khẩu được sử dụng. Cuộc tấn công Offline yêu cầu phần cứng<br />
để truy cập vật lý vào máy tính và sao chép các tập tin mật khẩu từ hệ thống lên phương<br />
tiện di động. Hacker sau đó có file đó và tiếp tục khai thác lỗ hổng bảo mật. Bảng sau<br />
minh họa vài loại hình tấn công offline:<br />
Bảng 8.1: Các kiểu tấn công Offline<br />
Type of Attack<br />
Dictionary attack<br />
Hybrid attack<br />
Brute-force-attack<br />
<br />
Characteristics<br />
<br />
Example Password<br />
<br />
Nỗ lực để sử dụng mật khẩu từ từ<br />
điển<br />
<br />
Administrator<br />
<br />
Thay thế một vài ký tự của mật<br />
khẩu<br />
Thay đổi toàn bộ ký tự của mật khẩu<br />
<br />
Adm1n1strator<br />
Ms!tr245@F5a<br />
<br />
Dictionary Attack là cách tấn công đơn giản và nhanh nhất trong các loại hình tấn công.<br />
Nó được sử dụng để xác định một mật khẩu từ thực tế, và mật khẩu có thể được tìm thấy<br />
trong từ điển. Thông thường nhất, cuộc tấn công sử dụng một tập tin từ điển các từ có thể,<br />
sau đó sử dụng một thuật toán được sử dụng bởi quá trình xác thực. Các hàm băm (hash)<br />
của các từ trong từ điển được so sánh với hàm băm của mật khẩu người dùng đăng nhập<br />
vào, hoặc với các mật khẩu được lưu trữ trong một tập tin trên máy chủ. Dictionary Attack<br />
chỉ làm việc nếu mật khẩu là một thực thể có trong từ điển. Nhưng kiểu tấn công này có<br />
<br />