Hướng dẫn dùng nmap để scan Port

Trong bài viết này, mình sẽ hướng dẫn các bạn giải phòng Nmap Basic Port Scans. Bạn có thể truy cập vào phòng đó trên TryHackMe tại đây.

Giải phòng Nmap Basic Port Scans trên TryHackMe

Chúng ta sẽ cùng nhau tìm hiểu cổng nào đang mở và đang nghe, cũng như cổng nào đang đóng.

  • Host – Tương tự, chúng ta cần biết liệu “Chủ sở hữu” có ở nhà hay không vì chúng ta muốn biết nó là “Trực tuyến” hay “Ngoại tuyến”.
  • Port – Khái niệm tương tự như việc “Cửa” mở hay đóng.

Nội dung chính của phòng này:

  1. Quét cổng kết nối TCP
  2. Quét cổng TCP SYN
  3. Quét cổng UDP

Giải phòng Nmap Basic Port Scans trên TryHackMe

Hướng dẫn dùng nmap để scan Port 28

[Câu hỏi 1.1] Khởi chạy AttackBox bằng cách sử dụng nút Start AttackBox. Bạn sẽ khởi chạy các kiểu quét khác nhau với máy ảo mục tiêu để có được kiến ​​thức vững chắc về các kiểu quét cơ bản của Nmap.

Answer: Không cần câu trả lời.

Tương tự như cách địa chỉ IP xác định máy chủ lưu trữ trên mạng, cổng TCP hoặc UDP xác định dịch vụ mạng đang chạy trên máy chủ đó.

  • Dịch vụ mạng được cung cấp bởi một máy chủ tuân theo một giao thức mạng nhất định. Một số ví dụ về tính năng chấm công, trả lời các câu hỏi DNS và phục vụ các trang web.
  • Một cổng thường được liên kết với một dịch vụ bằng cách sử dụng số cổng.
  • Theo mặc định, một máy chủ HTTP sẽ liên kết với cổng TCP 80; hơn nữa, nếu máy chủ HTTP hỗ trợ SSL/TLS, nó sẽ lắng nghe trên cổng TCP 443. (Cổng TCP 80 và 443 là cổng HTTP và HTTPS mặc định)
  • Nếu cần, quản trị viên máy chủ web có thể chọn các số cổng khác nhau.
  • Ngoài ra, không có nhiều hơn một dịch vụ có thể lắng nghe trên bất kỳ cổng TCP hoặc UDP nào cùng một lúc (trên cùng một địa chỉ IP).

Chúng ta có thể chia các cổng thành hai loại:

1) Một cổng mở có nghĩa là một dịch vụ đang lắng nghe trên cổng đó. 
2) Một cổng đóng có nghĩa là không có dịch vụ nào đang nghe trên cổng đó.

Tuy nhiên, trong thực tế, chúng ta phải xem xét đến tác động của tường lửa.

Ví dụ, một cổng có thể đang mở, nhưng các gói tin có thể bị chặn bởi tường lửa. Do đó, Nmap tính đến sáu trạng thái sau:

  1. Open – cho biết rằng một dịch vụ đang lắng nghe trên cổng được chỉ định.
  2. Closed – không có dịch vụ nào đang lắng nghe trên cổng được chỉ định, mặc dù cổng đó có thể truy cập được và không bị chặn bởi tường lửa hoặc các thiết bị/chương trình bảo mật khác.
  3. Filtered – nghĩa là Nmap không thể xác định xem cổng đang mở hay đã đóng vì cổng KHÔNG thể truy cập được. Trạng thái này thường là do tường lửa ngăn Nmap quét cổng đó. Các gói tin của Nmap có thể bị chặn không đến được cổng; cách khác, các gói tin phản hồi bị chặn không thể tiếp cận máy chủ của Nmap.
  4. Unfiltered – điều này có nghĩa là Nmap không thể xác định xem cổng đang mở hay đang đóng, mặc dù cổng có thể truy cập được. Trạng thái này gặp phải khi sử dụng quét ACK -sA.
  5. Open|Filtered – Điều này có nghĩa là Nmap không thể xác định xem cổng đang mở hay được lọc (filtered).
  6. Closed|Filtered – Điều này có nghĩa là Nmap không thể quyết định xem một cổng được đóng hay được lọc (filtered).

