[환경구성&준비] 도구, SW 최종 선정

goldenGlow_21·2025년 3월 19일
post-thumbnail
  • 취약점 분석 방법론 준비
    • 넓게, 많이 조사해보는 방향으로
  • 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. 장치 조사 및 분해 준비

목표

  • 장치의 내부 구조와 인터페이스를 파악
  • 필요한 작업 도구를 준비

작업

  1. 장치 스펙 확인:
    • 모델명, 제조사, 펌웨어 업데이트 지원 여부 확인
    • 관련 데이터시트 및 회로도 조사
  2. 분해 도구 준비:
    • 정밀 드라이버 세트, 확대경, PCB 클램프 준비
  3. 외부 케이스 분해:
    • 외부 나사를 제거하고 장치 케이스를 조심스럽게 열어 PCB를 노출

2. 하드웨어 분석 및 핀아웃 식별

목표

  • UART, JTAG, SPI 등 인터페이스 핀을 식별

작업

  1. PCB 검사:
    • UART, JTAG 포트나 디버깅 인터페이스 확인
    • 관련 라벨(UART, TX, RX, GND, VCC) 식별
  2. 멀티미터 및 확대경 사용:
    • GND, 전압 레벨 확인 및 핀아웃 파악
    • 데이터시트를 참고하여 정확한 핀 정의
  3. Logic Analyzer로 테스트:
    • UART 신호 확인 및 통신 설정(baudrate 등) 식별

3. 펌웨어 추출 준비

목표

  • 펌웨어 추출을 위한 인터페이스 활성화

작업

  1. UART 연결:
    • USB to TTL 어댑터를 사용해 TX, RX, GND에 연결
    • 터미널 소프트웨어(Putty, Tera Term)로 연결 설정
  2. JTAG 활성화
    • JTAG 디버거 연결 후 메모리 접근
    • OpenOCD나 gdb로 디버깅 환경 설정
  3. SPI 플래시 메모리 연결:
    • SOIC 클립으로 SPI 플래시에 접근하여 데이터를 추출

4. 펌웨어 추출 및 백업

목표

  • 펌웨어 데이터를 안전하게 추출하고 백업

작업

  1. UART 접근:
    • UART 터미널에서 root 쉘 또는 디버그 쉘 확보
    • dd 명령으로 메모리 덤프(partition dump) 수행
  2. SPI 플래시 메모리 덤프:
    • CH341A와 같은 SPI 리더로 메모리 읽기
  3. JTAG 메모리 덤프:
    • JTAG 디버거를 통해 펌웨어 이미지 추출

5. 펌웨어 분석

목표

  • 추출한 펌웨어를 분해 및 분석

작업

  1. Binwalk 사용:
    • 펌웨어 이미지 분석 및 파일시스템 분리
  2. Firmware-Mod-Kit 사용:
    • squashfs와 같은 파일 시스템 분석 및 수정
  3. 역공학:
    • IDA Pro 또는 Ghidra로 바이너리 분석
    • 중요 함수 및 취약점 식별

6. 네트워크 분석

목표

  • 장치의 네트워크 트래픽과 보안 설정 확인

작업

  1. Wireshark로 트래픽 캡처:
    • 장치와 클라우드 간의 데이터 송수신 분석
  2. 패킷 재생 및 변조:
    • tcpdump 및 Scapy로 패킷 재전송 실험
  3. 네트워크 취약점 테스트:
    • nmap과 Burp Suite를 사용해 네트워크 스캔 및 웹 인터페이스 분석

7. 취약점 탐지 및 검증

목표

  • 장치의 보안 취약점을 식별하고 공격 시나리오를 시뮬레이션

작업

  1. 펌웨어 취약점 탐지:
    • Telnet, SSH, 기본 비밀번호 등의 보안 설정 확인
  2. 동적 분석:
    • 취약한 명령 실행 시뮬레이션.
    • 로그와 에러 메시지를 분석하여 추가 취약점 탐색
  3. 네트워크 공격:
    • 패킷 스니핑, 스푸핑, Replay Attack 실험

도구 선정

  • UART
    • UART 어댑터: USB to RS232 TTL PL2303HX
    • 멀티미터기
  • 플래시 메모리
    • SPI Flash Reader : CH341A Programmer
  • 공구
    • 드라이버 세트
    • 인두기 세트
    • 납땜 솔더윅
profile
안드로이드는 리눅스의 꿈을 꾸는가

0개의 댓글