이 영역을 누르면 첫 페이지로 이동
DevDori 블로그의 첫 페이지로 이동

DevDori

페이지 맨 위로 올라가기

DevDori

[ 정보보안 프로젝트 ] 공유기 펌웨어 환경 구축

  • 2021.11.16 22:15
  • Project/정보보안 프로젝트

이번 글에서는 정보보안 프로젝트를 진행하는 과정에서 공유기에 존재하는 원데이 취약점을 분석하고 구현하기 위해 펌웨어의 환경을 구축하고 CGI 환경을 구현해보도록 하겠습니다.

 

[ 이 글은 Ubuntu 18.04 LTS를 기준으로 작성되었습니다 ]

 

 이번 실습에서는 iptime t24000 공유기의 펌웨어 사용되었습니다.

펌웨어 종류에 따라서 환경 구축 방법이 달라질 수 있습니다. 이점 참고 바랍니다!

 

 

기본 환경 구성

$  sudo apt-get update

환경 구축 과정에서 설치해야 하는 파일이 존재하므로 따로 폴더를 만들어서 진행하시는 것을 추전 드립니다.

$  mkdir iptime_t24000
$  cd iptime_t24000

iptime 펌웨어는 지금 보이는 url에서 설치하실 수 있습니다.  이 글에서 사용된 iptime t24000을 사용하실 분은 아래 명령어를 통해 설치하실 수 있습니다.

http://iptime.com/iptime/?page_id=126 

 

EFM, ipTIME 아이피타임

이지메시, 이지메쉬, 메시와이파이, 기가 와이파이, 유무선 및 무선 인터넷 공유기, 와이파이 증폭기 및 확장기, 기업 및 가정용 나스, NAS STORAGE 등 제품소개와 펌웨어 다운로드 고객지원 제공

iptime.com

$  wget http://download.iptime.co.kr/online_upgrade/t24000_kr_9_988.bin

 

Binwalk 설치 & 펌웨어 추출

 

우리는 binwalk를 사용하여 펌웨어를 간단하게 분석하고 추출할 예정입니다.

우선 다음 명령어를 입력하여 binwalk를 설치해주세요!

$  sudo apt-get install binwalk

다음 명령어를 입력하여 펌웨어의 아키텍처를 식별하도록 하겠습니다.

$  binwalk -A t24000_kr_9_988.bin

명령어를 입력한 결과 t24000 공유기의 펌웨어는 ARM 아키텍쳐를 사용하고 있는 것을 알 수 있습니다. 

현재 binwalk -A의 결과가 ARM이냐 MIPS냐에 따라서 다음 환경 구축이 달라집니다.

 

그다음 과정으로 펌웨어 내부에 알려진 파일 타입을 추출해주는 binwalk -e 옵션을 사용하여

설치한 펌웨어의 파일 시스템을 추출하도록 하겠습니다.

$  binwalk -e t24000_kr_9_988.bin

위 명령어를 입력하면 _t24000_kr_9_988.bin.extracted 폴더가 생긴 것을 확인할 수 있습니다. 

_t24000_kr_9_988.bin.extracted 내부 파일을 확인해보면 squashfs-root라는 폴더가 존재하는 것을 확인할 수 있습니다.

squashfs-root 폴더는 저희가 추출한 파일 시스템으로 지금 추출한 파일을 활용해서 환경을 구축할 예정입니다.

가상 환경을 구축하고 파일 시스템을 올리기 위해 먼저 압축을 해두도록 하겠습니다.

$  cd _t24000_kr_9_988.bin.extracted
$  tar -cvf squashfs-root.tar squashfs-root

squashfs-root.tar 파일을 iptime_t24000 폴더로 옮겨줍니다.

$  mv squashfs-root.tar ../squashfs-root.tar
$  cd ../

 

QEMU 설치

 

QEMU란?

더보기

Qemu는 PC 환경을 위한 프로세스 에뮬레이터로 하나의 가상 컴퓨터를 구축해 주는 소프트웨어입니다. vmware, Xen, Virtualbox와 같은 가상화 소프트웨어 중 하나로 보시면 됩니다. 우리는 ARM이나 MIPS 기반의 공유기 펌웨어를 실행시키기 위해서 QEMU를 사용하도록 하겠습니다.

$  sudo apt-get install qemu

 

 

Kernel & Image 다운로드

아래 URL에서 커널과 이미지를 다운로드할 수 있습니다.

자신이 분석하는 환경에 맞는 파일을 다운로드하여 사용하시면 되겠습니다. 

지금 이 글에서 사용하는 환경을 그대로 따라오시는 분들은 아래 명령어를 통해 다운로드하시면 됩니다.

https://people.debian.org/~aurel32/qemu/

 

Index of /~aurel32/qemu

 

people.debian.org

$ wget https://people.debian.org/~aurel32/qemu/armel/vmlinuz-3.2.0-4-versatile

$ wget https://people.debian.org/~aurel32/qemu/armel/initrd.img-3.2.0-4-versatile

$ wget https://people.debian.org/~aurel32/qemu/armel/debian_wheezy_armel_standard.qcow2

 

QEMU 실행

위 사진처럼 QEMU를 실행시킬 수 있다고 합니다. 위 사진에 있는 명령어에 -redir tcp 옵션을 추가해서 SSH를 위한 22번과 CGI를 위한 80번 포트를 각각 2022, 2080 포트로 포트포워딩 시켜주도록 하겠습니다.

다음 명령어를 실행시켜 QEMU를 실행시킬 수 있습니다.

qemu-system-arm -M versatilepb -kernel vmlinuz-3.2.0-4-versatile -initrd initrd.img-3.2.0-4-versatile -hda debian_wheezy_armel_standard.qcow2 -append "root=/dev/sda1" -redir tcp:2080::80 -redir tcp:2022::22

