Sploitus

Exploit for CVE-2025-5548

kitploit Β· 2026-08-26

Exploit Code

MARKDOWN39 lines
## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-X3NT4UR0-CVE-2025-5548
# 취약점 뢄석 및 μ΅μŠ€ν”Œλ‘œμž‡

**λ¬Έμ„œ λͺ©μ :** μ‹€μŠ΅ ν™˜κ²½ ꡬ좕 쀑 μŠ΅λ“ν•œ 지식을 μ •λ¦¬ν•˜κ³ , CVE-2025-5548 μ΅μŠ€ν”Œλ‘œμž‡ 과정을 μƒμ„Ένžˆ κΈ°μˆ ν•˜λ©°, μ•Œλ €μ§€μ§€ μ•Šμ€ 취약점(0-day) 연ꡬλ₯Ό μœ„ν•œ λ‹€μŒ 단계λ₯Ό μ œμ‹œν•©λ‹ˆλ‹€.

* * *

## 1\. 취약점 탐색에 λŒ€ν•œ λ‚˜μ˜ μ‹œκ°

이 λͺ¨λ“ˆμ„ 톡해 μ΅μŠ€ν”Œλ‘œμž‡μ„ κ°œλ°œν•˜λŠ” 것은 μ •λ°€ν•œ 수술 μž‘μ—…μž„μ„ κΉ¨λ‹¬μ•˜μŠ΅λ‹ˆλ‹€. μžλ™ μŠ€μΊλ„ˆλ₯Ό λ¬΄μž‘μ • λŒλ¦¬λŠ” 것이 μ•„λ‹ˆλΌ, 컴퓨터가 λ‚΄λΆ€μ μœΌλ‘œ 정보λ₯Ό μ–΄λ–»κ²Œ μ²˜λ¦¬ν•˜λŠ”μ§€ μ΄ν•΄ν•˜λŠ” 것이 μ€‘μš”ν•©λ‹ˆλ‹€.

μ‹€μ œ μž‘μ—… 사이클은 μ„Έ κ°€μ§€ κΈ°λ‘₯에 κΈ°λ°˜ν•œλ‹€λŠ” 것을 λ°°μ› μŠ΅λ‹ˆλ‹€: **κ΄€μ°°**(Ghidra와 같은 λ„κ΅¬λ‘œ ν”„λ‘œκ·Έλž¨ μ½”λ“œλ₯Ό μ •μ μœΌλ‘œ λΆ„μ„ν•˜μ—¬ μœ„ν—˜ν•œ ν•¨μˆ˜ 탐색), **μƒν˜Έ μž‘μš©**(Immunity Debugger와 같은 디버거λ₯Ό μ‚¬μš©ν•˜μ—¬ μ‹€μ‹œκ°„ λ©”λͺ¨λ¦¬ 확인), **μ‘°μž‘**(ν”„λ‘œκ·Έλž¨μ΄ 정상적인 흐름을 μžƒμ„ λ•ŒκΉŒμ§€ 데이터λ₯Ό μ£Όμž…).

## 2\. μ‹€μŠ΅ 과제: FreeFloat FTP μ΅μŠ€ν”Œλ‘œμž‡

