banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Messages posted by: seamoun  XML
Profile for seamoun Messages posted by seamoun [ number of posts not being displayed on this page: 21 ]
 
Do trong khoảng thời gian từ tháng 06-->08 mình rất bận nên những chủ đề kế tiếp mình sẽ trình bày ở tháng 08.
4) OS Fingerprinting

Khi thực hiện tấn công vào máy chủ mà hacker lại không biết máy chủ đó chạy hệ điều hành gì ? Ở phiên bản nào ? Nghe có vẻ rất là buồn cười, đúng không các bạn ?
Do vậy việc xác định hệ điều hành và phiên bản đang chạy trên hệ thống đích cực kỳ quan trọng. Tại sao nó lại quan trọng ? Bởi vì hiện tại các máy chủ không phải đều chạy các hệ điều hành giống nhau, có rất nhiều loại như Windows, Linux, Sun, FreeBSD, ... Việc phát hiện một máy chủ chạy một trong những hệ điều hành như Windows, Linux, ...
cũng đã thấy "oải" rồi, tiếp đến phải xác định phiên bản của hệ điều hành đó ? Bản thân WIndows như các bạn đã biết nó cũng có rất nhiêu phiên bản khác nhau, từ ngôn ngữ đến năm đưa ra ví dụ như Windows 2000, WIndows 2000 Server, Windows XP, WIndows Server 2003, Windows Vista, ... Nếu như xác định càng rõ hệ điều hành mà máy đích đang chạy là gì và phiên bản tương ứng giúp hacker biết rõ hơn về hệ thống và thực hiện các pentest không lung tung mà sẽ tập trung vào phiên bản và hệ điều hành mà nó đang chạy. Ví dụ giả sử một hệ thống đích ta biết được nó chính xác là đang chạy Windows thì chắc chắn chúng ta không test lỗi gì mà liên quan bên các OS khác như
Linux, SUn, .... Tiếp đến biết được hệ thống đích chạy Windows rồi thì xác định xem nó chạy ở WIndows 2000, 2003, hay Vista, nếu giả sử nó đang chạy Windows Server 2003 thì nó thuộc dòng nào Windows Server 2003 nào ? và liệu nó đang ở Service Pack nào ? SP0, SP1, SP3, ... Bởi vì nhiều lỗi không phải ảnh hưởng hết tất cả dòng sản phẩm WIndows hoặc một phiên bản Windows cố định nào ? Một lỗi có thể nó nằm ở SP0 mà nó lại không có ở SP1, SP2 hoặc lỗi xuất hiện khi upgrade lên SP1, SP2, ...

Tóm lại là xác định càng rõ hệ điều hành, phiên bản thì đỡ phải lang man trong việc kiểm tra lỗi smilie smilie smilie
Phương thức mà xác định hệ điều hành đang chạy trên hệ thống đích có tên gọi là OS Fingerprinting.
Có 2 kiểu xác định OS Fingerprinting khác nhau

+ Active stack fingerprinting
+ Passive fingerprinting.

Active stack fingerprinting là dựa vào hệ điều hành khởi tạo TCP khác nhau để xác định hệ điều hành đó là gì
Những công cụ sẽ tạo những gói tin và gửi đến máy định và dựa vào sự phản hồi của máy đích và so sánh
với database để xác định OS. Tuy nhiên việc kiểm tra này có thể bị Firewall log.

Passive fingerprinting không trực tiếp scan hệ thống để lấy thông tin về hệ điều hành mà nó
sử dụng kỹ thuật sniffing thay vì kỹ thuật scanning. Phương pháp này thì ít chính xác hơn là active stack fingerprinting.

Tóm lại việc thực hiện Active Stack Fingerprinting hay là Passive Fingerprinting tất cả đều dựa vào
sự khởi tạo TCP stack và những cách mà OS phản hồi khác nhau để xác định hệ điều hành và phiên bản.
Một số công cụ thực hiện Active Stack Fingerprinting như XPROBE2, RING v2 và Nmap.
Seamoun thường dùng nmap vì tất cả những cái cần thiết nhất cho việc scan, detect, bypass đều
có cả ở trong nmap !!!!
Để thực hiện nhận biết hệ điều hành với nmap thực hiện với tùy chọn -O. Ví dụ