[Câu hỏi 2.1] Dịch vụ nào sử dụng cổng UDP 53 theo mặc định?

Answer: DNS

[Câu hỏi 2.2] Dịch vụ nào sử dụng cổng TCP 22 theo mặc định?

Answer: ssh

[Câu hỏi 2.3] Nmap xem xét bao nhiêu trạng thái cổng?

Answer: 6

[Câu hỏi 2.4] Trạng thái cổng nào là thú vị nhất để khám phá khi là một pentester?

Answer: Open

Hướng dẫn dùng nmap để scan Port 29

Nmap hỗ trợ nhiều kiểu quét cổng TCP. Để hiểu sự khác biệt giữa các lần quét cổng này, chúng ta phải kiểm tra TCP header.

  • 24 byte đầu tiên của một đoạn TCP là TCP header.
  • TCP header như được định nghĩa trong RFC 793 được minh họa trong hình bên dưới.

Số cổng được cho là 16 bit, như chúng ta có thể thấy (2 byte). Số thứ tự và số xác nhận nằm ở hàng thứ hai và thứ ba. Mỗi hàng được cung cấp 32 bit (4 byte), với tổng số sáu hàng tổng cộng là 24 byte.

Chúng ta nên đặc biệt chú ý đến các cờ mà Nmap có thể đặt.

Hướng dẫn dùng nmap để scan Port 30

Các cờ TCP đã được đánh dấu bằng màu đỏ. Đặt một bit cờ thành 1 có nghĩa là thay đổi giá trị của nó.

Các cờ TCP header, từ trái sang phải:

  1. URG – Cờ khẩn cấp chỉ ra rằng con trỏ khẩn cấp được gửi là quan trọng. Con trỏ khẩn cấp chỉ ra rằng dữ liệu đến là khẩn cấp và một đoạn TCP với cờ URG sẽ được xử lý ngay lập tức mà không cần phải chờ đợi các đoạn TCP đã gửi trước đó.
  2. ACK – Cờ báo nhận chỉ ra rằng số xác nhận là quan trọng. Nó được sử dụng để xác nhận việc nhận một đoạn TCP.
  3. PSH – Cờ đẩy yêu cầu TCP chuyển dữ liệu đến ứng dụng kịp thời.
  4. RST – Cờ thiết lập lại được sử dụng để thiết lập lại kết nối. Một thiết bị khác, chẳng hạn như tường lửa, có thể gửi nó để phá vỡ kết nối TCP. Cờ này cũng được sử dụng khi dữ liệu được gửi đến máy chủ lưu trữ và không có dịch vụ nào trả lời.
  5. SYN – Cờ đồng bộ được sử dụng để bắt đầu 3-way handshake TCP và đồng bộ số thứ tự với máy chủ khác. Số thứ tự phải được đặt ngẫu nhiên trong quá trình thiết lập kết nối TCP.
  6. 6. FIN – Người gửi không còn dữ liệu để gửi.

[Câu hỏi 3.1] 3 chữ cái nào đại diện cho cờ Reset?

Answer: RST

[Câu hỏi 3.2] Cờ nào cần được đặt khi bạn bắt đầu kết nối TCP (gói đầu tiên của 3-way handshake TCP)?

Answer: SYN

Hướng dẫn dùng nmap để scan Port 31

TCP Connect Scan – Nó hoạt động đơn giản bằng cách thực hiện 3-way handshake TCP.

Về cơ bản, (1) máy khách gửi một gói TCP với cờ SYN và (2) máy chủ phản hồi bằng SYN/ACK nếu cổng đang mở; cuối cùng, máy khách (3) gửi một ACK để hoàn tất quá trình bắt tay 3 bước (3-way handshake).

Hướng dẫn dùng nmap để scan Port 32

Kết nối bị ngắt ngay sau khi trạng thái của nó được xác thực bằng cách gửi RST/ACK. Bạn có thể sử dụng -sT để quét kết nối TCP.

Hướng dẫn dùng nmap để scan Port 33

 

Điều quan trọng cần lưu ý là nếu bạn KHÔNG phải là người dùng có đặc quyền (root hoặc sudoer), thì cách DUY NHẤT để xác định các cổng TCP khả dụng là thực hiện quét kết nối TCP.

