[하루한줄] NETGEAR firmware 취약점
URL
Target
- NETGEAR DGN-2200v1 시리즈
Explain
마이크로소프트에서 NETGEAR DGN-2200v1 시리즈 라우터에서 네트워크 보안을 손상시킬 수 있는 세 가지 취약점을 발견하였습니다.
인증 우회를 통한 라우터 관리자 페이지 접근
HTTPd 내부 처리 코드에서 strstr
을 사용하여 전체 문자열에서 .jpg
, .gif
, ess_
등의 문자열이 마지막에 존재하는지 확인합니다. 따라서 GET 파라미터를 통해 인증이 필요한 페이지 뒤에 해당 필터링이 걸린 문자를 넣으면 인증을 우회하고 페이지에 접근이 가능합니다.
예시) http://127[.]0[.]0[.]1/admin.htm?pic.gif
Cryptographic side-channel을 통해 저장된 라우터 자격 증명 가져오기
라우터에서 HTTPd 페이지에 인증해야하는 경우 HTTP basic authentication이 필요합니다. 사용자 이름과 비밀번호는 base64로 인코딩되고 HTTP 헤더로 전송된 후 라우터의 메모리에 저장된 이름과 비밀번호와 비교해 확인합니다. 라우터는 파일 시스템 외부에 있는 NVRAM에 인증 정보를 저장하므로 이를 추출할 수 있습니다.
하지만 인증 부분에서 이름과 비밀번호를 strcmp
를 사용하여 비교합니다. strcmp
는 NUL을 만나거나 일치하지 않는 부분이 생길 때까지 문자열을 비교하므로 실패할 때까지 걸리는 시간을 통해 side-channel attack이 가능합니다.
저장된 민감한 정보 탐색
위에서 설명드린 인증 우회 취약점으로 인증이 필요한 페이지에 접근하는 것 뿐만 아니라 라우터의 설정 백업/복구 기능을 사용하여 사용자 이름, 비밀번호를 가져올 수 있습니다. http://router_addr:8080/NETGEAR_DGN2200[.]cfg?pic[.]gif
로 접근하면 설정 파일을 얻을 수 있습니다. 해당 파일은 DES로 암호화 되어있으며, 백업/복구 기능의 코드에서 NtgrBak
키를 통해 암호화 됩니다. 이를 통해 해커는 NVRAM에 저장된 암호를 얻을 수 있습니다.
본 글은 CC BY-SA 4.0 라이선스로 배포됩니다. 공유 또는 변경 시 반드시 출처를 남겨주시기 바랍니다.