linux服务器被攻击如何进行抓包来进行分析

linux服务器被攻击如何进行抓包来进行分析,第1张

用途

tcpdump简义:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。

 tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。

语法

tcpdump [-adeflnNOpqStvx][-c<数据包数目>][-dd][-ddd][-F<表达文件>][-i<网络界面>]

[-r<数据包文件>][-s<数据包大小>][-tt][-T<数据包类型>][-vv][-w<数据包文件>][输出数据栏位]

参数说明:http://write.blog.csdn.net/postedit/72898655

-a 尝试将网络和广播地址转换成名称。

-c<数据包数目>收到指定的数据包数目后,就停止进行倾倒 *** 作。

-d 把编译过的数据包编码转换成可阅读的格式,并倾倒到标准输出。

-dd 把编译过的数据包编码转换成C语言的格式,并倾倒到标准输出。

-ddd 把编译过的数据包编码转换成十进制数字的格式,并倾倒到标准输出。

-e 在每列倾倒资料上显示连接层级的文件头。

-f 用数字显示网际网络地址。

-F<表达文件>指定内含表达方式的文件。

-i<网络界面>使用指定的网络截面送出数据包。

-l 使用标准输出列的缓冲区。

-n 不把主机的网络地址转换成名字。

-N 不列出域名。

-O 不将数据包编码最佳化。

-p 不让网络界面进入混杂模式。

-q 快速输出,仅列出少数的传输协议信息。

-r<数据包文件>从指定的文件读取数据包数据。

-s<数据包大小>设置每个数据包的大小。

-S 用绝对而非相对数值列出TCP关联数。

-t 在每列倾倒资料上不显示时间戳记。

-tt 在每列倾倒资料上显示未经格式化的时间戳记。

-T<数据包类型>强制将表达方式所指定的数据包转译成设置的数据包类型。

-v 详细显示指令执行过程。

-vv 更详细显示指令执行过程。

-x 用十六进制字码列出数据包资料。

-w<数据包文件>把数据包数据写入指定的文件。

案例

tcpdump -s 0 -i eth1  -w 94ip.cap

注:监听 ETH1网站 保存文件为94ip.cap

网云互联(www.94ip.net/www.94ip.com)是一家从事服务器安全防护、入侵检测、服务器代维等为一体的公司,免费服务器安全检测,并有24小时在线运维工程师为您服务。

你用SOCK_RAW的模式建立原始套接字然后接收包。

剩下的就全是分析内容的事情了。。。。最多再用一下多线程。

用到linux下socket编程的最基本知识, 以及对网络协议细节的了解。 前者随便找本socket编程的书就很详细了, 后者你因该懂。

——————

例如, 你需要include以下这些头:

stdio.h,stdlib.h, unistd.h, sys/socket.h, sys/types.h, netinet/if_ether.h, netinet/in.h,

然后建立socket的时候用

socket(PF_PACKET,SOCK_RAW,htons(ETH_P_IP)),这样就能用这个socket来监听以太网的包。

然后循环调用recvfrom函数来听这个socket的接受到的数据, 再分析就好了。

如果要嗅探别人机器的包, 就要用ARP欺骗了。。呵呵

Netstat是一款CLI工具,它可以列出系统上所有的网络连接情况,包括tcp、udp和其他unix网络socket,另外它还能列出处于监听状态的socket。当Linux网络或系统排查问题时,netstat基本上是必用的工具之一,下面开始对netstat的常见用法加以说明。

用途:列出tcp、udp和其他unix套接字下所有的连接,往往信息提供的不够直观和详细,因此也常通过搭配其他参数一起使用。

相信很多用户已经发现,在执行上述命令的时候结果查询的不是很快,这是因为netstat默认会使用反向域名解析,会把对应的IPv4地址解析对应到IPv6或者主机名,如果IP地址信息足够满足需求时,大可以禁用反向域名解析,加上 -n 参数。

如果是查看udp协议下的连接,则用 netstat -nlu 。

常常会遇到如下场景:我们提前预知某服务程序开放某监听端口,于是想查看对应连接的信息,包括进程名、进程ID甚至执行owner信息等,可加入 -p , -e 参数来实现。

netstat -s 可以打印出网络统计数据,包括某个协议下的收发包数量;

netstat -rn 可查看路由信息,效果等同于 route -n ;

netstat -i 或者 netstat -ie 可查看网络接口信息,且后一条命令效果等同于 ifconfig -a ;

用简单的话来定义tcpdump,就是: dump the traffic on a network ,根据使用者的定义对网络上的数据包进行截获的包分析工具。 tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息,是一个十分常用的Linux抓包工具。

在介绍tcpdump常用命令之前先提一个小建议,每个tcpdump命令的末尾加上 -s 0 -nvvvtttt 参数,简单解释一下参数的含义:

另外还可以结合自己的需要选择要不要加上 -x -xx -X -XX (输出会打印每个包的头部数据,且会以16进制或者ASCII码形式打印每个包的数据)等参数

如下仅简单说明一下上文没提到的用法:


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8733618.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-20
下一篇 2023-04-20

发表评论

登录后才能评论

评论列表(0条)

保存