## 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์ ์ด์ ๋๊ตฌ/ํค ๋ฏธ๋ฌ