## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-FURKANZENGIN-CVE-2022-30525
# CVE-2022-30525
Zyxelμ CGI νλ‘κ·Έλ¨μμ λ°μν OS λͺ
λ Ή μ£Όμ
μ·¨μ½μ
# μμ½
μ΄ μ·¨μ½μ μ 2022λ
4μ 13μΌμ μ²μ λ°κ²¬λμμΌλ©°, Zyxel λ°©νλ²½ μ νμμ μ격 μ½λ μ€νμ μ λ°νμ΅λλ€. CVSS μ μ 9.8μ μ€μν μ·¨μ½μ μΌλ‘, λ°κ²¬ ν 15μΌ λ§μ Zyxelμ΄ μ
λ°μ΄νΈλ₯Ό μΆμνμ¬ μ°¨λ¨νμ΅λλ€. μ΄ κ³Όμ μμ μ΅μ 20,800κ°μ λͺ¨λΈμ΄ μν₯μ λ°μμΌλ©°, λλΆλΆ μ λ½ μ§μμ΄μμ΅λλ€.
μ·¨μ½μ μ μ λ‘ν°μΉ νλ‘λΉμ λ μ νλ¦Ώ λ΄μ "setWanPortSt" λͺ
λ Ήμ΄λ‘ μΈν΄ λ°μν©λλ€. "setWanPortSt" λͺ
λ Ήμ΄μ λν μ κ·Όμ /ztp/cgi-bin/handler μλν¬μΈνΈλ₯Ό ν΅ν΄ μ΄λ£¨μ΄μ§λλ€.
Zyxelμ΄ ν΄λΉ μ·¨μ½μ μ λν λͺ¨λΈ μ
λ°μ΄νΈλ₯Ό μ 곡ν μ΄ν μ
μ© μ¬λ‘λ κ΄μ°°λμ§ μμμ΅λλ€. μν₯μ λ°μ λͺ¨λΈμ μννΈμ¨μ΄ λ²μ μ v5.30μΌλ‘ μ
κ·Έλ μ΄λλμμΌλ©°, μ·¨μ½μ μ λ°©μ§νκΈ° μν΄ μλ μννΈμ¨μ΄ μ
λ°μ΄νΈλ₯Ό νμ±νν΄μΌ νλ€λ μ μ΄ κ°μ‘°λμμ΅λλ€.
# μκ°
2022λ
4μ 13μΌ, Rapid7μ Zyxel λ°©νλ²½ μ₯μΉμ μν₯μ λ―ΈμΉλ μ·¨μ½μ μ λ³΄κ³ νμ΅λλ€. μ΄ μ·¨μ½μ μ ν΅ν΄ 곡격μλ μΈμ¦ μμ΄ μ격μΌλ‘ "nobody" μ¬μ©μλ‘ μμ λͺ
λ Ήμ μ£Όμ
ν μ μμ΅λλ€. μ΄ μ·¨μ½μ μ μΉλͺ
μ μΈ μμ€μΌλ‘ μ²λ¦¬λμμΌλ©° CVSS μ μλ 9.8λ‘ κ²°μ λμμ΅λλ€. μ΄ν Zyxelμ 2022λ
4μ 28μΌμ 보μ μ
λ°μ΄νΈλ₯Ό λ°ννμ¬ μ·¨μ½μ μ ν΄κ²°νμ΅λλ€. 2022λ
5μ 12μΌ, Rapid7μ μ΄ μ·¨μ½μ μ λν κΆκ³ μ Metasploit λͺ¨λμ κ²μνμ΅λλ€.
# μ·¨μ½μ κ³Ό κ·Έ μν₯
ShadowServerμ μ°κ΅¬μλ€μ CVE-2022-30525 μ
μ© μλλ₯Ό λͺ¨λν°λ§νκΈ° μμνμ΅λλ€. μ‘°μ¬ κ³Όμ μμ μν₯μ λ°μ Zyxel λ°©νλ²½ λͺ¨λΈ μ€ μ΅μ 20,800κ°κ° μ¨λΌμΈμ λ
ΈμΆλ κ²μΌλ‘ λνλ¬μ΅λλ€. μν₯μ λ°μ λͺ¨λΈμ λλΆλΆμ νλμ€μ μ΄ν리μμ μμμ΅λλ€.