D:\Hacking\scanning\nmap>nmap -O 192.168.1.17

Starting Nmap 4.53 ( http://insecure.org ) at 2008-04-08 10:27 SE Asia Standard
Time
Interesting ports on 192.168.1.17:
Not shown: 1707 closed ports
PORT STATE SERVICE
80/tcp open http
135/tcp open msrpc
139/tcp open netbios-ssn
443/tcp open https
445/tcp open microsoft-ds
3389/tcp open ms-term-serv
5101/tcp open admdog
MAC Address: 00:E0:4D:08:67:AD (Internet Initiative Japan)
Device type: general purpose
Running: Microsoft Windows XP
OS details: Microsoft Windows XP SP2

Network Distance: 1 hop

OS detection performed. Please report any incorrect results at http://insecure.org/nmap/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 4.235 seconds

5) Nhận biết máy chủ Web Server
Sở dĩ seamoun tách riêng phần nhận biết máy chủ Web Server thành một chủ đề bởi vì ngày nay web trở nên rất phổ biến và cách tấn công máy chủ từ web cũng vậy do nó phải luôn luôn được duy trì (trừ khi server web bị DOS nên down thôi ! smilie smilie). Thực chất việc tấn công một máy chủ web tức là tấn công hệ thống đích đó trên cổng 80. Hiển nhiên nó có nhiều kỹ thuật và sự khác biệt so với những dịch vụ khác , điều này seamoun không cần phải giới thiệu về web cũng thành phần liên quan đến web, do nó quá phổ biến và ai cũng biết.
Các bước tiến hành xác định banner của máy chủ web cũng tương tự như các dịch vụ khác.
Do nó cũng là một dịch vụ chạy trên TCP port 80 do vậy việc xác định nó cũng kết nối đến máy chủ web trên port 80
Ví dụ

D:\Hacking>nx -vv matbao.com 80
DNS fwd/rev mismatch: matbao.com != smb57.vdrs.net
matbao.com [203.162.163.57] 80 (http) open
HEAD / HTTP/1.0

HTTP/1.1 200 OK
Content-Length: 5118
Content-Type: text/html
Content-Location: http://203.162.163.57/index.htm
Last-Modified: Tue, 27 Sep 2005 07:20:00 GMT
Accept-Ranges: bytes
ETag: "2c739df33c3c51:5ea"
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET

Date: Tue, 08 Apr 2008 08:20:43 GMT
Connection: close

sent 17, rcvd 319: NOTSOCK

Cách trên là cách đơn giản nhất để xác định máy chủ Web đang chạy là gì, và sử dụng công nghệ gì. Ở vì dụ trên thì Web Server là IIS/6.0 chạy ASP.NET hoặc ASP.
Nếu một máy chủ Web cố tình sử dụng một số phần mềm như IIS Lockdown, Server Mask đối với IIS hoặc thay đổi tên máy chủ trên cấu hình Apache nhằm mục
đích chống hacker xác định dịch vụ web server là gì ? Hacker có thể sử dụng kỹ thuật http fingerprinting cao cấp hơn như sau :
a) Cách 1
Cũng kết nối đến máy chủ web trên cổng 80 như lại sử dụng một lệnh khác (không phải phương thức GET, POST thông thường) và chờ sự phản hồi lỗi từ phía
máy chủ web và từ đó xác định máy chủ web đang chạy là gì
Ví dụ

Đối với máy chủ Sun One Web Server nếu thực hiện:

$ nc sun.site.com 80
PUT / HTTP/1.0
Host: sun.site.com

thì nó sẽ phản hồi như sau:

HTTP/1.1 401 Unauthorized
Server: Sun-ONE-Web-Server/6.1


Đối với máy chủ IIS 6.0 nếu thực hiện:

$ nc iis6.site.com 80
PUT / HTTP/1.0
Host: iis6.site.com