이둠을 μ‹œν—˜ν•˜κΈ° μœ„ν•΄ Python 3 및 뢄석 도ꡬ가 μ„€μΉ˜λœ Windows 11 가상 머신을 μ€€λΉ„ν–ˆμŠ΅λ‹ˆλ‹€. μ„ νƒν•œ λŒ€μƒμ€ `NOOP` λͺ…령어에 취약점이 μžˆλŠ” FTP μ„œλ²„μ˜€μŠ΅λ‹ˆλ‹€. 각 도ꡬλ₯Ό κ°œλ³„μ μœΌλ‘œ μ„€λͺ…ν•˜κΈ°λ³΄λ‹€λŠ” 곡격 κ³Όμ •μ—μ„œ μ–΄λ–»κ²Œ μ‚¬μš©ν–ˆλŠ”μ§€ μ„€λͺ…ν•˜κ² μŠ΅λ‹ˆλ‹€.

  * **좩돌 유발:** Python으둜 퍼저λ₯Ό ν”„λ‘œκ·Έλž˜λ°ν•˜κΈ° μ‹œμž‘ν–ˆμŠ΅λ‹ˆλ‹€. μ„œλ²„μ— 점점 더 κΈ΄ ν…μŠ€νŠΈ λ²„μŠ€νŠΈλ₯Ό λ³΄λ‚΄λŠ” λ°©μ‹μ΄μ—ˆμŠ΅λ‹ˆλ‹€. 400λ°”μ΄νŠΈμ— λ„λ‹¬ν•˜μž μ„œλ²„κ°€ μ€‘λ‹¨λ˜μ—ˆμŠ΅λ‹ˆλ‹€. 버퍼 μ˜€λ²„ν”Œλ‘œμš°λ₯Ό λ°œκ²¬ν•œ κ²ƒμž…λ‹ˆλ‹€.
  * **μ œμ–΄κΆŒ 확보 (EIP νƒˆμ·¨):** λ‹€μŒ λ‹¨κ³„λŠ” λ©”λͺ¨λ¦¬κ°€ λ„˜μΉ˜λŠ” μ •ν™•ν•œ 지점을 μ°Ύμ•„ ν”„λ‘œμ„Έμ„œκ°€ λ‹€μŒμ— μ‹€ν–‰ν•  λͺ…λ Ήμ–΄(EIP λ ˆμ§€μŠ€ν„°)λ₯Ό μ œμ–΄ν•˜λŠ” κ²ƒμ΄μ—ˆμŠ΅λ‹ˆλ‹€. Mona.py ν”ŒλŸ¬κ·ΈμΈμ„ μ‚¬μš©ν•˜μ—¬ μ •ν™•ν•œ μ˜€ν”„μ…‹μ΄ 246λ°”μ΄νŠΈμž„μ„ λ°œκ²¬ν–ˆμŠ΅λ‹ˆλ‹€.
  * **경둜 정리:** λ¬Έμ œκ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. μ„œλ²„κ°€ νŠΉμ • 문자(예: 쀄 λ°”κΏˆ `\x0a` λ˜λŠ” 널 λ°”μ΄νŠΈ `\x00`)κ°€ ν¬ν•¨λœ μ½”λ“œλ₯Ό μž˜λΌλƒˆμŠ΅λ‹ˆλ‹€. λ°”μ΄νŠΈ μ‹œν€€μŠ€λ₯Ό 보내고 디버거 λ©”λͺ¨λ¦¬λ₯Ό 반볡적으둜 ν™•μΈν•˜μ—¬ ν”Όν•΄μ•Ό ν•  λͺ¨λ“  "잘λͺ»λœ 문자"λ₯Ό 확인해야 ν–ˆμŠ΅λ‹ˆλ‹€.
  * **λ§ˆμ§€λ§‰ 타격:** ν”„λ‘œκ·Έλž¨μ΄ μ œκ°€ λ°”μ΄λŸ¬μŠ€λ₯Ό 숨길 λ©”λͺ¨λ¦¬ μ˜μ—­μœΌλ‘œ μ ν”„ν•˜λ„λ‘ ν•˜λŠ” 방법이 ν•„μš”ν–ˆμŠ΅λ‹ˆλ‹€. FTP 자체 μ½”λ“œ λ‚΄μ—μ„œ `JMP ESP` λͺ…λ Ήμ–΄λ₯Ό μ°Ύμ•˜μŠ΅λ‹ˆλ‹€. ν•΄λ‹Ή μ£Όμ†Œλ₯Ό κ²°ν•©ν•˜κ³  Metasploit으둜 μ΅œμ’… νŽ˜μ΄λ‘œλ“œλ₯Ό μƒμ„±ν•œ ν›„ μ‹€ν–‰ν•˜μ—¬ 곡격 μ‹œμŠ€ν…œμ΄ ν”Όν•΄μž Windows에 λŒ€ν•œ μ™„μ „ν•œ μ œμ–΄κΆŒμ„ κ°€μ§„ 원격 셸을 μ—΄μ—ˆμŠ΅λ‹ˆλ‹€.



## 3\. μ‹€μŠ΅ λ„ˆλ¨Έ: 0-Dayλ₯Ό ν–₯ν•œ κΈΈ

