Sploitus

Exploit for debianopenssl

kitploit ยท 2026-08-25

Exploit Code

MARKDOWN72 lines
## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-BADKEYS-DEBIANOPENSSL
# debianopenssl

Debian OpenSSL ๋ฒ„๊ทธ(CVE-2008-0166)์— ์ทจ์•ฝํ•œ ๊ฐœ์ธ ํ‚ค

2008๋…„ Debian๊ณผ Ubuntu์˜ OpenSSL ํŒจํ‚ค์ง€์—์„œ ์˜ˆ์ธก ๊ฐ€๋Šฅํ•œ ๊ฐœ์ธ ํ‚ค๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฒ„๊ทธ๊ฐ€ ๋ฐœ๊ฒฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ‚ค์˜ ๊ฐœ์ˆ˜๋Š” ์ œํ•œ์ ์ด์ง€๋งŒ, ์ž ์žฌ์ ์œผ๋กœ ์˜ํ–ฅ์„ ๋ฐ›๋Š” ๋ชจ๋“  ํ‚ค์˜ ์ ์ ˆํ•œ ๋ชฉ๋ก์„ ์ž‘์„ฑํ•˜๋ ค๋ฉด ๋ช‡ ๊ฐ€์ง€ ๊ณ ๋ ค ์‚ฌํ•ญ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ €์žฅ์†Œ๋Š” badkeys ๋„๊ตฌ์˜ ์ฐจ๋‹จ ๋ชฉ๋ก์— ์‚ฌ์šฉ๋˜๋Š” ํ‚ค๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

Debian OpenSSL ๋ฒ„๊ทธ์— ๋Œ€ํ•œ ์ฐธ๊ณ  ์‚ฌํ•ญ:

  * ํ‚ค๋Š” ํ”„๋กœ์„ธ์Šค ID(PID)์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค. ์œ ํšจํ•œ PID ๋ฒ”์œ„๋Š” 0๋ถ€ํ„ฐ 32767๊นŒ์ง€์ž…๋‹ˆ๋‹ค. PID 0์œผ๋กœ ์ƒ์„ฑ๋œ ํ‚ค๋Š” ๊ฐ€๋Šฅ์„ฑ์ด ๋‚ฎ์ง€๋งŒ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. 64๋น„ํŠธ ํ”Œ๋žซํผ์—์„œ๋Š” ์ปค๋„์„ ๊ตฌ์„ฑํ•˜์—ฌ ๋” ํฐ PID๋ฅผ ํ—ˆ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๊ฐ€๋Šฅ์„ฑ์€ ๋‚ฎ์Šต๋‹ˆ๋‹ค.
  * openssl ๋ช…๋ น์ค„ ๋„๊ตฌ์™€ OpenSSH์˜ ssh-keygen์—์„œ ์ƒ์„ฑ๋œ ํ‚ค๋Š” ๋‹ค๋ฆ…๋‹ˆ๋‹ค.
  * openssl์˜ genrsa ๋ฐ req ๋ช…๋ น์œผ๋กœ ์ƒ์„ฑ๋œ ํ‚ค๋Š” ๋™์ผํ•ฉ๋‹ˆ๋‹ค.
  * openssl์€ ํ™ˆ ๋””๋ ‰ํ„ฐ๋ฆฌ์— .rnd ํŒŒ์ผ์ด ์žˆ๋Š”์ง€ ์—ฌ๋ถ€์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ํ‚ค๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  * .rnd ํŒŒ์ผ์ด ์—†์œผ๋ฉด ๊ตฌ๋ฒ„์ „(์˜ˆ: etch์˜ 0.9.8c)๊ณผ ์‹ ๋ฒ„์ „(์˜ˆ: lenny์˜ 0.9.8g) openssl์ด ๋‹ค๋ฅธ ํ‚ค๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  * ssh-keygen์€ 512๋น„ํŠธ RSA ํ‚ค๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(์ตœ์†Œ ํฌ๊ธฐ๋Š” 768๋น„ํŠธ).
  * openssl์€ ์ง€์ˆ˜ ๊ฐ’์„ 3์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์„ ์ง€์›ํ•˜์ง€๋งŒ, ์ด๋Š” ๋ชจ๋“ˆ๋Ÿฌ์Šค๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ธฐ๋ณธ ์ง€์ˆ˜ ๊ฐ’์„ ๊ฐ€์ง„ ํ‚ค๋งŒ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์ฐจ๋‹จ ๋ชฉ๋ก์„ ์ž‘์„ฑํ•  ๋•Œ๋Š” ์ „์ฒด ํ‚ค๊ฐ€ ์•„๋‹Œ ๋ชจ๋“ˆ๋Ÿฌ์Šค๋ฅผ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.
  * ssh-keygen์€ 1024๋น„ํŠธ ํฌ๊ธฐ์˜ DSA ํ‚ค๋งŒ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  * openssl๋กœ DSA ํ‚ค๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์€ ๋‘ ๋‹จ๊ณ„ ๊ณผ์ •(๋จผ์ € ๋งค๊ฐœ๋ณ€์ˆ˜ ์ƒ์„ฑ ํ›„ ํ‚ค ์ƒ์„ฑ)์ด๋ฏ€๋กœ ๊ฐ€๋Šฅํ•œ ํ‚ค์˜ ์ˆ˜๊ฐ€ ํ›จ์”ฌ ๋งŽ์Šต๋‹ˆ๋‹ค. SSL/TLS์—์„œ DSA ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ์ผ๋ฐ˜์ ์ด์ง€ ์•Š์•˜์œผ๋ฏ€๋กœ ์—ฌ๊ธฐ์„œ๋Š” ๊ณ ๋ ค๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  * ๋น… ์—”๋””์•ˆ ์•„ํ‚คํ…์ฒ˜์ธ PowerPC, SPARC, HPPA์—์„œ ์ƒ์„ฑ๋œ ํ‚ค๋Š” ๋™์ผํ•ฉ๋‹ˆ๋‹ค.
  * MIPS์—์„œ ์ƒ์„ฑ๋œ ํ‚ค๋Š” ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ํ•ด๋‹น ํ”Œ๋žซํผ์˜ ์‚ฌ์šฉ์ด ๋“œ๋ฌผ๊ธฐ ๋•Œ๋ฌธ์— ๊ณ ๋ ค๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  * ํƒ€์› ๊ณก์„ /ECDSA ํ‚ค๋Š” openssl์—์„œ ์ง€์›๋˜์ง€๋งŒ openssh์—์„œ๋Š” ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋งŽ์€ ๊ณก์„ ์ด ์ง€์›๋˜์ง€๋งŒ TLS ์ธ์ฆ์„œ์—์„œ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ NIST P-256 ๋ฐ P-384 ๊ณก์„ ๋งŒ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.