thì nó sẽ phản hồi như sau:

HTTP/1.1 411 Length Required
Server: Microsoft-IIS/6.0
Content-Type: text/html


Đối với máy chủ là IIS 5.x nếu thực hiện

$ nc iis5.site.com 80
PUT / HTTP/1.0
Host: iis5.site.com

thì nó sẽ phản hồi như sau:

HTTP/1.1 403 Forbidden
Server: Microsoft-IIS/5.1


Đối với máy chủ là Apache 2.0.x nếu thực hiện:

$ nc apache.site.com 80
PUT / HTTP/1.0
Host: apache.site.com

nó sẽ phản hồi như sau:

HTTP/1.1 405 Method Not Allowed
Server: Apache/2.0.54


Như các bạn đã thấy ở trên đối với máy chủ khác nhau thì nó sẽ có cách phản hồi khi gửi lệnh PUT khác nhau và từ đó ta xác định được dịch vụ máy chủ web đang chạy là gì ?

Cách 2) Dựa vào đặc điểm phản hồi của máy chủ sau khi gửi lệnh HEAD
Cũng kết nối đến máy chủ đích trên port 80 và sử dụng HEAD giống như trường hợp ban đầu như phân tích kỹ hơn phần phản hồi
của máy chủ web để nhận định.

HTTP/1.1 200 OK
Date: Mon, 22 Aug 2005 20:22:16 GMT
Server: Apache/2.0.54

Last-Modified: Wed, 10 Aug 2005 04:05:47 GMT
ETag: "20095-2de2-3fdf365353cc0"
Accept-Ranges: bytes
Content-Length: 11746
Cache-Control: max-age=86400
Expires: Tue, 23 Aug 2005 20:22:16 GMT
Connection: close
Content-Type: text/html; charset=ISO-8859-1

HTTP/1.1 200 OK
Server: Microsoft-IIS/5.1
Date: Mon, 22 Aug 2005 20:24:07 GMT

Connection: Keep-Alive
Content-Length: 6278
Content-Type: text/html
Cache-control: private

HTTP/1.1 200 OK
Server: Sun-ONE-Web-Server/6.1
Date: Mon, 22 Aug 2005 20:23:36 GMT
Content-length: 2628
Content-type: text/html
Last-modified: Tue, 01 Apr 2003 20:47:57 GMT
Accept-ranges: bytes
Connection: close

HTTP/1.1 200 OK
Connection: close
Date: Mon, 22 Aug 2005 20:39:23 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
X-AspNet-Version: 1.1.4322
Cache-Control: private
Content-Type: text/html; charset=utf-8
Content-Length: 23756

Những phần mà seamoun làm đậm lên các bạn sẽ thấy sự khác biệt giữa những máy chủ web. Nếu nó là Apache thì Date để trước Server ngược lại so với IIS 5.1. Còn đối với Sun thì lengh và type nó viết thường không giống như
Apache và IIS. Còn IIS 6.0 thì nó có thêm dòng Connection: close


Tất các cách thực hiện trên đều dựa trên việc kết nối đến máy đích và sử dụng lệnh và chờ đợi sự phản hồi từ máy chủ web, sau đó
phân tích sự phản hồi của máy chủ web và đưa ra kết luận về máy chủ web.
Một công cụ mạnh dùng để thực hiện http fingerprinting là httprint Tool. Nó cho phép xác định dịch vụ web đang chạy là gì ? Là một đối thủ nặng ký đối với những công cụ
chống banner grabbing như Server Mask , IIS Lockdown

