본문 바로가기

Forensics

[Forensics] 5주차

Shark’s secret.pcapng

 

먼저 Wireshark에서 해당 파일을 열어보았다.

 

 

보다보니 Secret.png 파일을 주고 받았다는 것을 확인할 수 있었다.

 

주어진 pcapng 파일을 pcap 파일로 변환하여 NetworkMiner로 열어보았다.

앞서 발견한 Secret.png 파일을 포함한 이미지 파일이 두 장 있다.

 

Wireshark에서 패킷을 정렬해보았는데, 힌트로 받은 identification이 정렬되지 않은 것을 확인할 수 있었다.

29926 > 29927 > 29928 > 29932 > 29930 > 29931 > 29929 > 29933 > 29934 > 29935 > 29936 > 29941 > 29938 > 29939 > 29940 > 29937 > 29942

이 identification을 순서대로 조합하여 각 패킷의 Hex Stream을 HxD에서 열어주었다.

 

우선 png 파일의 헤더인 89 50 ~ 이전까지의 Hex 값을 모두 지워준다.

 

그런 다음, 각 패킷의 헤더인 00 0C ~ 00 00까지 모두 지워준다.

 

모두 지운 뒤 확장자 .png로 해당 파일을 저장해주면

 

플래그가 보인다!

 

LAYER7{B4by_5Hark_D00Rurud00ru}

 

 

 

keyboardwarrior.pcap

힌트로는 Bluetooth HCI ACL, Value가 주어졌다.

 

패킷을 보다 Bluetooth Attribute Protocol이 존재하는 것을 확인.

 

Bluetooth Attribute Protocol을 필터링하려면 btatt를 사용하면 된다.

 

 

 

 

쭉 보다보니 Value값의 일정 부분만 달라지는 것을 발견

 

 

 

cmd 창에서 tshark를 이용하여 value 값 추출

 

 

 

 

추출이 완료되었다.

26줄부터 달라지는 부분만 남기도록 수정

 

16 00 13 00 12 00 11 00 0a 08 00 05 00 12 05 00 16 00 18 00 14 00 1a 00 04 04 0c 00 17 00 17 00
0b 00 04 00 17 00 16 00 04 00 17 00 13 00 1c 00 12 00 12 00 10 00 0a 00 04 00 11 00 12 00 17 00
0b 00 08 00 15 00 17 00 1c 00 13 00 12 00 05 00 18 00 06 00 0e 00 08 00 1c 00 08 00 06 00 17 00
09 00 02 2f 02 00 21 00 19 00 20 00 15 00 21 00 0a 00 20 00 02 2d 00 05 00 1e 00 20 00 02 2d 02
00 20 00 11 00 0d 00 27 00 1c 00 20 00 15 00 02 30 02 00 04 00 05 00 06 00 07 00 08 00 09 00 0a
00 0b 00 0c 00 0d 00 0e 00 0f 00 10 00 11 00 12 00 13 00 14 00 15 00 16 00 17 00 18 00 19 00 1a
00 1b 00 1c 00 1d 00

 

 

mapping 값을 이용하여 위 내용을 ASCII 문자열로 변환해주기 위한 코드를 작성해보았다.

mappings = [{ 0x04:"a", 0x05:"b", 0x06:"c", 0x07:"d", 0x08:"e", 0x09:"f", 0x0a:"g",  0x0b:"h", 
             0x0c:"i", 0x0d:"j", 0x0e:"k", 0x0f:"l", 0x10:"m", 0x11:"n", 0x12:"o",  0x13:"p", 
             0x14:"q", 0x15:"r", 0x16:"s", 0x17:"t", 0x18:"u", 0x19:"v", 0x1a:"w",  0x1b:"x", 
             0x1c:"y", 0x1d:"z", 0x1e:"1", 0x1f:"2", 0x20:"3", 0x21:"4", 0x22:"5",  0x23:"6", 
             0x24:"7", 0x25:"8", 0x26:"9", 0x27:"0", 0x28:"\n", 0x2a:"[del]",  0x2b:"    ", 0x2c:" ",  
             0x2d:"-", 0x2e:"=", 0x2f:"[",  0x30:"]",  0x31:"\\", 0x32:"~", 0x33:";",  0x34:"'", 
             0x36:",",  0x37:"." },
             { 0X04:"A", 0X05:"B", 0X06:"C", 0X07:"D", 0X08:"E", 0X09:"F", 0X0A:"G",  0X0B:"H", 
             0X0C:"I", 0X0D:"J", 0X0E:"K", 0X0F:"L", 0X10:"M", 0X11:"N", 0X12:"O",  0X13:"P", 
             0X14:"Q", 0X15:"R", 0X16:"S", 0X17:"T", 0X18:"U", 0X19:"V", 0X1A:"W",  0X1B:"X", 
             0X1C:"Y", 0X1D:"Z", 0X1E:"!", 0X1F:"@", 0X20:"#", 0X21:"$", 0X22:"%",  0X23:"^", 
             0X24:"&", 0X25:"*", 0X26:"(", 0X27:")", 0X28:"\n", 0X2A:"[DEL]",  0X2B:"    ", 0X2C:" ",  
             0X2D:"_", 0X2E:"+", 0X2F:"{",  0X30:"}",  0X31:"|", 0X32:"~", 0X33:":",  0X34:"\"", 
             0X36:"<",  0X37:">" }]


data = "16 00 13 00 12 00 11 00 0a 08 00 05 00 12 05 00 16 00 18 00 14 00 1a 00 04 04 0c 00
17 00 17 00 0b 00 04 00 17 00 16 00 04 00 17 00 13 00 1c 00 12 00 12 00 10 00 0a 00 04 00 11
00 12 00 17 00 0b 00 08 00 15 00 17 00 1c 00 13 00 12 00 05 00 18 00 06 00 0e 00 08 00 1c 00
08 00 06 00 17 00 09 00 02 2f 02 00 21 00 19 00 20 00 15 00 21 00 0a 00 20 00 02 2d 00 05 00
1e 00 20 00 02 2d 02 00 20 00 11 00 0d 00 27 00 1c 00 20 00 15 00 02 30 02 00 04 00 05 00 06
00 07 00 08 00 09 00 0a 00 0b 00 0c 00 0d 00 0e 00 0f 00 10 00 11 00 12 00 13 00 14 00 15 00
16 00 17 00 18 00 19 00 1a 00 1b 00 1c 00 1d 00"

hex_values = data.split()
result = ""

for hex_value in hex_values:
    decimal_value = int(hex_value, 16)
    if decimal_value in mappings[0]:
        result += mappings[0][decimal_value]
    elif decimal_value in mappings[1]:
        result += mappings[1][decimal_value]
    else:
        result += ""

print(result)

- 부분을 _로 수정해주었다....

 

 

buckeyectf[4v3r4g3_b13_3nj0y3r]

'Forensics' 카테고리의 다른 글

DFC 2023 101  (0) 2023.08.21
[Forensics] 6주차  (0) 2023.07.01
Digital Forensic Low  (0) 2023.05.14
[Dreamhack] FFFFAAAATTT  (0) 2023.04.02
[N0Named Wargame] 우리의 추억들  (0) 2023.04.01