์ด ์ €์žฅ์†Œ์—๋Š” ํ˜„์žฌ ๋‹ค์Œ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค:

  * 1024, 2048, 3072, 4096๋น„ํŠธ RSA ํ‚ค
  * 1024๋น„ํŠธ DSA ํ‚ค(openssh๋งŒ ํ•ด๋‹น)
  * P-256 ๋ฐ P-384 ๊ณก์„ ์˜ ECDSA ํ‚ค(openssl๋งŒ ํ•ด๋‹น)
  * 0~32767 PID๋กœ ์ƒ์„ฑ
  * openssl ๋ฐ ssh-keygen์œผ๋กœ ์ƒ์„ฑ๋œ ํ‚ค(ssl/ssh ๋””๋ ‰ํ„ฐ๋ฆฌ)
  * ๋ฆฌํ‹€ ์—”๋””์•ˆ 32๋น„ํŠธ(x86) ๋ฐ 64๋น„ํŠธ(amd64) ์•„ํ‚คํ…์ฒ˜์™€ ์ผ๋ฐ˜์ ์ธ ๋น… ์—”๋””์•ˆ 32๋น„ํŠธ(PowerPC/SPARC/HPPA) ์•„ํ‚คํ…์ฒ˜์—์„œ ์ƒ์„ฑ๋œ ํ‚ค
  * ์„ธ ๊ฐ€์ง€ openssl ๋ณ€ํ˜•(.rnd ์œ ๋ฌด, ๊ตฌ/์‹  ๋ฒ„์ „) ๋ชจ๋‘



๋น„์ •์ƒ์ ์ธ ํ‚ค ํฌ๊ธฐ, ๋น„ํ‘œ์ค€ PID ๊ฐ’, ๋น„ํ‘œ์ค€ ์ง€์ˆ˜ ๊ฐ’, MIPS์—์„œ ์ƒ์„ฑ๋œ ํ‚ค ๋˜๋Š” openssl๋กœ ์ƒ์„ฑ๋œ DSA ํ‚ค๋Š” ํฌํ•จ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋””๋ ‰ํ„ฐ๋ฆฌ ๊ตฌ์กฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

root@kitploit:~
    
    
    rsa2048
     ssl
      le32
       $pid-rnd.key
       $pid-nornd-old.key
       $pid-nornd-new.key
      le64...
      be32...
     ssh
      le32
       $pid.key
      le64...
      be32...
    rsa...
    dsa1024
     ssh
      ...
    ecp256
     ssl
      ...
    

# ๋งํฌ

  * ์ด ๋ฒ„๊ทธ์— ๋Œ€ํ•œ Debian Wiki ํŽ˜์ด์ง€
  * ํ‚ค ์ƒ์„ฑ ๋„๊ตฌ ๋ฐ ์Šคํฌ๋ฆฝํŠธ
  * When Private Keys are Public: 2009๋…„์— ๋ฐœํ‘œ๋œ ์ด ๋ฒ„๊ทธ์— ๊ด€ํ•œ ์—ฐ๊ตฌ ๋…ผ๋ฌธ
  * Rob Stradling์ด ๋งŒ๋“  key_generator ๋ฐ private_keys (openssl๋งŒ ํ•ด๋‹น)
  * HD Moore์˜ ์ด์ „ ๋„๊ตฌ/ํ‚ค ๋ฏธ๋Ÿฌ