실행이 완료되면 다음 사진과 같은 로그인 화면을 확인할 수 있습니다.

QEMU 실행

[ 초기 로그인 ]

아이디 : root

비밀번호 : root

 

새로운 터미널을 열고 다음 명령어를 입력해 SSH로 접속해보도록 하겠습니다.

$  sudo ssh -p 2022 root@localhost

위 사진과 같이 ssh를 통해 접속할 수 있는 것을 확인하였습니다. 이제 우리는 아까 만들어둔 squashfs-root.tar 파일을

가상 머신 안으로 옮겨주는 작업을 해야합니다. 다음 명령어를 통해 파일을 가상머신 안으로 옮겨주겠습니다.

$  sudo scp -P 2022 squashfs-root.tar root@localhost:/root

파일을 업로드한 후 SSH로 접속해보면 다음과 같이 파일이 파일이 올라간 것을 확인할 수 있습니다.

그다음으로 tar로 압축한 파일을 풀어줍니다. 

$  tar xvf squashfs-root.tar

 

CHROOT 설정

cd squashfs-root/
cp -r default/* ./tmp/

압축을 푼 squashfs-root 폴더로 이동하고 default 안에 있는 파일을 tmp 폴더로 복사해줍니다.

 

다음으로 해당 디렉터리를 root로 인식하기 위해 chroot 명령어를 사용하여 바꿔준 이후 웹페이지를 통한 접속을 위해 

cgibin의 파일들을 아래와 같이 복사해줍니다. 이 과정이 없으면 404가 나타난다 ㅠㅠ

 

$  chroot ./ ./bin/sh
$  mkdir -p /home/httpd/192.168.0.1/sess-bin
$  cp -r cgibin/* /home/httpd/192.168.0.1/sess-bin/
$  mkdir -p /bin/login-cgi
$  cp -r cgibin/* /bin/login-cgi

 

vi /dev/null

:wq!

/dev/null을 vi로 열고 바로 저장시켜준다.

 

관리자 페이지 접속

$  ./sbin/httpd

지금까지 모두 잘 따라왔다면 localhost:2080으로 접속하면 관리자 페이지에 접속할 수 있다.

 

ID : admin

Password : admin

 

 

'Project > 정보보안 프로젝트' 카테고리의 다른 글

[ 정보보안 프로젝트 ] 펌웨어 추출하는 방법 (포트미러링)  (1) 2021.12.18
[ 정보보안 프로젝트 ] Tapo C200 IP camera - 콘솔 접속  (0) 2021.11.27
[ 정보보안 프로젝트 ] Tapo C200 IP camera - 하드웨어 분석  (0) 2021.11.07
[ 정보보안 프로젝트 ] CVE 분석 및 1 - Day 취약점 구현  (0) 2021.10.16
[ 정보보안 프로젝트 ] 주제 선정 및 계획  (0) 2021.10.16

댓글

이 글 공유하기

  • 구독하기

    구독하기

  • 카카오톡

    카카오톡

  • 라인

    라인

  • 트위터

    트위터

  • Facebook

    Facebook

  • 카카오스토리

    카카오스토리

  • 밴드

    밴드

  • 네이버 블로그

    네이버 블로그

  • Pocket

    Pocket

  • Evernote

    Evernote

다른 글

  • [ 정보보안 프로젝트 ] 펌웨어 추출하는 방법 (포트미러링)

    [ 정보보안 프로젝트 ] 펌웨어 추출하는 방법 (포트미러링)

    2021.12.18
  • [ 정보보안 프로젝트 ] Tapo C200 IP camera - 콘솔 접속

    [ 정보보안 프로젝트 ] Tapo C200 IP camera - 콘솔 접속

    2021.11.27
  • [ 정보보안 프로젝트 ] Tapo C200 IP camera - 하드웨어 분석

    [ 정보보안 프로젝트 ] Tapo C200 IP camera - 하드웨어 분석

    2021.11.07
  • [ 정보보안 프로젝트 ] CVE 분석 및 1 - Day 취약점 구현

    [ 정보보안 프로젝트 ] CVE 분석 및 1 - Day 취약점 구현

    2021.10.16
다른 글 더 둘러보기

정보

DevDori 블로그의 첫 페이지로 이동

DevDori


ShinhanBank InfoSec Devision
Sunrin High School InfoSec 115th
TeamH4C members

  • DevDori의 첫 페이지로 이동

나의 외부 링크

  • GitHub
  • FB
  • Instagram

검색

카테고리

  • 분류 전체보기 (43)
    • Project (7)
      • 정보보안 프로젝트 (6)
      • 진로 IT 프로젝트 (1)
    • System (4)
    • Reversing (3)
    • Web (1)
    • WarGame (21)
      • Lord of SQL Injection (15)
      • BandIt (2)
      • Webhacking.kr (0)
      • pwnable.kr (0)
      • HackCTF (2)
      • FTZ (0)
      • Dreamhack (2)
    • Dev (5)
      • DataBase (5)
    • Etc. (2)
      • 알쓸컴잡 (0)
      • Linux (1)
      • GitHub (1)
      • 시놀로지 (0)
    • Algorithm (0)
      • programmers (0)

메뉴

  • 홈
  • 태그
  • 방명록

최근 글

인기 글

댓글

정보

DevDori의 DevDori

DevDori

DevDori

블로그 구독하기

  • 구독하기
  • RSS 피드

방문자

  • 전체 방문자
  • 오늘
  • 어제

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기
Powered by Tistory / Kakao. Copyright © DevDori.

티스토리툴바