Demo
Trong phần demo của mình, seamoun sẽ thực hiện những kỹ thuật trên và tiếp đến là sử dụng công cụ httprint trong việc xác định máy chủ web.
3) Xác định dịch vụ và phiên bản tương ứng
Với kết quả mà hacker có được từ việc scan port giúp hacker xác định những dịch vụ nào đang chạy trên máy chủ.
Việc xác định dịch vụ cũng như phiên bản tương ứng rất quan trọng, lúc này hacker đã tiếp cận dần hơn với máy chủ.
Quá trình xác định dịch vụ và phiên bản của nó đơn giản chỉ là thực hiện một kết nối đến dịch vụ trên port mà nó sử dụng.
Thông thường thường thì các dịch vụ chạy với những port well-known. Ví dụ như FTP (21), SSH (22), Telnet (23), SMTP (25), ...
(Trong Windows OS tại C:\WINDOWS\system32\drivers\etc\services có giới thiệu về tên và loại dịch vụ tương ứng).
Cách thông thường nhất là telnet đến dịch vụ với cổng mà mình cần kiểm tra để xác định banner của nó.
Ví dụ sử dụng netcat để xem thử banner trên port 80 của host matbao.com
Code:
D:\Hacking>nx -vv matbao.com 80 (<-- Sử dụng tùy chọn -vv của netcat để xem thêm thông tin về matbao.com)
DNS fwd/rev mismatch: matbao.com != smb57.vdrs.net
matbao.com [203.162.163.57] 80 (http) open
HEAD / HTTP/1.0
HTTP/1.1 200 OK
Content-Length: 5118
Content-Type: text/html
Content-Location: http://203.162.163.57/index.htm
Last-Modified: Tue, 27 Sep 2005 07:20:00 GMT
Accept-Ranges: bytes
ETag: "2c739df33c3c51:5ea"
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
Date: Wed, 26 Mar 2008 10:57:01 GMT
Connection: close
sent 17, rcvd 319: NOTSOCK


Như trong ví dụ thì ta biết được Server Web là IIS 6.0, ...
Hiển nhiên đây là cách "cổ điển" nhất mà sử dụng để kiểm tra banner của port 80. Có thể Admin thay đổi cấu hình các thông tin server phản hồi đến chúng ta, khi chúng ta thực hiện kết nối đến nó trên port 80.Phần sau Seamoun sẽ trình bày một số kỹ thuật kiểm tra khác khi mà admin cố tình thay đổi sự phản hồi từ máy chủ web !!! smilie

Một hệ thống có thể bị thỏa hiệp bởi những dịch vụ bị lỗi mà người quản trị mạng không biết(không rà soát hết tất cả dịch vụ mà máy chủ đang chạy), do vậy việc nhận định những dịch vụ nào cần thiết thì mới open port, còn không cần thiết thì nên closed, để giảm nguy cơ bị tấn công trên những dịch vụ này. Giống như một nhà có nhiều cửa ra vào, chỉ những cửa nào cần thiết thì mở còn lại đóng hết cho chắc ăn smilie), chứ không hổng biết vì sao lại có thằng mò vào smilie smilie smilie.
Thông thường thì các công cụ Scan Port, nó bao gồm luôn cả xác định dịch vụ và phiên bản của dịch vụ đó.
Ví dụ như Nmap Scan bạn sử dụng tùy chọn -sV. nmap.exe -sV 192.168.1.3 Nó sẽ scan tất cả những dịch vụ phổ biến đồng thời hiển thị luôn phiên bản của dịch vụ đó.
Có được dịch vụ và phiên bản tương ứng, công việc tiếp theo là xác định xem dịch vụ với phiên bản đó có bị lỗi hay không ? Việc xác định lỗi có thể sử dụng search trên Internet tại những trang bảo mật như http://securityfocus.com, http://securiteam.com, http://secunia.com... hoặc sử dụng những chương trình pentest như Metasploit, Acunetix Scan, App Scan, Core Impact ...

Demo
Trong phần demo. Seamoun sẽ giới thiệu 2 phần. Phần 1 sẽ thực hiện việc banner grabbing với những công cụ đơn giản. Phần 2 sẽ sử dụng nmap để thực hiện scan port kết hợp với banner grabbing. Tiếp đến sẽ thực hiện tìm kiếm thông tin về service ứng với version mà mình có được khi scan với nmap, nó có lỗi gì tại thời điểm mình đang kiểm tra ? Trong demo này mình chỉ thực hiện với SMTP (25).

