Scanning
Trong bước đầu tiên của tiến trình tấn công các hacker thường tiến hành quét mạng mà chúng ta sẽ gọi bằng thuật ngữ scanning để kiểm tra các cổng đang mở hay những dịch vụ mà mục tiêu đang sử dụng. Bên cạnh đó scanning còn cho biết các thông tin quan trọng như hệ điều hành đang sử dụng hay hệ thống máy chủ mà trang web đang dùng là
IIS, Apache Scanning bao gồm các thao tác để xác định các host [máy trạm] và những port [cổng] đang hoạt động hay những dịch vụ đang chạy trên hệ thống của mục tiêu cần tấn công và khai thác. Đây là một trong những bước quan trọng của tiến trình thu thập thông tin thông minh [intelligence gathering] mà các hacker sử dụng để lập sơ đồ của các tổ chức hay mạng mục tiêu. Trong tiến trình scanning những kẻ tấn công sẽ gởi các gói tin TCP/IP đến mục tiêu như Hình 3.1 và phân tích các kết quả trả về nhằm xác định các thông tin giá trị mà họ quan tâm.
Các kiểu Scanning
Có ba dạng scanning khác nhau đó là Port Scanning, Vulnerability Scanning và Network Scanning.
Network Scanning : Quá trình này dùng để xác định các máy đang hoạt động trên hệ thống mạng thường được các hacker, chuyên gia bảo mật hay những quản trị hệ thống thực hiện
Port Scanning : Kẻ tấn công sẽ gởi một loạt các thông điệp đến mục tiêu nhằm xác định các cổng đang mở, và thông qua các cổng này họ sẽ biết được có những dịch vụ nào đang chạy trên máy tính mục tiêu. Một trong các ứng dụng port scanning phổ biên là Nmap.
Vulnerability Scanning : Là quá trình quét lỗi nhằm xác định ra các lỗ hổng bảo mật hay những điểm yếu mà thường gọi là các điểm nhạy cảm của các ứng dụng hay máy chủ, máy trạm đê từ đó đưa ra các phương án tấn công thích hợp. Tiến trình quét lỗi có thể xác định được các bản cập nhật hệ thống bị thiếu, hay những lỗi hệ thống chưa được vá các chuyên gia bảo mật cũng thường tiến hành vulnerability scanning trong công tác bảo vệ hệ thống mạng của mình.
Network Scan:
ICMP Scanning: Hacker sẽ gởi các tín hiệu ICMP ECHO Request đến mục tiêu [host] và nếu một host đang tồn tại nghĩa là đang hoạt động thì sẽ phản hồi lại thông qua ICMP ECHO Reply. Tuy nhiên, quá trình này có thể thất bại nếu như giao thức ICMP bị chặn bởi firewall.
VD: nmap -sP -v 192.168.1.10
Ping 192.168.1.10
Ping Sweep: Ping tới nhiều máy một lúc
nmap -sP 192.168.73.1-20
Sử dụng Tool Advanced IP Scanner
Port Scan:
Scan Open Port với trọng tâm sẽ là TCP SCAN, gói tin TCP có tổng cộng 16bit dành cho Source. Port và 16 bit dành cho Destination Port. Tổng số Port cần Scan sẽ là 2^16-1=65535 Port.
Cấu tạo gói tin TCP và các flag
+ SYN Flag SYN trong gói tin TCP dùng để bắt đầu một giao tiếp TCP
+ FIN Flag FIN trong gói tin TCP dùng để kết thúc một kết nối TCP
+ ACK Flag ACK dùng để xác nhận một kết nối TCP
+ RST Flag RST dùng để từ chối một kết nối TCP [VD: Server không mở port 80 mà có request
tới].
+ PSH [Push] : Yêu cầu xử lý các dữ liệu trong bộ nhớ đệm ngay lập tức.
+ URG: Tín hiệu khẩn, có mức ưu tiên cao nhất. Khi nhận được dữ liệucùng cờ này thì phải xử lý ngay.
URH Flag PSH/URG sử dụng để thiết lập độ ưu tiên cho gói tin TCP,
3 bước bắt đầu và 4 bước kết thúc một giao tiếp TCP
- Client muốn kết nối tới một Port nào đó trên Server gói tin đầu tiên client gửi tới Server là gói SYN.
Gói tin này với Source Port là ngẫu nhiên và Destination Port là port cần kết nối, Flag SYN được
bật, và là gói không chứa dữ liệu.
- Khi Server nhận được gói SYN trên Port đang hoạt động, Server sẽ gửi lại một gói tin phản hồi với
hai Flag được bật là SYN/ACK.
- Client gửi lại gói tin ACK để xác nhận kết nối và giao tiếp bắt đầu được thực hiện. Sau ba gói tin
này là các gói tin có chứa dữ liệu.
- Client muốn kết thúc giao tiếp TCP này, Client sẽ gửi gói tin với hai Flag được bật là FIN/ACK.
- Server nhận được gói tin này sẽ gửi lại gói tin ACK để xác nhận đã nhận được gói tin
- Server gửi tiếp gói tin với Flag FIN/ACK được bật
- Client gửi lại xác nhận bằng gói tin ACK và quá trình kết nối giữa Client và Server kết thúc
! Mỗi phiên kết nối TCP sẽ có 7 gói tin không có chứa dữ liệu
Các dạng TCP Scan
TCP Scan Gói tin gửi đi Gói tin nhận về Đưa ra kết luận Ghi chú
SYN Scan: gửi cờ SYN tới port cần Scan. Nếu nhận được SYN/ACKà Port Open ,RSTà Port Close. Đây là phương thức scan phổ biến nhất. và nhanh nhất, nhưng phải thực hiện với quyền root
TCP Connect: ScanThực hiện cả 3 bước kết nối TCP và Hoàn thành cả ba bướcàPort Open nếu Không hoànthànhàPort Close. Đây là phương thức scanchính xác nhất nhưng tốnthời gian nhất. Ko cần root nhưng để lại log
Null Scan Gói tin no Flag Không có tínhiệu trả lờiàPort Open ,nếu RSTàPort Close. Đây là phương thức scan thiếu chính xác
FIN Scan: FIN tới port cần scan nếu Không có tín hiệu trả lờiàPort Open và RSTà Port Close Khi chưa có kết nối đã gửi gói tin FIN tới server sẽ không trả lời dù port đó đang open
XMAS Scan FIN/URG/PSH Không có tínhiệu trả lờiPort Open và RST Port Close .Dạng scan này tương tự như NULL hay FIN SCAN là những dạng scan có kết quả thiếu chính xác
Passive Scan Không gửi gói tin,thực hiện Sniffervà đưa ra phân tíchdựa trên việc bắt gói tin trên mạng. Thấy giao tiếp port nàothì Port Open
Toàn bộ các phương thức scan bên trên đều là Active Scan, đưa ra kết quả nhanh chóng nhưng lại gây ảnh hưởng tới hệ thống mạng và không thể hoạt động 24/7.
Decoy Scan
Decoy Scan là một kỹ thuật thực hiện một IP Spoofing [giả mạo]. Mục đích nhằm ấn địa chỉ thực sự của kẻ tấn công [scanner]. Ta xét ví dụ sau.
[root@localhost ~]# nmap -sS 192.168.1.22 -D 1.2.3.4, 5.6.7.8
IDLE Scan
Idel Scan là một kỹ thuật phức tạp cho phép ẩn hoàn toàn kẻ tấn công. trong Scan này sẽ có 3 thành phần: 1 là kẻ tấn công, một Zombie [một máy bị kẻ tấn công lợi dụng] và một là mục tiêu cần quét cổng. Điều kiện là máy Zombie không thực hiện các hoạt động khác ngoại trừ việc giao tiếp với Kẻ tấn công.
Idle Scan Open Port
Idle scan of a closed port
Idle scan of a filtered port
Nói tới Scan Open Port chúng ta sẽ thường dùng nhất là phương thức SYN SCAN
Sử dụng tool để scan:
Tool Advanced Port Scanner
NMAP:
Mạc định nếu scan ko chỉ ra option thì
# nmap 192.168.0.1
Đối với câu lệnh này, một số tùy chọn đã được mặc định. Câu lệnh trên sẽ tương đương với:
#nmap R sS 192.168.0.1
R: truy vấn đến DNS server để thực hiện reverse DNS name lookup. Tùy chọn này được sử dụng khi mục tiêu là một server.
Chúng ta thường dùng -n để bỏ -R đi cho nhanh
-sS: SYN scanning
TCP SYN scan thu thập thông tin về port mà không cần hoàn thành quá trình bắt tay TCP. Khi 1 cổng được xác định, quá trình bắt tay TCP sẽ được reset trước khi chúng hoàn tất. Kỹ thuật này thường được xem như kỹ thuật half open scanning.
Nó cũng là kỹ thuật scan mặc định nếu bạn dùng quền root. Đây là một kỹ thuật phổ biến nhất về scan bởi vì nó có thể làm việc trong tất cả networks, cũng như tất cả các hệ điều hành.
Điểm mạnh: Một TCP SYN scan không bao giờ tạo ra một phiên truy vấn TCP hoàn chỉnh, do đó nó không bị log lại tại mục tiêu. Đây được xem như một cách scan trong im lằng.
Điểm yếu: Bạn cần có quyền tại hệ thống chạy nmap [trong trường hợp này là quyền root]
Code: [Select]
# nmap vv n sS 192.168.0.1
-sT: TCP connect scanning
Với tùy chọn này, nmap sẽ thực hiện quá trình bắt tay 3 bước TCP
Điểm mạnh : Bạn không cần quyền tại hệ thống chạy nmap
Điểm yếu : Kết nói của bạn sẽ bị log tại máy đích, do đó không nên sử dụng kỹ thuật này
Code: [Select]
# nmap vv n sT 192.168.0.1
-sF, -sX, -sN: FIN scan, Xmas tree scan, NULL scan.
Đây được gọi là các kỹ thuật scan giấu giếm. Chúng gửi 1 frame đơn đến cổng TCP mà không có bất cứ một gói TCP handshake nào. Chúng tỏ ra có khả năng "giấu" nhiều hơn SYN scan và phải được dùng nếu máy đích không phải là máy Windowns.
Các kỹ thuật này được thực hiện bằng cách làm giả các bit tại TCP header. Nmap tạo ra các TCP headers mà chúng không có trong thực tế. Việc tạo ra các TCp header khác thường này giúp nmap lắng nghe trả lời của máy đích khi gửi chúng tới đó.
Một hệ thống Window sẽ trả lời bằng một RST cho tất cả truy vấn này.
Điểm mạnh: Không có phiên TCP sessions được tạo ra.
Điểm yếu: Không thể sử dụng để chống lại hệ thống Windows
Code: [Select]
# nmap vv n sF 192.168.0.1
# nmap vv n sX 192.168.0.1
# nmap vv n sN 192.168.0.1
-sU: UDP scan.
Code: [Select]
# nmap vv n sU 192.168.0.1
Code: [Select]
-sR: RPC scan.
Tùy chọn này được dùng để xác định ứng dụng RPC. Nó chạy tự động và mặc định trong version scan [được đề cập tiếp theo]
Điểm yếu: RPC scan mở phiên của ứng dụng, do đó nó được log lại.
Code: [Select]
# nmap vv sR 192.168.0.1
Code: [Select]
-sV: Version scan
Scan này sẽ cho ta biết trạng thái của port và dịch vụ đang chạy trên chúng. Để khai thác dịch vụ bạn cần biết chính xác version của dịch vụ đang chạy trên máy đích.
Điểm yếu: Nó mở phiên với máy đích nên sẽ bị log.
Code: [Select]
# nmap vv sV 192.168.0.1
-sA: ACK scan
ACK scan tỏ ra rất hữu ích khi có các firewall hay thiết bị lọc gói tin. Nó không xác định một port đang mở, nó chỉ xác định port đó đang bị chặn bởi firewall. Nó không mở bất cứ phiên ứng dụng nào, do đó việc liên lạc giữa nmap và thiết bị lọc gói tin thật sự đơn giản.
Điểm yếu: Nó chỉ có thể xác định port bị chặn hoặc không chặn chứ không xác định đc port mở hay không.
Code: [Select]
# nmap vv -p 80 sA 192.168.0.1
-sP: Ping scan:
Code: [Select]
# nmap vv sP 192.168.0.10
Ping scan sẽ check xem host đó đang up hay down
Code: [Select]
# nmap vv sP 192.168.0.*
Được dùng để phát hiện các host đang hoạt động trong subnet.
Điểm yếu: Ping scan không thể kết hợp được với các tùy chọn khác
5. O/S fingerprinting and version detection
Chúng cả có thể sử dụng nhiều kỹ thuật scan để xem hệ điều hành nào đang chạy trên máy đích
-O: Operating system fingerprinting.
Code: [Select]
# nmap vv O 192.168.0.1
Nó sẽ cho bạn biết ít hệ điều hành và version đang chạy ở mục tiêu. Nó cần ít nhất một port đóng và một port mở để xác định chính xác, nếu không có điều kiện này nó không thể đưa ra một kết quả chính xác nhất được. Trong trường hợp đó bạn nên dùng các ứng dụng thứ 3 bổ xung.
Điểm yếu : Một tool theo dõi sẽ nhanh chóng phát hiện ra có ai đó đang nhòm ngó hệ thống
-sV: Version detection
Như đã trình bày, nó sẽ giúp bạn biết được version của dịch vụ đang chạy tại máy đích.
Code: [Select]
# nmap vv sV 192.168.0.1
-A: thêm
Tùy chọn này bao gồm cả -O và -sV, do đó 2 cầu lệnh sau sẽ như nhau :
Code: [Select]
# nmap vv sV O 192.168.0.1
# nmap vv A 192.168.01.
Decoy Scan
Decoy Scan là một kỹ thuật thực hiện một IP Spoofing [giả mạo]. Mục đích nhằm ấn địa chỉ thực sự của kẻ tấn công [scanner]. Ta xét ví dụ sau.
[root@localhost ~]# nmap -sS 192.168.1.22 -D 1.2.3.4, 5.6.7.8 [-D chỉ ra ip giả]
IDLE Scan:
Nmap -sS -sI bkacad.com hust.edu.vn
HPING3
hping3 -A -p 443 -c 3 192.168.73.141 nếu có RST [flags=R] thì ko có Firewall filter
scan SYN: hping3 S p 80 c 3 bkacad.com
Hoặc để scan nhiều port cùng lúc, chúng ta sử dụng thêm options scan như sau:
hping3 -S --scan 80,53,143 112.213.95.85
Ping of Death
Sử dụng máy BT 5R3 và lệnh:
hping3 10.0.0.12 -1 -d 65000 -i u1 -V -n
với
[+] hping3 : tên tool
[+] 10.0.0.12 : target
[+] -1 : chọn ICMP mode
[+] -d : chọn kích thước tập tin [65000]
[+] -i : tóc độ [u1 =rất nhanh]
[+] -V, -n: ouput
Scan lỗ hổng bảo mật:
Metasploit
Dùng các code trong github hoặc exploit-db.com
Dùng GIF
Dùng Nessus:
Hướng dẫn cài nessus
vào www.tenable.com down nessus cho Debian
cài: dpkg -i "tên gói"
start service: /etc/init.d/nessusd start
vào nessus: //127.0.0.1/8834 -->Get start: User:? pass:?
Ðang ký: vào trang chon ban Nessus Home: dang ký thông tin: tên, Email...
Vào Mail lấy code và register
OK!
Nmap 192.168.1.10
Nmap -p 80 192.168.1.10
Nmap -A 192.168.1.10
Nmap -sA -p 80 192.168.1.10