Chương 5 - Scanning. Quét (Scanning) là một bước tiếp theo trong tiến trình tấn công hệ thống. Gia đoạn này giúp chúng ta xác định được nhiều thông tin của mục tiêu cần tấn công. Chương trước, bạn đã tìm hiểu các vấn đề về Footprinting và Social Engineering, là công việc liên quan đến con người. Có nghĩa là chúng ta đã tiến hành thu thập thông tin về tổ chức mà chúng ta tấn công, như vị trí địa lý, thói quen sinh hoạt của nhân viên…Đến phần này, Scanning, chúng ta sẽ làm việc với máy móc. Mời tham khảo.
Trang 1CHƯƠNG 5: SCANNING
Lưu Anh Kiệt
Quét (Scanning) là một bước tiếp theo trong tiến trình tấn công hệ thống Gia đoạn này giúp chúng ta xác định được nhiều thông tin của mục tiêu cần tấn công Chương trước, bạn
đã tìm hiểu các vấn đề về Footprinting và Social Engineering, là công việc liên quan đến con người Có nghĩa là chúng ta đã tiến hành thu thập thông tin về tổ chức mà chúng ta tấn công, như vị trí địa lý, thói quen sinh hoạt của nhân viên…Đến phần này, Scanning, chúng
ta sẽ làm việc với máy móc Tức là sau khi chúng ta tìm được vài thông tin có liên quan đến máy tính cần tấn công, công đoạn tiếp theo là thu thập thông tin về máy tính đó Những thông tin cần thu thập như tên máy (computer name), địa chỉ ip, cấu hình máy tính, hệ điều hành, dịch vụ đang chạy, port đang mở…Những thông tin này sẽ giúp cho hacker có kế hoạch tấn công hợp lý, cũng như việc chọn kỹ thuật tấn công nào Quét giúp định vị hệ thống còn hoạt động trên mạng hay không Một hacker chân chính sử dụng cách này đề tìm kiếm thông tin của hệ thống đích
1 Phân loại Scanning
Sau khi các giai đoạn hoạt động thăm dò chủ động và bị động của hệ thống mục tiêu hoàn tất, chúng ta tiến hành quét Quét được sử dụng để xác định một hệ thống có trên mạng hay không và có đang sẵn sàng hoạt động Công cụ quét được sử dụng để thu thập thông tin về một hệ thống như địa chỉ IP, hệ điều hành, và các dịch vụ chạy trên các máy tính mục tiêu Hình sau liệt kê ba loại quét chủ yêu mà chúng ta nhắm tới
Hình 5.1: Phân loại Scanning
Trang 2Port scanning
Port scanning là quá trình xác định cổng TCP/IP mở và có sẵn trên một hệ thống Công cụ Port scanning cho phép một hacker tìm hiểu về các dịch vụ có sẵn trên một hệ thống nhất định Mỗi dịch vụ hay ứng dụng máy tính được kết hợp với một số cổng thông dụng Ví
dụ, một công cụ quét đó là xác định cổng 80 mở cho một web sever đang chạy trên đó Hacker cần phải biết rõ với số cổng thông dụng
Note : trên hệ thống windows, những cổng thông dụng nằm ở vị trí C:\windows\system32\drivers\etc\services file Tập tin dịch vụ là một file ẩn Mở tập tin bằng Notepad
Network scanning
Network scanning là một quy trình để xác định máy chủ đang hoạt động trên mạng, hoặc
để tấn công chúng hoặc là đánh giá an ninh mạng Máy chủ được xác định bởi IP cá nhân của chúng Các công cụ network-scanning cố gắng xác định tất cả các máy chủ trực tiếp hoặc trả lời trên mạng và địa chỉ IP tương ứng của chúng
Vulnerability scanning
Vulnerability scanning là quá trình chủ động xác định các lỗ hổng của hệ thống máy tính trên mạng Thông thường, một máy quét lỗ hổng đầu tiên xác định các hệ điều hành và số phiên bản, bao gồm các gói dịch vụ có thể được cài đặt Sau đó, máy quét lỗ hổng xác định các điểm yếu, lỗ hổng trong hệ điều hành.Trong giai đoạn tấn công sau đó, một hacker có thể khai thác những điểm yếu để đạt được quyền truy cập vào hệ thống
Một hệ thống phát hiện xâm nhập (IDS) hay một mạng an ninh tinh vi chuyên nghiệp với các công cụ thích hợp có thể phát hiện các hoạt động port-scanning Các công cụ dò quét cổng TCP/IP tìm kiếm các cổng mở và địa chỉ IP, và lỗ hổng thường có thể bị phát hiện,
vì các máy quét phải tương tác với hệ thống đích trên mạng
2 Đối tượng cần quét
Scan là hoạt động tương tác trên hệ thống máy tính Đối tượng mà chúng ta đang nhắm tới chính là hệ thống máy tính với những thành phần của nó Khi tiến hành quét hệ thống, chúng ta chú ý đến các mục đích sau:
Live System: Xác định xem hệ thống mà chúng ta đang nhắm tới có còn hoạt động hay
không Máy tính (host) đang quét có hoạt động trên internet hay không Địa chỉ ip có đang trong trạng tháy public
Trang 3Port: Mục tiêu tiếp theo là xác định các port đang mở Việc xác định port này cho phép
chúng ta biết máy tính đó đang mở các dịch vụ nào Từ đó xác định được mục đích của cuộc tấn công
Operating System: Xác định hệ điều hành đang sử dụng trên máy tính mục tiêu sẽ giúp
hacker tìm ra các lỗ hổng thông dụng Các hệ điều hành không nhiều thì ít cũng tiềm ẩn những lỗ hổng tạo điều kiện cho kẻ tấn công đột nhập Xác định hệ điều hành còn phải xác định phiên bản của nó
Service: Hiểu rõ những dịch vụ đang chạy và lắng nghe trên hệ thống đích Phiên bản của
dịch vụ nào cũng chứa những lỗi nhỏ, mà nếu biết khai thác lỗ nhỏ đó thì nó không còn nhỏ chút nào
IP Address: Không chỉ có một ip của một host, mà chúng ta cũng cẩn xác định dãy địa chỉ
mạng, và những host khác có liên quan như Default gateway, DNS Server…
3 Các phương pháp quét
Quá trình Scan được mô tả trong hình 4.2 Phương pháp này là quá trình mà theo đó hacker tiến hành quét mạng Nó đảm bảo rằng không có hệ thống hoặc lỗ hổng nào bị bỏ qua và các hacker tập hợp tất cả thông tin cần thiết để thực hiện một cuộc tấn công
Hình 5.2: Tiến trình scan
Trang 4Theo đó, tiến trình quét mạng có thể được mô tả vắn tắt qua các bước như sau:
Kiểm tra xem hệ thống có tồn tại, có đang hoạt động hay không
Kiểm tra các port nào đang được mở mà chúng ta có thể tương tác được
Nhận biết các dịch vụ tương ứng với những port đang mở
Phát họa sơ đồ mạng, đặc biệt chú ý đến những host dễ bị tổn thương
Ghi dấu hệ điều hành và những thông tin có liên quan đến hệ điều hành
Chuẩn bị một proxy để tấn công
Tấn công: Tất nhiên ở đây chỉ mang tính minh họa, chứ thực chất việc tấn công còn nhiều công đoạn khác
3.1 Kiểm tra sự tồn tại của hệ thống đích
Chúng ta sẽ đi vào việc tìm hiểu vài kỹ thuật được áp dụng để kiểm tra sự tồn tại của hệ thống ngay sau đây
Tìm hiểu kỹ thuật Ping Sweep
Các phương pháp quét bắt đầu với việc kiểm tra các hệ thống sống trên mạng, có nghĩa là
hệ thống phản ứng với các yêu cầu thăm dò hoặc kết nối Đơn giản nhất, mặc dù không phải là cách chính xác nhất, cách để xác định dù hệ thống có sống hay không là thực hiện
ping sweep cho một dãy IP Tất cả các hệ thống phản ứng với một tin trả lời ping được coi
là sống trên mạng
Internet control message protocol (ICMP) scanning là quá trình gửi một yêu cầu ICMP
hoặc ping cho tất cả các host trên mạng để xác định những host đang tồn tại và trả lời ping Lợi ích của ICMP scanning là nó có thể chạy song song, có nghĩa là tất cả các hệ thống được quét đồng thời, do đó nó có thể chạy nhanh chóng trên toàn bộ mạng Hầu hết các công cụ hack bao gồm một lựa chọn ping-sweep, mà chủ yếu là thực hiện một yêu cầu ICMP đến mỗi máy chủ trên mạng
Một vấn đề đáng kể với phương pháp này là phần mềm tường lửa cá nhân và tường lửa hệ thống mạng có thể chặn hệ thống từ trả lời ping sweeps Một vấn đề khác là các máy tính phải được quét
Hacking Tools
Pinger, Friendly Pinger, and WS_ping_Pro là tất cả những phần mềm có thể giúp chúng
ta thực hiện quá trình Ping Sweep Bạn sẽ được hướng dẫn sử dụng các công cụ này trong phần lab
Trang 5Chống lại Ping Sweep
Hầu như bất kỳ hệ thống phòng chống xâm nhập (IDS) hoặc hướng dẫn (IPS), sẽ phát hiện
và cảnh báo cho quản trị viên bảo mật về một quá trình quét ping đang xảy ra trên mạng Hầu hết các tường lửa và proxy server chặn trả lời ping vì vậy hacker không thể xác định chính xác xem liệu hệ thống có sẵn sàng bằng cách sử dụng một quá trình quét ping được Quét cổng “dồn dập” được sử dụng nếu hệ thống không trả lời với một quá trình quét ping Chỉ vì một quá trình quét ping không trả lại bất kỳ máy chủ nào hoạt động trên mạng không
có nghĩa là chúng không có sẵn, bạn cần phải thử những phương pháp nhận dạng xen kẽ khác Hãy nhớ hack mất thời gian, kiên nhẫn, và kiên trì
3.2 Thăm dò cổng(port) và xác định dịch vụ (service)
Kiểm tra các cổng đang mở là bước thứ hai trong tiến trình quét Port scanning là phương pháp được sử dụng để kiểm tra các cổng đang mở Quá trình quét bao gồm việc thăm dò mỗi cổng trên máy chủ để xác định các cổng đang mở Thông thường Ports scanning có giá trị hơn một quá trình quét ping về máy chủ và các lỗ hổng trên hệ thống
Xác định các Service hoạt động là bước thứ ba trong tiến trình Nó thường được thực hiện bằng cách sử dụng các công cụ tương tự như port scanning Bằng cách xác định cổng mở, hacker thường xác định các dịch vụ liên kết với số cổng đó
Biện pháp đối phó Port-Scan
Biện pháp đối phó là quá trình hoặc bộ công cụ được sử dụng bởi các quản trị viên an ninh
để phát hiện và có thể ngăn chặn port-scanning các máy chủ trên mạng của họ Danh sách các biện pháp đối phó cần được thực hiện để ngăn chặn một hacker thu thập thông tin từ quá trình quét cổng:
Kiến trúc an ninh thích hợp, chẳng hạn như thực hiện các IDS và tường lửa nên được đi chung
Hacker chân chính sử dụng công cụ của họ thiết lập để kiểm tra việc Scanning, thực hiện các biện pháp đối phó Khi tường lửa được đặt ra, công cụ aport-scanning nên được chạy cho các máy chủ trên mạng để cho phép tường lửa phát hiện chính xác
và dừng các hoạt động của port-scanning
Tường lửa có thể phát hiện các hoạt động thăm dò được gửi bởi các công cụ
port-scanning Các tường lửa nên tiến hành lấy trạng thái kiểm tra (stateful inspections)
Có nghĩa là nó sẽ kiểm tra không chỉ các tiêu đề TCP mà cả dữ liệu của gói tin để
xác định liệu được phép đi qua tường lửa
Network IDS nên được sử dụng để phát hiện các phương pháp dò tìm hệ điều hành được sử dụng bởi một số công cụ hacker phổ biến như Nmap
Trang 6Chỉ có các cổng cần thiết nên được giữ ở trạng thái mở Phần còn lại sẽ được lọc hoặc bị chặn
Các nhân viên của tổ chức sử dụng các hệ thống cần được đào tạo thích hợp nhận thức về an ninh Cũng nên biết chính sách bảo mật khác nhau mà họ đang cần làm theo
Tìm hiểu Nmap Command Switches
Nmap là một công cụ miễn phí mã nguồn mở thực hiện nhanh chóng và hiệu quả ping sweeps, quét cổng, dịch vụ nhận dạng, xác định địa chỉ IP, và xác định hệ điều hành Nmap
có lợi khi quét số lượng lớn các máy trong một phiên duy nhất Nó hỗ trợ nhiều hệ điều hành, bao gồm cả Unix, Windows, và Linux Trạng thái của cổng được xác định bởi Nmap scan có thể ở ba trạng thái open, filtered, or unfiltered Open có nghĩa là các máy tính mục tiêu chấp nhận yêu cầu gửi đến trên cổng đó Filtered có nghĩa là một bức tường lửa hoặc
bộ lọc mạng sàng lọc các cổng và ngăn ngừa Nmap phát hiện cho dù cổng đó là mở Unfiltered có nghĩa cổng được xác định là đóng, và không có tường lửa can thiệp với các yêu cầu Nmap
Nmap hỗ trợ nhiều loại quét Hình 4.3 mô tả một số phương pháp quét phổ biến
Hình 5.3: Một số phương pháp scan hổ trợ bởi NMAP
Trang 7Loại Nmap Scan Mô tả
TCP connect Kẻ tấn công tạo kết nối TCP(full TCP) tới hệ thống đích
XMAS tree scan
Những kẻ tấn công kiểm tra dịch vụ TCP bằng cách gửi gói dữ liệu XMAS-tree XMAS-tree có nghĩa là FIN,URG and PSH flag (nghĩa của flag giải thích ở phần sau)
SYN stealth scan
Được gọi là quét nữa mở(haft-open scanning) Hacker gửi 1 gói SYN và nhận 1 gói SYN-ACK từ server Đó là 1 cách “tàng hình”
vì kết nối full TCP không được mở
Null scan
Đây là một cách quét tiên tiến có thể đi qua tường lửa mà không bị phát hiện hay bị sửa đổi Null (chữ được dùng để đánh lạc hướng trong mật mã) scan có tất cả cờ hay không thiết lập Null scan chỉ hoạt động trên hệ thống UNIX
Windows scan Đây là loại quét tương tự như ACK scan và cũng có phát hiện các
cổng mở
ACK scan Loại quét được sử dụng để vạch ra các quy tắc tường lửa Chỉ làm
việc trên UNIX
Nmap có rất nhiều lệnh chuyển đổi để thực hiện các loại hình quét khác nhau Các lệnh quét phổ biến được liệt kê trong hình 4.4
Hình 5.4: Các tùy chọn chuyển đổi chế độ Scan
Bạn sẽ đi vào tìm hiểu cách sử dụng công cụ Nmap cụ thể hơn trong phần thực hành
Trang 8Tìm hiểu SYN, STEALTH,XMAS, NULL, ADLE, và FIN Scans
Là hacker bạn cần quen thuộc với các thuật ngữ Scan sau :
SYN : SYN hoặc stealth scan cũng được gọi là haft-open scan vì nó không thực hiện đầy
đủ quy trình bắt tay ba bước của TCP (three-way hanshake) TCP/IP three-way handshake
đề cập trong phần sau Hacker gửi gói tin SYN đến đích, nếu nhận lại một SYN/ACK, sau
đó nó giả định các mục tiêu sẽ hoàn thành việc kết nối và các cổng đang lắng nghe Nếu
nó nhận một 1 RST từ mục tiêu, nó giả định cổng không hoạt động hay bị đóng Lợi thế của the SYN stealth scan là ít bị phát hiện hơn bởi các hệ thống IDS, hơn là đăng nhập như
cố gắng tấn công hoặc kết nối
XMAS: XMAS scans gửi một gói với cờ FIN,URG, và PSH được thiết lập Nếu cổng mở,
không đáp lại; nếu đóng mục tiêu gửi lại gói RST/ACK XMAS scan chỉ làm việc trên hệ thống máy đích theo RFC 793 của TCP/IP và không chống lại bất cứ version nào của Windows
FIN: FIN scan tương tự XMAS scan nhưng gửi gói dữ liệu chỉ với cờ FIN được thiết lập
FIN scan nhận trả lời và có giới hạn giống như XMAS scan
NULL: NULL scan cũng tương tự như XMAS và FIN trong giới hạn và trả lời, nhưng nó
chỉ gửi một packet mà không có flag set
IDLE: IDLE scan sử dụng địa chỉ IP giả mạo để gửi một gói SYN đến mục tiêu Phụ thuộc
vào trả lời, cổng có thể được xác định là mở hoặc đóng IDLE scans xác định phản ứng quét cổng bằng cách theo dõi số thứ tự IP header
Giao thức kết nối TCP
Các loại TCP scan được xây trên TCP way handshake Kết nối TCP yêu cầu three-way handshake trước khi kết nối được tạo và truyền dữ liệu giữa người gửi và người nhận Hình 4.5 mô tả chi tiết các bước của TCP three-way handshake
Trang 9Hình 5.5: Mô tả quy trình bắt tay ba bước của TCP
Để hoàn thành three-way handshake và tạo một kết nối thành công giữa hai máy, người gửi phải gửi một gói tin TCP với các thiết lập bit đồng bộ (SYN) Sau đó, hệ thống nhận được trả lời bằng một gói tin TCP với các đồng bộ hóa (SYN) và thừa nhận bit thiết lập phản hồi (ACK) để cho biết máy chủ đã sẵn sàng để nhận dữ liệu Hệ thống nguồn sẽ gửi một gói tin cuối cùng với các bit xác nhận thiết lập (ACK) để chỉ ra các kết nối được hoàn tất và dữ liệu đã sẵn sàng để được gửi đi
Bởi vì TCP là một giao thức hướng kết nối, một quy trình để thiết lập kết nối (three-way handshake), khởi động lại một kết nối không thành công và kết thúc một kết nối là một
phần của giao thức Những giao thức dùng để thông báo được gọi là Flags TCP chứa các
flasg như ACK, RST, SYN, URG, PSH và FIN Danh sách dưới đây xác định các chức năng của các cờ TCP:
SYN-Synchronize Khởi tạo kết nối giữa các máy
ACK-acknowledge Thiết lập kết nối giữa các máy
PSH-Push: Hệ thống chuyển tiếp dữ liệu đệm
URG-Urgent: Dữ liệu trong các gói phải được sử lý nhanh chóng
FIN-Finish: Hoàn tất giao tiếp, không truyền thêm
RST-Reset: Thiết lập lại kết nối
Hacker có thể chống lại sự phát hiện bằng cách sử dụng cờ thay vì hoàn thành một kết nối TCP thông thường
Trang 10Hacking Tool
Một vài công cụ sau đây xin giới thiệu đến các bạn để thực hiện việc Scan Port và xác định dịch vụ
IPEye là máy quét cổng TCP có thể làm SYN, FIN,Null, và XMAS scans Nó là công cụ
command-line(dòng lệnh) IPEye thăm dò cổng trên máy đích và phản hồi lại các trạng thái closed, reject, drop, or open Closed có nghĩa là có một máy ở đầu bên kia nhưng nó không lắng nghe tại cổng Reject là tường lửa từ chối kết nối tại cổng Drop có nghĩa là tường lửa hủy bỏ mọi thứ vào cổng hoặc không có máy tính ở đầu bên kia Open có nghĩa một số loại dịch vụ đang lắng nghe tại cổng Những phản hồi này giúp hacker xác định loại của hệ thống đang trả lời
IPSecScan là công cụ có thể quét một địa IP duy nhất hoặc một dãy địa chỉ IP tìm kiếm
thông tin hệ thống
Netscan Tools Pro 2000, Hping2, KingPingicmpenum, và SNMP Scanner là tất cả các
công cụ quét và cũng có thể sử dụng để lấy dấu hệ điều hành
Icmpenum không chỉ dùng gói ICMP Echo để thăm dò mạng, mà còn dùng gói ICMP
Timestamp và ICMP Information Hơn nữa, nó hỗ trợ gói trả lời giả mạo hoặc đánh hơi Icmpenum thì tuyệt vời cho quét mạng khi tường lửa khóa ICMP Echo nhưng lỗi khi khóa Timestamp hoặc Information
Hping2 đáng chú ý vì nó bao gồm một loạt các tính năng khác ngoài OS fingerprinting
như TCP, User Datagram Protocol (UDP),ICMP, và giao thức ping raw-IP, chế độ traceroute, và khả năng gửi nhiều files giữa hệ thống nguồn và đích
SNMP Scanner cho phép quét một dãy hoặc một danh sách các máy chủ thực hiện ping,
DNS, và Simple Network Managerment Protocol (SNMP)
Tìm hiểu về kỹ thuật War-Dialing
War-Dialing là quá trình quay số modem để tìm một kết nối modem đang mở, kết nối này cung cấp truy cập từ xa vào mạng, để tấn công vào hệ thống đích Thuật ngữ War dialing bắt nguồn từ những ngày đầu của Internet khi hầu hết các công ty đã được kết nối với Internet thông qua kết nối dial-up modem War dialing được xem như là một phương pháp quét bởi vì nó tìm thấy một kết nối mạng mà có thể có bảo mật yếu hơn so với các kết nối Internet chính Nhiều tổ chức thiết lập truy cập từ xa qua modem, mà bây giờ đã cổ, nhưng
đã không thể loại bỏ các máy chủ truy cập từ xa này Điều này cho phép tin tặc dễ dàng xâm nhập vào mạng với cơ chế bảo mật yếu hơn nhiều Ví dụ, nhiều hệ thống truy cập từ