Phần sau seamoun sẽ giới thiệu về OS Fingerprinting...
c) Giới thiệu IDLE Scan
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). Kỹ thuật thuật scan IDLE dựa vào đặc điểm của IPID này mà xác định một cổng đóng hay mở. Và lợi dụng một máy thứ 3 làm trung gian để thực hiện.

Vậy kỹ thuật IDLE Scan được thực hiện như thế nào ? Các bước thực hiện IDLE Scan làm sao ?
Nhắc lại phương thức kết nối TCP
Như seamoun đã giới thiệu và demo ở phần TCP với kết nối đầy đủ thì một cổng được gọi "open" khi một client gửi đến đích với SYN packet trên cổng thích hợp. Nếu cổng đó mở thì nó sẽ gửi trở lại với packet SYN/ACK và nếu cổng đó đóng nó sẽ gửi lại RST.

Giả sử ta có một máy chủ abc.com và đích mà hacker cần scan là server.com.
Bước 1: Hacker thực hiện một kết nối SYN/ACK packet đến abc.com và quan sát IPID
Và hiển nhiên máy chủ abc.com sẽ gửi lại RST packet và ta cũng biết được IPID . Ví dụ IPID cho trường hợp này là 33668.

Bước 2: Sau đó hacker sẽ thực hiện gửi packet đến server.com với địa chỉ IP giả là máy chủ abc.com. Và hiển nhiên máy chủ server.com sẽ gửi lại cho máy chủ abc.com
với SYN/ACK được bật và máy chủ abc.com sẽ gửi RST packet trong trường hợp server.com mở cổng mà hacker đang cần kiểm tra. Giả sử trong trường hợp này cổng mở thì khi abc.com gửi RST packet đi thì nó sẽ tăng IPID lên 1. Vậy lúc này IPID có giá trị 33669. Và sẽ không tăng IPID nếu như cổng cần kiểm tra đóng.

Bước 3: Hacker thực hiện gửi SYN/ACK đến abc.com và kiểm tra thử IPID lúc này là bao nhiêu. Nếu như IPID mới bằng IPID cũ + 2 tức là cổng đó mở và ngược
lại thì cổng cần kiểm tra đó đóng.

Mô hình minh họa
Bước 1: Thăm dò IPID
Kẻ tấn công ---- >gửi packet (SYN/ACK) --------------------------> abc.com
Kẻ tấn công <--- gửi packet (RST. Giả sử có IPID=33668)< --------abc.com

Bước 2: Thực hiện gửi packet đến đích cần kiểm tra port với IP nguồn giả địa chỉ abc.com
Kẻ tấn công ----> gửi packet (SYN có địa chỉ IP nguồn là abc.com và cổng cần kiểm tra) ---> server.com
Trường hợp cổng mở nó thực hiện như sau:
abc.com <---- gửi packet (SYN/ACK)<----------------------------------------------------------- server.com
abc.com -----> gửi packet (RST có IPID=33669)----------------------------------------------->server.com
Trường hợp cổng đóng nó thực hiện như sau
abc.com <---- gửi packet (RST)-------------------------------------------------------------------server.com

Bước 3: Thăm dò lại IPID
Trong trường hợp cổng cần kiểm tra là mở thì
Kẻ tấn công ---> gửi packet (SYN/ACK)---------------------------->abc.com
Kẻ tấn công <---- gửi packet (RST có IPID=33670)-----------------abc.com
Trong trường hợp cổng cần kiểm tra đóng thì số IPID chỉ tăng lên 1

Kết luận: Cốt lõi của IDLE Scan tức là dựa vào sự quan sát IPID mà tăng không ngẫu nhiên để kết luận cổng đóng hay mở

Demo IDLE Scan
Đối với IDLE Scan trong nmap thì ta sử dụng tùy chọn : sI và lựa chọn một máy thứ 3 để làm trung gian như đã đề cập ở trên.
Mặc định thì chương trình scan nối với máy trung gian trên port 80, các bạn có thể sửa đổi chúng bằng cách sử dụng <ip>:<chỉ định port>.
Trong demo máy chạy nmap để thực hiện scan có IP là : 192.168.1.6, máy trung gian có địa chỉ IP: 192.168.1.2, máy cần quét cổng (máy đích) có địa chỉ IP là 192.168.1.8.

