모의해킹/IoT

IOT 기기 분석 - 제조사(개발자) 백도어 찾기

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

 

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

 

제조사(개발자) 백도어 찾기

 

  개요 
     제조사 트러블 슈팅(장애대응) 또는 악의적인 목적의 백도어를 찾아보자

 

□  백도어 찾기 기본정보
    1. IPTIME 2007년 해당 취약점이 있는 timpro.cgi 파일로 분석 함. (Firmware : t24000_kr_9_12.bin)

    2. 트러블 슈팅을 위해 생성해 놓은 파일로 추정

    3. 시스템(System)명령어 사용 포인트와 접근을 위한 인증정보(패스워드 등)를 확인한다.

 

□  백도어 찾기
    1. IDA 툴을 이용하여 시스템(system) 함수를 사용하는 포인트 확인

         - Funtion 부분을 클릭 후 Ctrl+F(찾기)로 "system" 문자를 검색 함

[그림1] 시스템 함수 검색

 

    2. 시스템(system)함수를 참조하는 다른 함수를 찾는다

         - 시스템명령어를 받아서 처리하는 소스가 있는지 찾아야하며, 변수 처리가 아닌 상수로 입력을 받는경우에는 공격이 불가 함.

[그림2] 시스템 참조 함수 검색

 

    3. 변수로 입력값을 받아 처리하는 함수를 찾아서 분석 함

          >  sub_FF58+348  

[그림3] 시스템 함수 정보 확인

 

    4. 백도어 웹페이지 접근 시 remote_support 변수값이 1일 경우 접근이 가능 함

[그림4] 웹페이지 접근 인증 파라미터

 

    5. 백도어 웹페이지 접근 시 remote_support 값이 1이 되기위해서는 aaksjdkfj 변수에 #notenoughmineral^ 문자열이 입력되어야 접근이 가능 함

      - #notenoughmineral^ 문자열은 35,110,111,116 등 ASC코드로된 문자를 해석(변환)하여 패스워드를 확인하였음.

[그림5] 웹페이지 접근 인증 코드 확인

 

    6. 백도어 웹페이지 접근 및 실행

      - http://192.168.0.1/cgi-bin/d.cgi 백도어페이지 접근후 시스템명령어와 aaksjdkfj 변수에 #notenoughmineral^ 문자열이 입력시 시스템명령어 실행이 가능함.

          >  http://192.168.0.1/cgi-bin/d.cgi?act=1&fname=&cmd=ls&aaksjdkfj=%23notenoughmineral%5E&dapply=+Show+  

[그림6] 백도어 웹페이지 실행

 

 

이상.  끝.