1000sj
SJ CODE
1000sj
전체 방문자
오늘
어제
  • 분류 전체보기
    • Algorithms
      • Crypto
    • Security
      • 네트워크
      • 보안
      • CTF
      • Exploit
    • System Programming
      • Operating System
      • Compiler
      • Device Driver
      • Emulator
      • GPU
      • Assembly
    • Application Programming
      • Script
      • Android
    • Cloud Computing
      • Cloud Native
      • Public Cloud
      • Infrastructure
      • Database
      • DevOps
    • TroubleShooting
    • ETC
      • 문화 생활
      • 커뮤니티

인기 글

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
1000sj

SJ CODE

📖 CTF 정보보안 콘테스트 챌린지북 (네트워크/패킷분석)
Security/CTF

📖 CTF 정보보안 콘테스트 챌린지북 (네트워크/패킷분석)

2022. 3. 2. 10:24

예제 1. Follow Streeeeam!!

  • ICMP 패킷이 많이 보임

 

Protocol Hierarchy로 패킷에서 사용된 프로토콜을 확인

  • TCP
  • ICMP

 

Follow TCP Stream으로 주고받은 데이터를 연결해서 확인

  •  ctf4b{netcat-is-useful}

 

예제 2. 이건 파일입니까?

  • TCP 패킷이 많이 보임

Conversations 를 보면 ipv4 주소가 사설 ip 임을 알수 있음

  • 대부분의 TCP 통신이 80

Protocol Hierarchy

  • TCP
  • HTTP

http로 필터링

  • .txt 확장자 파일을 다운로드하는 패킷들을 발견할 수 있음

 

Export Objects로 HTTP 파일을 내보냄

  •  Adefdx2e 파일만 파일 크기가 다름

  • 파일이름이 다 랜덤한데 filename, FlaGDesu는 의도가 있어보임

 

먼저 Adefdx2e 파일을 바이너리 에디터로 열면

  • PNG

확장자를 png로 변경하고 열면 FLAG를 확인할 수 있다.

다른 방법

file * 명령어로 file 타입을 확인

  • FlaGDesu의 확장자를 zip으로 바꾸고 추출해 보았음

 

예제 3. Find the key!

  • 일반적으로 ping 명령으로 만들어진 ICMP 응답 패킷은 변하지 않지만 이 패킷에서는 불규칙하게 변하고 있음
  • info 부분에서 볼 수 있는 ICMP 의 id 부분은 ASCII 문자로 표시할 수 있는 16진수 범위다.

 

위의 내용으로 생각해보면 ICMP의 id 부분에 FLAG가 되는 ASCII 문자열이 포함됐을 것이라고 추측할 수 있다.

ICMP request만 표시되도록 필터링해보자.

 

  • Packet Detail에서 Identifier를 선택하고 위에서 부터 보면 F, l, a,g 순으로 바뀌는 것을 볼 수 있다.

 

scapy를 사용하여 flag를 찾아보자.

  •  Flag is "CTF for Beginners!"

 

예제 4. Picture over ICMP

  • 첫번째 패킷의 데이터 부분을 Packets Byte에서 보면 FF D8로 시작하는 것을 볼 수 있다.
  • FF D8은 JPEG 파일의 헤더를 나타내는 바이너리 열이다.

이런 방식으로 JPEG 파일을 전송하는 경우는 없기 때문에 JPEG 파일을 추출하면 FLAG를 얻을 수 있다고 추측할 수 있다.

 

찾기기능으로 Hex value가 "FF D9"인 패킷을 찾아보자

  • 마지막 패킷에서 FF D9를 찾을 수 있었다.
  • 첫 패킷에서 JPEG 시작을 알리는 데이터가 있고 마지막에 끝을 알이는 데이터가 있으니 순서대로 분할돼었을 거라 추측할 수 있다.

 

TCP 데이터라면 TCP Follow Stream 기능으로 쉽게 바이너리를 추출할 수 있지만 ICMP 데이터는 그럴 수 없으니 scapy를 이용해서 Raw데이터를 추출하자.

 

References

  • https://wikibook.co.kr/ctf/

 

'Security > CTF' 카테고리의 다른 글

[HTB/starting-point] Responder  (0) 2022.04.13
[VulnHub] Mr.Robot 🤖  (0) 2022.03.02
📖 실전 바이너리 분석 (lvl2)  (0) 2022.03.02
🎄사이버 2의 출현 [2020]  (0) 2022.01.09
🥤OWASP 주스가게  (0) 2022.01.02
    'Security/CTF' 카테고리의 다른 글
    • [HTB/starting-point] Responder
    • [VulnHub] Mr.Robot 🤖
    • 📖 실전 바이너리 분석 (lvl2)
    • 🎄사이버 2의 출현 [2020]
    1000sj
    1000sj

    티스토리툴바