hacktricks/forensics/basic-forensic-methodology/pcap-inspection
2023-08-03 19:12:22 +00:00
..
dnscat-exfiltration.md Translated to Chinese 2023-08-03 19:12:22 +00:00
README.md Translated to Chinese 2023-08-03 19:12:22 +00:00
usb-keyboard-pcap-analysis.md Translated to Chinese 2023-08-03 19:12:22 +00:00
usb-keystrokes.md Translated to Chinese 2023-08-03 19:12:22 +00:00
wifi-pcap-analysis.md Translated to Chinese 2023-08-03 19:12:22 +00:00
wireshark-tricks.md Translated to Chinese 2023-08-03 19:12:22 +00:00

Pcap检查

☁️ HackTricks云 ☁️ -🐦 推特 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

RootedCON 是西班牙最重要的网络安全活动之一,也是欧洲最重要的网络安全活动之一。作为促进技术知识的使命,这个大会是技术和网络安全专业人士在各个领域的热点交流。

{% embed url="https://www.rootedcon.com/" %}

{% hint style="info" %} 关于PCAPPCAPNG的说明PCAP文件格式有两个版本PCAPNG是较新的版本不被所有工具支持。您可能需要使用Wireshark或其他兼容工具将文件从PCAPNG转换为PCAP以便在其他工具中使用它。 {% endhint %}

在线工具用于pcap

提取信息

以下工具对于提取统计信息、文件等非常有用。

Wireshark

{% hint style="info" %} 如果您要分析PCAP您基本上必须知道如何使用Wireshark {% endhint %}

您可以在以下位置找到一些Wireshark技巧

{% content-ref url="wireshark-tricks.md" %} wireshark-tricks.md {% endcontent-ref %}

Xplico Framework

Xplico _(仅适用于Linux)_可以分析pcap并从中提取信息。例如从pcap文件中Xplico可以提取每个电子邮件POP、IMAP和SMTP协议所有HTTP内容每个VoIP呼叫SIPFTPTFTP等等。

安装

sudo bash -c 'echo "deb http://repo.xplico.org/ $(lsb_release -s -c) main" /etc/apt/sources.list'
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 791C25CE
sudo apt-get update
sudo apt-get install xplico

运行

/etc/init.d/apache2 restart
/etc/init.d/xplico start

访问使用凭据 xplico:xplico127.0.0.1:9876

然后创建一个新案例,在案例中创建一个新会话,并上传pcap文件

NetworkMiner

与Xplico一样这是一个用于分析和提取pcap文件中的对象的工具。你可以在这里下载它的免费版本。它适用于Windows操作系统。
这个工具还可以用来从数据包中获取其他分析信息,以便更快地了解发生了什么。

NetWitness Investigator

你可以从这里下载NetWitness Investigator它适用于Windows操作系统
这是另一个有用的工具,它可以分析数据包并以有用的方式对信息进行排序,以便了解内部发生的情况

BruteShark

  • 提取和编码用户名和密码HTTP、FTP、Telnet、IMAP、SMTP...
  • 提取认证哈希并使用Hashcat破解Kerberos、NTLM、CRAM-MD5、HTTP-Digest...
  • 构建可视化网络图(网络节点和用户)
  • 提取DNS查询
  • 重构所有TCP和UDP会话
  • 文件切割

Capinfos

capinfos capture.pcap

Ngrep

如果你想在pcap文件中查找某些内容可以使用ngrep。以下是使用主要过滤器的示例

ngrep -I packets.pcap "^GET" "port 80 and tcp and host 192.168 and dst host 192.168 and src host 192.168"

数据恢复

使用常见的数据恢复技术可以从pcap中提取文件和信息

{% content-ref url="../partitions-file-systems-carving/file-data-carving-recovery-tools.md" %} file-data-carving-recovery-tools.md {% endcontent-ref %}

捕获凭证

您可以使用工具如https://github.com/lgandx/PCredz从pcap或实时接口中解析凭证。

RootedCON 是西班牙最重要的网络安全活动之一,也是欧洲最重要的网络安全活动之一。作为促进技术知识的使命,这个大会是技术和网络安全专业人士在各个领域的热点交流平台。

{% embed url="https://www.rootedcon.com/" %}

检查漏洞/恶意软件

Suricata

安装和设置

apt-get install suricata
apt-get install oinkmaster
echo "url = http://rules.emergingthreats.net/open/suricata/emerging.rules.tar.gz" >> /etc/oinkmaster.conf
oinkmaster -C /etc/oinkmaster.conf -o /etc/suricata/rules

检查 pcap 文件

To analyze a pcap file, you can use tools like Wireshark or tcpdump. These tools allow you to inspect the network traffic captured in the pcap file.

要分析 pcap 文件,可以使用 Wireshark 或 tcpdump 等工具。这些工具允许您检查在 pcap 文件中捕获的网络流量。

Inspect packets

检查数据包

Once you have opened the pcap file in a packet analysis tool, you can start inspecting the individual packets. Look for any suspicious or abnormal behavior in the network traffic.

