TCPDUMP

运维工程师必会工具(Nmap和TCPdump)

不打扰是莪最后的温柔 提交于 2019-12-05 05:07:41
1、NMap工具 主要功能:探测主机是否在线、扫描主机开放端口和嗅探网络服务,用于网络探测和安全扫描。 NMap支持很多扫描技术,例如:UDP、TCPconnect()、TCPSYN(半开扫描)、ftp代理(bounce攻击)、反向标志、ICMP、FIN、ACK扫描、SYN扫描和null扫描。 命令格式:Nmap [ 扫描类型 ] [ 通用选项 ] { 扫描目标说明 } 扫描类型: -sT TCP connect()扫描,这是最基本的TCP扫描方式,用来建立一个TCP连接,如果成功则认为目标端口正在监听,否则认为目标端口没有监听程序。这种扫描很容易被检测到,在目标主机的日志中会记录大批的连接请求以及错误信息。 -sS TCP同步扫描(TCP SYN),只向目标发出SYN数据包,如果收到SYN/ACK响应包就认为目标端口正在监听,并立即断开连接;否则认为目标端口没有监听程序。所以这项技术通常称为半开扫描(half-open)。这项技术最大的好处是,很少有系统能够把这记入系统日志。不过,你需要root权限来定制SYN数据包。 -sF,-sX,-sN 秘密FIN数据包扫描、圣诞树(Xmas Tree)、空(Null)扫描模式。这些扫描方式的理论依据是:关闭的端口需要对你的探测包回应RST包,而打开的端口必需忽略有问题的包,通过这种扫描,可间接用于检测防火墙的健壮性。 -sP ping扫描

tcpdump 命令

南楼画角 提交于 2019-12-05 02:24:02
tcpdump命令高级网络 tcpdump命令是一款sniffer工具,它可以打印所有经过网络接口的数据包的头信息,也可以使用-w选项将数据包保存到文件中,方便以后分析。 选项 -a:尝试将网络和广播地址转换成名称; -c<数据包数目>:收到指定的数据包数目后,就停止进行倾倒操作; -d:把编译过的数据包编码转换成可阅读的格式,并倾倒到标准输出; -dd:把编译过的数据包编码转换成C语言的格式,并倾倒到标准输出; -ddd:把编译过的数据包编码转换成十进制数字的格式,并倾倒到标准输出; -e:在每列倾倒资料上显示连接层级的文件头; -f:用数字显示网际网络地址; -F<表达文件>:指定内含表达方式的文件; -i<网络界面>:使用指定的网络截面送出数据包; -l:使用标准输出列的缓冲区; -n:不把主机的网络地址转换成名字; -N:不列出域名; -O:不将数据包编码最佳化; -p:不让网络界面进入混杂模式; -q :快速输出,仅列出少数的传输协议信息; -r<数据包文件>:从指定的文件读取数据包数据; -s<数据包大小>:设置每个数据包的大小; -S:用绝对而非相对数值列出TCP关联数; -t:在每列倾倒资料上不显示时间戳记; -tt: 在每列倾倒资料上显示未经格式化的时间戳记; -T<数据包类型>:强制将表达方式所指定的数据包转译成设置的数据包类型; -v:详细显示指令执行过程;

Extract unique IPs from live tcpdump capture

蹲街弑〆低调 提交于 2019-12-04 20:52:26
I am using the following command to output IPs from live tcpdump capture sudo tcpdump -nn -q ip -l | awk '{print $3; fflush(stdout)}' >> ips.txt I get the following output 192.168.0.100.50771 192.168.0.100.50770 192.168.0.100.50759 Need 2 things: Extract only the IPs, not the ports. Generate a file with unique IPs, no duplicated, and sorted if posible. Thank you in advance To extract unique IPs from tcpdump you can use: awk '{ ip = gensub(/([0-9]+.[0-9]+.[0-9]+.[0-9]+).*/,"\\1","g",$3); if(!d[ip]) { print ip; d[ip]=1; fflush(stdout) } }' YOURFILE So your command to see unique IPs live would be

Process dies, if it is run via paramiko ssh session and with “&” in the end

一个人想着一个人 提交于 2019-12-04 20:43:32
I just want to run tcpdump in background using paramiko. Here is the part of the code: ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect(host, username=login, password=password) transport = ssh.get_transport() channel = transport.open_session() channel.get_pty() channel.set_combine_stderr(True) cmd = "(nohup tcpdump -i eth1 port 443 -w /tmp/dump20150317183305940107.pcap) &" channel.exec_command(cmd) status = channel.recv_exit_status() After I execute this code, pgrep tcpdump returns nothing. If I remove & sign tcpdump runs correctly, but my ssh

tcpdump工具

