mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
156 lines
5.5 KiB
Markdown
156 lines
5.5 KiB
Markdown
# Wireshark tricks
|
|
|
|
{{#include ../../../banners/hacktricks-training.md}}
|
|
|
|
## Wireshark 기술 향상
|
|
|
|
### 튜토리얼
|
|
|
|
다음 튜토리얼은 멋진 기본 기술을 배우기에 훌륭합니다:
|
|
|
|
- [https://unit42.paloaltonetworks.com/unit42-customizing-wireshark-changing-column-display/](https://unit42.paloaltonetworks.com/unit42-customizing-wireshark-changing-column-display/)
|
|
- [https://unit42.paloaltonetworks.com/using-wireshark-display-filter-expressions/](https://unit42.paloaltonetworks.com/using-wireshark-display-filter-expressions/)
|
|
- [https://unit42.paloaltonetworks.com/using-wireshark-identifying-hosts-and-users/](https://unit42.paloaltonetworks.com/using-wireshark-identifying-hosts-and-users/)
|
|
- [https://unit42.paloaltonetworks.com/using-wireshark-exporting-objects-from-a-pcap/](https://unit42.paloaltonetworks.com/using-wireshark-exporting-objects-from-a-pcap/)
|
|
|
|
### 분석된 정보
|
|
|
|
**전문가 정보**
|
|
|
|
_**Analyze** --> **Expert Information**_을 클릭하면 패킷 **분석**에서 발생하는 일에 대한 **개요**를 볼 수 있습니다:
|
|
|
|
.png>)
|
|
|
|
**해결된 주소**
|
|
|
|
_**Statistics --> Resolved Addresses**_ 아래에서 wireshark에 의해 "**해결된**" 여러 **정보**를 찾을 수 있습니다. 예를 들어 포트/전송 프로토콜, MAC에서 제조사 등입니다. 통신에 관련된 내용을 아는 것은 흥미롭습니다.
|
|
|
|
.png>)
|
|
|
|
**프로토콜 계층**
|
|
|
|
_**Statistics --> Protocol Hierarchy**_ 아래에서 통신에 **관련된** **프로토콜**과 그에 대한 데이터를 찾을 수 있습니다.
|
|
|
|
.png>)
|
|
|
|
**대화**
|
|
|
|
_**Statistics --> Conversations**_ 아래에서 통신의 **대화 요약**과 그에 대한 데이터를 찾을 수 있습니다.
|
|
|
|
.png>)
|
|
|
|
**엔드포인트**
|
|
|
|
_**Statistics --> Endpoints**_ 아래에서 통신의 **엔드포인트 요약**과 각 엔드포인트에 대한 데이터를 찾을 수 있습니다.
|
|
|
|
.png>)
|
|
|
|
**DNS 정보**
|
|
|
|
_**Statistics --> DNS**_ 아래에서 캡처된 DNS 요청에 대한 통계를 찾을 수 있습니다.
|
|
|
|
.png>)
|
|
|
|
**I/O 그래프**
|
|
|
|
_**Statistics --> I/O Graph**_ 아래에서 **통신 그래프**를 찾을 수 있습니다.
|
|
|
|
.png>)
|
|
|
|
### 필터
|
|
|
|
여기에서 프로토콜에 따라 wireshark 필터를 찾을 수 있습니다: [https://www.wireshark.org/docs/dfref/](https://www.wireshark.org/docs/dfref/)\
|
|
기타 흥미로운 필터:
|
|
|
|
- `(http.request or ssl.handshake.type == 1) and !(udp.port eq 1900)`
|
|
- HTTP 및 초기 HTTPS 트래픽
|
|
- `(http.request or ssl.handshake.type == 1 or tcp.flags eq 0x0002) and !(udp.port eq 1900)`
|
|
- HTTP 및 초기 HTTPS 트래픽 + TCP SYN
|
|
- `(http.request or ssl.handshake.type == 1 or tcp.flags eq 0x0002 or dns) and !(udp.port eq 1900)`
|
|
- HTTP 및 초기 HTTPS 트래픽 + TCP SYN + DNS 요청
|
|
|
|
### 검색
|
|
|
|
세션의 **패킷** 내에서 **내용**을 **검색**하려면 _CTRL+f_를 누르십시오. 오른쪽 버튼을 눌러 새 레이어를 주 정보 바(No., Time, Source 등)에 추가할 수 있습니다.
|
|
|
|
### 무료 pcap 실습
|
|
|
|
**무료 챌린지로 연습하세요:** [**https://www.malware-traffic-analysis.net/**](https://www.malware-traffic-analysis.net)
|
|
|
|
## 도메인 식별
|
|
|
|
Host HTTP 헤더를 보여주는 열을 추가할 수 있습니다:
|
|
|
|
.png>)
|
|
|
|
그리고 시작 HTTPS 연결에서 서버 이름을 추가하는 열(**ssl.handshake.type == 1**)을 추가할 수 있습니다:
|
|
|
|
 (1).png>)
