|
||||||||
|
||||||||
|
|
Công Cụ | Xếp Bài |
28-08-2009, 05:08 PM | #1 |
Guest
Trả Lời: n/a
|
Nhận biết máy chủ Web Server
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 ! ). 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 Theo: seamoun (hvaonline) |
|
|