Đăng Nhập

Vui lòng khai báo chính xác tên truy cập và mật khẩu!

Quên mật khẩu?

    Xác định hệ thống bị tấn công bằng các lệnh Windows

      Tony Stark

      Giới tính : Nam

      Tuổi : 31

      Đến từ : Cần thơ

      Ngày Tham gia : 10/01/2012

      Tổng số bài gửi : 750

      #1

       Fri Feb 24, 2012 5:38 pm

      Quản trị mạngCác máy tính
      Windows là những máy tính bị tấn công nhiều nhất. Chính vì vậy mà
      Microsoft đã xây dựng rất nhiều công cụ trong hệ điều hành Windows để
      các quản trị viên và một số người dùng có thể phân tích nhằm xác định
      xem máy tính của họ hiện có bị thỏa hiệp hay không. Trong hướng dẫn gồm
      hai phần này, phần đầu tiên chúng tôi sẽ giới thiệu cho các bạn về 5
      công cụ dòng lệnh hữu dụng trong Windows để thực hiện một hành động phân
      tích đó.

      1. WMIC

      Windows Management Instrumentation Command-line
      (WMIC) không chỉ đơn thuần là một lệnh mà có rất nhiều tính năng khác.
      Công cụ này có một giao diện dòng lệnh cho Windows Management
      Instrumentation API bên trong Windows. WMIC cho phép quản lý người dùng
      truy cập các thông tin chi tiết trên máy tính Windows, gồm có các thuộc
      tính chi tiết của hàng ngàn các thiết lập và đối tượng. WMIC được xây
      dựng bên trong Windows XP Professional, Windows 2003 và Windows Vista.
      Để sử dụng nó, người dùng phải khởi chạy chương trình bằng cách chạy
      lệnh WMIC, theo sau là phần mà người dùng quan tâm (thường được gọi là
      các alias bên trong hệ thống). Cho ví dụ, để biết về các quá trình đang
      chạy trên máy tính, người dùng có thể chạy lệnh:

      C:\> wmic process

      Phần đầu ra của lệnh này có vẻ khá khó đọc vì định
      không được chỉ định. Tuy nhiên với WMIC, đầu ra mà công cụ này cung cấp
      được định dạng hoàn toàn khác, trong đó phần "list full" sẽ hiển thị các thông tin chi tiết cho mỗi lĩnh vực mà người dùng quan tâm, còn phần "list brief"
      sẽ cung cấp một dòng đầu ra cho mỗi một mục báo cáo dưới sạng danh sách
      các mục, chẳng hạn như các quá trình đang chạy, các chương trình tự
      động khởi chạy và những chia sẻ hiện hữu.

      Cho ví dụ, chúng ta có thể quan sát mọi quá trình đang chạy trên máy tính bằng cách chạy lệnh:

      C:\> wmic process list brief

      Lệnh trên sẽ hiển thị tên, ID của quá trình và quyền
      ưu tiên của mỗi quá trình đang chạy cũng như các thuộc tính khác. Để
      nhận thêm các thông tin chi tiết hơn, chạy lệnh:

      C:\> wmic process list full

      Lệnh này sẽ hiển thị tất cả các thông tin chi tiết,
      gồm có đường dẫn của file thực thi có liên kết với quá trình và lệnh
      triệu gọi dòng lệnh của nó. Khi nghiên cứu một máy tính có bị tiêm nhiễm
      hay không, quản trị viên cần phải xem xét từng quá trình để xác định
      xem các quá trình này có hợp lệ trên máy tính hay không, sau đó nghiên
      cứu các quá trình lạ hoặc không mong đợi bằng cách sử dụng các cỗ máy
      tìm kiếm.

      Ngoài các alias về các quá trình, người dùng có thể
      thay thế startup để nhận danh sách các chương trình tự động khởi chạy
      trên máy tính, gồm có các chương trình khởi chạy khi hệ thống khởi động
      hoặc người dùng đăng nhập, đây là những chương trình được định nghĩa bởi
      một auto-start registry key hoặc thư mục:

      C:\> wmic startup list full

      Rất nhiều malware có thể tự động chạy trên máy tính
      bằng cách thêm một mục auto-start bên cạnh các mục hợp lệ khác có bên
      trong các công cụ antivirus hay các chương trình system tray. Người dùng
      có thể quan sát các thiết lập khác trên máy tính với WMIC bằng cách
      thay thế "startup" bằng "QFE" (cụm chữ cái viết tắt cho Quick Fix Engineering) để thấy được mức vá của một hệ thống, bằng "share" để xem danh sách các file chia sẻ trên Windows hoặc bằng "useraccount" để thấy được các thiết lập tài khoản chi tiết của người dùng.

      Một tùy chọn khác bên trong WMIC là khả năng chạy một
      lệnh để thu thập thông tin trên trên một chu kỳ nào đó bằng cách sử
      dụng cú pháp "/every:[N]" sau phần còn lại của lệnh
      WMIC. [N] ở đây là một số nguyên, chỉ thị rằng WMIC sẽ chạy lệnh trên cứ
      [N] giây một lần. Bằng cách đó, người dùng có thể tìm kiếm các thay đổi
      trong các thiết lập của hệ thống theo thời gian, cho phép khảo sát một
      cách kỹ lưỡng đầu ra. Sử dụng chức năng này để kéo toàn bộ các thông tin
      về quá trình trong 5 giây một lần, người dùng có thể chạy:

      C:\> wmic process list brief /every:1

      Nhấn CTRL+C sẽ dừng chu kỳ.

      2. Lệnh net

      Giới thiệu ở trên, WMIC là một lệnh tương đối mới,
      tuy nhiên còn có một số lệnh khác không phải là mới nhưng khá hữu dụng
      đó là lệnh "net". Các quản trị viên có thể sử dụng lệnh này để hiển thị tất cả các thông tin hữu dụng.

      Cho ví dụ, lệnh "net user" sẽ hiển thị tất cả các tài khoản người dùng được định nghĩa nội bộ trên máy tính. Lệnh "net localgroup" sẽ hiển thị các nhóm, lệnh "net localgroup administrators" sẽ hiển thị thành viên của nhóm quản trị viên và lệnh "net start" hiển thị các dịch vụ đang chạy.

      Các hacker thường đưa người dùng vào một hệ thống
      hoặc đặt các tài khoản của họ vào một nhóm quản trị viên, vì vậy chúng
      ta luôn phải kiểm tra đầu ra của các lệnh này để xem liệu hacker đã sửa
      đổi các tài khoản trên máy tính hay chưa. Thêm vào đó, một số hacker có
      thể tạo các dịch vụ xấu trên máy tính, vì vậy người dùng nên cần thận
      với chúng.

      3. Openfiles

      Nhiều quản trị viên Windows không quen với việc sử dụng các lệnh openfiles
      mạnh có trong Windows. Mặc dù vậy, như tên ngụ ý của nó, lệnh này sẽ
      hiển thị tất cả các file được mở trong máy tính, chỉ thị tên quá trình
      đang tương tác với mỗi file. Nó được xây dựng trong các phiên bản
      Windows đời mới, từ XP Pro đến Vista. Giống như lệnh lsof
      phổ biến cho Linux và Unix, nó cũng thể hiện cho các quản trị viên tất
      cả các file đang mở trên máy tính, cung cấp tên quá tình và đường dẫn
      hoàn chỉnh cho mỗi file. Tuy nhiên không giống như lsof, nó không cung cấp nhiều thông tin chi tiết, chẳng hạn như số ID của quá trình, số người dùng hoặc các thông tin khác.

      Xem xét phân vùng thông tin mà nó thu thập được, bạn sẽ không hề ngạc nhiên rằng lệnh openfiles thực sự tiêu hao rất nhiều hiệu suất. Chính vì vậy, thông thường các quá trình có liên quan đến openfiles
      bị tắt mặc định, nghĩa là người dùng không thể kéo bất cứ dữ liệu nào
      từ lệnh này cho tới khi bật nó. Chức năng này có thể được kích hoạt bằng
      cách chạy lệnh:

      C:\> openfiles /local on

      Người dùng sẽ cần phải khởi động lại và khi hệ thống hoạt động trở lại, họ sẽ có thể chạy lệnh openfiles như dưới đây:

      C:\> openfiles /query /v

      Lệnh này sẽ hiển thị đầu ra một cách chi tiết, gồm có
      tài khoản người dùng mà quá trình cho một file mở đang chạy bên trong.
      Từ đó có thể nhận biết được malware gì đã được cài đặt, hoặc tấn công gì
      có thể đang được thực hiện trên máy tính, người dùng nên tìm kiếm các
      file dị thường hoặc các file không mong đợi, đặc biệt các file có liên
      quan đến những người dùng nội bộ không mong đợi trên máy tính.

      Khi kết thúc với lệnh openfiles,
      chức năng tính toán của nó có thể được tắt bỏ và hệ thống sẽ trở lại với
      tình trạng hiệu suất bình thường bằng cách chạy lệnh dưới đây và khởi
      động lại máy tính:

      C:\> openfiles /local off



      4. Netstat

      Xác định hệ thống bị tấn công bằng các lệnh Windows HackerLệnh netstat
      trong Windows có thể hiển thị hành vi mạng, tập trung vào TCP và UDP
      mặc định. Vì malware thường truyền thông trong toàn mạng, nên người dùng
      có thể tìm kiếm các kết nối không bình thường trong đầu ra của netstat,
      chạy lệnh dưới đây:

      C:\> netstat -nao

      Tùy chọn –n sẽ thông báo cho netstat
      hiển thị các số trong đầu ra của nó, trừ tên máy và giao thức mà thay
      vì đó sẽ hiển thị các địa chỉ IP và TCP hoặc số cổng UDP. –a chỉ thị hiển thị tất cả các kết nối và các cổng đang lắng nghe. Tùy chọn –o thông báo cho netstat
      hiển thị số processID của mỗi chương trình đang tương tác với cổng TCP
      hoặc UDP. Nếu thay vì TCP và UDP, bạn chỉ quan tâm đến ICMP, khi đó bạn
      có thể chạy lệnh netstat như dưới đây:

      C:\> netstat –s –p icmp

      Lệnh trên chỉ thị rằng nó sẽ trả về thống kê (-s) của
      giao thức ICMP. Mặc dù không thể hiện nhiều chi tiết bằng TCP và UDP
      nhưng người dùng có thể thấy được liệu máy tính có đang gửi lưu lượng
      ICMP không mong đợi trên mạng hay không. Tuy nhiên một số backdoor và
      một số malware khác có thể truyền thông bằng cách sử dụng tải trọng của
      các thư ICMP Echo.

      Giống như WMIC, lệnh netstat cũng cho phép chúng ta chạy nó theo một chu kỳ lặp đi lặp lại. Tuy nhiên thay vì sử dụng cú pháp "/every:[N]" như WMIC, người dùng chỉ cần thêm sau lệnh triệu gọi netstat
      dấu cách và số nguyên. Như vậy, để liệt kê các cổng TCP và UDP đang sử
      dụng trên máy tính cứ sau 2 giây một lần, người dùng có thể chạy:

      C:\> netstat –na 2

      5. Find

      Hầu hết các lệnh mà chúng tôi đã giới thiệu cho đến
      đây đều hiển thị rất nhiều đầu ra trên màn hình, điều này đôi khi làm
      khó người dùng trong việc quan sát toàn bộ để tìm ra một mục nào đó mà
      họ quan tâm. Tuy nhiên Windows có một công cụ khác có thể giúp bạn khắc
      phục điều này. Người dùng có thể tìm kiếm trong toàn bộ đầu ra của mỗi
      lệnh bằng cách sử dụng lệnh findstrfind trong Windows. Lệnh find sẽ tìm kiếm các chuỗi đơn giản, trong khi đó lệnh findstr
      sẽ hỗ trợ cho các từ ngữ thông thường, một cách phức tạp hơn để phân
      biệt các mẫu tìm kiếm. Do các từ ngữ thông thường được hỗ trợ bởi findstr vượt ra ngoài phạm vi của bài viết này, nên chúng tôi chỉ tập trung vào lệnh find. Mặc định lệnh find sẽ phân biệt giữa chữ hoa và chữ thường, tuy nhiên bằng cách sử dụng tùy chọn /i bạn có thể làm mất đi sự phân biệt này.
      Lệnh find cũng có khả năng đếm. Được triệu gọi với lệnh /c,
      nó sẽ đếm số dòng của đầu ra gồm có chuỗi đã cho. Nếu người dùng muốn
      đếm số lượng dòng trong đầu ra của lệnh để biết được số lượng quá trình
      đang chạy, số lượng mục startup đang hiện diện, hoặc một loạt các hành
      động khác trên máy. Để đếm số dòng đầu ra, người dùng có thể dẫn đầu ra
      của họ qua find /c /v "". Lệnh này sẽ đếm (/c) số dòng trừ dòng trống.

      Lúc này, với lệnh find, người dùng có thể quan sát
      đầu ra của mỗi một lệnh mà chúng tôi đã giới thiệu cho đến đây để tìm ra
      những điều thú vị riêng. Cho ví dụ, để xem thông tin mỗi giây về các
      quá trình cmd.exe đang chạy trên máy tính, bạn hãy đánh:

      C:\> wmic process list brief /every:1 | find "cmd.exe"

      Để đếm số file mở trên máy tính khi openfiles được kích hoạt, bạn chỉ cần đánh:

      C:\> openfiles /query /v | find /c /v ""

      Dù có đếm các mục theo một cách nào đi nữa, các bạn
      cần nhớ trừ đi số dòng được liên kết với header cột. Ví dụ, để xem với
      độ chính xác theo mỗi giây khi cổng TCP 2222 bắt đầu được sử dụng trên
      máy tính, cùng với process ID đang sử dụng trên cổng, chạy:

      C:\> netstat –nao 1 | find "2222"

      Nghiên cứu đầu ra

      Với 5 công cụ này, người dùng có thể xử lý các thông
      tin về cấu hình, trạng thái bảo mật của mỗi một máy tính Windows. Mặc dù
      vậy để sử dụng mỗi lệnh trong việc nhận diện sự thỏa hiệp, người dùng
      cần phải so sánh các thiết lập hiện hành củ máy tính bị nghi ngờ với máy
      tính bình thường.

      Có ba cách có thể thiết lập sự so sánh này. Đầu tiên,
      nếu người dùng là một “thợ săn” malware đã có kinh nghiệm thì anh ta có
      thể nhận biết về những gì đúng và những gì sai với máy tính, nhận ra
      những vấn đề không bình thường dựa trên kinh nghiệm. Cách thứ hai, so
      sánh này có thể được thực hiện với một máy không bị tiêm nhiễm nếu có.
      Nếu không có một máy tính “sạch”, người dùng có thể dựa vào tùy cách thứ
      ba – tìm kiếm các file, tên quá trình, tên file và số cổng cụ thể được
      nhận biết bởi các lệnh này và tìm kiếm chúng online nhằm xác định xem
      chúng có phải là các file thông thường cho máy tính và phần mềm mà nó đã
      cài đặt hay có liên quan tới một số loại malware.

      Trong phần này, chúng tôi đã giới thiệu cho các bạn 5
      lệnh rất mạnh trong Windows. Trong phần tiếp theo của loạt bài này,
      chúng tôi sẽ giới thiệu tiếp cho các bạn 5 lệnh hữu dụng khác từ dòng
      lệnh.