For2
===
## 問題概要
### ジャンル
Forensics
### 点数
200
### フラグ
CTF{tHE_cAT_iS_the_cULpRIT}
### 問題文
Find the flag.
[capture.pcapng](https://capturetheflag.withgoogle.com/attachment/ba5dc6e166469130afe6416e84386e11bce4f14793e5fa2f5d6f412ebad4b9d9)
### 挑戦者
mzyy94
@K_atc
tkmru
## 解法
pcap整形して
これやるだけ
コードは適当に拾ってきて書き換えた。
```python=
#!/usr/bin/python
import struct
from PIL import Image
import dpkt
INIT_X, INIT_Y = 2000, 2000
picture = Image.new("RGB", (5000, 5000), "white")
pixels = picture.load()
f = open("capture.pcapng","rb")
x, y = INIT_X, INIT_Y
D = f.read(64)
while D:
D = f.read(64)
try:data = struct.unpack("bbbb", D[27:31])
except:pass
status = data[0]
x = x + data[1]
y = y + data[2]
if (status == 1):
for i in range(-5, 5):
for j in range(-5, 5):
try:pixels[x + i , y + j] = (0, 0, 0, 0)
except:pass
else:
try:pixels[x, y] = (255, 0, 0, 0)
except:pass
D = f.read(64)
picture.save("flag.png", "PNG")
```
## 議論
USB接続のマウスでフラグの文字を書いてるっぽい
マウス(idVendor: Logitech, Inc. (0x046d), idProduct: M90/M100 Optical Mouse (0xc05a))のうごきを復元すればよさそう
←キーボード入力はやったことあるんだけどなぁ〜><
デバイスデスクリプタ中心 → http://www.cqpub.co.jp/hanbai/books/33/33381/33381.pdf
Device Class Definition for Human Interface Devices (HID)
http://www.usb.org/developers/hidpage/HID1_11.pdf
このUSBマウスはインタラプト転送で位置情報を送っているみたい。ペイロード4バイトの内訳はこんな感じで良さそう。
Definition の B.2 Protocol 2 (Mouse) より
Bytes | Bits | Description
:-:|:-:|-
0 | 0 | Button 1
0 | 1 | Button 2
0 | 2 | Button 3
0 | 4 to 7 | Device-specific
1 | 0 to 7 | X displacement (Signed integer)
2 | 0 to 7 | Y displacement (Signed integer)
3 to n | 0 to 7 | Device specific (optional)
https://wiki.wireshark.org/USB
Each event contains a header, described by the following structure:
```
typedef struct _usb_header {
u_int64_t id;
u_int8_t event_type;
u_int8_t transfer_type;
u_int8_t endpoint_number;
u_int8_t device_address;
u_int16_t bus_id;
char setup_flag;
char data_flag;
int64_t ts_sec;
int32_t ts_usec;
int32_t status;
u_int32_t urb_len;
u_int32_t data_len;
pcap_usb_setup setup;
} pcap_usb_header;
```
takaki:payloadだけ抜いた https://gist.github.com/tikuwachan/7740a94a05b77ba49431d84a07775a93
tkmru: for2に似た問題情報。https://github.com/ctfs/write-ups-2015/tree/master/boston-key-party-2015/school-bus/riverside
plotしてみる
![](http://i.imgur.com/ISDryaD.png)