[2019 DFC] 2019 디지털포렌식 챌린지 - MOI 300
2020 DFC를 대비하기 위해서 2019 DFC 를 풀어보도록 하겠습니다.
(2019 DFC는 고3이라,, 참가하지 못했었습니다.)
바로 시작하도록 하겠습니다.
Questions This challenge is to find an answer to below questions.
1) Identify a structure of the dump file.
▪ Bootloader, kernel and file system.
2) Find a bootloader base address.
3) Identify a method for enter boot command line interface.
4) Describe a menu of boot command line interface.
5) Figure out a web manager username and a password of suspect’s wireless router.
6) List WoL (Wake on LAN) registered in the wireless router
문제는 총 6문제로
1. 덤프 파일의 구조를 확인한다.
-> 부트로더, 커널 및 파일 시스템
2. 부트로더의 기본주소를 찾아라.
3. 부팅 명령줄 인터페이스 입력 방법 식별.
4. 부팅 명령줄 인터페이스 메뉴 설명.
5. 웹 관리자 사용자 이름과 의심스러운 무선 라우터의 암호를 파악.
6. 무선 라우터에 등록된 WOL 목록 입니다.
먼저 주어진 파일은 다음과 같은 속성을 지니고 있습니다.
총 4,194,304 Byte로 이뤄져 있으며 해쉬값은 아래와 같습니다.
CRC32 | 2402AD86 |
MD5 | 7C90B7B0B325079A02E967DAB1B3617C |
SHA-1 | 04BF0B9BA568D476CDE489855D734C0C39354A25 |
[ 사용환경 ]
Ubuntu Server 16.04 x64
Windows 10 Pro
[ 사용 프로그램 ]
VMware Workstation 15 Pro (15.5.1 build-10518445)
Binwalk
IDA Pro (v6.8.150423)
[1. 덤프파일의 구조를 확인한다.]
먼저 덤프파일의 구조를 확인하기 위해서 Binwalk 프로그램을 통해서 확인한다.
# apt-get install binwalk -y
binwalk를 먼저 설치해준다. 설치 후 아래와 같은 커맨드를 통해서 분석해준다.
# binwalk moi300.bin
root@ubuntu:/home/pental# binwalk moi300.bin
DECIMAL HEXADECIMAL DESCRIPTION
--------------------------------------------------------------------------------
79184 0x13550 U-Boot version string, "U-Boot 1.1.3 (Oct 29 2015 - 11:46:48)"
262144 0x40000 uImage header, header size: 64 bytes, header CRC: 0xD7655020, created: 2018-09-11 03:13:01, image size: 3503150 bytes, Data Address: 0x80000000, Entry Point: 0x8000C120, data CRC: 0xB8DD98D, OS: Linux, CPU: MIPS, image type: OS Kernel Image, compression type: lzma, image name: "wr-m0i300"
262208 0x40040 LZMA compressed data, properties: 0x5D, dictionary size: 33554432 bytes, uncompressed size: 4119344 bytes
1606766 0x18846E Squashfs filesystem, little endian, version 4.0, compression:xz, size: 2154436 bytes, 1348 inodes, blocksize: 131072 bytes, created: 2019-05-29 01:50:08
Binwalk의 분석결과에 따르면 운영체제는 Linux를 사용하며 CPU는 MIPS, image type 는 OS Kernel Image를 사용중이다.
Bootloader은 U-Boot를 사용하고있으며, 1.1.3 버전을 사용중입니다.
1번 문제의 정답을 정리해 보면 아래와 같습니다.
BootLoader | U-Boot (1.1.3) |
Kernel | uImage |
File System | squashfs |
[ 2. 부트로더의 기본주소를 찾아라. ]
필자는 IDA를 통해서 기본 주소를 찾아보도록 하겠습니다.
Processor type는 MIPS로 선택을 해줍니다. 그 이유는 1번 문제에서 CPU는 MIPS를 사용중인것을 확인할 수 있기 때문입니다.
sub_B64 함수를 들어가 보면 li $sp, 0x89001F00 을 확인 할 수 있습니다.
부트로더의 기본주소는 0x89001F00 입니다.
[ 3. 부팅 명령줄 인터페이스 입력 방법 식별. ]
기본적으로 부팅을 하기 위해서는 애뮬레이터를 통해서 Mount후 실행을 합니다.
필자는 Qemu 애뮬레이터를 통해서 moi300.bin 을 탑재해서 실행해 보도록 하겠습니다.
https://github.com/rampageX/firmware-mod-kit
먼저 firmware의 탑재를 위한 도구를 다운 받습니다.
git clone https://github.com/rampageX/firmware-mod-kit firmware
./extract-firmware.sh moi300.bin
오류 발생시 아래 패키지 설치
# apt-get install build-essential zlib1g-dev liblzma-dev
fmk 폴더에 성공적으로 추출이 완료가 되었습니다.
fmk 폴더 안에는 총 286개의 폴더와 1068개의 파일이 존재합니다.
[ 4. 부팅 명령줄 인터페이스 메뉴 설명. ]
직역이 되어 있어서 문제가 한글로 된것이 이상하지만, 그냥 쉽게 말하면 애뮬레이터를 통해서 실행해라 뭐 이런말이다.
부팅을 하기 위해서는 MIPS의 커널이 필요합니다.
https://people.debian.org/~aurel32/qemu/mipsel/
커널은 위 사이트에서 다운로드가 가능합니다.
wget https://people.debian.org/~aurel32/qemu/mipsel/vmlinux-3.2.0-4-4kc-malta
wget https://people.debian.org/~aurel32/qemu/mipsel/debian_wheezy_mipsel_standard.qcow2
우분투에서 그냥 위 커맨드로 다운해주면 됩니다. (필자는 칼리리눅스를 사용하였습니다.)
Qemu를 설치합니다.
# apt-get install qemu
https://johyungen.tistory.com/292?category=789046(이 블로그를 참고했습니다)
먼저 이 파일을 받아줍니다. (아래 링크 참고)
http://sourceforge.net/project/showfiles.php?group_id=26089
브릿지를 구축하기 위해서 위 파일을 받아줍니다.
# apt-get install uml-utilities bridge-utils
# apt-get install autoconf
# tar -xvzf bridge-utils-1.5.tar.gz
# cd bridge-utils-1.5
# autoconf
# ./configure
# make && make install
위 커맨드를 통해서 설치를 해주고 아래 커맨드를 입력해서 네트워크망을 구축합니다..
brctl addbr br0
ip addr flush dev eth0
brctl addif br0 eth0
tunctl -t tap0 -u `whoami`
brctl addif br0 tap0
ifconfig eth0 up
ifconfig tap0 up
ifconfig br0 up
brctl show
dhclient -v br0
QEMU를 실행하기 위해서 아래와 같이 입력해줍니다.
#qemu-system-mipsel -M malta -kernel vmlinux-3.2.0-4-4kc-malta -hda debian_wheezy_mips_standard.qcow2 -append "root=/dev/sda1 console=tty0" -net tap,ifname=tap0 -net nic
실행이 되고 있습니다.
[ 5. 웹 관리자 사용자 이름과 의심스러운 무선 라우터의 암호를 파악. ]
파일을 확인하는 방법은 매우 많지만, 필자은 Binwalk 를 사용해서 펌웨어에서 파일들을 추출했습니다.
# binwalk -e moi300.bin
위 커맨드를 입력해주면, 아래 사진과 같이 파일들이 추출이 가능해집니다.
그 후 아래 경로에서 의심스러운 아이디와 비밀번호가 파악이 가능합니다.
/squashfs-root/default/etc/iconfig.cfg
해당 경로에서 펌웨어서 등록된 ID와 Password를 확인할 수 있습니다.
ID | attacker |
Password | @attacker!m0i300#pass |
6. 무선 라우터에 등록된 WOL 목록
Wol이 등록된 것에 대해서도 5번에 설명한 경로에서 파악이 가능합니다.
/squashfs-root/default/etc/iconfig.cfg
remotepc~ 부분에서 WOL이 등록된것을 확인할 수 있습니다.
WOL Register Name | WOL Register MAC |
attacker_notebook | 24:F5:AA:CA:11:78 |
attacker_desktop | 24:F5:AA:D1:09:F1 |
감사합니다. 추가적인 질문이나 문의는 댓글에 남겨주시면 감사하겠습니다!
'Forensics > DFC' 카테고리의 다른 글
[2021 DFC] 2021 디지털포렌식 챌린지 - 208 - iOS Fridump (0) | 2021.10.29 |
---|---|
[2021 DFC] 2021 디지털포렌식 챌린지 - 204 - Slack Off (0) | 2021.10.29 |
[2020 DFC] 2020 디지털포렌식 챌린지 - 203 - Secrect message (1) | 2021.03.02 |
[2020 DFC] 2020 디지털포렌식 챌린지 - 104 - Event Log Analysis (0) | 2020.09.28 |
[2019 DFC] 2019 디지털포렌식 챌린지 - MOI 100 (0) | 2020.04.01 |
댓글
이 글 공유하기
다른 글
-
[2021 DFC] 2021 디지털포렌식 챌린지 - 204 - Slack Off
[2021 DFC] 2021 디지털포렌식 챌린지 - 204 - Slack Off
2021.10.29 -
[2020 DFC] 2020 디지털포렌식 챌린지 - 203 - Secrect message
[2020 DFC] 2020 디지털포렌식 챌린지 - 203 - Secrect message
2021.03.02 -
[2020 DFC] 2020 디지털포렌식 챌린지 - 104 - Event Log Analysis
[2020 DFC] 2020 디지털포렌식 챌린지 - 104 - Event Log Analysis
2020.09.28 -
[2019 DFC] 2019 디지털포렌식 챌린지 - MOI 100
[2019 DFC] 2019 디지털포렌식 챌린지 - MOI 100
2020.04.01