- 취약점 분석 방법론 준비
- IP 카메라에서 펌웨어 추출 시 필요한 도구 조사
IP 카메라 펌웨어 추출 도구
1. 기기 분해 및 분석 도구
- 정밀 드라이버 세트: 다양한 나사 크기와 형식에 맞는 드라이버로, 카메라의 외부 케이스를 분해하는 데 사용
- PCB 클램프 및 고정 장치: 작업 중에 PCB를 안정적으로 고정하여 손상을 방지
- 전자기기 확대경: 작은 부품과 회로를 자세히 관찰하여 정확한 작업을 도와줌
2. 전기 신호 측정 및 분석 도구
- 멀티미터: 회로의 전압, 저항 등을 측정하여 핀아웃을 확인하고, 전기적 특성을 파악
- 오실로스코프: 신호의 파형을 시각적으로 분석하여 데이터 흐름과 통신 프로토콜을 확인
3. 펌웨어 추출을 위한 인터페이스 도구
- USB to TTL 시리얼 어댑터: UART 인터페이스를 통해 디버깅 콘솔에 접근하여 펌웨어를 추출하거나 디버깅
- JTAG 디버거: JTAG 인터페이스를 통해 메모리에 직접 접근하여 펌웨어를 추출하거나 디버깅
- SPI 플래시 리더/라이터: SPI 플래시 메모리에 저장된 펌웨어를 직접 읽어오거나 수정
- SOIC 클립: 플래시 메모리 칩에 직접 연결하여 데이터를 추출하는 데 사용
4. 네트워크 분석 도구
- 이더넷 탭(Ethernet Tap): 카메라와 네트워크 간의 트래픽을 모니터링하고 분석
- Wireshark: 네트워크 트래픽을 캡처하고 분석하여 데이터 흐름과 통신 내용을 파악
5. 펌웨어 분석 소프트웨어
- Binwalk: 펌웨어 이미지를 분석하고 내부 파일 시스템을 추출
- Firmware-Mod-Kit: 펌웨어를 분해하고 수정한 후 재패키징하는 데 사용
- IDA Pro: 펌웨어 바이너리를 역공학하여 코드 구조를 분석
- Ghidra: 오픈 소스 역공학 도구로, 바이너리 분석에 사용
6. 기타 보조 도구
- 납땜 인두기 및 열풍기: 필요에 따라 부품을 탈착하거나 연결하는 데 사용
- Pogo 핀: PCB의 테스트 포인트에 비침습적으로 연결하여 신호를 추출
대충 써본 작업 개요 예상
https://northwave-cybersecurity.com/threat-intel-research/abusing-ip-cameras-for-red-teaming-obtaining-the-firmware
1. 장치 조사 및 분해 준비
목표
- 장치의 내부 구조와 인터페이스를 파악
- 필요한 작업 도구를 준비
작업
- 장치 스펙 확인:
- 모델명, 제조사, 펌웨어 업데이트 지원 여부 확인
- 관련 데이터시트 및 회로도 조사
- 분해 도구 준비:
- 정밀 드라이버 세트, 확대경, PCB 클램프 준비
- 외부 케이스 분해:
- 외부 나사를 제거하고 장치 케이스를 조심스럽게 열어 PCB를 노출
2. 하드웨어 분석 및 핀아웃 식별
목표
- UART, JTAG, SPI 등 인터페이스 핀을 식별
작업
- PCB 검사:
- UART, JTAG 포트나 디버깅 인터페이스 확인
- 관련 라벨(UART, TX, RX, GND, VCC) 식별
- 멀티미터 및 확대경 사용:
- GND, 전압 레벨 확인 및 핀아웃 파악
- 데이터시트를 참고하여 정확한 핀 정의
- Logic Analyzer로 테스트:
- UART 신호 확인 및 통신 설정(baudrate 등) 식별
3. 펌웨어 추출 준비
목표
작업
- UART 연결:
- USB to TTL 어댑터를 사용해 TX, RX, GND에 연결
- 터미널 소프트웨어(Putty, Tera Term)로 연결 설정
- JTAG 활성화
- JTAG 디버거 연결 후 메모리 접근
- OpenOCD나 gdb로 디버깅 환경 설정
- SPI 플래시 메모리 연결:
- SOIC 클립으로 SPI 플래시에 접근하여 데이터를 추출
4. 펌웨어 추출 및 백업
목표
작업
- UART 접근:
- UART 터미널에서 root 쉘 또는 디버그 쉘 확보
dd 명령으로 메모리 덤프(partition dump) 수행
- SPI 플래시 메모리 덤프:
- CH341A와 같은 SPI 리더로 메모리 읽기
- JTAG 메모리 덤프:
5. 펌웨어 분석
목표
작업
- Binwalk 사용:
- Firmware-Mod-Kit 사용:
- squashfs와 같은 파일 시스템 분석 및 수정
- 역공학:
- IDA Pro 또는 Ghidra로 바이너리 분석
- 중요 함수 및 취약점 식별
6. 네트워크 분석
목표
작업
- Wireshark로 트래픽 캡처:
- 패킷 재생 및 변조:
- tcpdump 및 Scapy로 패킷 재전송 실험
- 네트워크 취약점 테스트:
- nmap과 Burp Suite를 사용해 네트워크 스캔 및 웹 인터페이스 분석
7. 취약점 탐지 및 검증
목표
- 장치의 보안 취약점을 식별하고 공격 시나리오를 시뮬레이션
작업
- 펌웨어 취약점 탐지:
- Telnet, SSH, 기본 비밀번호 등의 보안 설정 확인
- 동적 분석:
- 취약한 명령 실행 시뮬레이션.
- 로그와 에러 메시지를 분석하여 추가 취약점 탐색
- 네트워크 공격:
- 패킷 스니핑, 스푸핑, Replay Attack 실험
도구 선정
- UART
- UART 어댑터: USB to RS232 TTL PL2303HX
- 멀티미터기
- 플래시 메모리
- SPI Flash Reader : CH341A Programmer
- 공구