1. 패킷 세부 정보를 파일로 저장하기
Wireshark 앱 UI에서 확인할 수 있는 패킷 정보들을 로그 또는 csv, json 양식으로 추출하고자 한다면 아래와 같이 File >> Export Packet Dissections 항목을 이용하시면 됩니다.
As Plain Text...
각 Column 값과 프로토콜 정보들이 txt 파일에 저장됩니다.
No. Time Source Destination Protocol Length Info
1 0.000000 10.2.4.101 10.2.4.1 DNS 96 Standard query 0xe0c3 A mirrors.fedoraproject.org OPT
Frame 1: 96 bytes on wire (768 bits), 96 bytes captured (768 bits)
Ethernet II, Src: HewlettP_1c:47:ae (00:08:02:1c:47:ae), Dst: Netgear_b6:93:f1 (20:e5:2a:b6:93:f1)
Internet Protocol Version 4, Src: 10.2.4.101, Dst: 10.2.4.1
User Datagram Protocol, Src Port: 40029, Dst Port: 53
Domain Name System (query)
As Csv...
Column에 표시되는 정보들만 csv 형태로 뽑아냅니다.
"No.","Time","Source","Destination","Protocol","Length","Info"
"1","0.000000","10.2.4.101","10.2.4.1","DNS","96","Standard query 0xe0c3 A mirrors.fedoraproject.org OPT"
"2","0.000135","10.2.4.101","10.2.4.1","DNS","96","Standard query 0x88a4 AAAA mirrors.fedoraproject.org OPT"
"3","0.217144","10.2.4.1","10.2.4.101","DNS","279","Standard query response 0xe0c3 A mirrors.fedoraproject.org CNAME wildcard.fedoraproject.org A 38.145.60.21 A 140.211.169.206 A 152.19.134.142 A 8.43.85.67 A 8.43.85.73 A 140.211.169.196 A 152.19.134.198 A 38.145.60.20 A 209.132.190.2 A 67.219.144.68 OPT"
"4","0.217176","10.2.4.1","10.2.4.101","DNS","287","Standard query response 0x88a4 AAAA mirrors.fedoraproject.org CNAME wildcard.fedoraproject.org AAAA 2604:1580:fe00:0:dead:beef:cafe:fed1 AAAA 2620:52:3:1:dead:beef:cafe:fed7 AAAA 2620:52:3:1:dead:beef:cafe:fed6 AAAA 2605:bc80:3010:600:dead:beef:cafe:feda AAAA 2605:bc80:3010:600:dead:beef:cafe:fed9 AAAA 2610:28:3090:3001:dead:beef:cafe:fed3 OPT"
"5","0.218461","10.2.4.101","67.219.144.68","TCP","74","36300 > 443 [SYN] Seq=0 Win=64240 Len=0 MSS=1460 SACK_PERM TSval=804336147 TSecr=0 WS=128"
As json...
패킷의 매우 디테일한 필드 정보들 모두 Json 파일 안에 담긴 채로 저장됩니다.
[
{
"_index": "packets-2021-02-05",
"_type": "doc",
"_score": null,
"_source": {
"layers": {
"frame": {
"frame.encap_type": "1",
"frame.time": "Feb 5, 2021 08:44:54.815974000 대한민국 표준시",
"frame.offset_shift": "0.000000000",
"frame.time_epoch": "1612482294.815974000",
"frame.time_delta": "0.000000000",
"frame.time_delta_displayed": "0.000000000",
"frame.time_relative": "0.000000000",
"frame.number": "1",
"frame.len": "96",
"frame.cap_len": "96",
"frame.marked": "0",
"frame.ignored": "0",
"frame.protocols": "eth:ethertype:ip:udp:dns",
"frame.coloring_rule.name": "UDP",
"frame.coloring_rule.string": "udp"
},
"eth": {
"eth.dst": "20:e5:2a:b6:93:f1",
"eth.dst_tree": {
"eth.dst_resolved": "Netgear_b6:93:f1",
"eth.dst.oui": "2155818",
"eth.dst.oui_resolved": "Netgear",
"eth.addr": "20:e5:2a:b6:93:f1",
"eth.addr_resolved": "Netgear_b6:93:f1",
"eth.addr.oui": "2155818",
"eth.addr.oui_resolved": "Netgear",
"eth.dst.lg": "0",
"eth.lg": "0",
"eth.dst.ig": "0",
"eth.ig": "0"
},
"eth.src": "00:08:02:1c:47:ae",
"eth.src_tree": {
"eth.src_resolved": "HewlettP_1c:47:ae",
"eth.src.oui": "2050",
"eth.src.oui_resolved": "Hewlett Packard",
"eth.addr": "00:08:02:1c:47:ae",
"eth.addr_resolved": "HewlettP_1c:47:ae",
"eth.addr.oui": "2050",
"eth.addr.oui_resolved": "Hewlett Packard",
"eth.src.lg": "0",
"eth.lg": "0",
"eth.src.ig": "0",
"eth.ig": "0"
},
"eth.type": "0x0800"
},
"ip": {
"ip.version": "4",
"ip.hdr_len": "20",
"ip.dsfield": "0x00",
"ip.dsfield_tree": {
"ip.dsfield.dscp": "0",
"ip.dsfield.ecn": "0"
},
"ip.len": "82",
"ip.id": "0x6d1f",
"ip.flags": "0x02",
"ip.flags_tree": {
"ip.flags.rb": "0",
"ip.flags.df": "1",
"ip.flags.mf": "0"
},
"ip.frag_offset": "0",
"ip.ttl": "64",
"ip.proto": "17",
"ip.checksum": "0xb112",
"ip.checksum.status": "2",
"ip.src": "10.2.4.101",
"ip.addr": "10.2.4.101",
"ip.src_host": "10.2.4.101",
"ip.host": "10.2.4.101",
"ip.dst": "10.2.4.1",
"ip.addr": "10.2.4.1",
"ip.dst_host": "10.2.4.1",
"ip.host": "10.2.4.1"
},
"udp": {
"udp.srcport": "40029",
"udp.dstport": "53",
"udp.port": "40029",
"udp.port": "53",
"udp.length": "62",
"udp.checksum": "0x10f8",
"udp.checksum.status": "2",
"udp.stream": "0",
"Timestamps": {
"udp.time_relative": "0.000000000",
"udp.time_delta": "0.000000000"
},
"udp.payload": "e0:c3:01:00:00:01:00:00:00:00:00:01:07:6d:69:72:72:6f:72:73:0d:66:65:64:6f:72:61:70:72:6f:6a:65:63:74:03:6f:72:67:00:00:01:00:01:00:00:29:02:00:00:00:00:00:00:00"
},
"dns": {
"dns.id": "0xe0c3",
"dns.flags": "0x0100",
"dns.flags_tree": {
"dns.flags.response": "0",
"dns.flags.opcode": "0",
"dns.flags.truncated": "0",
"dns.flags.recdesired": "1",
"dns.flags.z": "0",
"dns.flags.checkdisable": "0"
},
"dns.count.queries": "1",
"dns.count.answers": "0",
"dns.count.auth_rr": "0",
"dns.count.add_rr": "1",
"Queries": {
"mirrors.fedoraproject.org: type A, class IN": {
"dns.qry.name": "mirrors.fedoraproject.org",
"dns.qry.name.len": "25",
"dns.count.labels": "3",
"dns.qry.type": "1",
"dns.qry.class": "0x0001"
}
},
"Additional records": {
"<Root>: type OPT": {
"dns.resp.name": "<Root>",
"dns.resp.type": "41",
"dns.rr.udp_payload_size": "512",
"dns.resp.ext_rcode": "0x00",
"dns.resp.edns0_version": "0",
"dns.resp.z": "0x0000",
"dns.resp.z_tree": {
"dns.resp.z.do": "0",
"dns.resp.z.reserved": "0x0000"
},
"dns.resp.len": "0"
}
}
}
}
}
}
]
2. 이미지, Html와 같은 데이터 오브젝트 추출하기
File >> Export Objects 탭을 통해 HTTP, FTP 채널로 오고간 다양한 데이터 오브젝트를 조회해보고, 또 따로 저장도 가능합니다.
반응형