Giả sử cần kiểm tra port 7799 có mở hay không ? Thực hiện lệnh sau: nmap.exe -sI 192.168.1.2 192.168.1.8 -p 7799
Mặc định thì nmap sẽ nối đến máy trung gian port 80, có thể thay đổi cổng như sau: nmap.exe -sI 192.168.1.2:456 192.168.1.8 -p 7799.

Trong đoạn demo các bạn sẽ thấy nmap sẽ gửi nhiều SYN/ACK, mục đích của nó chỉ là kiểm tra xem thử IPID có tăng tuần tự hay không ? Do vậy để nhiều packet các bạn khó theo dõi nên seamoun đã tách ra những packet liên quan để các bạn dễ nhìn.

vikjava wrote:
anh có thể chia sẽ một tí về kỹ thuật scanning kô ah! xử dụng nmap là một ví dụ điển hình , khi scan đối vói hệ thống có firewall thì sao, ko có firewall thì sau, dùng tùy chọn nào thích hơp.  

Bởi vì seamoun cần giới thiệu đến rất nhiều vấn đề, cho nên nếu đi sâu vào một cái thì e rằng nói cả ngày không hết
Bạn có thể đọc tài liệu của nmap tại http://nmap.org/man/man-bypass-firewalls-ids.html, nó có giới thiệu và hướng dẫn đầy đủ smilie
b) SYN, XMAS, FIN, NULL, IDLE Scan
+ SYN hoặc còn gọi là Stealth được gọi là kỹ thuật quét bán mở bởi vì nó không hoàn tất bắt tay ba bước của TCP (3 bước xác lập kết nối đã giới thiệu ở trên).
Một hacker 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ở. Nếu một RST được nhận trở lại từ đích nghĩa là cổng đóng.
Những cờ như SYN, ACK, RST mà seamoun đã đề cập cho đến thời điểm này, vậy nó là gì ? Nó có tác dụng gì trong kết nối ?Ở đây seamoun chỉ giới thiệu chức năng của những cờ này trong packet TCP. Bởi vì TCP là một giao thức kết nối, do vậy nó cần những cờ để xác lập quá trình thiết lập cho một kết nối, việc khởi động lại một kết nối thất bại và hoàn tất một kết nối là một phần của giao thức.
Những cảnh báo của giao thức này là được gọi là các cờ (flags). TCP có các cờ là ACK, RST, SYN, URG, PSH và FIN.
Và ý nghĩa của nó như sau:
1) SYN-Synchronize. Khởi tạo một kết nối giữa các host.
2) ACK-Acknowledge. Thiết lập kết nối giữa các host.
3) PSH-Push. Hệ thống đang chuyển tiếp dữ liệu từ bộ nhớ đệm.
4) URG-Urgent. Dữ liệu trong packet cần phải được sử lý nhanh.
5) FIN-Finish. Không có sự trao đổi nào nữa.
6) RST-Reset. Reset lại kết nối.
Các bạn có thể xem thêm tại http://www.faqs.org/rfcs/rfc793.html)
Để thực hiện kỹ thuật scan SYN thì làm như sau: nmap -sS 192.168.1.3 hoặc nmap 192.168.1.3 -sS

Trở lại vấn đề về các kỹ thuật Scan. Kỹ thuật tiếp theo mà seamoun giới thiệu có trong Nmap Scan là
+ XMAS Scan là gửi gói tin với ba cờ được thiết lập FIN, URG, PSH. Nếu cổng mở thì không có sự phản hồi nào, nhưng nếu cổng đóng thì nó phản hồi với RST/ACK.
XMAS chỉ làm việc Unix không làm việc trên Windows.
Để thực hiện kỹ thuật scan XMAS thì làm như sau: nmap -sX 192.168.1.3 hoặc nmap 192.168.1.3 -sX

