보안 이슈

AhnLab 보안 전문가의 심층분석! 보안 이슈 정보를 전해드립니다.

[Threat Analysis] 전격 해부! 공유기 DNS 변조 공격의 실체

  • Facebook에 공유하실 수
    있습니다.

  • Twitter에 공유하실 수
    있습니다.

  • Linked in

    Linked in에 공유하실 수
    있습니다.

  • 붙여넣기

    블로그나 게시판에 붙여넣기 하실
    수 있습니다.

  • AhnLab
  • 2014-08-01

유•무선 공유기를 이용한 DNS 변조 공격 분석


 

지난 5월, 국내 주요 포털 사이트에 접속하면 가짜 은행 사이트로 접속되는 사례가 발생했다. 이는 사용자의 공유기가 해킹된 것으로, 공유기의 DNS 주소를 변경해 사용자들을 피싱 사이트나 파밍 사이트로 유도하는 공격이다. 공유기의 DNS가 변조된 경우에는 사용자들이 정상적인 주소를 입력하더라도 악성 사이트로 이동하게 된다.

 

최근 공유기를 사용하는 이용자들이 늘어남에 따라 이를 노리는 공격 또한 증가하고 있는 추세다. 금융감독원에 따르면 공유기의 DNS 주소 변조 공격으로 1천691명의 이름과 주민등록번호, 휴대폰번호, 거래은행명, 계좌번호, 계좌비밀번호, 보안카드 번호 등이 유출됐다. 이 글에서는 실제 국내 주요 공유기를 대상으로 공유기 DNS 변조 공격 시나리오를 살펴본다. 

 

최근 유•무선 인터넷 공유기에 설정된 DNS(Domain Name Server) 주소를 변조해 피싱 사이트로 유도하는 범죄가 발생하고 있다. 일반적으로 공유기 DNS 변조를 이용한 공격 방식은 [그림 1]과 같다. 

 

 

 
[그림 1] 공유기 DNS 변조를 이용한 공격

 

 

공유기 DNS 공격 시나리오

 

1. CSRF 취약점을 이용한 DNS 변조

 

공유기는 기본적으로 외부에서 접근하지 못하도록 되어 있기 때문에 DNS 변조 공격을 하기 위해 공격자들은 CSRF(Cross-site request forgery) 취약점을 이용한다.

 


CSRF (Cross-site request forgery)


사이트 간 요청 위조(또는 크로스 사이트 요청 위조, 약칭 CSRF 또는 XSRF)는 웹사이트 취약점 공격의 하나로, 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위(수정, 삭제, 등록 등)를 특정 웹사이트에 요청하게 하는 공격을 말한다.
사이트 간 스크립팅(XSS)을 이용한 공격이 사용자가 특정 웹사이트를 신용하는 점을 노린 것이라면, 사이트간 요청 위조는 특정 웹사이트가 사용자의 웹 브라우저를 신용하는 상태를 노린 것이다. 즉, 일단 사용자가 웹사이트에 로그인한 상태에서 사이트간 요청 위조 공격 코드가 삽입된 페이지를 열면 이후에는 사용자의 행동과 관계 없이 사용자의 웹 브라우저와 공격 대상 웹사이트 간의 상호작용이 이루어진다. (공격자의 의도에 따라 제 3의 웹사이트가 추가될 수도 있다.)

*출처: 위키피디아


 

 

 

DNS 변조와 관련된 간단한 CSRF HTML 코드는 다음과 같다.


[그림 2] CSRF HTML 코드 예시

 

[그림 2]의 HTML이 실행되면 이미지 파일을 로드할 수 없도록 에러를 발생시켜 onerror 스크립트가 실행되면 공유기의 DNS 설정 변경을 유도하는 패킷을 발생하도록 한다. 해당 페이지가 iframe 형태로 특정 사이트에 삽입되어있거나 사용자에게 해당HML의 접속을 유도함으로써 DNS 변조가 가능하다.

 

 

2. 외부 접속 공격 시나리오
 


[그림 3] 공유기 접속 관리 화면 예시

 

 

[그림 3]은 국내 모 업체 공유기의 접속 관리 화면으로, 공유기의 원격 관리 포트 사용이 가능하다. 기본(Default) 설정은 해당 기능을 사용하지 않는 것으로 되어 있으며, 포트 또한 특정 값으로 정해져 있지 않다. 하지만 간단한 Ping 프로그램 및 포트 스캔(Port Scan)을 이용해 해당 포트 값을 얻을 수 있다.


해당 공유기 업체의 경우, 제조사에서 DDNS 서비스를 제공한다. 이를 통해 생성되는 DDNS(Dynamic DNS) 주소는 문자열.xxxxxx.org의 형태를 갖는다. BruteForce를 이용해 해당 주소가 DDNS 서비스를 사용하는지의 여부를 확인할 수 있다. 


 

[그림 4] Ping 명령으로 DDNS 이용 공유기 확인

 

 