이 ν”„λ‘œκ·Έλž¨μ„ μ΅μŠ€ν”Œλ‘œμž‡ν•˜λŠ” 것은 맀우 κ΅μœ‘μ μ΄μ—ˆμ§€λ§Œ, 이것이 μ€€λΉ„λœ ν™˜κ²½μ΄λΌλŠ” 것을 μ•Œκ³  μžˆμŠ΅λ‹ˆλ‹€. ν˜„μ‹€ μ„Έκ³„μ˜ ν˜„λŒ€ μ‹œμŠ€ν…œμ€ λ³΅μž‘ν•œ λ³΄μ•ˆ 방어막을 κ°€μ§€κ³  μžˆμŠ΅λ‹ˆλ‹€. λ―Έλž˜μ— 아무도 λͺ¨λ₯΄λŠ” 결함(0-day)을 λ°œκ²¬ν•˜λ €λ©΄ κΈ°μˆ μ„ λ°œμ „μ‹œμΌœμ•Ό ν•œλ‹€λŠ” 것이 λΆ„λͺ…ν•©λ‹ˆλ‹€.

  1. **κΈ°λ³Έ 퍼징은 μžŠμ–΄λΌ:** "A"λ₯Ό λ³΄λ‚΄λŠ” 것은 ν˜„λŒ€ μ†Œν”„νŠΈμ›¨μ–΄μ—μ„œ 더 이상 ν†΅ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. νŒŒμΌμ΄λ‚˜ λ„€νŠΈμ›Œν¬ ν”„λ‘œν† μ½œμ˜ ꡬ쑰λ₯Ό μ΄ν•΄ν•˜λŠ” κ³ κΈ‰ 퍼저λ₯Ό μ‚¬μš©ν•˜μ—¬ ν”„λ‘œκ·Έλž¨μ˜ 더 κΉŠμ€ 계측을 μ†μ΄λŠ” 방법을 λ°°μ›Œμ•Ό ν•©λ‹ˆλ‹€.
  2. **λ³΄μ•ˆ 패치 연ꡬ:** *패치 λ””ν•‘(Patch Diffing)*μ΄λΌλŠ” 기술이 맀우 ν₯λ―Έλ‘­μŠ΅λ‹ˆλ‹€. Windowsλ‚˜ ν”„λ‘œκ·Έλž¨ μ—…λ°μ΄νŠΈλ₯Ό 가져와 이전 버전과 λΉ„κ΅ν•˜μ—¬ κ°œλ°œμžκ°€ μ •ν™•νžˆ μ–΄λ–€ μ½”λ“œ 쀄을 μ‚­μ œν•˜κ±°λ‚˜ μΆ”κ°€ν–ˆλŠ”μ§€ ν™•μΈν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. μ΄λŠ” 곡개되기 전에 결함이 어디에 μžˆμ—ˆλŠ”μ§€ μ•Œλ €μ£ΌλŠ” κ²½μš°κ°€ λ§ŽμŠ΅λ‹ˆλ‹€.
  3. **μ™„ν™” 기술과 μ‹Έμš°κΈ°:** ROP(Return-Oriented Programming)와 같은 κΈ°μˆ μ„ λ°°μ›Œ ν˜„λŒ€ 컴퓨터가 νŠΉμ • λ©”λͺ¨λ¦¬ μ˜μ—­μ—μ„œ μ½”λ“œ 싀행을 κΈˆμ§€ν•  λ•Œλ„ μ΅μŠ€ν”Œλ‘œμž‡μ΄ μž‘λ™ν•˜λ„λ‘ ν•΄μ•Ό ν•©λ‹ˆλ‹€.



## 4\. μ΅œμ’… μ„±μ°°

이 μ‹€μŠ΅μ—μ„œ 얻은 κ°€μž₯ κ·€μ€‘ν•œ κ΅ν›ˆμ€ **인내와 μ„ΈλΆ€ 사항이 μ „λΆ€** λΌλŠ” κ²ƒμž…λ‹ˆλ‹€.

μ˜€ν”„μ…‹μ—μ„œ 단 1λ°”μ΄νŠΈλΌλ„ 잘λͺ» κ³„μ‚°ν•˜κ±°λ‚˜ κΈˆμ§€λœ 문자 ν•˜λ‚˜λ₯Ό ν•„ν„°λ§ν•˜μ§€ μ•ŠμœΌλ©΄ 전체 μ΅μŠ€ν”Œλ‘œμž‡μ΄ μ‹€νŒ¨ν•˜κ³  ν”„λ‘œκ·Έλž¨μ΄ κ·Έλƒ₯ μ’…λ£Œλ©λ‹ˆλ‹€. 도ꡬ와 미리 λ§Œλ“€μ–΄μ§„ μŠ€ν¬λ¦½νŠΈλŠ” 큰 도움이 λ˜μ§€λ§Œ, κΈ°λ³Έ(μŠ€νƒ, ESP 및 EIPκ°€ μ–΄λ–»κ²Œ κ΅¬μ„±λ˜λŠ”μ§€)을 μ΄ν•΄ν•˜λŠ” κ²ƒλ§Œμ΄ μ²˜μŒμ— κ³„νšλŒ€λ‘œ λ˜μ§€ μ•Šμ„ λ•Œ μ½”λ“œλ₯Ό μˆ˜μ •ν•  수 있게 ν•΄μ€λ‹ˆλ‹€.