[하루한줄] NETGEAR firmware 취약점

URL

Microsoft finds new NETGEAR firmware vulnerabilities that could lead to identity theft and full system compromise

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에 저장된 암호를 얻을 수 있습니다.