+ FIN Scan giống như XMAS Scan những chỉ với cờ FIN được thiết lập.
FIN cũng nhận phản hồi như XMAS Scan, nếu không có phản hồi thì tức cổng mở, mà có phản hồi RST/Ack thì cổng đóng
Để thực hiện kỹ thuật scan FIN thì làm như sau: nmap -sF 192.168.1.3 hoặc nmap 192.168.1.3 -sF

+ NULL Scan cũng như XMAS và FIN nó send với tất cả các cờ là tắt.
Để thực hiện kỹ thuật scan NULL thì làm như sau: nmap -sN 192.168.1.3 hoặc nmap 192.168.1.3 -sN

+ IDLE scan là sử dụng địa chỉ IP giả để gửi SYN đến hệ thống đích.
Phụ thuộc vào sự phản hồi , cổng được xác định là mở hoặc đóng.
IDLE scan xác định cổng scan dựa trên việc quan sát gói tin IP sequence numbers
Để thực hiện kỹ thuật scan IDLE thì làm như sau: nmap -sI 192.168.1.3 hoặc nmap 192.168.1.3 -sI

Demo 3
Địa chỉ IP đích: 192.168.1.3
Địa chỉ IP sử dụng Nmap: 192.168.1.6
Trong phần demo này mình sử dụng máy đích chạy Linux và listen port 7799. Sở dĩ seamoun chọn Linux vì một số kỹ thuật scan chỉ có thể thực hiện trên Linux không thể thực hiện trên Windows. Do vậy chạy Linux để demo tất cả trường hợp.
Các bạn sẽ thấy trong demo khi port 7799 mở (đóng) thì với kỹ thuật scan SYN, FIN, XMAS, NULL các cờ sẽ bật (tắt) khác nhau và phản hồi khác nhau.

Demo thứ 2
Sử dụng Nmap để thực hiện Port Scan với kỹ thuật TCP Scan.
Địa chỉ IP đích: 192.168.1.8. Mở cổng TCP 7799
Địa chỉ IP nguồn: 192.168.1.6 (Sử dụng nmap để scan).
Tùy chọn của nmap để thực hiện TCP Scan là : -sT.
Ví dụ bạn muốn Port Scan một máy tính có địa chỉ IP 192.168.1.8 với kỹ thuật
TCP Scan : nmap -sT 192.168.1.8 hoặc nmap 192.168.1.8 -sT. Trong demo này Seamoun sử dụng netcat để listen TCP với port 7799 và sử dụng nmap để kiểm tra port đó có open hay close.
Nếu trong ví dụ sau mà port 7799 close thì khi thực hiện quét bằng Nmap thì sau khi nmap gửi SYN packet đến IP:192.168.1.8. Vì IP=192.168.1.8 không mở port 7799 nên nó sẽ gửi Packet với cờ TCP (ACK và RST được bật) đến IP 192.168.1.6 (đang sử dụng nmap để scan).
2) Scan Port
Như đã đề cập ở trên công việc tiếp theo sau khi Ping Sweep là Scan Port và xác định những cổng đang mở và từ đó xác định dịch vụ đang chạy là gì ? Phiên bản nào ? ... Thông thường thì các chương trình Scan Port có sẵn những tùy chọn kết hợp sẵn việc scan cổng và xác định dịch vụ đang chạy cũng như phiên bản tương ứng. Những công cụ Scan Port thì rất
nhiều và mỗi công cụ có một thế mạnh riêng của nó. Công cụ Scan Port nổi tiếng mà nhiều bài viết trong HVA cũng đã đề cập đó là Nmap. Trong phần này seamoun sẽ đề cập những phần chính liên quan đến Nmap, những tùy chọn hoặc những tính năng khác của Nmap thì các bạn tự tìm hiểu ! Yêu cầu của phân này là bạn phải hiểu được các giao thức TCP, UDP và cấu trúc của một packet khi một máy tính gửi đến máy tính khác trên mạng.
Sở dĩ Nmap được sử dụng rộng rãi bởi vì nó các phiên bản tương ứng với các OS khác nhau (Unix, Linux, Windows).
Nmap hỗ trợ nhiều kỹ thuật scan port bao gồm các kỹ thuật như : TCP, XMAS, SYN, Null Scan, Windows Scan, ACK Scan
a) TCP Scan
Kỹ thuật TCP Scan tức là Nmap sẽ kiểm tra cổng trên hệ thống đích có mở hay đóng bằng cách thực hiện kết nối TCP đầy đủ.
Thực hiện kết nối TCP đầy đủ tức là sao ?. Tức là khi một máy tính A kết nối và gửi dữ liệu đến máy B qua giao thức TCP thì máy tính A và B phải thực hiện cơ chế "bắt tay" 3 bước trước khi truyền dữ liệu.
Giả sửa máy A có IP = 192.168.1.2 và máy tính B có IP = 192.168.1.3. Máy tính A muốn kết nối máy tính B qua giao thức
TCP thì sẽ thực hiện qua các bước sau
1) A (192.168.1.2)--- gửi SYN packet -----> B (192.168.1.3)
2) A (192.168.1.2)<-- gửi SYN/ACK packet ---B (192.168.1.3)
3) A (192.168.1.2)--- gửi ACK packet ------>B (192.168.1.3)

