标签: tcpdump

我如何嗅探/转储 HTTP 协议作为带有 tcpdump 或替代端口的 ASCII?

我需要查看应用程序如何通过它在本地主机上通信的 http 协议发送和接收流量(它有一个用 .gz 编码的嵌入式端口)我确定它发送和接收的是一些 XML,但我想嗅探它,然后分析它

这可以通过 Tcpdump 以某种方式实现吗?在那里我只能看到它连接但看不到实际的发送接收

monitoring http packet-sniffer tcpdump

5
推荐指数
2
解决办法
2万
查看次数

从网络或 pcap 文件中提取 SSL 证书

如果有人能指点我从实时 HTTPS 连接(直接从网络)或网络跟踪文件(pcap 文件)中提取 SSL/TLS 证书的工具或方法,我将不胜感激。我尝试使用 ssldump,但无法提取证书。我也可以使用 Wireshark(手动),但我想以自动方式执行此操作。为此,我正在使用 Linux 平台。谢谢

编辑:我想提取 SSL 证书,而不是在 SSL 握手期间服务器发送到客户端(浏览器)。我想使用网络嗅探器 (tcpdump) 来捕获网络中的 SSL 连接,然后从生成的 pcap 文件中提取证书(或实时进行)。

ssl tcpdump pcap ssl-certificate

5
推荐指数
1
解决办法
2万
查看次数

记录 tcpdump 输出

我基本上想要的是每 3 天将所有 tcpdump 捕获的数据包写入一个文件。所以基本上 tcpdump 应该在第 1 天运行 24 小时并将输出写入 Day1.log 和类似的 Day2 和 Day3。在第 4 天,它应该重复并将日志再次写入 Day1。这基本上是为了检查我的服务器上的 DDoS 尝试并找出攻击类型,包括攻击者的 IP,因为在过去 7 天我的机器被 DDoS 攻击,我希望它再次发生。我知道它是由一些 cronjobs 完成的,但我需要将实际命令放在那里?

我还想知道哪个 IP 以 mb/sec 为单位的最大输入量,因为我的流量很高,因此我几乎需要 6 个小时才能继续搜索这些文件以查找攻击者的 IP。那么在分析这些文件的过程中,WireShark 中是否有任何内容可以说明 IP 对我的服务器进行了多少 mb/s 的输入?如果没有,我应该如何找到它?

编辑: --------------------------------------------

你们也可以自由发表您的反击想法。我所需要的只是找到攻击者的 IP、他发送的数据包数据以及以 mb/s 为单位的输入到我的服务器。我的客户不会产生超过 300kb/s 的输入,所以如果我们设置一个过滤器来捕获超过 1mb/s 的输入,我们可以捕获它。

networking logging tcpdump

5
推荐指数
2
解决办法
1万
查看次数

如何仅使用 tcpdump 过滤保持活动的数据包

我需要分析我网络上的流量转储,以检查是否所有 PC 都启用了 tcp keep-live 功能。为此,我正在使用 tcpdump。

我需要知道的是是否有可能只过滤保持活动的数据包。

在 Windows 上,我看到 wireshark 可以做到这一点,但在我的只有控制台模式的 linux 系统上,我不知道如何过滤那种数据包。

linux tcpdump keep-alive

5
推荐指数
2
解决办法
2万
查看次数

tcpdump - 如何检查数据包的速率?

我正在使用这个脚本来实际检查传入数据包的速率,如果速率达到 5mbps 或更高,它就会被触发。然后将数据包记录到 tcpdump 文件中。

interface=eth0
dumpdir=/tmp/

while /bin/true; do
  pkt_old=`grep $interface: /proc/net/dev | cut -d :  -f2 | awk '{ print $2 }'`
  sleep 1
  pkt_new=`grep $interface: /proc/net/dev | cut -d :  -f2 | awk '{ print $2 }'`

  pkt=$(( $pkt_new - $pkt_old ))
  echo -ne "\r$pkt packets/s\033[0K"

  if [ $pkt -gt 5000 ]; then
    echo -e "\n`date` Under attack, dumping packets."
    tcpdump -n -s0 -c 2000 -w $dumpdir/dump.`date +"%Y%m%d-%H%M%S"`.cap
    echo "`date` Packets dumped, sleeping now."
    sleep 300
  fi …
Run Code Online (Sandbox Code Playgroud)

tcpdump

5
推荐指数
1
解决办法
3万
查看次数

tcpdump 服务器 Hello 证书过滤器

在位于我的本地网络和路由器之间的设备上,(所有流量都通过)我需要从 Hello Server Certificate 数据包中读取通用名称。

所以我试图弄清楚如何使用 tcpdump 获得正确的过滤器。

我从这篇论文中找到了帮助:http : //www.wains.be/pub/networking/tcpdump_advanced_filters.txt
它解释了如何在 IP 和 TCP 字段上使用高级过滤器。

我试过这种过滤器:

$ tcpdump -i any \
  'tcp and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)' \
   -A -s 0 -v | grep 'Host\|id-at-commonName='
Run Code Online (Sandbox Code Playgroud)

正如论文中所解释的,“我们正在匹配任何包含数据的数据包。”

它适用于Host许多其他数据的字段,但我无法匹配id-at-commonName=SSL 字段中的字段(所以在 TCP 数据字段中?)。

为了确保我使用完全相同的过滤器(没有 grep)捕获了一个 pcap 文件,当我用 Wireshark 打开它时,我可以获得每个证书通用名称。我必须使用tcpdump过滤器,因为我需要“即时”获取数据。

