Skip to main content

Scanning với Nmap

Bài viết tham khảo từ module Scanning – CEH6 (bản dịch bên uitstudent.com của ICT).

Bài viết nhiều hình ảnh chứ chữ ít lắm, mọi người cố gắng đọc hết nhé. Thân!

-Đầu tiên làm quen với thuật ngữ Three Way Handshake đã : Máy A có IP là 192.168.1.2 có port là 2342 muốn kết nối đến máy chủ có IP là 192.168.1.3 port 80.Máy A sẽ gửi 1 yêu cầu kết nối cho máy chủ B đó.Gọi là SYN.Lúc đó nếu máy chủ B đống ý sẽ gửi lại cho máy A tin xác nhận kết nối.Gọi là SYN/ACK.(làm wen dần các thuật ngữ nha ).Vậy đố các bạn máy A có thực hiện quá trình gì k.À câu trả lời có luôn,đơn giản là máy A sẽ gửi lại cho máy chủ B 1 gói ACK với nội dung "anh và tui đã kết nối rồi".Quá trình đó người ta gọi là Three Way Handshake.


Giới thiệu về Nmap:

NMAP - Network exploration tool and security scanner (network mapper). Đây là 1 công cụ cực kì quan trọng của hacker cũng như những nhà quản trị mạng trên thế giới. Trên nhiều film các hacker cũng sử dụng Nmap (die hard 4 (phim này mình thích lắm, matrix (phim này mình cũng thích luôn)…).
- Nmap là một ứng dụng mã nguồn mở.

- Tính năng nổi bật của Nmap
1. Nmap giúp bạn xem những dịch vụ nào đang chạy trên server,server đó dùng HĐH gì…
2. Chạy được trên nhiều HĐH.
3. Xem tất cả các port.

Download Nmap tại đây link.

Trước hết cần nắm rõ trạng thái của các port đã:
Open: khi scan bạn sẽ bắt gặp trạng thái này, và hầu hết trạng thái này luôn có ở các port 20, 21(FTP) hay 80(HTTP)... Vì nó đượcmở nên attacker sẽ tấn công từ đây, và các nhà quản trị,bảo mật cố gắng bảo vệ chúng bằng cách đặt tường lửa nhằm ngăn cản scan tuy nhiên hiện nay có quá nhiều tool scan xuyên qua cả tường lửa. Các port ở trạng thái này thường được quan tâm trong quá trình scan vì bên cạnh đó chúng còn cung cấp các dịch vụ khác được sử dụng trên hệ thống mạng đó.
Closed: port ở trạng thái này có thể sử dụng dc,nó nhận và trả lời các gói tin thăm dò của Nmap.Tuy nhiên chúng ta sẽ không biết port này đang chạy dịch vụ nào. Các port ổ trạng thái này có thể đc mở lại bởi các nhà quản trị.Để bảo vệ chúng có thể đặt firewall, khi đó chúng sẽ có trạng thái filtered.
Filtered: Nmap sẽ k thể xác định đc port nào đang ở trạng thái Open bởi khi bạn sử dụng Nmap gửi các gói tin đến thăm dò thì nó sẽ dc lọc, dc chặn trước khi tới các port ở trạng thái Filtered này. Cái gì lọc,cái gì chặn nó đây? Firewall đây mà . Những port này có mang lại nhiều thông tin cho attacker hay k,cái đó còn tùy vào cái đầu của attacker đó.
Unfiltered: các port ở trạng thái này có thể sử dụng dc.nhưng Nmap k thể xác định dc nó đóng hay mở.Scan các port Unfiltered với các kiểu scan như Windows Scan, SYN Steath.... cũng có thể giúp giải quyết tìm những port nào dc mở.
Open/Filtered: Nmap sẽ xác định port ở trạng thái Open/Filtered khi k xác định dc port đang ở trạng thái Open hoặc Filtered.Trạng thái này xảy ra với các kiểu scan mà các port ở trạng thái Open k "trả lời" lại.Việc k trả lời lại cũng có thể do các gói tin đã bị chặn--->Filtered .Đó là lí do sao có trạng thái này.Các kiểu scan nhằm hỗ trợ bao gồm UDP Scan, IP Protocol Scan, Null Scan và Xmas Tree Scan.
Closed/Filtered: Trạng thái này được sử dụng khi Nmap không biết chắc được port đó đang Closed hay Filtered. Nó được sử dụng cho quét IPID Idle.

Các tùy chọn của Nmap:

Posted Image

Đầu tiên xin giới thiệu Xmas scan:
Xmas Tree :Attacker kiểm tra giao thức TCP bằng cách gửi các gói "Xmas Tree " đến.Sử durng lệnh nmap -sX <target>

Posted Image

- Ta có thể thấy dc với kiểu Xmas Scan,nếu port mở thì sẽ k có sự phản hồi nào nhưng nếu port đóng thì sẽ có sự phản hồi.Nói thêm là ở kiểu này thì máy A sẽ gửi các gói FIN/URG/PSH đến máy đích cần thăm dò.

- Để biết FIN,URG,PSH là gì vui lòng xem các thuật ngữ ở dưới .

- Synchronize:viết tắt là "SYN",khởi tạo 1 kết nối giữa các host .

- Acknowledgment:viết gọi tắt là "ACK",thiết lập kết nối giữa các host.

- Push:viết tắt là "PSH",hệ thống đang chuyển tiếp dữ liệu từ bộ nhớ đệm

- Urgent:viếti tắt là "URG",đc dùng trong ngữ cảnh các dữ liệu trong gói packet cần đc xử lí trực tíêp,xử lí nhanh.

- Finish:viết tắt là "FIN" ,dc sử dụng nhắm thông báo cho chúng ta biết k có bất cứ việc truyền dữ liệu nào xảy ra từ những hệ thống từ xa tới.

- Reset:viết tắt là "RST",reset kết nối .

Chú ý:
- Xmas Scan chỉ làm việc với HDH đầy đủ giao thức TCP/IP hay RFC 793.
- Xmas Scan chỉ làm việc trong môi trường Windows.
- Với kiểu Scan này có thể xác định gần như là chính xác đc port nào đã đóng.

SYN STEATH/HALF OPEN SCAN

- Đây là kĩ thuật scan bán mở ,tại sao lại gọi như thế,bởi vì nó không hoàn tất cơ chế Three Way Handshake của TCP (xem ở trên).

Một attacker gửi một SYN đến đích, nếu một SYN/ACK được nhận trở lại thì nó hoàn tất việc scan và xác địch port đang mở.

Posted Image

Máy A khi muốn thăm dò máy B sẽ gửi gói SYN tới máy B.Và sau đó máy B trả lời bằng gói SYN/ACK.Máy A lại gửi 1 gói RST đến máy B.Ở đây các bạn phải hiểu máy B là máy đích.Nếu máy B dc nhận gói RST thì port đó sẽ ở trạng thái đóng.Còn tại sao lại gọi là scan bán mở thì xem trên nha.Quá trình cứ lặp đi lặp lại để chắc chắn rằng port đó đã đóng hay mở.

NULL SCAN

- Null Scan cũng giống như kiểu Xmas Tree Scan,chỉ khác là ở kiểu Scan này sẽ k gửi bất cứ gói thăm dò nào nhưng vẫn dc trả lại gói SYN/ACK.Để thực hiện kiểu scan này gõ lệnh nmap -sN <target>.

Posted Image

ACK SCAN

- Kiểu scan này không tập trung vào bên trong hệ thống,k xác định trạng thái port,chỉ thu thập các thông tin về hệ thống xung quanh,bên ngoài firewall.Để thực hiện gõ lệnh nmap -sA <target>.

WINDOWS SCAN

- Kiểu Scan này cũng giống như kiểu ACK Scan nhưng với kiểu này ta có thể xác định đc port nào đc mở.Để thực hiện gõ lệnh nmap -sW <target>.
FIN SCAN

Posted Image

- FIN Scan cũng giống như kiểu Xmas Scan,nhưng ở đây các gói FIN sẽ đc gửi đi thăm dò,nếu k có sự phản hồi nào lại thì port đó đã mở,và ngược lại nếu có sự trả lời bằng góiRST/ACK thì port đó ở trạng thái Closed.

- Tương tự như Xmas Scan và Null Scan thì FIN Scan cũng chỉ thực thi đc trên các HĐH window.

IDLE SCAN

- Khoảng 4 năm về trước ,1 nhà nghiên cứu bảo mật có tên Antirez đã có sáng kiến mới trong việc Scan port sự dụng cơ chế TCP.Và từ đó,Idle Scan đã dc nhiều người biết đến như 1 kĩ thuật scan những port mà các kĩ thuật khác khó xác định dc trạng thái.Trên thực tế attacker có thể scan mục tiêu mà k cần gửi các gói packet đơn lẻ tới các IP đích.

- Đa số các server đều "lắng nghe" trên các TCP port,chẳng hạn như web server trên port 80 hay mail server trên port 25.

- Attacker sẽ gửi các gói SYN tới để xác định trạng thái port.Nếu máy đích phản hồi lại gói SYN/ACK thì bít ngay port đó đang mở,và ngược lại port đó đang đóng.

- Mỗi IP packet được gửi trên mạng có một số duy nhất được gọi là "fragment identification" (gọi là IPID). Với con số này có thể bít attacker đã gửi bao nhiu packet và ở thời điểm nào.Bạn có thể hiểu đơn giản là attacker sử dụng kiểu scan này để tránh bị phát hiện IP.

Posted Image

Bước 1: Attacker chọn 1 "Zombie " và gửi gói tin thăm dò SYN/ACK đến Zombie đó và xem thử IPID là gì.Vậy Zombie là gì?nghiên cứu 1 xíu .Zombie là các đối tượng được lợi dụng trở thành thành phần phát sinh tấn công. Một số trường hợp điển hình như thông qua rootkit hay các thành phần hoạt động đính kèm trong mail, hoặc trang web, ví dụ như sử dụng các file *.jpeg khai thác lỗi của phần mềm xử lý ảnh, các đoạn mã đính kèm theo file flash, hoặc trojan cài đặt theo phishing, hay thông qua việc lây lan worm (mọi người có thể bổ sung hay có 1 định nghĩa khác thì có thể chia sẻ nha).Và có 1 gói RST dc phản hồi,thế là attacker đã biết dc IPID là 31337.

Posted Image

Bước 2: Attacker dùng giả mạo 1 IP Zombie và gửi 1 gói SYN tới webserver(port 80) .Nếu port dc mở,lập tức có sự phản hồi SYN/ACK tới zombie.Zombie lại phản hồi lại mục tiếu gói RST với IPID là 31338.

Posted Image

Bước 3: Attacker gửi thăm dò SYN tới webserver,nếu có 1 phản hồi RST tới zombie ta bít dc port đóng.Còn nếu số IPID lại tăng -->31339 thì port đó mở.

Posted Image



Nmap còn khá nhiều kiểu scan nữa, các bạn tự nghiên cứu tiếp nhé!

Share this with your friends
Loading...