Demo sau sẽ cho bạn thấy rõ cơ chế này. Trong ví dụ này máy tính A có IP 192.168.1.2 và máy tính B có IP 192.168.1.8
Scanning & Enumeration

Quá trình Scanning cũng thực chất là tiếp tục quá trình thu tập thông tin về hệ thống nhưng lúc này hacker đã tác động trực tiếp đến máy chủ mà hacker cần tấn công.
Với kết quả có được từ footprinting hệ thống hacker đã xác định được hai thông tin quan trọng nhất là địa chỉ (hoặc dãy địa chỉ) IP và hostname
(địa chỉ IP và hostname là gì thì các bạn tự tìm hiểu !!!).
Quá trình Scanning có thể được chia thành các bước sau:

Xác định hệ thống có đang "sống" hay không ? ---> Kiểm tra các port nào đang mở ---> Xác định những dịch vụ nào đang chạy tương ứng với cổng đang mở ---> Xác định banner của từng dịch vụ và hệ điều hành và phiên bản của nó --> Kiểm tra lỗi của những dịch vụ đang chạy --> Xây dựng sơ đồ những host bị lỗi ---> Chuẩn bị một proxy tốt và tấn công.
1) Ping Sweep
Xác định hệ thống đang "sống" hay không rất quan trọng vì có thể hacker ngừng ngay tấn công khi xác định hệ thống đó đã "chết". Việc xác định hệ thống có "sống" hay không có thể sử dụng kỹ thuật Ping Scan hay còn gọi với tên là Ping Sweep. Bản chất của quá trình Ping Sweep là gì ? Bản chất của quá trình này là gửi một ICMP Echo Request đến máy chủ mà hacker đang muốn tấn công và mong đợi một ICMP Reply. (Giao thức ICMP là gì ? Và nó có tác dụng như thế nào ? Các bạn tự tìm hiểu nhé !).
Đa số các firewall thì luôn luôn chặn Ping do vậy việc phòng chống Ping Sweep rất dễ dàng. Lý do chặn ICMP ngoài việc chống Ping Sweep ra thì theo seamoun cũng nên chặn ICMP nếu như có firewall nào mà chưa chặn bởi vì hacker cũng có thể lợi dụng ICMP để đưa backdoor trên giao thức này.
Công cụ có sẵn là sử dụng lệnh ping có sẵn trên Windows hoặc Linux hoặc sử dụng những chương trình chuyên dụng sau :
Pinger, Friendly Pinger, và WS Ping Pro , Hping2. Trong những công cụ Pinger, WS Ping Pro thì mình thích nhất là Hping2 vì nó có nhiều tùy chọn cũng như nó có thể detect được host đó còn "sống" hay "chết" cho dù firewall có chặn ICMP
 
Go to Page:  First Page Page 4 5 6 7 9 10 11 Page 12 Last Page

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|