Trong ảnh chụp gói Wireshark bên dưới, chúng ta thấy Nmap đang gửi các gói TCP với cờ SYN thành một số cổng, bao gồm 256, 443 và 143.

Nmap sẽ cố gắng kết nối với 1000 cổng phổ biến nhất theo mặc định.

  • Để báo hiệu rằng cổng không được mở, một cổng TCP đã đóng sẽ phản hồi gói SYN với cờ RST/ACK. Khi chúng ta cố gắng bắt đầu 3-way handshake TCP với các cổng đã đóng, mẫu này sẽ được lặp lại.

Hướng dẫn dùng nmap để scan Port 34

Bởi vì cổng 143 đang mở, nó phản hồi bằng SYN/ACK và Nmap đã hoàn thành quá trình 3-way handshake với ACK. (ảnh bên dưới)

Sơ đồ bên dưới minh họa tất cả các gói được gửi và nhận giữa máy chủ Nmap và cổng 143 của hệ thống đích. Ba gói đầu tiên đã hoàn thành quá trình bắt tay 3 chiều (3-way handshake) TCP. Đến gói thứ tư sẽ thất bại vì nó phản hồi bằng gói RST/ACK.

Hướng dẫn dùng nmap để scan Port 35

Ví dụ lệnh sau đây cung cấp một danh sách đầy đủ các cổng đang mở bằng cờ -sT (quét kết nối TCP).

Hướng dẫn dùng nmap để scan Port 36

1) Chúng ta có thể sử dụng -F để kích hoạt chế độ nhanh và giảm số lượng cổng được kiểm tra từ 1000 xuống 100 cổng được sử dụng phổ biến nhất.

2) Tùy chọn -r có thể được sử dụng để quét các cổng theo thứ tự tuần tự thay vì thứ tự ngẫu nhiên. Tùy chọn này rất quan trọng để xác minh xem các cổng có mở nhất quán hay không, chẳng hạn như khi mục tiêu khởi động.

[Câu hỏi 4.1] Khởi chạy VM. Mở AttackBox và thực thi lệnh nmap -sT MACHINE_IP thông qua terminal. Một dịch vụ mới đã được cài đặt trên máy ảo này kể từ lần quét cuối cùng của mình. Số cổng nào đã bị đóng trong quá trình quét ở trên nhưng hiện đang mở trên máy ảo mục tiêu này?

Hướng dẫn dùng nmap để scan Port 37

Answer: 110

[Câu hỏi 4.2] Dự đoán của Nmap về dịch vụ mới được cài đặt là gì?

Hướng dẫn dùng nmap để scan Port 38

Answer: pop3

Hướng dẫn dùng nmap để scan Port 39

Để bắt đầu, quá trình quét này cần người dùng “Đặc quyền (root hoặc sudoer)” để thực thi.

TCP SYN Scan – Cần phải hiểu rằng nó KHÔNG CẦN HOÀN THÀNH 3-WAY-HANDSHAKE TCP và thay vào đó sẽ đóng kết nối khi nó nhận được phản hồi từ máy chủ.

  • Bởi vì kết nối TCP không được thiết lập trong trường hợp này, số lần quét được ghi vào nhật ký được giảm thiểu.

Hướng dẫn dùng nmap để scan Port 40

Ảnh Wireshark sau đây minh họa quá trình quét TCP SYN. Trong trường hợp các cổng TCP bị đóng, nó tương tự như hoạt động quét kết nối TCP.

Hướng dẫn dùng nmap để scan Port 41

Xem qua hai ảnh chụp màn hình để hiểu rõ hơn sự khác biệt giữa hai lần quét.

  1. Chúng ta có thể nhận thấy lưu lượng kết nối TCP scan -sT ở nửa trên của hình sau. Nmap sẽ cần hoàn thành bắt tay 3 chiều TCP trước khi đóng bất kỳ cổng TCP nào đang mở.
  2. Phần dưới của hình ảnh sau đây cho thấy cách quét SYN -sS không yêu cầu hoàn thành bắt tay 3 chiều TCP; thay vào đó, Nmap gửi một gói tin RST ngay lập tức nhận được một gói SYN/ACK.