有人可以解释为什么我看不到这些数据tcpdump吗?

ssl tcpdump

5
推荐指数
2
解决办法
2万
查看次数

ec2 上的 Tcpdump 看不到所有数据包

我在 Amazon EC2 实例上运行 tcpdump 以监控流向 Nginx 的 HTTP 流量(这只是一个测试框,唯一的资源是示例测试页面)。

使用命令运行 tcpdump

# tcpdump -vn -i any port 80
Run Code Online (Sandbox Code Playgroud)

显示来自浏览器对站点的请求的数据包,但在使用 Python 脚本(使用请求库)或手动制作的数据包(Scapy)访问页面时不显示任何内容

  • 没有运行本地防火墙,并且安全组设置正确。
  • 脚本正常工作:我可以很容易地在本地端捕获 tcpdump 中的事务,并且它们返回状态为 200 OK 的页面。
  • 将数据包直接保存到文件 (-w) 也没有区别,排除了缓冲问题(我相信?)
  • 我也试过查看VLAN是否导致了这个问题,但没有运气;搜索“80”仍然没有结果。

问题:

  1. 什么可能导致 tcpdump 错过这些非常具体的数据包,这些数据包肯定会通过防火墙到达 Nginx 并再次返回?
  2. 为什么从 Firefox 发送的数据包会被看到而脚本发送的数据包会溜走?

谢谢

packet-sniffer tcpdump amazon-ec2 packet-capture packets

5
推荐指数
1
解决办法
5762
查看次数

Nginx TCP 快速打开问题

我已经在我的一台服务器上配置了 Nginx 和 Apache。nginx 服务器侦听端口 80,Apache 侦听端口 81。Nginx 充当反向代理。在nginx中我配置了TCP Fast Open:

server {
    listen 107.6.155.74 fastopen=50;
    server_name servtest.com www.servtest.com;
Run Code Online (Sandbox Code Playgroud)

服务器本身也启用了 TCP Fast Open:

root@server:~/projects/nginx# cat /proc/sys/net/ipv4/tcp_fastopen
3
Run Code Online (Sandbox Code Playgroud)

为了测试这是否有效,我在运行 Ubuntu 的 PC 上配置 Chrome 以使用 TCP Fast Open(chrome://flags 页面)。tcp_fastopen 设置在客户端设置为 1。

在服务器上,我使用以下 grep 来确定是否使用了 TCP Fast Open:

grep '^TcpExt:' /proc/net/netstat | cut -d ' ' -f 87-92  | column -t
TCPOFOMerge  TCPChallengeACK  TCPSYNChallenge  TCPFastOpenActive  TCPFastOpenPassive  TCPFastOpenPassiveFail
0            2                2                0                  0                   0
Run Code Online (Sandbox Code Playgroud)

我相信 TCPFastOpenActive 和/或 TCPFastOpenPassive 计数器不应该是“0”,如果这有效。任何想法如何实际找出是否使用 TCP Fast Open 并按预期工作?如果我需要提供更多信息,请告诉我。

nginx tcp tcpdump chrome

5
推荐指数
1
解决办法
2416
查看次数

TCP 消息合并了吗?

我有一个应用程序,它发送 100 个 186 字节(不包括标头)的 TCP 消息,从主机 A 到主机 B 之间没有间隙。

我运行 tcpdump 来捕获主机 A(发件人所在的位置)上的数据包,我注意到在几条消息(如 9 条)之后,接下来的约 25 条消息合并为一条 5+K 条消息。

我已经在sender应用程序中通过setsockopt()关闭了Nagle的算法,计算出的TCP windows一直超过14K字节。因此,前 9 条消息似乎没有填满主机 B 并且主机 B 要求主机 A 放慢速度。

关于如何找出 TCP 消息合并的原因的任何提示?

谢谢!

networking tcp tcpdump centos6

5
推荐指数
1
解决办法
2万
查看次数

Linux:跟踪 netstat -s“失败的连接尝试”的来源

我有几台服务器,其中 netstat -s(来自 /proc/net/snmp)返回的失败连接尝试指标大约每秒增长 1 个,我想诊断这些的来源。

通过使用这个 ipTables 规则(在不同的服务器上):

-A 输出 -p tcp --dport 23 -j 拒绝

我正在阻止传出的 telnet,所以我可以运行这个循环:

虽然是真的;做
telnet www.google.co.uk
netstat -s | grep“连接失败”
完成

正在尝试 209.85.203.94...
telnet:无法连接到远程主机:连接被拒绝
52 次连接尝试失败
正在尝试 209.85.203.94... telnet:无法连接到远程主机:连接被拒绝
53 次连接尝试失败
尝试 209.85.203.94... . telnet:无法连接到远程主机:连接被拒绝
54 次连接尝试失败

因此证明计数器因尝试连接到远程套接字失败而增加。(当然,这并不能证明这是增加的唯一原因)。

问题是,我如何才能找到失败的远程地址和端口(或两者的复数)的特定组合,以便我可以查看下一步;路由/防火墙问题?
顺便说一句,如果我运行这个:

观看 -n1 的 ss | grep "\<23\>"'

我希望看到处于 SYN-SENT 状态的套接字,但没有。这是因为我使用了 REJECT,而不是 DROP?谢谢

networking linux tcpip redhat tcpdump

5
推荐指数
1
解决办法
9689
查看次数