해당 DDNS가 할당된 특정 문자열(예: a.xxxxx.org)이 있는 경우 Ping 명령을 이용해 이를 확인할 수 있다. 외부 접속이 허용되는 옵션이 있는 경우, 포트 스캔을 이용해 해당 포트로 접속 가능한 포트를 선정하고 DNS변조 공격에 사용할 수 있는 패킷을 전송하여 응답으로 200 OK 값을 받게 되면 공격에 성공한다. 단, 외부 접속 옵션이 허용되어 있으면서 방화벽 설정이 열려있다는 가정 하에 발생할 수 있는 시나리오다.

 

 

공유기 DNS 변조 공격 분석

 

국내 모 업체의 각기 다른 유•무선 공유기 3종을 테스트한 결과, 동일한 CGI 및 매개변수를 사용하는 것을 확인하였다. 다음은 해당 공유기들을 이용해 테스트 공격을 수행하여 단계별로 분석한 내용이다.

 

 

1. 공격 패킷 분석


우선 해당 공유기의 DNS 변경 요청 시 발생하는 패킷을 살펴보자. 


 


[그림 5] DNS 변경 시 발생하는 패킷

 

 

[그림 5]는 크롬(Chrome) 웹브라우저에서 해당 공유기에 접속 후 DNS 주소를 변경하는 패킷을 전송할 경우 발생하는 HTTP 통신 내용이다. 해당 통신과 관련된 파라미터의 내용은 [그림 6]과 같다. 


 


[그림 6] HTTP 통신 파라미터

 

 

[그림 6]에서 빨간색으로 표시된 부분이 주목해야 할 항목들로, 이들 인자의 뜻은 다음과 같다.
 

 

 

해당 인자로 구성된 패킷이 단말기에 연결된 공유기로 전송될 경우 패킷에 설정된 파라미터에 따라 주 DNS 서버 및 보조 DNS 서버의 값이 변경된다.


공유기 비밀번호가 설정되어 있지 않은 경우, 아래와 같은 짧은 URL을 실행하기만 해도 공유기의 DNS가 변경되는 것을 확인 할 수 있다.

 

 

 

[그림 7] 패킷 전송 이후 공유기의 DNS 서버 변조 화면

 

 

2. NetCat을 이용한 확인

 

NetCat을 사용하기에 앞서 전송되는 패킷을 확인하기 위해 프록시 툴인 Burp Suite를 이용하여 패킷을 확인해보자.

 

[그림 8] Burp Suite를 이용한 패킷 확인

 

 

패킷은 [그림 8]과 같은 형태로 발송되며, 이 내용을 그대로 복사하여 NetCat으로 요청 한다. 요청 내용은 [그림 9]와 같다.

 


[그림 9] NatCat을 이용한 공유기 DNS 변경 패킷 전송

 

해당 요청이 전송되면 [그림 10]과 같이 공격 완료 후 화면에 나타낼 HTML 코드를 받아오는 것을 확인할 수 있다.
 


[그림 10] 공격 성공 후 DNS에서 전송하는 HTML 코드

 

 

3. 어드민(Admin) 계정 변경  


 

[그림 11] 어드민 계정 변경 요청 포스트(Post) 내용

 

[그림 11]의 데이터를 NetCat으로 요청할 경우, 기존에 관리자(Admin) 비밀번호가 없으면 공격자는 임의로 ID와 비밀번호를 변경한다. 이 경우 피해자는 ID와 패스워드를 알 수 없게 되므로 공유기를 리셋(Reset)해야만 접근이 가능하다. 리셋을 하지 않으면 관리자 페이지에 접근이 불가능 하기 때문에 DNS 변조 여부 또한 확인할 수 없다.


사용자가 ID와 비밀번호를 설정해두었을 경우에는 Auth 항목이 추가된다.
 


[그림 12] ID/비밀번호 삽입 후 Auth 항목이 추가된 화면

 

 

이때 추가되는 Authorization 패킷은 ‘Base64’로 ID:Password의 값을 갖는다. 


 

 
[그림 13] Base64 Decoding을 이용한 Auth 복호화 화면

 

 

펌웨어 업데이트 등 사용자 주의가 최우선 

 

최근 유•무선 공유기를 노리는 공격이 증가함에 따라 이에 대응하기 위한 공유기 제조사 및 보안 업체들의 움직임이 발 빠르게 이어지고 있다. 그러나 이러한 공격을 예방하기 위해서는 무엇보다 공유기 사용자의 주의가 필요하다. ▲공유기의 펌웨어를 최신의 상태로 유지하는 것이 기본이자 가장 중요하며 ▲관리자 ID 및 비밀번호를 미리 설정해두고 ▲가급적이면 공유기의 외부 접근을 허용하지 않는 것으로 설정하는 것이 바람직하다. 또한 최신 무선 공유기는 대부분 공유기 자체에 VPN 기능이 탑재되어 있다. 잠재적인 위협을 방지하기 위해서는 VPN 기능을 사용하지 않는 것을 권장한다. 무선 공유기의 비밀번호를 설정하는 것도 잊지 말아야 한다.@

  • AhnLab 로고
  • 분석팀 김승훈 연구원
  • Facebook에 공유하실 수
    있습니다.

  • Twitter에 공유하실 수
    있습니다.

  • Linked in

    Linked in에 공유하실 수
    있습니다.

  • 붙여넣기

    블로그나 게시판에 붙여넣기 하실
    수 있습니다.