Hướng dẫn dùng nmap để scan Port 42

TCP SYN scan là chế độ quét mặc định khi sử dụng Nmap với tư cách là người dùng đặc quyền, chẳng hạn như root hoặc sudo, và nó là một tùy chọn rất đáng tin cậy.

  1. Nó phát hiện các cổng mở mà bạn đã phát hiện trước đó bằng cách quét kết nối TCP
  2. Không có kết nối TCP nào được hình thành với đích.

Hướng dẫn dùng nmap để scan Port 43

[Câu hỏi 5.1] Khởi chạy VM. Một số phần mềm máy chủ mới đã được cài đặt kể từ lần cuối chúng tôi quét nó. Trên AttackBox, sử dụng terminal để thực thi nmap -sS 10.10.48.181. Cổng mới mở là gì?

Hướng dẫn dùng nmap để scan Port 44

Answer: 6667

[Câu hỏi 5.2] Dự đoán của Nmap về tên dịch vụ là gì?

Answer: irc

Vì UDP là một giao thức không kết nối, nó không yêu cầu bắt tay để thiết lập kết nối.
Cần lưu ý rằng điều này không đảm bảo rằng một dịch vụ đang nghe trên cổng UDP sẽ phản ứng với các thông báo. Tuy nhiên, nếu gói UDP được gửi đến một cổng không thể truy cập được, thì lỗi không thể truy cập cổng ICMP (type 3, code 3) sẽ được trả về.
Bạn có thể sử dụng tùy chọn -sU để chỉ định quét UDP; ngoài ra, bạn có thể kết hợp nó với một quá trình quét TCP khác.
Sơ đồ dưới đây chỉ ra rằng nếu chúng ta truyền một gói UDP đến một cổng UDP đang mở, chúng ta sẽ không nhận được phản hồi. Do đó, việc gửi một gói UDP đến một cổng đang mở sẽ không tạo ra kết quả nào.
Hướng dẫn dùng nmap để scan Port 46
Tuy nhiên, như được minh họa trong sơ đồ dưới đây, mình sẽ nhận được một gói ICMP với loại 3, không thể truy cập đích và mã 3, không thể truy cập cổng. Nói cách khác, Nmap sẽ báo cáo là các cổng UDP đang mở không nhận được bất kỳ phản hồi nào.
Hướng dẫn dùng nmap để scan Port 47
Chúng ta có thể nhận thấy trong mẫu Wireshark bên dưới rằng mỗi cổng đã đóng sẽ tạo ra một tin nhắn ICMP không thể truy cập được (port unreachable).
Hướng dẫn dùng nmap để scan Port 48
Quét UDP khá hữu ích và mình phát hiện ra rằng cổng 111 đang mở. Mặt khác, Nmap không thể biết cổng UDP 68 đang mở hay được lọc (filtered).
Hướng dẫn dùng nmap để scan Port 49
[Câu hỏi 6.1] Khởi chạy VM. Trên AttackBox, sử dụng terminal để thực thi nmap -sU -F -v MACHINE_IP. Một dịch vụ mới đã được cài đặt kể từ lần quét cuối cùng. Cổng UDP hiện đang mở là gì?
Cờ -F đã được thêm vào để tăng tốc độ quét (quét 100 phổ biến nhất thay vì 1000). 
-v để nhận các bản cập nhật khi quá trình quét diễn ra

Hướng dẫn dùng nmap để scan Port 50

Answer: 53

[Câu hỏi 6.2] Tên dịch vụ theo Nmap là gì?

Answer: domain

Hướng dẫn dùng nmap để scan Port 51

Thay vì 1000 cổng mặc định, bạn có thể chọn cổng nào để quét. Việc chỉ định các cổng giờ đây trở nên đơn giản hơn. Dưới đây là một số ví dụ:

port list: -p22,80,443 sẽ quét các cổng 22, 80 và 443. 
port range: -p1-1023 sẽ quét tất cả các cổng từ 1 đến 1023, trong khi -p20-25 sẽ quét các cổng từ 20 đến 25. 
Bạn có thể yêu cầu quét cổng bằng cách sử dụng -p-, sẽ quét tất cả 65535 cổng. 
Thêm -F để quét 100 cổng phổ biến nhất. Sử dụng --top-port 10 sẽ quét mười cổng được sử dụng phổ biến nhất.

