Hola RockHounD, nunca se me habia ocurrido hacer fuzzing asi

Pero creo que no te va a funcionar.
A mi modo de ver puedes hacer 2 cosas (entiendo que la pregunta es contra servicios FTP):
1- Crear un script que lance un cliente FTP repetidas veces con comandos y longitudes de cadena variables.
- Con linux puedes hacerlo con un script en sh, mas o menos algo asi:
#!/bin/sh
USUARIO="tu-usuario"
PASS="tu-password"
SERVIDOR="ip.de.tu.servidor"
# Variable en la que introduces el comando
VARIABLE=$(python -c 'print "a"*2000')
# Logueo automatico en el servidor remoto
ftp -n -i $SERVIDOR <<EOF
user $USUARIO $PASS
ascii STOR $VARIABLE
quit
EOF
Esto con un bucle 'for' podria servir.
- En Windows, mas de lo mismo, pero en este caso puedes aprovechar el comando -s:file del cliente ftp de Windows para automatizar el proceso. Solo debes crearte un fichero de texto con el nombre de usuario, contraseña, comando a utilizar y quit ( en ese orden) y pasarselo al cliente ftp asi:
># ftp -s:tu_archivo.txt 192.168.0.3
Esto lo metes en un bucle 'for' en batchscript y ya tienes un fuzzer.
2- Sin duda la mejor opcion XDD
- Create un script en Python o en Perl que te permita automatizar el proceso. Aqui te dejo uno modificado en python:
#!/usr/bin/python
import socket
#Crea un array de buffers, desde 20 hasta 2000, incremento de 20
buffer=["A"]
contador=20
while len(buffer) <= 30:
buffer.append("A"*contador)
contador=contador+50
# Define los comandos FTP a intentar explotar
comandos=["STOR","CWD"] #<-- Aqui puedes poner los comandos que quieras ir probando
# Inicializa el loop
for comandos in comandos:
for string in buffer:
print "Enviando comando " + comandos + " con " +str(len(string)) + " bytes"
s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
connect=s.connect(('tu_ip',21)) # IP y Puerto
s.recv(1024)
s.send('USER tu_usuario\r\n') # Usuario
s.recv(1024)
s.send('PASS tu_pass\r\n') # contraseña
s.recv(1024)
s.send(comandos + ' ' + string + '\r\n') # buffer malvado (risa diabolica)
s.recv(1024)
s.send('QUIT\r\n')
s.close()
Modificando las partes en rojo te debería funcionar bien.
Bueno, espero que te sirva de algo, si te piedes en algo comenta

Un salduo
PD: Edito por que soy un inutil y no puse bien los colores XDD