在数据包分析工具中打开 pcap 文件后,您可以开始检查各个数据包。查找网络流量中的任何可疑或异常行为。

Filter packets

过滤数据包

To focus on specific packets of interest, you can apply filters to the pcap file. Filters allow you to narrow down the packets based on specific criteria such as source or destination IP address, port number, protocol, or packet content.

为了关注感兴趣的特定数据包,可以对 pcap 文件应用过滤器。过滤器允许您根据特定的条件(如源或目标 IP 地址、端口号、协议或数据包内容)缩小数据包范围。

Reconstruct sessions

重建会话

In some cases, it may be necessary to reconstruct the sessions from the captured packets. This can be done by analyzing the packet headers and payload to identify the start and end of each session.

在某些情况下,可能需要从捕获的数据包中重建会话。这可以通过分析数据包头部和有效载荷来识别每个会话的开始和结束来完成。

Extract files

提取文件

If the pcap file contains file transfers or downloads, you can extract those files for further analysis. Look for packets with file attachments or HTTP requests/responses that include file content.

如果 pcap 文件包含文件传输或下载,可以提取这些文件进行进一步分析。查找带有文件附件或包含文件内容的 HTTP 请求/响应的数据包。

Analyze timestamps

分析时间戳

Timestamps in the pcap file can provide valuable information about the timing and sequence of network events. Analyzing the timestamps can help in understanding the order of network activities and identifying any time gaps or delays.

pcap 文件中的时间戳可以提供有关网络事件的时间和顺序的有价值的信息。分析时间戳可以帮助理解网络活动的顺序,并识别任何时间间隔或延迟。

Follow TCP streams

跟踪 TCP 流

To get a complete view of a TCP session, you can follow the TCP streams in the pcap file. This allows you to see the entire conversation between the client and server, including request and response payloads.

为了完整地查看 TCP 会话,可以在 pcap 文件中跟踪 TCP 流。这样可以看到客户端和服务器之间的完整对话,包括请求和响应的有效载荷。

Identify anomalies

识别异常

During the pcap inspection, keep an eye out for any anomalies or suspicious patterns in the network traffic. Look for unexpected protocols, unusual packet sizes, or any other indicators of potential security breaches.

在 pcap 检查过程中,注意网络流量中的任何异常或可疑模式。寻找意外的协议、异常的数据包大小或任何其他潜在安全漏洞的指示器。

Document findings

记录发现

As you analyze the pcap file, make sure to document your findings. Take notes on any interesting packets, suspicious activities, or potential security issues. This documentation will be useful for further investigation or reporting.

在分析 pcap 文件时,请确保记录您的发现。记录任何有趣的数据包、可疑活动或潜在的安全问题。这些记录将有助于进一步的调查或报告。

suricata -r packets.pcap -c /etc/suricata/suricata.yaml -k none -v -l log

YaraPcap

YaraPCAP 是一个工具,它可以:

  • 读取 PCAP 文件并提取 HTTP 流。
  • 对任何压缩的流进行 gzip 解压缩。
  • 使用 Yara 扫描每个文件。
  • 写入 report.txt。
  • 可选择将匹配的文件保存到一个目录。

恶意软件分析

检查是否能找到已知恶意软件的任何指纹:

{% content-ref url="../malware-analysis.md" %} malware-analysis.md {% endcontent-ref %}

Zeek

Zeek 是一个被动的、开源的网络流量分析器。许多运营商使用 Zeek 作为网络安全监视器 (NSM) 来支持对可疑或恶意活动的调查。Zeek 还支持广泛的流量分析任务,超出了安全领域,包括性能测量和故障排除。

基本上,由 zeek 创建的日志不是 pcaps。因此,您需要使用其他工具来分析包含有关 pcaps 的信息的日志。

连接信息

#Get info about longest connections (add "grep udp" to see only udp traffic)
#The longest connection might be of malware (constant reverse shell?)
cat conn.log | zeek-cut id.orig_h id.orig_p id.resp_h id.resp_p proto service duration | sort -nrk 7 | head -n 10

10.55.100.100   49778   65.52.108.225   443     tcp     -       86222.365445
10.55.100.107   56099   111.221.29.113  443     tcp     -       86220.126151
10.55.100.110   60168   40.77.229.82    443     tcp     -       86160.119664


#Improve the metrics by summing up the total duration time for connections that have the same destination IP and Port.
cat conn.log | zeek-cut id.orig_h id.resp_h id.resp_p proto duration | awk 'BEGIN{ FS="\t" } { arr[$1 FS $2 FS $3 FS $4] += $5 } END{ for (key in arr) printf "%s%s%s\n", key, FS, arr[key] }' | sort -nrk 5 | head -n 10

10.55.100.100   65.52.108.225   443     tcp     86222.4
10.55.100.107   111.221.29.113  443     tcp     86220.1
10.55.100.110   40.77.229.82    443     tcp     86160.1