Bạn có thể kiểm soát thời gian quét bằng -T<0-5>.

-T0 là chậm nhất (paranoid ), trong khi -T5 là nhanh nhất. Theo trang hướng dẫn sử dụng Nmap, có sáu mẫu:

paranoid (0)
sneaky (1)
polite (2)
normal (3)
aggressive (4)
insane (5)

Dưới đây là một số bản quét “T” cần chú ý:

  • Bạn có thể sử dụng -T0 hoặc -T1 để tránh cảnh báo IDS.
  • Ví dụ: -T0 tìm kiếm một cổng tại một thời điểm và đợi 5 phút giữa việc gửi mỗi đầu dò, vì vậy bạn có thể ước tính mất bao lâu để quét một mục tiêu.
  • Nếu không xác định thời gian, Nmap sử dụng tiêu chuẩn -T3.
  • Cần lưu ý rằng -T5 là mạnh nhất về tốc độ; tuy nhiên, do khả năng mất gói lớn hơn, điều này có thể ảnh hưởng đến độ chính xác của kết quả quét.
  • Cần lưu ý rằng -T4 thường được sử dụng trong CTF và khi học cách quét các mục tiêu thực hành.
  • -T1 thường được sử dụng trong các hoạt động hack thế giới thực, nơi mà khả năng tàng hình là quan trọng nhất.
Ngoài ra, bạn có thể chọn kiểm soát tốc độ gói tin bằng cách sử dụng --min-rate và --max-rate. • Ví dụ, --max-rate 10 hoặc --max-rate = 10 đảm bảo rằng máy quét của bạn không gửi nhiều hơn mười gói mỗi giây.

Hơn nữa, bạn có thể kiểm soát song song thăm dò bằng cách sử dụng --min-parallelism <numprobes>--max-parallelism <numprobes>.

Nmap thăm dò các mục tiêu để phát hiện ra máy chủ nào đang hoạt động và cổng nào đang mở; song song thăm dò chỉ định số lượng các đầu dò có thể chạy song song. Ví dụ, --min-parallelism=512 yêu cầu Nmap duy trì ít nhất 512 đầu dò song song; 512 đầu dò này liên quan đến việc khám phá máy chủ và mở các cổng.

[Câu hỏi 7.1] Tùy chọn nào để quét tất cả các cổng TCP trong khoảng từ 5000 đến 5500?

Answer: -p5000–5500

[Câu hỏi 7.2] Làm thế nào bạn có thể đảm bảo rằng Nmap sẽ chạy song song ít nhất 64 đầu dò?

Answer: — min-parallelism 64

--min-parallelism 64

[Câu hỏi 7.3] Bạn sẽ thêm tùy chọn nào để làm cho Nmap chậm lại?

Answer: -T0

Hướng dẫn dùng nmap để scan Port 52

Hướng dẫn dùng nmap để scan Port 53

Hướng dẫn dùng nmap để scan Port 54

[Câu hỏi 8.1] Đảm bảo bạn đã ghi chú tất cả các tùy chọn quét có trong phòng này. Đã đến lúc học các kỹ thuật quét cổng nâng cao hơn bằng cách tham gia phòng Nmap Advanced Port Scans.

Answer: No answer is needed.

Kết luận

Theo ý kiến ​​của mình, mục tiêu chính cơ bản của tất cả các lần quét này là có hiểu biết cơ bản về cách thức hoạt động của TCP, chẳng hạn như hiểu về bắt tay 3 bước, điều này rất quan trọng vì nó cho phép chúng ta hiểu cách hệ thống hoạt động và tại sao nó chạy.

Tuy nhiên, phòng này có đầy đủ thông tin vì nó cung cấp một cái nhìn mới mẻ về cách hoạt động của mỗi lần quét cổng và cách nó xuất hiện trong Wireshark, cung cấp một minh họa rõ hơn về cách nó chạy ở backend.

Ngoài ra, bạn cũng có thể xem Các Tool Hack được sử dụng nhiều nhất năm 2022 tại đây.

Previous Post Next Post