μ·¨μ½μ μ 곡격μκ° μ 곡ν λ°μ΄ν°μ ν¨κ» "os.system"μ μ¬μ©νλ λ°μ λΉλ‘―λ©λλ€. /ztp/cgi-bin/handler μλν¬μΈνΈκ° 곡격μ μ€ννλ λ° μ¬μ©λ©λλ€. Handlerλ μ¬λ¬ λͺ
λ Ήμ μ€νν μ μλ Python μ€ν¬λ¦½νΈμ
λλ€. μ΄ μ€λ₯λ₯Ό μ²μ λ³΄κ³ ν Jake Bainesλ μμ μ λΈλ‘κ·Έμμ λ€μκ³Ό κ°μ΄ μ·¨μ½μ μ μ€λͺ
νμ΅λλ€: "Rapid7μ ZTP(Zero Touch Provisioning)λ₯Ό μ§μνλ Zyxel λ°©νλ²½(ATP μ리μ¦, VPN μ리μ¦, USG FLEX μ리μ¦(USG20-VPN λ° USG20W-VPN ν¬ν¨))μ μν₯μ λ―ΈμΉλ μ·¨μ½μ μ λ°κ²¬νμ¬ λ³΄κ³ νμ΅λλ€. CVE-2022-30525λ‘ μλ³λ μ΄ μ·¨μ½μ μ μΈμ¦λμ§ μμ μ격 곡격μκ° μν₯μ λ°λ μ₯μΉμμ nobody μ¬μ©μλ‘ μμ μ½λλ₯Ό μ€νν μ μλλ‘ ν©λλ€."
λ¬Έμ λ μ λ‘ν°μΉ νλ‘λΉμ λ ꡬν λ΄μμ "setWanPortSt"λΌλ λͺ
λ Ήμ΄λ‘ μΈν΄ λ°μνλ©°, μ΄ λͺ
λ Ήμ΄λ μ격 νλ‘λΉμ λμ΄ λ°©νλ²½ ν¬νΈμ IP μ€μ μ λ³κ²½ν μ μλλ‘ ν©λλ€.
# μ
μ©
μ
μ©μ΄ μ΄λ»κ² μ΄λ£¨μ΄μ§λμ§ λ μ μ΄ν΄νκΈ° μν΄ PoCκ° κ²μλμμ΅λλ€. Victorian Machineryλ CVE-2022-30525μ λν κ°λ
μ¦λͺ
μ΅μ€νλ‘μμ
λλ€. μ΄ μ·¨μ½μ μ μ λ‘ν°μΉ νλ‘λΉμ λμ μ§μνλ Zyxel λ°©νλ²½μ μν₯μ λ―ΈμΉλ μΈμ¦λμ§ μμ μ격 λͺ
λ Ή μ£Όμ
μ·¨μ½μ μ
λλ€.