#Get the number of connections summed up per each line
cat conn.log | zeek-cut id.orig_h id.resp_h duration | awk 'BEGIN{ FS="\t" } { arr[$1 FS $2] += $3; count[$1 FS $2] += 1 } END{ for (key in arr) printf "%s%s%s%s%s\n", key, FS, count[key], FS, arr[key] }' | sort -nrk 4 | head -n 10

10.55.100.100   65.52.108.225   1       86222.4
10.55.100.107   111.221.29.113  1       86220.1
10.55.100.110   40.77.229.82    134       86160.1

#Check if any IP is connecting to 1.1.1.1
cat conn.log | zeek-cut id.orig_h id.resp_h id.resp_p proto service | grep '1.1.1.1' | sort | uniq -c

#Get number of connections per source IP, dest IP and dest Port
cat conn.log | zeek-cut id.orig_h id.resp_h id.resp_p proto | awk 'BEGIN{ FS="\t" } { arr[$1 FS $2 FS $3 FS $4] += 1 } END{ for (key in arr) printf "%s%s%s\n", key, FS, arr[key] }' | sort -nrk 5 | head -n 10


# RITA
#Something similar can be done with the tool rita
rita show-long-connections -H --limit 10 zeek_logs

+---------------+----------------+--------------------------+----------------+
|   SOURCE IP   | DESTINATION IP | DSTPORT:PROTOCOL:SERVICE |    DURATION    |
+---------------+----------------+--------------------------+----------------+
| 10.55.100.100 | 65.52.108.225  | 443:tcp:-                | 23h57m2.3655s  |
| 10.55.100.107 | 111.221.29.113 | 443:tcp:-                | 23h57m0.1262s  |
| 10.55.100.110 | 40.77.229.82   | 443:tcp:-                | 23h56m0.1197s  |

#Get connections info from rita
rita show-beacons zeek_logs | head -n 10
Score,Source IP,Destination IP,Connections,Avg Bytes,Intvl Range,Size Range,Top Intvl,Top Size,Top Intvl Count,Top Size Count,Intvl Skew,Size Skew,Intvl Dispersion,Size Dispersion
1,192.168.88.2,165.227.88.15,108858,197,860,182,1,89,53341,108319,0,0,0,0
1,10.55.100.111,165.227.216.194,20054,92,29,52,1,52,7774,20053,0,0,0,0
0.838,10.55.200.10,205.251.194.64,210,69,29398,4,300,70,109,205,0,0,0,0

DNS 信息

DNS域名系统是一种用于将域名转换为 IP 地址的系统。在网络流量分析中,检查 DNS 信息可以提供有关通信的重要线索。以下是一些有用的 DNS 信息检查方法:

DNS 查询

通过检查 DNS 查询,可以了解主机正在尝试访问的域名。这可以帮助确定主机的意图和目标。

DNS 响应

检查 DNS 响应可以揭示主机是否成功解析了域名,并获取了相应的 IP 地址。这可以帮助确定主机是否与特定的服务器进行了通信。

DNS 转发

检查 DNS 转发可以显示主机是否将 DNS 查询发送到其他 DNS 服务器。这可以帮助确定主机是否使用了代理或中间人。

DNS 缓存

检查 DNS 缓存可以显示主机是否存储了先前的 DNS 查询结果。这可以帮助确定主机是否频繁访问相同的域名。

DNS 劫持

检查 DNS 劫持可以揭示主机是否受到了恶意攻击,其中攻击者篡改了 DNS 查询结果,将用户重定向到恶意网站。

DNS 异常

检查 DNS 异常可以显示主机是否存在异常的 DNS 查询或响应。这可以帮助确定主机是否受到了攻击或存在配置问题。

通过分析 DNS 信息,可以获得有关网络通信的重要线索,帮助进行取证分析和安全事件响应。

#Get info about each DNS request performed
cat dns.log | zeek-cut -c id.orig_h query qtype_name answers

#Get the number of times each domain was requested and get the top 10
cat dns.log | zeek-cut query | sort | uniq | rev | cut -d '.' -f 1-2 | rev | sort | uniq -c | sort -nr | head -n 10

#Get all the IPs
cat dns.log | zeek-cut id.orig_h query | grep 'example\.com' | cut -f 1 | sort | uniq -c

#Sort the most common DNS record request (should be A)
cat dns.log | zeek-cut qtype_name | sort | uniq -c | sort -nr

#See top DNS domain requested with rita
rita show-exploded-dns -H --limit 10 zeek_logs

其他pcap分析技巧

{% content-ref url="dnscat-exfiltration.md" %} dnscat-exfiltration.md {% endcontent-ref %}

{% content-ref url="wifi-pcap-analysis.md" %} wifi-pcap-analysis.md {% endcontent-ref %}

{% content-ref url="usb-keystrokes.md" %} usb-keystrokes.md {% endcontent-ref %}

RootedCON 是西班牙最重要的网络安全活动之一,也是欧洲最重要的网络安全活动之一。作为促进技术知识的使命,这个大会是技术和网络安全专业人士的热点交流平台。

{% embed url="https://www.rootedcon.com/" %}

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