蓝咒 提交于 2019-12-04 16:21:05
监视指定的网络接口 / 网卡 tcpdump -i eth100 通过网卡 eth100 监视主机的数据包 tcpdump -i eth100 host 190.160.35.11 截获本地发送到目标主机 190.160.35.11 的数据 tcpdump -i eth100 dst host 190.160.35.11 监视来自远程主机 190.160.35.11 发来本地的数据 tcpdump -i eth100 src host 190.160.35.11 指定 tcp 协议监视端口的数据 tcpdump -i eth100 tcp port 22 指定 udp 协议监视端口的数据 tcpdump -i eth100 udp port 1947 抓取源 IP 是 190.160.35.11 且端口不是 22 的数据 tcpdump -i eth100 -vnn src host 190.160.35.11 and not port 22 抓取源 IP 是 190.160.35.11 且端口是 22 ,或源 IP 是 190.160.35.15 且目的端口是 80 的数据包 tcpdump -i eth100 -vnn 'src host 190.160.35.11 and dst port 22' or 'src host 190.160.35.15 and dst port

TCP packets merged at network level

时光总嘲笑我的痴心妄想 提交于 2019-12-04 14:57:46
Does anybody knows how and why a counter party would receive TCP packets merged instead of individually packages? I already set TCP Nodelay to true at socket level, but tcpdump still sees some packets as merged. After 4 successful packets sent with size of 310 bytes, I got 3 x 1400 bytes instead of 15 x 310 bytes. This is causing some important latency. Thanks. http://www.2shared.com/photo/_bN9UEqR/tcpdump2.html s = new Socket(host, port); s.setTcpNoDelay(true); s.getOutputStream().write(byteMsg); s.getOutputStream().flush() TCP is a stream-based protocol. It doesn't preserve boundaries with

tcpdump抓包分析(强烈推荐)

夙愿已清 提交于 2019-12-04 13:44:46
1 起因 前段时间,一直在调线上的一个问题:线上应用接受POST请求,请求body中的参数获取不全,存在丢失的状况。这个问题是偶发性的,大概发生的几率为5%-10%左右,这个概率已经相当高了。在排查问题的过程中使用到了tcpdump和Wireshark进行抓包分析。感觉这两个工具搭配起来干活,非常完美。所有的网络传输在这两个工具搭配下,都无处遁形。 为了更好、更顺手地能够用好这两个工具,特整理本篇文章,希望也能给大家带来收获。为大家之后排查问题,添一利器。 2 tcpdump与Wireshark介绍 在网络问题的调试中,tcpdump应该说是一个必不可少的工具,和大部分linux下优秀工具一样,它的特点就是简单而强大。它是基于Unix系统的命令行式的数据包嗅探工具,可以抓取流动在网卡上的数据包。 默认情况下,tcpdump不会抓取本机内部通讯的报文。根据网络协议栈的规定,对于报文,即使是目的地是本机,也需要经过本机的网络协议层,所以本机通讯肯定是通过API进入了内核,并且完成了路由选择。【比如本机的TCP通信,也必须要socket通信的基本要素:src ip port dst ip port】 如果要使用tcpdump抓取其他主机MAC地址的数据包,必须开启网卡混杂模式,所谓混杂模式,用最简单的语言就是让网卡抓取任何经过它的数据包,不管这个数据包是不是发给它或者是它发出的。一般而言

tcpdump和windump

做~自己de王妃 提交于 2019-12-04 13:28:28
Tcpdump简介 tcpdump命令 是一款sniffer工具,它可以打印所有经过网络接口的数据包的头信息, tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。 一个No-GUI的抓包分析工具。 tcpdump,可以将网络中传送的数据包的“头”完全截获下来提供分析。 它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。 Linux已经自动安装,可直接使用 语法 -A 以ASCII码方式显示每一个数据包(不会显示数据包中链路层头部信息) -b 使用ASDOT表示法在BGP数据包中打印AS号,而不是ASPLAIN表示法 -B buffer_size --buffer-size=buffer_size 将操作系统捕获缓冲区大小设置为buffer_size,单位为KiB(1024字节) -c count tcpdump将在接受到count个数据包后退出 -C file-size (nt: 此选项用于配合-w file 选项使用) 该选项使得tcpdump 在把原始数据包直接保存到文件中之前, 检查此文件大小是否超过file-size. 如果超过了, 将关闭此文件, 另创一个文件继续用于原始数据包的记录. 新创建的文件名与-w 选项指定的文件名一致,

wireshark and tcpdump -r: strange tcp window sizes

南笙酒味 提交于 2019-12-04 12:33:24
问题 I'm capturing http traffic with tcpdump and am interested in TCP slow start and how window sizes increase: $ sudo tcpdump -i eth1 -w wget++.tcpdump tcp and port 80 When I view the dump file with Wireshark the progression of window sizes looks normal, i.e. 5840, 5888, 5888, 8576, 11264, etc... But when I view the dump file via $ tcpdump -r wget++.tcpdump -tnN | less I get what seem to be nonsensical windows sizes ( IP addresses omitted for brevity ): : S 1069713761:1069713761(0) win 5840 <mss

How can I have tcpdump write to file and standard output the appropriate data?

China☆狼群 提交于 2019-12-04 07:44:19
问题 I want to have tcpdump write raw packet data into a file and display packet analysis in standard output as the packets are captured (by analysis I mean the lines it displays normally when -w is missing). Can anybody please tell me how to do that? 回答1: Here's a neat way to do what you want: tcpdump -w - | tee somefile | tcpdump -r - What it does: -w - tells tcpdump to write binary data to stdout tee writes that binary data to a file AND to its own stdout -r - tells the second tcpdump to get