λ¨Όμ , λμμ netcat 리μ€λλ₯Ό μ¬μ©νμ¬ μ
μ©λκ³ λ¦¬λ²μ€ μ
Έμ΄ νλλ©λλ€. κΈ°λ³Έμ μΌλ‘ "nc"λ "nc-path"λ₯Ό μ 곡νμ¬ μ€νλ©λλ€. Pythonμμλ "os.fork()" μμ
μ μ¬μ©νμ¬ λ©μΈ νλ‘μΈμ€μ 볡μ¬λ³Έμ΄ μμ±λ©λλ€. κ·Έλ° λ€μ νλ‘μΈμ€ IDκ° 0μ΄λ©΄ μ§μ λ URL μ£Όμλ‘ POST μμ²μ΄ μ μ‘λ©λλ€. URLμλ κ°κ° νλ‘ν μ½, μ
μ©ν μ격 μ£Όμ, μ격 ν¬νΈ λ° "/ztp/cgi-bin/handler" μλν¬μΈνΈκ° ν¬ν¨λ©λλ€. μ¬κΈ°μ /ztp/cgi-bin/handler μλν¬μΈνΈλ₯Ό ν΅ν΄ λ°©νλ²½ ν¬νΈμ IP μ€μ μ λ³κ²½ν μ μλ "setWanPortSt" λͺ
λ Ήμ΄μ κΈ°λ₯μ μ κ·Όν μ μμ΅λλ€. νμ΄λ‘λλ₯Ό κ²ν ν΄λ³΄λ©΄ λͺ
λ Ήμ΄μ λμμ΄ DHCP νλ‘ν μ½μ ν¬νΈ 1270μμ μ μ μμ΅λλ€. μ΄λ¬ν λ°©μμΌλ‘ 곡격μλ nobodyλ‘ μ격 μ½λ μ€νμ μ 곡ν μ μμ΅λλ€.
# μ
μ© νν©
μ μΈκ³ μ
μ© μ¬λ‘λ₯Ό μ‘°μ¬νλ Shadowserver Foundationμ κ΄μ°°λ μ
μ© μλμ κ·Έ νΉμ±μ λν μΆκ° μ 보λ₯Ό 곡κ°νμ§ μμμ΅λλ€. 2022λ
5μ 16μΌ μμμΌ μ΄νλ‘ μ
μ© μλλ μμμ§λ§ μ‘°μ¬λ κ³μλκ³ μλ€κ³ λ°νλμμ΅λλ€.
# μν μ μ
μν₯μ λ°μ μ₯μΉμ κ΄λ¦¬μλ κ°λ₯ν ν 빨리 νμ¨μ΄λ₯Ό V5.30μΌλ‘ μ
κ·Έλ μ΄λνλ κ²μ΄ μ’μ΅λλ€. Jake Bainesλ λν κ°λ₯νλ©΄ μλ νμ¨μ΄ μ
λ°μ΄νΈλ₯Ό νμ±ννλΌκ³ λ§νμ΅λλ€. Zyxelμ μ·¨μ½μ μ μ‘°μ©ν μ²λ¦¬νλ€λ λΉνμ λ°μμ§λ§, μ±λͺ
μμμλ μ΄λ "κ³΅κ° μ‘°μ κ³Όμ μ€ μμ¬μν΅ μ€λ₯" λλ¬Έμ΄λΌκ³ μ€λͺ
νμ΅λλ€. λ΄λΆ μ§μλ€μκ²λ μλ μνλ₯Ό μν μ¬μ μ μμ±νμ¬ μλ‘μ΄ "HTTP νλ‘ν μ½ μλͺ
" μ μ±
μ λ§λ€λ©΄ μ
μ©μ λ°©μ§ν μ μλ€κ³ μ ν΄μ‘μ΅λλ€.
# κ²°λ‘
κ²°κ³Όμ μΌλ‘, Zyxel λ°©νλ²½ μ νμμ λ°μν μ΄ μ·¨μ½μ μ λ§μ λͺ¨λΈμ μΉλͺ
μ μΈ μμ€μΌλ‘ μν₯μ λ―Έμ³€μ΅λλ€. λ¬Έμ κ° μ§§μ μκ° λ΄μ μ²λ¦¬λμμ§λ§ μ
μ©μ μν₯μ μλΉν μ»Έμ΅λλ€. μ€λ«λμ μ
μ© μ¬λ‘κ° λ°κ²¬λμ§ μμ κ²μ μ
λ°μ΄νΈκ° νμ¬λ‘μλ 보μ μ·¨μ½μ μ μ°¨λ¨ν μ μμμ 보μ¬μ€λλ€.