|
|
|
|
## 로컬 호스트 이름 식별
|
|
|
|
### DHCP에서
|
|
|
|
현재 Wireshark에서는 `bootp` 대신 `DHCP`를 검색해야 합니다.
|
|
|
|
.png>)
|
|
|
|
### NBNS에서
|
|
|
|
.png>)
|
|
|
|
## TLS 복호화
|
|
|
|
### 서버 개인 키로 https 트래픽 복호화
|
|
|
|
_edit>preference>protocol>ssl>_
|
|
|
|
.png>)
|
|
|
|
_서버와 개인 키의 모든 데이터를 추가하려면_ _Edit_를 누르십시오 (_IP, Port, Protocol, Key file 및 password_)
|
|
|
|
### 대칭 세션 키로 https 트래픽 복호화
|
|
|
|
Firefox와 Chrome 모두 TLS 세션 키를 기록할 수 있는 기능이 있으며, 이를 사용하여 Wireshark에서 TLS 트래픽을 복호화할 수 있습니다. 이를 통해 보안 통신에 대한 심층 분석이 가능합니다. 이 복호화를 수행하는 방법에 대한 자세한 내용은 [Red Flag Security](https://redflagsecurity.net/2019/03/10/decrypting-tls-wireshark/)의 가이드에서 확인할 수 있습니다.
|
|
|
|
이를 감지하려면 환경 내에서 변수 `SSLKEYLOGFILE`을 검색하십시오.
|
|
|
|
공유 키 파일은 다음과 같이 보일 것입니다:
|
|
|
|
.png>)
|
|
|
|
이 파일을 wireshark에 가져오려면 \_edit > preference > protocol > ssl > (Pre)-Master-Secret 로그 파일 이름에 가져오십시오:
|
|
|
|
.png>)
|
|
|
|
## ADB 통신
|
|
|
|
APK가 전송된 ADB 통신에서 APK를 추출합니다:
|
|
```python
|
|
from scapy.all import *
|
|
|
|
pcap = rdpcap("final2.pcapng")
|
|
|
|
def rm_data(data):
|
|
splitted = data.split(b"DATA")
|
|
if len(splitted) == 1:
|
|
return data
|
|
else:
|
|
return splitted[0]+splitted[1][4:]
|
|
|
|
all_bytes = b""
|
|
for pkt in pcap:
|
|
if Raw in pkt:
|
|
a = pkt[Raw]
|
|
if b"WRTE" == bytes(a)[:4]:
|
|
all_bytes += rm_data(bytes(a)[24:])
|
|
else:
|
|
all_bytes += rm_data(bytes(a))
|
|
print(all_bytes)
|
|
|
|
f = open('all_bytes.data', 'w+b')
|
|
f.write(all_bytes)
|
|
f.close()
|
|
```
|
|
{{#include ../../../banners/hacktricks-training.md}}
|