Giáo trình Bảo mật mạng - Chương 8: System Hacking - Nguyễn Tấn Thành

pdf 29 trang cucquyet12 4070
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Bảo mật mạng - Chương 8: System Hacking - Nguyễn Tấn Thành", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfgiao_trinh_bao_mat_mang_chuong_8_system_hacking_nguyen_tan_t.pdf

Nội dung text: Giáo trình Bảo mật mạng - Chương 8: System Hacking - Nguyễn Tấn Thành

  1. CHƯƠNG 8: SYSTEM HACKING Phạm Thanh Tân 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 cần tấn công. Những kỹ thuật như Footprinting, Social engineering, Enumeration, Google Hacking đã được áp dụng cho mục đích truy tìm thông tin. Đế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 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 đượ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 chương trình trojan, keylogger Quá trình tấn công hệ thống Trước khi tiếp tục nói về System Hacking chúng ta dành chút thời gian cho việc tìm hiểu một quá trình tấn công hệ thống. Mục tiêu phía trước của chúng ta là một hệ thống máy tính. Các bước để tấn công, đánh sập nó, có thể được liệt kê như hình vẽ bên cạnh. Nó gồm 6 công đoạn như sau: 1. Enumerate (liệt kê): Trích ra tất cả những thông tin có thể về user trong hệ thống. Sử dụng phương pháp thăm dò SNMP để có được những thông tin hữu ích, chính xác hơn. Bạn đã tìm hiểu về phương pháp SNMP trong phần trước. 2. Crack: Công đoạn này có lẽ hấp dẫn nhiều hacker nhất. Bước này yêu cầu chúng ta bẽ khóa mật khẩu đăng nhập của user. Hoặc bằng một cách nào khác, mục tiêu phải đạt tới là quyền truy cập vào hệ thống. 3. Escalste (leo thang): Nói cho dễ hiểu là chuyển đổi giới hạn truy cập từ user binh thường lên admin hoặc user có quyền cao hơn đủ cho chúng ta tấn công. 4. Execute (thực thi): Thực thi ứng dụng trên hệ thống máy đích. Chuẩn bị trước malware, keylogger, rootkit để chạy Hình 8. 1: Quy trình nó trên máy tính tấn công. tấn công hệ thống 5. Hide (ẩn file): Những file thực thi, file soucecode chạy 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.
  2. 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 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 bạn bị phát hiện là kẻ đột nhập là rất cao. 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 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 Enumeration đã được thảo luận trong chương trước, nên sẽ không đề cập trong phần này. Phần 1: Cracking Passwords 1. Mật khẩu và các kiểu tấn công mật khẩu 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ể rơi vào các trường hợp sau. Chỉ là chữ cái. VD: ABCDJ Chỉ là số. VD: 457895 Chỉ là những ký tự đặc biệt. VD: #$^@&* Chữ cái và số. VD: asw04d5s Chỉ là số và ký tự đặc biệt. VD: #$345%4#4 Chữ cái ,số, và ký tự đặc biệt. VD: P@ssw0rd Độ 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, đề 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 lại các cuộc tấn công. Không chứa tên tài khoản người dùng Ngắn nhất phải 8 ký tự Phải chứa các ký tự từ ít nhất ba trong số các loại sau o Có chứa các ký tự đặc biệt/ o Chứa chữ số. o Chữ cái viết thường o Chữ cái viết hoa. 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ệ thống. Các kiểu tấn công password thường ở dạng sau:
  3. Hình 8. 2: Các kiểu tấn công mật khẩu Passive Online: Nghe trôm sự thay đổi mật khẩu trên mạng. Cuộc tấn công thụ động trực tuyến bao gồm: sniffing, man-in-the-middle, và replay attacks (tấn công dựa vào phản hồi) 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 bao gồm việc đoán password tự động. Offline: Các kiểu tấn công như Dictionary, hybrid, và brute-force. Non-Electronic: Các cuộc tấn công dựa vào yếu tố con người như Social engineering, Phising Passive Online Attacks 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 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ể đượ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 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 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 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. Active Online Attacks 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ừ đơ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
  4. đ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 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. Trong chương 6, khi chúng ta thảo luận về các giai đoạn Enumeration, bạn đã học được những lỗ hổng của NetBIOS Enumeration và Null Session. Giả sử rằng NetBIOS TCP mở port 139, phương pháp hiệu quả nhất để đột nhập vào Win NT hoặc hệ thống Windows 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 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 vào hệ thống. 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$ 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 Start > Run: \\ ip_address \ c$ 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 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 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 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 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 lại 1 ngày) 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 đ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ư vậy. Performing Automated Password Guessing: (Tự Động Đoán Mật Khẩu) Để 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á 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 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 hiện các bước sau đây: 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 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 các tập tin vào ổ đĩa C, với tên là credentials.txt 2. Sử dụng lênh FOR C:\> FOR /F “token=1, 2*” %i in (credentials.txt)
  5. 3. Gõ lệnh net use \\targetIP\IPC$ %i /u: %j để 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 tiêu Bảo Vệ Chống Lại Các Hoạt Động Đoán Mật Khẩu 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 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 họ. Một người sử dụng cũng có thể được chứng thực (authenticated) và xác nhận (validated) 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ẻ 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 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) , bảo mật tăng, và không dễ dàng tấn công . Offline Attacks 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ó 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 để 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 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 minh họa vài loại hình tấn công offline: Bảng 8.1: Các kiểu tấn công Offline Type of Attack Characteristics Example Password Dictionary attack Nỗ lực để sử dụng mật khẩu từ từ Administrator điển Hybrid attack Thay thế một vài ký tự của mật Adm1n1strator khẩu Brute-force-attack Thay đổi toàn bộ ký tự của mật khẩu Ms!tr245@F5a 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. 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 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ể, 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) 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 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 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ó
  6. một số hạn chế là nó không thể được sử dụng với các mật khẩu mạnh có chứa số hoặc ký hiệu khác . Hybrid Attack là cấp độ tiếp theo của hacker, một nỗ lực nếu mật khẩu không thể được tìm thấy bằng cách sử dụng Dictionary Attack. Các cuộc tấn công Hybrid bắt đầu với một tập tin từ điển và thay thế các con số và các ký hiệu cho các ký tự trong mật khẩu. Ví dụ, nhiều người sử dụng thêm số 1 vào cuối mật khẩu của họ để đáp ứng yêu cầu mật khẩu mạnh. Hybrid được thiết kế để tìm những loại bất thường trong mật khẩu. Brute Force Attack là một cuộc tấn công bằng thuật toán brute-force, mà mọi cố gắng kết hợp có thể có của chữ hoa và chữ thường, chữ cái, số, và biểu tượng. Một cuộc tấn công bằng thuật toán brute-force là chậm nhất trong ba loại tấn công vì có thể kết hợp nhiều ký tự trong mật khẩu. Tuy nhiên, cách này có hiệu quả, cần có đủ thời gian và sức mạnh xử lý tất cả. Noneelectronic Attacks Các cuộc tấn công nonelectronicor là cuộc tấn công mà không sử dụng bất kỳ kiến thức kỹ thuật nào. Loại tấn công có thể bao gồm các kỹ thuật như social engineering, shoulder surfing, keyboard sniffing, dumpster diving. 2. Microsoft Authentication Microsoft đề xuất ra hàng loạt các giao thức thực dành cho hệ điều hành máy khách và máy chủ, môi trường workstation hoặc domain đều áp dụng được. Những giao thức có thể kế ra như trong hình, kèm theo là những phiên bản hệ điều hành sử dụng nó. Mỗi giao thức chứng thực có một cách mã hóa dữ liệu khác nhau, và độ dài mã hóa cũng khác nhau. Bảng 8.2 dưới đây là bảng thông tin mã hóa dành cho các loại chứng thực cơ bản.
  7. Hình 8. 3: Các giao thức chứng thực của Microsoft Bảng 8.2:Thông tin chứng thực cơ bản Giao thức xác thực NTLM Sử dụng một cơ chế thách thức-đáp ứng (challenge-response) để xác thực người dùng và máy tính chạy Windows Me hoặc hệ điều hành trước đó, hoặc máy tính chạy Windows 2000 hoặc sau đó mà không phải là một phần của doamin. Một người dùng được thách thức (challenge) để được cung cấp một số phần thông tin cá nhân duy nhất cho người sử dụng (response).
  8. Hình 8. 4: Mô hình chứng thực Challenge-Response Windows Server 2003 hỗ trợ ba phương pháp xác thực theo kiểu challenge- response sau đây: 1. LAN Manager (LM): Được phát triển bởi IBM và Microsoft để sử dụng trong OS2 và Windows cho Workgroups (Windows 95, Windows 98 và Windows Me). Đây là hình thức kém an toàn của xác thực challenge-response vì nó là dễ bị kẽ tấn công nghe trộm, và máy chủ chứng thực người dùng phải lưu trữ các thông tin trong LMHash . 2. NTLM version 1: Một hình thức an toàn hơn so với kiểu LM. Nó được sử dụng để kết nối với máy chủ chạy Windows NT với Service Pack 3 hoặc sớm hơn. NTLMv1 sử dụng giao thức mã hóa 56-bit. Máy chủ xác thực người dùng với bất kỳ phiên bản của NTLM nào, việc xác thực phải lưu trữ các thông tin trong một Hash NT. 3. NTLM version 2: Hình thức an toàn nhất có sẵn trong chứng thực challenge- response. Phiên bản này bao gồm một kênh an toàn để bảo vệ quá trình xác thực. Nó được sử dụng để kết nối với máy chủ chạy Windows 2000, Windows XP, và Windows NT với Service Pack 4 hoặc cao hơn. NTLMv2 sử dụng mã hóa 128-bit để đảm bảo các giao thức an toàn. LM Authentication LM Authentication cung cấp khả năng tương thích với hệ điều hành trước đó, bao gồm Windows 95, Windows 98 và Windows NT 4.0 Service Pack 3 hoặc sớm hơn. Ngoài ra còn có các ứng dụng trước đó mà có thể dựa vào cơ chế xác thực này. Tuy nhiên, giao thức LM là yếu nhất, và dễ dàng nhất để tấn công. Không sử dụng chứng thực LM trong một môi trường Windows Server 2003. Nâng cấp các máy tính dựa trên giao thức LM để loại bỏ lỗ hổng bảo mật này.
  9. Storing LM passwords Lý do chính không sử dụng giao thức LM là khi mật khẩu được tạo ra bởi người sử dụng và được lưu trữ để sử dụng, mật khẩu được chuyển đổi để LMHash một lần. LMHash chứa tên người dùng và hash của mật khẩu tương ứng. Hash là một hình thức mã hóa một chiều. Khi một khách hàng cố gắng để xác thực với chứng thực LM các hash của mật khẩu được truyền trên mạng. Máy chủ chỉ có thể để xác thực người sử dụng nếu máy chủ có lưu trữ LMHash . LMHash có một vài điểm yếu mà làm cho nó dễ bị tấn công hơn Hash NT. Các LMHash được lưu trữ là các chữ hoa, được giới hạn trong 14 ký tự. Nếu có hiểu biết, kẻ tấn công có được quyền truy cập vào LMHashes lấy được một số lượng lớn người sử dụng, có khả năng là kẻ tấn công sẽ giải mã được mật khẩu. Bảng8. 3: Ví dụ về mật khẩu và các LMHashes tương ứng mà có thể được lưu trữ. Chú ý rằng với hash của mật khẩu luôn có 14 ký tự, nếu chưa đủ thì ký tự E (mã 16) được thêm vào sau cùng. Trong quá trình tính toán các hash, mật khẩu ban đầu được chia thành hai bộ bảy ký tự. Nếu mật khẩu là bảy ký tự hoặc ít hơn, tập thứ hai của bảy ký tự là null. Điều này dẫn đến các ký E cuối cùng là một giá trị giúp cho kẻ tấn công biết các mật khẩu ban đầu là ít hơn tám ký tự. Điều này giúp kẽ tấn công giãm bơt thời gian dò tìm mã. Vô hiệu hóa mật khẩu LM Windows Server 2003 cho phép bạn vô hiệu hóa các LMHash để loại bỏ các lỗ hổng được trình bày ở trên. Tuy nhiên, nếu bạn có client đang chạy Windows 3.1 hoặc bản phát hành ban đầu của Windows 95 kết nối với một máy tính chạy Windows Server 2003, thì bạn không vô hiệu hóa các LMHash. Tuy nhiên, bạn vẫn có thể vô hiệu hóa việc sử dụng LMHash trên cơ sở account-by-account bằng cách làm một trong những điều sau đây: Sử dụng mật khẩu với 15 ký tự hoặc dài hơn. Kích hoạt các giá trị registry NoLMHash cục bộ trên một máy tính hoặc bằng cách sử dụng chính sách an ninh.
  10. Sử dụng các ký tự ALT trong mật khẩu. Ký tự ALT được đưa vào một mật khẩu bằng cách giữ phím ALT, gõ các phím số, và sau đó thả phím ALT. NTLM Authentication Như đã đề cập trước đó, NTLM bao gồm ba phương pháp xác thực challenge-response: LM, NTLMv1, và NTLMv2. Quá trình xác thực cho tất cả các phương pháp là như nhau, nhưng chúng khác nhau ở mức độ mã hóa. Quá trình xác thực Các bước sau đây chứng tỏ quá trình của một sự kiện xác thực xảy ra khi một client xác nhận đến domain controller bằng cách sử dụng bất kỳ các giao thức NTLM: Hình 8. 5: Mô hình chứng thực NTLM 1. Các client và server thương lượng một giao thức xác thực. Điều này được thực hiện thông qua việc thương lượng nhà cung cấp dịch vụ hổ trợ bảo mật của Microsoft (Security Support Provider). Client gửi tên người dùng và tên miền tới domain controller. 2. Domain controller chọn ngẫu nhiên 16 byte để tạo ra một chuỗi ký tự được gọi là nonce 3. Client mã hóa nonce này với một hash của mật khẩu và gửi nó trở lại domain controller. 4. Domain controller trả lời hash của mật khẩu từ cơ sở dữ liệu tài khoản bảo mật.
  11. 5. Domain controller sử dụng các giá trị băm lấy từ cơ sở dữ liệu tài khoản bảo mật để mã hóa nonce. Giá trị này được so sánh với giá trị nhận được từ client Nếu các giá trị phù hợp, client được chứng thực. Giao thức chứng thực Kerberos Là một giao thức xác thực mặc định cho Windows Server 2003, Windows 2000 và Windows XP Professional. Kerberos được thiết kế để được an toàn hơn và khả năng mở rộng hơn so với NTLM trên mạng lớn. Kerberos cung cấp thêm các lợi ích sau đây: Hiệu quả (Efficiency): Khi một máy chủ cần xác thực một client, máy chủ Kerberos có thể xác nhận các thông tin của client mà không cần phải liên hệ với domain controller. Tự chứng thực (Mutual authentication) Ngoài việc chứng thực cliet đến server, Kerberos cho phép máy chủ xác thực lẫn nhau. Ủy quyền chứng thực (Delegated authentication): Cho phép các dịch vụ để đóng vai client khi truy cập vào tài nguyên. Đơn giản hóa quản lý (TrustKerberos): có thể sử dụng trust giữa các domain trong cùng một forest và các domain kết nối với một forest. Khả năng cộng tác ( Interoperability): Kerberos được dựa trên tiêu chuẩn Internet Engineering Task Force (IETF) và do đó tương thích với IETF khác tuân theo lõi Kerberos. Quy trình xác thực Kerberos Giao thức Kerberos lấy ý tưởng từ các con chó ba đầu trong thần thoại Hy Lạp. Ba thành phần của Kerberos là: 1. Các client yêu cầu dịch vụ hoặc chứng thực. 2. Các server lưu trữ các dịch vụ theo yêu cầu của client. 3. Một máy tính có nghĩa là đáng tin cậy của khách hàng và máy chủ (trong trường hợp này, Windows Server 2003 domain controller chạy dịch vụ Kerberos Key Distribution Center). Xác thực Kerberos được dựa trên các gói dữ liệu định dạng đặc biệt được gọi là ticket. Trong Kerberos, các ticket đi qua mạng thay vì mật khẩu. Truyền ticket thay vì mật khẩu làm cho quá trình xác thực tăng khả năng chống tấn công. Kerberos Key Distribution Center
  12. Key Distribution Center (KDC) duy trì một cơ sở dữ liệu các thông tin tài khoản cho tất cả các hiệu trưởng an ninh (security principals) trong miền. Các KDC lưu trữ một khoá mật mã chỉ có các nsecurity principals được biết đến. Khóa này được sử dụng để giao tiếp giữa security principals và KDC, và được biết đến như một chìa khóa dài hạn. Chìa khóa dài hạn được bắt nguồn từ mật khẩu đăng nhập của người dùng. Quá trình xác thực Kerberos Sau đây là mô tả một phiên giao dịch (giản lược) của Kerberos. Trong đó: AS = Máy chủ chứng thực (authentication server), TGS = Máy chủ cấp vé (ticket granting server), SS = Máy chủ dịch vụ (service server). Một cách vắn tắt: người sử dụng chứng thực mình với máy chủ chứng thực AS, sau đó chứng minh với máy chủ cấp vé TGS rằng mình đã được chứng thực để nhận vé, cuối cùng chứng minh với máy chủ dịch vụ SS rằng mình đã được chấp thuận để sử dụng dịch vụ. Hình 8. 6: Mô tả vắn tắt quy trình chứng thực Kerberos
  13. 1. Người sử dụng nhập tên và mật khẩu tại máy tính của mình (máy khách). 2. Phần mềm máy khách thực hiện hàm băm một chiều trên mật khẩu nhận được. Kết quả sẽ được dùng làm khóa bí mật của người sử dụng. 3. Phần mềm máy khách gửi một gói tin (không gửi mật mã hóa) tới máy chủ dịch vụ AS để yêu cầu dịch vụ. Nội dung của gói tin đại ý: “người dùng XYZ muốn sử dụng dịch vụ”. Cần chú ý là cả khóa bí mật lẫn mật khẩu đều không được gửi tới AS. 4. AS kiểm tra nhân dạng của người yêu cầu có nằm trong cơ sở dữ liệu của mình không. Nếu có thì AS gửi 2 gói tin sau tới người sử dụng: o Gói tin A: “Khóa phiên TGS/client” được mật mã hóa với khóa bí mật của người sử dụng. o Gói tin B: “Chấp Thuận Vé” (bao gồm chỉ danh người sử dụng (ID), địa chỉ mạng của người sử dụng, thời hạn của vé và “Khóa phiên TGS/client”) được mật mã hóa với khóa bí mật của TGS. 5. Khi nhận được 2 gói tin trên, phần mềm máy khách giải mã gói tin A để có khóa phiên với TGS. (Người sử dụng không thể giải mã được gói tin B vì nó được mã hóa với khóa bí mật của TGS). Tại thời điểm này, người dùng có thể xác thực mình với TGS. 6. Khi yêu cầu dịch vụ, người sử dụng gửi 2 gói tin sau tới TGS: o Gói tin C: Bao gồm “Vé chấp thuận” từ gói tin B và chỉ danh (ID) của yêu cầu dịch vụ. o Gói tin D: Phần nhận thực (bao gồm chỉ danh người sử dụng và thời điểm yêu cầu), mật mã hóa với “Khóa phiên TGS/máy khách”. 7. Khi nhận được 2 gói tin C và D, TGS giải mã D rồi gửi 2 gói tin sau tới người sử dụng: o Gói tin E: “Vé” (bao gồm chỉ danh người sử dụng, địa chỉ mạng người sử dụng, thời hạn sử dụng và “Khóa phiên máy chủ/máy khách”) mật mã hóa với khóa bí mật của máy chủ cung cấp dịch vụ. o Gói tin F: “Khóa phiên máy chủ/máy khách” mật mã hóa với “Khóa phiên TGS/máy khách”. 8. Khi nhận được 2 gói tin E và F, người sử dụng đã có đủ thông tin để xác thực với máy chủ cung cấp dịch vụ SS. Máy khách gửi tới SS 2 gói tin: o Gói tin E thu được từ bước trước (trong đó có “Khóa phiên máy chủ/máy khách” mật mã hóa với khóa bí mật của SS). o Gói tin G: phần nhận thực mới, bao gồm chỉ danh người sử dụng, thời điểm yêu cầu và được mật mã hóa với “Khóa phiên máy chủ/máy khách”. 9. SS giải mã “Vé” bằng khóa bí mật của mình và gửi gói tin sau tới người sử dụng để xác nhận định danh của mình và khẳng định sự đồng ý cung cấp dịch vụ:
  14. o Gói tin H: Thời điểm trong gói tin yêu cầu dịch vụ cộng thêm 1, mật mã hóa với “Khóa phiên máy chủ/máy khách”. 10. Máy khách giải mã gói tin xác nhận và kiểm tra thời gian có được cập nhật chính xác. Nếu đúng thì người sử dụng có thể tin tưởng vào máy chủ SS và bắt đầu gửi yêu cầu sử dụng dịch vụ. 11. Máy chủ cung cấp dịch vụ cho người sử dụng. 3. Kỹ Thuật Crack Password Công Nghệ Crack Password Có rất nhiều hacker nỗ lực trong việc bẻ khóa password. Passwords là chiếc chìa khóa, thông tin cần thiết để truy cập hệ thống. User, khi mà họ tạo ra password thường là những password khó đoán. Nhiều password được tái sử dụng hoặc chọn một ký tự, hoặc là một tên nào đó giúp họ dễ nhớ nó. Bởi vì yếu tố con người nên đã có rất nhiều password được bẻ gãy thành công. Nó là điểm mấu chốt của quá trình leo thang, thực thi ứng dụng, ẩn file, và che dấu thông tin. Password có thể được bẻ thủ công hoặc tìm trong từ điển. Crack password thủ công liên quan đến việc cố gắng đăng nhập với một password khác. Các bước mà hacker tiến hành: 1. Tìm tài khoản người dùng (có thể là tài khoản administractor hoặc khách) 2. Tạo ra một danh sách các mật khẩu có thể 3. Xếp hạng các mật khẩu có xác xuất từ cao xuống thấp 4. Mức độ quan trọng của mật khẩu. 5. Cố gắng làm đi làm lại cho đến khi nào bẻ password thành công Hình 8. 7: Các bước cack password thủ công Một hacker cố gắng tạo ra tập tin kịch bản với mỗi password trong danh sách. Nhưng đây chỉ là cách thủ công, nó thường tốn nhiều thời gian và không hiệu quả. Để tăng
  15. hiệu quả, hacker có thể sử dụng những công cụ hổ trợ cho việc truy tìm mật khẩu một cách tự động. Một cách hiệu quả hơn để phá mật khẩu là truy cập vào các tập tin mật khẩu trên hệ thống. Hầu hết các mật khẩu được mã hóa để lưu trữ trong hệ thống. Trong lúc đăng nhập vào hệ thống, password do người dùng nhập vào thường được mã hóa bằng các thuật toán và sau đó so sánh với password được lưu trong file. Một hacker có thể cố gắng truy cập vào server để lấy file, bằng các thuật toán thay vì cố gắng đoán hoặc nếu không xác định được password. Nếu hacker thành công, họ có thể giải mã password lưu trữ trên server. Mật khẩu được lưu trong file SAM trên Windows và trong file Shadow trên Linux Hacking Tools Giới thiệu một số phần mềm dò tìm password. Hacker có thể tự động đoán mật khẩu trong các phiên bản của NetBIOS. Hacker quét qua nhiều địa chỉ IP trên các hệ thống chia sẽ và thường tấn công bằng các công cụ thủ công. NTInfoScan là một máy quét an ninh. Quét tất cả các lỗ hỗng tạo ra một báo cáo dựa vào các vấn đề an ninh được tìm thấy trên máy đích và một số thông tin khác. LophtCrack là phần mềm khôi phục mật khẩu và các gói phần mềm được phân phối bởi công ty @stake software, nhưng bây giờ đã thuộc sở hữu của Symantec. Đây là phần mềm chặn các gói tin trên mạng và nắm bắt các phiên đăng nhập cá nhân. LophtCrack chứa từ điển hành động và khả năng tấn công lại. John the ripper là một công cụ dòng lệnh được thiết kế để crack mật khẩu cả Unix và NT. Các mật khẩu phân biệt trường hợp dạng chữ và có thể không thành công cho mật khẩu hỗn hợp. Kerbcrack bao gồm hai chương trình: kerbsniff và kerbcrack sniffer. Việc lắng nghe kết nối với internet và bắt giữ phiên đăng nhập trong Windows 2000/XP, sử dụng thuật toán Kerberos. Soft này có thể được sử dụng để tìm các mật khẩu từ các tập tin bắt bằng cách tấn công vào hệ thống. Bẻ Khóa Password Windows 2000 Tài khoản được lưu trong file gồm usernames và password đã mã hóa. Nó nằm ở vị trí theo đường dẫn: Windows\system32\config. Đây là file đã khóa, khi hệ thống đang chạy. Hacker không thể sao chép file khi hệ thống đang khởi động. Một lựa chọn cho việc sao chép tập tin này là khởi động từ
  16. dos hoặc trong linux thì khởi động từ CD, hoặc sao chép từ thư mục repair. Nếu một quản trị viên hệ thống sử dụng các tính năng RDISK của Windows để sao lưu hệ thống, sau đó một bản sao của tập tin nén được gọi là SAM._ được tạo ra trong C:\windows\repair. Để mở file, bạn sử dụng lệnh sau tại dấu nhắc lệnh. C:>expand sam._sam Sau đó tập tin không còn được nén, các kiểu tấn công dictionary, hybrid, or brute-force có thể được áp dụng để khai thác file SAM. Hacking Tools Win32CreateLocalAdminUser: là chương trình tạo người dùng mới với username và password là X và thêm người dùng vào nhóm quản trị viên. Phần mềm này là một dự án của Metasploits và có thể đưa vào thư viện netframwork của window. Offline NT Password Resetter là phương thức đặt lại password của người quản trị hệ thống khi hệ thống không khởi động được window. Đa số các phương pháp khởi động hệ điều hành linux bằng CD với phân vùng là NTFS mà hệ điều hành không có password bảo vệ, nên có thể thay đổi password . Kỹ Thuật Tấn Công Chuyển Hướng Một hướng khác để khám phá mật khẩu trên mạng là chuyển hướng đăng nhập của máy chủ, làm chặn gửi tin nhắn đến máy khách, mà gửi password đến cho hacker. Để làm được điều này hacker phải gửi những phản hồi xác thực từ server và lừa nạn nhân vào cửa sổ xác thực của kẻ tấn công. Một kỹ thuật phổ biến là gửi đến nạn nhân một email với một liên kết lừa đảo, khi liên kết được click, thì người dùng vô tìn đã gửi thông tin của họ qua mạng. Chuyển hướng SMB (Server Message Block) Một số phần mềm có thể tự động thực hiện chuyển hướng. SMBRelay là phần mềm có thể capture lại tên đăng nhập và mật khẩu mã hóa. Đây có thể gọi là phần mềm trung gian của kẻ tấn công. SMBRelay2 là phần mềm giống SMBRelay nhưng dùng tên NetBIOS của địa chỉ IP để ghi lại tên đăng nhập và mật khẩu. pwdump2 là chương trình ghi lại chính xác mật khẩu đã mã hóa ở trong file của hệ thông window. Mật khẩu chính xác có thể chạy cùng với chương trình bẻ password Lophtcrack. samdump là một chương trình để giải mã mật khẩu đã mã hóa từ một tập tin SAM.
  17. c2MYAZZ là một chương trình phần mềm gián điệp làm cho các cửa sổ khách hàng gửi mật khẩu dưới dạng văn bản rõ ràng. Nó sẽ hiển thị tên người dùng và mật khẩu của họ như là người sử dụng gắn với tài nguyên máy chủ . Tấn Công SMB Relay MITM & Biện Pháp Đối Phó Tấn Công SMB Relay MITM là khi kẻ tấn công cài đặt lừa máy chủ với địa chỉ nào đó (Relay Address). Khi client là nạn nhân (victim client) kết nối tới máy chủ lừa đảo, các MITM server chặn phiên lại, mã hóa password, và chuyển kết nối tới máy chủ nạn nhân. Hình 8. 8: SMB relay MITM attack Biện pháp đối phó bao gồm các cấu hình trong windows 2000 dùng SMB. Để mã hóa khối thông tin liên lạc. Thiết lập này được tìm thấy trong đường dẫn Security Policies/Security Options. Hacking Tools SMBGrind là phần mềm làm tăng tốc độ làm việc bằng cách loại bỏ bớt các trùng lắp và cung cấp các tiện ích cho người sử dụng mà người dùng không cần chỉnh sửa bằng cách thủ công SMBDie là công cụ xử lý sự cố máy tính chạy window 2000/xp/NT bằng cách gửi các yêu cầu thiết kế đặc biệt SMB.
  18. NBTdeputy là một chương trình có thể đăng ký một tên máy tính NetBIOS trên mạng và ứng phó với NetBIOS thông qua yêu cầu TCP IP. Tên truy vấn của nó được đơn giản hoá. Giúp việc sử dụng các SMBRelay có thể được gọi bằng tên máy tính thay vì địa chỉ ip. Tấn Công NetBIOS Dos Tấn công NetBIOS Denial of Service (DoS) bằng cách gửi bản tin NetBIOS Name Release đến dịch vụ NetBIOS Name Service trên hệ thống mục tiêu chạy hệ điều hành Windows và ngay lập tức hệ thống quá tải, không đáp ứng được các yêu cầu người dùng nữa. Là cách tấn công bằng cách gửi các thông điệp từ chối mày chủ. Các công cụ của máy có thể đặt tên lại cho cuoc tấn công . Do đó cuộc tấn công chủ yểu từ phía mày khách hàng .Tạo ra một mạng lưới tấn công dos rộng lớn . Hacking Tools NBName là công cụ có thể disable toàn bộ mạng LAN và ngăn chặn các máy trong hệ thống của chúng. Các nút trên một mạng Net-BIOS bị nhiễm, mà chúng lại cùng trên môi trường mạng nên chúng nghĩ rằng tên của chúng đã sẵn sàng sử dụng bởi một máy tính khác. 4. Biện Pháp Đối Phó Với Crack Password 1. Password quan trọng nhất là phải thực hiện nhiệm vụ bảo vệ. Password phải bao gồm từ 8-12 ký tự hoặc chữ số. Độ dài của mật khẩu đã được bàn tới ở phần trước. 2. Để bảo vệ các thuật toán mã hóa cho các mật khẩu được lưu trữ trên máy chủ, bạn phải có cơ thể cô lập và bảo vệ máy chủ. Người quản trị hệ thống có thể sử dụng tiện ích Syskey trong các cửa sổ để bảo vệ mật khẩu được lưu trữ trên ổ cứng máy chủ. Nhật ký máy chủ cũng nên được theo dõi cho các cuộc tấn công brute-force trên các tài khoản người dùng. 3. Một viên quản trị hệ thống có thể thực hiện các biện pháp phòng ngừa bảo mật sau để giảm những rủi do cho mật khẩu của người quản trị cũng như người dùng. o Đừng bao giờ để một password mặc định o Đừng bào giờ dùng password ở trong từ điển o Không nên dùng password liên quan tới tên host ,tên miền ,hoặc bất kỳ cái gì mà hacker dễ đoán được. o Không nên dùng password liên quan tới ngày kỳ nghỉ của bạn, vật nuôi, thân nhân hoặc ngày sinh nhật. o Dùng một từ có nhiều hơn 21 ký tự trong từ điển để làm password.
  19. Thời Hạn Mật Khẩu Khi mật khẩu đã hết hạn sau một khoảng thời gian thì buộc người dùng phải thay đổi mật khẩu. Nếu mật khẩu được thiết lập thời hạn quá ngắn, có thể là người dùng sẽ quên mật khẩu hiện tại, kết quả là người quản trị hệ thống sẽ phải thiết lập lại password thường xuyên. Một trường hợp khác là nếu password cho phép người dùng thiết lập thời hạn quá dài thì mức độ an toàn sẽ bị tổn thương. Một lời đề nghị là password nên thay đổi trong khoảng 30 ngày. Ngoài ra, cũng đề nghị là không cho phép người dùng dùng lại password đó 3 lần. Theo Dõi Người Dùng Đăng Nhập Vào Hệ Thống Người quản trị hệ thống phải theo dõi toàn bộ sự thâm nhập hệ thống của hacker, trước khi mà họ xâm nhập hoặc là họ đang xâm nhập. Nói chung, vài lần thất bại sẽ được lưu lại trong hệ thống, trước khi một cuộc tấn công xâm nhập thành công hay phá được mật khẩu. Nhật ký sự an toàn tốt đến mức nào là do người quản trị hệ thống, người phải theo dõi quá trình đăng nhập. Công cụ tìm kiếm VisuaLast hỗ trợ người người quản trị mạng giải mã và phân tích trong file được mã hóa an toàn. Visualast cung cấp một cái nhìn toàn bộ giúp người quản trị có cái nhìn toàn bộ và đánh giá chính xác, hiệu quả. Chương trình cho phép người quản trị xem và báo cáo cá nhân về quá trình đăng nhập và đăng xuất. Nó ghi lại sự kiện chính xác trên từng trang, và là tài liệu vô giá cho các nhà phân tích an ninh. Sự kiên này được lưu theo đường dẫn c:\windows\system32\config\sec.evt. Đây là đường dẫn chứa dấu vết của kẻ tấn công. Phần 2: Escalating Privileges Escalating Privileges (Kỹ Thuật Leo Thang Đặc Quyền) Leo thang đặc quyền là bước thứ ba trong chu trình Hacking System, leo thang đặc quyền về cơ bản có nghĩa là thêm nhiều quyền hơn hoặc cho phép một tài khoản người dùng thêm quyền, leo thang đặc quyền làm cho một tài khoản người dùng có quyền như là tài khoản quản trị. Nói chung, các tài khoản quản trị viên có yêu cầu mật khẩu nghiêm ngặt hơn, và mật khẩu của họ được bảo vệ chặt chẽ hơn. Nếu không thể tìm thấy một tên người dùng và mật khẩu của một tài khoản với quyền quản trị viên, một hacker có thể chọn sử dụng một tài khoản với quyền thấp hơn. Tại trường hợp này, các hacker sau đó phải leo thang đặc quyền để có nhiều quyền như quyền của quản trị.
  20. Cái này được thực hiện bằng cách nắm lấy quyền truy cập bằng cách sử dụng một tài khoản người dùng không phải là quản trị viên. Thường bằng cách thu thập các tên người dùng và mật khẩu thông qua một bước trung gian để gia tăng các đặc quyền trên tài khoản với mức độ quản trị viên. Một khi hacker đã có một tài khoản người dùng hợp lệ và mật khẩu, các bước tiếp theo là để thực thi các ứng dụng nói chung hacker cần phải có một tài khoản có quyền truy cập cấp quản trị viên để cài đặt chương trình. Đó là lý do tại sao leo thang đặc quyền là rất quan trọng. Trong các phần kế tiếp , chúng tôi sẽ xem những gì hacker có thể làm với hệ thống của bạn một khi họ có quyền quản trị. Hacking Tools Getadmin.exe là một chương trình nhỏ nó có thể thêm một người dùng vào nhóm Local Administrator. Một vài kernel NT cấp thấp, thường xuyên truy cập để cho phép quá trình chạy. Một đăng nhập vào giao diện điều khiển máy chủ là cần thiết để thực hiện chương trình. Getadmin.exe được chạy từ dòng lệnh và chỉ hoạt động trên Win NT 4.0 Service Pack 3. Tiện ích HK.exe để lộ ra kẽ hở trong giao thức gọi hàm cục bộ (Local Procedure Call) của Windows NT. Một người dùng có thể là không phải người quản trì có thể leo thang vào nhóm quản trị viên bằng cách sử dụng công cụ này. Phần 3: Executing Applications Một khi hacker đã có thể truy cập tài khoản với quyền quản trị, điều tiếp theo cần làm là thực thi các ứng dụng trên hệ thống đích. Mục đích của việc thực thi ứng dụng có thể cài đặt một cửa sau trên hệ thống, cài đặt một keylogger để thu thập thông tin bí mật, sao chép các tập tin, hoặc chỉ gây thiệt hại cơ bản cho hệ thống, bất cứ điều gì hacker muốn làm trên hệ thống. Một khi hacker có thể thực thi các ứng dụng, hệ thống phụ thuộc vào sự kiểm soát của hacker. Hacking tools PsExec là một chương trình kết nối vào và thực thi các tập tin trên hệ thống từ xa. Phần mềm không cần phải được cài đặt trên hệ thống từ xa. Remoxec thực thi một chương trình bằng cách sử dụng dịch vụ RPC (Task Scheduler) hoặc WMI (Windows Management Instrumentation). Administrators với mật khẩu rỗng hay yếu
  21. có thể khai thác thông qua lịch trình công việc (Task Scheduler - 1025/tcp) hoặc chế độ phân phối thành phần đối tượng (Distributed Component Object Mode; 135/tcp). 1. Buffer Overflows Hacker cố gắng khai thác một lỗ hổng trong mã ứng dụng (Application). Về bản chất, cuộc tấn công tràn bộ đệm gửi quá nhiều thông tin cho một biến nào đó trong ứng dụng, có thể gây ra lỗi ứng dụng. Hầu hết các lần, ứng dụng không biết hành động tiếp theo bởi vì nó được ghi đè bằng các dữ liệu bị tràn. Vì thế nó hoặc thực thi các lệnh trong các dữ liệu bị tràn hoặc giảm trong một dấu nhắc lệnh để cho phép người dùng nhập lệnh tiếp theo này. Dấu nhắc lệnh (command prompt hoặc shell) là chìa khóa cho hacker có thể được sử dụng để thực thi các ứng dụng khác. Chuyên đề về Buffer Overflows sẽ được thảo luận chi tiết trong chương 19: Buffer Overflows 2. Rootkits RootKits: phần mềm dán điệp Rootkit là một loại chương trình thường được sử dụng để che dấu các tiện ích trên hệ thống bị xâm nhập. Rootkit bao gồm cái gọi là back doors, nó giúp cho kẻ tấn công đó truy cập vào hệ thống sẽ dễ dàng hơn trong lần sau. Ví dụ, các rootkit có thể ẩn một ứng dụng, ứng dụng này có thể sinh ra một lệnh kết nối vào một cổng mạng cụ thể trên hệ thống. Back door cho phép các quá trình bắt đầu bởi một người không có đặc quyên, dùng để thực hiện chức năng thường dành cho các quản trị viên. Rootkit thường xuyên được sử dụng để cho phép lập trình viên ra rootkit có thể xem và truy cập vào tên người dùng và thông tin đăng nhập trên các trang site có yêu cầu họ. Khái niệm Site ở đây không phải là website, mà là một miền (domain) trong hệ thống các máy tính. Một số loại rootkit thường gặp: Kernel-level rootkits: Rootkit ở cấp độ Kernel thường thêm hoặc thay thế một vài thành phần của nhân hệ thống, thay bằng mã được sửa đổi để giúp che giấu một chương trình trên hệ thống máy tính. Điều này thường được thực hiện bằng cách thêm mã mới cho nhân hệ thống thông qua một thiết bị ổ đĩa có khả năng nạp mô-đun, chẳng hạn như các kernel mô-đun có thể nạp được trong linux hoặc các thiết bị điều khiển trong Microsoft Windows. Rootkit đặc biệt nguy hiểm bởi vì nó có thể khó phát hiện mà không có phần mềm phù hợp.
  22. Library-level rootkits: Rootkit ở cấp độ thư viện thường chắp vá, sữa chữa, hoặc thay thế hệ thống. Một số phiên bản có thể giấu thông tin tùy theo mục đích của hacker. Application-level rootkits: Rootkit ở cấp ứng dụng thì có thể thay thế những chương trình ứng dụng giống trojan độc hại, hoặc họ có thể thay đổi hành vi của các ứng dụng hiện có bằng cách sử dụng các móc (hook), các bản vá lỗi (patch), mã độc hại (injected code), hoặc các phương tiện khác. Trong các phần sau sẽ thảo luận quá trình lây nhiễm của rootkit cho một hệ thống . Triển khai Rootkits trên Windows 2000 & XP Trong hệ điều hành Window NT/2000 thì rookit được xây dựng như một trình điều khiển ở chế độ kernel của driver, có thể được tự động nạp trong chế độ runtime. Rootkit có thể chạy với đặc quyền hệ thống (system privileges ) trong NT Kernel. Do đó, nó đã truy cập vào tất cả các nguồn tài nguyên của hệ điều hành. Các rootkit cũng có thể ẩn các quy trình, ẩn các tập tin, ẩn các mục đăng ký, tổ hợp phím tắt trên hệ thống, giao diện điều khiển, phát hành gián đoạn từng bước để gây ra một màn hình màu xanh của sự chết chốc (death) và chuyển các tập tin EXE. Rootkit này có chứa một trình điều khiển hoạt động ở chế độ kernel (kernel mode device driver) có tên gọi là _root_.sys và khởi chạy chương trình có tên là DEPLOY.EXE. Sau khi đạt được quyền truy cập vào hệ thống, chúng copy file -root-.sys và DEPLOY.EXE thành nhiều file vào hệ thống và thực thi file DEPLOY.EXE. Sau đó sẽ cài đặt trình điều khiển thiết bị rootkit và kẻ tấn công bắt đầu xóa DEPLOY.EXE từ các máy tính mục tiêu. Những kẻ tấn công sau đó có thể dừng lại và khởi động lại các rootkit bằng cách sử dụng lệnh net stop _root_and _root_ và các tập tin _root_.sys không còn xuất hiện trong danh sách thư mục. Rootkit chặn không cho hệ thống gọi tập tin trong danh sách và giấu tất cả các file bắt đầu với _root_ . Trong hệ điều hành, có hai chế độ hoạt động là usermode và kernel mode. Với Kernel mode, các trình ứng dụng có toàn quyền truy cập vùng nhớ của RAM, các chỉ lệnh CPU nói chung là toàn quyền. Rootkit được nhúng vào giao thức TCP/IP Một tính năng mới của rootkit trong window NT/2000 là nó hoạt động bằng cách xác định tình trạng kết nối dựa trên các dữ liệu trong gói dữ liệu đến (incoming). Rootkit có một địa
  23. chỉ IP cố định mà nó sẽ trả lời. Rootkit sử dụng các kết nối Ethernet qua hệ thống card mạng, vì thế nó rất mạnh mẽ. Một hacker có thể kêt nối đến port bất kỳ trên hệ thống. Ngoài ra, nó cho phép nhiều người có thể đăng nhập cùng một lúc. Phòng chống Rootkit Tất cả các rootkit truy cập hệ thống đích có quyền giống như quản trị viên (administrator), do đó, bảo mật mật khẩu là rất quan trọng. Nếu bạn phát hiện một rootkit, lời khuyên rằng bạn nên sao lưu dữ liệu quan trọng và cài đặt lại hệ điều hành và các ứng dụng từ một nguồn đáng tin cậy. Các quản trị viên cũng nên giữ sẵn một nguồn đáng tin cậy để cài đặt và phục hồi tự động. Biện pháp đối phó khác là sử dụng thuật toán mã hóa MD5, checksum MD5 của một tập tin là một giá trị 128-bit, nó giống như là dấu vân tay tập tin. Thuật toán này được thiết kế để phát hiện sự thay đổi, ngay cả một chút trong tập tin dữ liệu, để kiểm tra các nguyên nhân khác nhau. Thuật toán này có tính năng rất hữu ích để so sánh các tập tin và đảm bảo tính toàn vẹn của nó. Một tính năng hay là kiểm tra chiều dài cố định, bất kể kích thước của tập tin nguồn là như thế nào. Việc tổng kiểm tra MD5 đảm bảo một file đã không thay đổi này có thể hữu ích trong việc kiểm tra tính toàn vẹn file nếu rootkit đã được tìm thấy trên hệ thống. Các công cụ như Tripwire được thực hiện để kiểm tra MD5, để xác định các tập tin có bị ảnh hưởng bởi rootkit hay không. Countermeasure Tools Tripwire là một chương trình kiểm tra tính toàn vẹn hệ thống tập tin hệ điều hành Unix, Linux, thêm vào kiểm tra mật mã một hoặc nhiều nội dung trong mỗi thư mục và tập tin. Tripwire có cơ sở dữ liệu chứa thông tin cũng cho phép bạn xác minh, cho phép truy cập và cài đặt chế độ tập tin, tên người dùng chủ sở hữu tập tin, ngày tháng và thời gian tập tin đã được truy cập lần cuối, và sửa đổi cuối. 3. Keyloggers and Other Spyware Nếu tất cả những nỗ lực để thu thập mật khẩu không thành công, thì keylogger là công cụ lựa chọn cho các hacker. Được thực hiện như là phần mềm được cài đặt trên máy tính hoặc là phần cứng gắn vào máy tính. Keylogger là các phần mềm ẩn, ngồi giữa phần cứng (bàn phím) và hệ điều hành, để họ có thể ghi lại mọi phím tắt. Keylogger phần mềm có thể phá hoại hệ thống như Trojans hoặc viruses.
  24. Keylogger là phần mềm gián điệp có dung lượng nhỏ, giúp kết nối các bàn phím máy tính và lưu tất cả các thao tác phím vào một file. Hacker có thể cài thêm tính năng là tự động gửi nội dung file đó đến máy chủ của hacker. Đối vối kiểu keylogger cứng, có một thiết bị, giống usb, được gắn vào máy tính. Quá trình thao tác phím được ghi lại trong usb đó. Để làm được điều này thì một hacker phải có quyền truy cập vật lý vào hệ thống. Keylogger cứng thường được cài ở các điềm internet công cộng có ý đồ xấu. Do đó khi truy cập net tại nơi công cộng, bạn nên quan sát kỹ lưỡng các thiết bị bất thường được cấm vào máy tính. Hacking Tools Spector là phần mềm gián điệp ghi lại mọi điều từ hệ thống nào đó trên mạng Internet, giống như một camera giám sát tự động. Spector có hàng trăm bức ảnh chụp mỗi giờ của bất cứ thứ gì trên màn hình máy tính và lưu những bức ảnh chụp ở một vị trí ẩn trên ổ đĩa cứng của hệ thống. Spector có thể được phát hiện và loại bỏ bở phần mềm chống Spector. eBlaster là phần mềm gián điệp internet để chụp các email gửi đến và gửi đi, và ngay lập tức chuyển chúng đến một địa chỉ email. Eblaster cũng có thể chụp cả hai mặt của một cuộc hội thoại nhắn tin tức thời (Instant Messenger), thực hiện tổ hợp phím đăng nhập và các trang web truy cập thường xuyên. Spyanywhere là một công cụ cho phép bạn xem các hoạt động hệ thống và hành động của người sử dụng, tắt/khởi động lại máy, khóa/đóng băng, và ngay cả trình duyệt gỡ bỏ tập tin hệ thống. Spyanywhere cho phép bạn kiểm soát chương trình mở và đóng cửa sổ trên hệ thống từ xa và xem lịch sử internet và các thông tin liên quan. Kkeylogger là một phần mềm gián điệp hiệu suất cao, trình điều khiển thiết bị ảo, chạy âm thầm ở mức thấp nhất của hệ điều hành Windows 95/98/ME. Tất cả các tổ hợp phím được ghi lại trong một tập tin. Email keylogger là phần mềm ghi lại tất cả các email được gửi và nhận trên một hệ thống. Mục tiêu các hacker là có thể xem người gửi, người nhận, chủ đề, và thời gian/ngày . nội dung email và bất kỳ file đính kèm cũng được ghi lại.
  25. Phần 4: Hiding Files Một hacker có thể muốn che dấu các tập tin trên một hệ thống, để ngăn chặn bị phát hiện, sau đó có thể được dùng để khởi động một cuộc tấn công khác trên hệ thống. Có hai cách để ẩn các tập tin trong Windows. Đầu tiên là sử dụng lệnh attrib. Để ẩn một tập tin với lệnh attrib, gõ như sau tại dấu nhắc lệnh: attrib +h [file/directory] Cách thứ hai để ẩn một tập tin trong Windows là với luồng dữ liệu xen kẽ NTFS (alternate data streaming - ADS). 1. NTFS File Streaming NTFS sử dụng bởi Windows NT, 2000, và XP có một tính năng gọi là ADS cho phép dữ liệu được lưu trữ trong các tập tin liên kết ẩn một cách bình thường, có thể nhìn thấy được tập tin. Streams không giới hạn về kích thước, hơn nữa một stream có thể liên kết đến một file bình thường. Để tạo và kiểm tra NTFS file stream, ta thực hiện các bước sau: 1. Tại dòng lệnh, nhập vào notepad test.txt 2. Đặt một số dữ liệu trong tập tin, lưu tập tin, và đóng notepad 3. Tại dòng lệnh, nhập dir test.txt và lưu ý kích thước tập tin 4. Tại dòng lệnh, nhập vào notepad test.txt:hidden.txt thay đổi một số nội dung vào Notepad, lưu các tập tin, và đóng nó lại. 5. Kiểm tra kích thước tập tin lại (giống như ở bước 3). 6. Mở lại test.txt. bạn chỉ nhìn thấy những dữ liệu ban đầu. 7. Nhập type test.txt:hidden.txt tại dòng lệnh một thông báo lỗi được hiển thị. “The filename, directory name, or volume label syntax is incorrect.” Hacking Tools Makestrm.exe là một tiện ích chuyển dữ liệu từ một tập tin vào một tập tin liên kết ADS và thay thế liên kết với các tập tin ban đầu. NTFS File Streaming Countermeasures Để xóa một stream file, đầu tiên là copy nó đến phân vùng FAT, và sau đó cpoy nó trởvào phân vùng NTFS. Stream bị mất khi tập tin được chuyển đến phân vùng FAT, vì nó có một tính năng của phân vùng NTFS và do đó chỉ tồn tại trên một phân vùng NTFS.
  26. Countermeasure Tools Bạn có thể sử dụng LNS.exe để phát hiện ra Stream. LNS báo cáo sự tồn tại và vị trí của những file chứa dữ liệu stream. 2. Steganography Technologies Steganography là quá trình giấu dữ liệu trong các loại dữ liệu khác như hình ảnh hay tập tin văn bản. Các phương pháp phổ biến nhất của dữ liệu ẩn trong các tập tin là sử dụng hình ảnh đồ họa như là nơi để cất giấu. Kẻ tấn công có thể nhúng các thông tin trong một tập tin hình ảnh bằng cách sử dụng steganography. Các hacker có thể ẩn các chỉ dẫn thực hiện một quả bom, số bí mật của tài khoản ngân hàng Hành động bất kỳ có thể được ẩn trong hình ảnh. Đối với file hình ảnh JGP, có một thuật toán gọi là Disrete Sosine Transform (DCT) để mã hóa, nén thêm dữ liệu ẩn vào trong file. Thuật toán này tính bằng công thức như sau: Hacking Tools 1. Imagehide là một chương trình steganography, nó giấu số lượng lớn văn bản trong hình ảnh. Ngay cả sau khi thêm dữ liệu,vẫn không có sự gia tăng kích thước hình ảnh, hình ảnh trông giống như trong một chương trình đồ họa bình thường. Nó nạp và lưu các tập tin và do đó là có thể tránh được nghe lén. 2. Blindside là một ứng dụng steganography mà giấu thông tin bên trong ảnh BMP (bitmap). Đó là một tiện ích dòng lệnh.
  27. 3. MP3stego giấu thông tin trong file mp3 trong quá trình nén. Dữ liệu được nén, mã hóa, và chúng ẩn trong các dòng bit MP3. 4. Snow là một chương trình whitespace steganography có nghĩa là che giấu thông điệp trong ASCII text, bằng cách phụ thêm các khoảng trắng ở cuối file. Vì spaces and tabs không thể nhìn thấy ở người xem văn bản. Nếu được sử dụng một thuật toán mã hóa, tin nhắn không thể đọc ngay cả khi nó bị phát hiện. 5. Camera/shy làm việc với Window và trình duyệt Internet Explorer, cho phép người dùng chia sẻ tìm kiểm hoặc thông tin nhạy cảm được lưu giữ trong một hình ảnh GIF thường. 6. Stealth là một công cụ lọc, cho các tập tin PGP. Nó loại bỏ thông tin nhận dạng từ tiêu đề, sau đó các tập tin có thể được sử dụng cho steganography. Chống lại Steganography Steganography có thể được phát hiện bởi một số chương trình, mặc dù làm như vậy là khó khăn. Bướcđầu tiên trong việc phát hiện là để xác định vị trí các tập tin với các văn bản ẩn, có thể được thực hiện bằng cách phân tích các mẫu trong các hình ảnh và thay đổi bảng màu. Countermeasure Tools Stegdetect là một công cụ tự động để phát hiện nội dung steganographic trong hình ảnh. Dskprobe là một công cụ trên đĩa CD cài đặt Windows 2000. Nó là quét đĩa cứng ở cấp độ thấp có thể phát hiện steganography. Phần 5: Cover Your Tracks & Erase Evidence Cover Your Tracks & Erase Evidence: Che dấu thông tin và xóa bỏ dấu vết Một khi kẻ xâm nhập thành công, đã đạt được quyền truy cập quản trị viên trên một hệ thống, cố gắng để che dấu vết của chúng để ngăn chặn bị phát hiện. Một hacker cũng có thể cố gắng để loại bỏ các bằng chứng hoặc các hoạt động của họ trên hệ thống, để ngăn ngừa truy tìm danh tính hoặc vị trí của cơ quan hacker. Xóa bất kỳ thông báo lỗi hoặc các sự kiện an ninh đã được lưu lại, để tránh phát hiện.
  28. Trong các phần sau đây, chúng tôi sẽ xem xét việc vô hiệu hóa kiểm toán (auditing) và xóa bỏ các bản ghi sự kiện (event log), đó là hai phương pháp được sử dụng bởi hacker để bao bọc dấu vết và tránh bị phát hiện. Auditing là tính năng ghi lại Event Log. Windows Event Viewer là chương trình dùng để quản lý Auditing trên windows. 1. Vô hiệu hóa Auditing Những việc làm đầu tiên của kẻ xâm nhập sau khi giành được quyền quản trị là vô hiệu hóa auditing. Auditing trong Windows ghi lại tất cả các sự kiện nhất định Windows Event Viewer. Sự kiện có thể bao gồm đăng nhập vào hệ thống, một ứng dụng, hoặc một sự kiện. Một quản trị viên có thể chọn mức độ ghi nhật ký trên hệ thống. Hacker cần xác định mức độ ghi nhật ký để xem liệu họ cần làm gì để xóa những dấu vết trên hệ thống. Hacking tools auditPol là một công cụ có trong bộ Win NT dành cho các quản trị tài nguyên hệ thống. Công cụ này có thể vô hiệu hóa hoặc kích hoạt tính năng kiểm toán từ cửa sổ dòng lệnh. Nó cũng có thể được sử dụng để xác định mức độ ghi nhật ký được thực hiện bởi một quản trị viên hệ thống. 2. Xóa Nhật Ký Xự Kiện Những kẻ xâm nhập có thể dễ dàng xóa bỏ các bản ghi bảo mật trong Windows Event Viewer. Một bản ghi sự kiện có chứa một hoặc một vài sự kiện là đáng ngờ bởi vì nó thường cho thấy rằng các sự kiện khác đã bị xóa. Vẫn còn cần thiết để xóa các bản ghi sự kiện sau khi tắt Auditing, bởi vì sử dụng công cụ AuditPol thì vẫn còn sự kiện ghi nhận việc tắt tính năng Auditing. Hacking Tools Một số công dụ để xóa các bản ghi sự kiện, hoặc một hacker có thể thực hiện bằng tay trong Windows Event Viewer. Tiện ích elsave.exe là một công cụ đơn giản để xóa các bản ghi sự kiện. Winzapper là một công cụ mà một kẻ tấn công có thể sử dụng để xóa các bản ghi sự kiện, chọn lọc từ các cửa sổ đăng nhập bảo mật trong năm 2000. Winzapper cũng đảm bảo rằng không có sự kiện bảo mật sẽ được lưu lại trong khi chương trình đang chạy. Evidence Eliminator là một trình xóa dữ liệu trên máy tính Windows. Nó ngăn ngừa
  29. không cho dữ liệu trở thành file ẩn vĩnh viễn trên hệ thống. Nó làm sạch thùng rác, bộ nhớ cache internet, hệ thống tập tin, thư mục temp Evidence Eliminator cũng có thể được hacker sử dụng để loại bỏ các bằng chứng từ một hệ thống sau khi tấn công. Tổng Kết Hiểu được tầm quan trọng của bảo mật mật khẩu. Thực hiện thay đổi mật khẩu trong khoảng thời gian nào đó, mật khẩu như thế nào là mạnh, và các biện pháp bảo mật khác là rất quan trọng đối với an ninh mạng. Biết các loại tấn công mật khẩu khác nhau. Passive online bao gồm sniffing, man-in-the- middle, và replay. Active online bao gồm đoán mật khẩu tự động. Offline attacks bao gồm dictionary, hybrid, và brute force. Nonelectronic bao gồm surfing, keyboard sniffing, và social engineering. Biết làm thế nào để có bằng chứng về activite hacking là loại bỏ bởi những kẻ tấn công. Xoá bản ghi sự kiện và vô hiệu hoá phương pháp kiểm tra của những kẻ tấn công sử dụng để che dấu vết của chúng. Nhận ra rằng các tập tin ẩn là phương tiện được sử dụng để lấy ra những thông tin nhạy cảm. Steganography, NTFS File, và các lệnh attrib là những cách tin tặc có thể ẩn và ăn cắp các tập tin.