본문 바로가기

#CTF 2020

CCE 2020 예선 #Forensic - [중]keyboord

반응형

2020 사이버공격방어대회 예선 09.26_9:00-24:00

 

[그림1. 문제]

 

  • keyboord.pcap파일을 열어보니 프로토콜이 USB인 pcap파일이다.

 

[그림2. keyboord.pcap]

 

  • wireshark info부분을 자세히 보니 프레임 길이가 72일때만 LeftOver Capture Data가 뜬다.
  • 그리고 usb transfer type이 0x01이다.
  • 메뉴->[Edit]-[Preferences]-[Apperance]-[Columns]에서 LeftOver Capture Data열을 추가한다.
  • type은 custom, fields는 usb.capdata이다.
  • ((usb.transfer_type == 0x01) && (frame.len == 72)) &&! (usb.capdata == 00 : 00 : 00 : 00 : 00 : 00 : 00 : 00) 필터링을 한 후 csv파일로 추출한다. 
  • 메뉴->[File]-[Export Packet Dissections]-[As CSV]

 

[그림3. output.csv]

 

  • csv파일을 읽어보면 필터링대로 추출이 되었다.

 

[그림4. HEXDUMP.txt]

 

  • csv파일에서 "," 기준으로 8번째열만 읽어오고, 한줄씩 읽어 HEXDUMP.txt에 저장한다.
  • 구글에 pcap usb keyboard 검색결과 헥스값 0x04가 'a'를 나타낸다고 한다.

 

decodeusb.py
0.00MB
keyusb.py
0.00MB

 

[그림5. py 실행 결과]

 

  • 코드 실행 결과 keyboard로 입력했던 흔적이 나왔다. 하나씩 따라 써보면 c언어로 구현한 코드가 나온다.

 

test.c
0.00MB

 

[그림6. test.c]
[그림7. test.c 실행 결과]

 

  • test.c를 실행하면 플래그가 나온다.
  • Flag : cce2020{keyboord_packet_easy___Yeah!}

 

 

반응형