Linux- 系统随你玩之--玩出花活的命令浏览器下

Posted 风一样的美狼子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux- 系统随你玩之--玩出花活的命令浏览器下相关的知识,希望对你有一定的参考价值。

文章目录

1、背景

前文在续,书接上一回Linux- 系统随你玩之–玩出花活的命令浏览器上, 话说命令浏览器它是一个从网络上自动下载文件的自由工具,支持通过 HTTP、HTTPS、FTP 三个最常见的 TCP/IP协议 下载,并可以使用 HTTP 代理。
它的最大特色是断点续传、镜像整个站点。今天我们来讲讲它别的作用。

2、常规操作

2.1、测试相关

2.1.1、修改 html 请求标头

我们在做测试相关工作时 经常发送大量的各种终端的测试请求 其中,HTTP 标头是数据包初始的组成部分,因此会因各种场景需要做经常性修改后发送请求。
那我们在使用浏览器浏览网页时,你的浏览器向服务器发送了 HTTP 请求标头。具体都发了些什么呢?这个时候我们可以使用 --debug 选项查看 wget 每次请求发送的标头信息:

$wget --debug www.baidu.com 

2.1.2、 模拟不同浏览器发出

你可以通过 --header 选项修改请求标头,增加不同浏览器参数来,来模拟测试特定的浏览器发出的请求效果。

 wget --debug --header="User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36" http://baidu.com

此外,你还可以伪装成特定的移动设备(比如 iPhone ):

wget --debug \\--header = "User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 13_5_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1.1 Mobile/15E148 Safari /604.1" \\HTTP:// www.baidu.com

2.1.3、重定向

与浏览器请求发送标头信息的方式相同,标头信息也包含在响应中。
200 响应码意味着成功。而 301 响应则意味着 URL 已经指向不同的网站。
这种情况下,如果你还要下载文件,那么就需要配合使用 --max-redirect 参数选项 来达到 wget 的重定向功能
如果你不想要重定向,那么可以将 --max-redirect 设置为 0 。
或将其设置为其他数字以控制 wget 跟随的重定向数量。

2.2、 下载相关操作

2.2.1、 后台下载

对于下载非常大的文件的时候,我们可以使用参数-b进行后台下载(网址可按实际情况改为网络文件名地址)

在后台下载过程中你可以使用以下命令来查看下载进度以了解进展。

2.2.2、设置下载重试次数

如果网络有问题或下载一个大文件也有可能失败。wget默认重试20次连接下载文件。
如果需要调整使用–tries增加重试次数

wget –tries=40 http:baidu.com

2.2.3、过滤指定格式下载

使用wget –reject过滤指定格式下载

wget –reject=gif url

2.2.4、限制总下载文件大小

使用wget -Q限制总下载文件大小,避免下载过大超出预期数据量。
当你想要下载的文件超过10M而退出下载,你可以使用以下命令:
wget -Q10m -i filelist.jpg
切记:该参数只对 递归下载文件时才有效,对单个文件不起限制作用。

2.2.5、匿名FTP下载

你可以使用wget来完成ftp链接的下载。
使用wget匿名ftp下载

wget ftp-url

2.2.6、FTP认证下载

使用wget用户名和密码认证的ftp下载

wget –ftp-user=USERNAME –ftp-password=PASSWORD url
注意:对于需要证书做认证的网站,就只能利用其他下载工具了,例如它的好姐妹curl。

2.2.7、利用代理服务器下载

遇到网络需要经过代理服务器,可以让wget通过代理服务器进行文件的下载。我们可以在当前用户的目录下创建一个.wgetrc文件。
VI .wgetrc 文件中可以设置代理服务器内容如下:

http-proxy = 111.111.111.111:8080
ftp-proxy = 111.111.111.111:8080

如代理服务器还需要配合密码使用则增加下面的帐号信息:

–proxy-user=USER设置代理用户
–proxy-passwd=PASS设置代理密码

搭配使用参数–proxy=on/off 使用或者关闭代理。

3、好姐妹

3.1 、curl 和 wget

curl 和 wget 的一个最明显的区别是:默认情况下 wget 将查询的网页保存到系统,而 curl 将其显示在终端输出中但不保存它。
总之一句话就是 curl 访问链接而 wget 是下载链接

4、结语

wget到位就结束了,它的好姐妹我也提到了,预知后事如何且听下回分解 您了!

Linux- 系统随你玩之--网络上的黑客帝国

文章目录

1、前言

黑客帝国系列片 大家都看过了,知道网络黑客尼奥发现看似正常的现实世界实际上是由一个名为“矩阵”的计算机人工智能系统控制的,然后尼奥见到了黑客组织的首领墨菲斯,三人走上了抗争矩阵征途的故事 。
那么黑客都是些什么人了?
黑客如今在互联网上已经不再是鲜为人知的人物,他们已经发展成网络上的一个独特的群体。他们有着与常人不同的理想和追求,有着自己独特的行为模式,网络上出现了很多由一些志同道合的人组织起来的黑客组织。
在信息安全里,“黑客”指研究智取计算机安全系统的人员。利用公共通讯网路,如互联网和电话系统,在未经许可的情况下,载入对方系统的被称为黑帽黑客(英文:black hat,另称cracker);调试和分析计算机安全系统的白帽黑客(英语:white hat)。“黑客”一词最早用来称呼研究盗用电话系统的人士。
他们有个共同点都是利用公共通讯网路,进行着不同的活动。
而今天我们的主角也是针对网络进行数据采集与分析的工具,它就是TCPDump
老样子,我们本文主要介绍了LinuxTCPDump命令使用详解,文中会通过非常详细的示例代码介绍,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随我来一起学习!

2、TCPDump介绍

Linux作为网络服务器,特别是作为路由器和网关时,数据的采集和分析是不可少的。
Tcpdump是一个用于截取网络分组,并输出分组内容的工具。
tcpdump凭借强大的功能和灵活的截取策略,使其成为类UNIX系统下用于网络分析和问题排查的首选工具。

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

2. 同时tcpdump提供了源代码,公开了接口,因此具备很强的可扩展性。

基本上tcpdump的总的输出格式为:系统时间 来源主机.端口 > 目标主机.端口 数据包参数

2.1、问题来了: 所有用户都可以采用该命令吗?

虽然tcpdump提供源代码,公开了接口,具备很强的可扩展性,对于网络维护和入侵者都是非常有用的工具。
但tcpdump普通用户不能正常执行,需要具备root权限的用户才可以直接执行它来获取网络上的信息。

2.2、抓包原理

linux抓包是通过注册一种虚拟的底层网络协议来完成对网络报文(准确的是网络设备)消息的处理权。
当网卡接收到一个网络报文之后,它会遍历系统中所有已经注册的网络协议,如以太网协议、x25协议处理模块来尝试进行报文的解析处理。
当抓包模块把自己伪装成一个网络协议的时候,系统在收到报文的时候就会给这个伪协议一次机会,让它对网卡收到的保温进行一次处理,此时该模块就会趁机对报文进行窥探,也就是啊这个报文完完整整的复制一份,假装是自己接收的报文,汇报给抓包模块。

2.3、特点

2.3.1、参数化支持

1.参数
tcpdump支持相当多的不同参数。
如使用-i参数指定tcpdump监听的网络接口, 使用-c参数指定要监听的数据包数量,
使用-w参数指定将监听到的数据包写入文件中保存等。
2.安全
一般情况下网络硬件和TCP/IP堆栈不支持接收或发送与本计算机无关的数据包,为了接收这些数据包,就必须使用网卡的混杂模式,并绕过标准的TCP/IP 堆栈才行。
在FreeBSD下,这就需要内核支持伪设备bpfilter。因此,在内核中取消bpfilter支持,就能屏蔽tcpdump之类的网络分析工具。
并且当网卡被设置为混杂模式时,系统会在控制台和日志文件中留下记录,提醒管理员留意这台系统是否被用作攻击同网络的其他计算机的跳板。
3.解码
tcpdump对截获的数据并没有进行彻底解码,数据包内的大部分内容是使用十六进制的形式直接打印输出的。显然这不利于分析网络故障,通常的解决办法是先使用带-w参数的tcpdump 截获数据并保存到文件中,然后再使用其他程序进行解码分析。当然也应该定义过滤规则,以避免捕获的数据包填满整个硬盘。

2.2.2、 TCP功能

tcpDump将搜索系统中第一个网络接口,并显示它截获的所有数据,这些数据对我们不一定全都需要,
数据太多不利于分析。所以,我们应当先想好需要哪些数据,TcpDump提供了很多参数供我们选择数据过滤。

3、 服务器安装Tcpdump

3.1、安装

一般情况下Linux系统会自带tcpdump工具,如果系统没有安装,直接用命令安装就行了。
在 linux服务器上我们使用 yum install -y tcpdump命令来安装tcpdump工具。

3.2、检查安装是否正常。

查看安装版本命令:tcpdump --help

4、tcpdump 命令

4.1、常用功能选项

tcpdump [-adeflnNOpqStvx][-c 数据包数量>][-dd][-ddd][-F<表达文件>][-i<网络界面>][-r<数据包文件>][-s<数据包大小>][-tt][-T<数据包类型>][-vv][-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 详细显示指令执行过程。
-vv 更详细显示指令执行过程。
-x 用十六进制字码列出数据包资料。
-w<数据包文件> 把数据包数据写入指定的文件。

4.2、输出内容

基本上tcpdump总的的输出格式为:系统时间 来源主机.端口 > 目标主机.端口 数据包参数

5、实操

5.1、常见用法

1. 查看网卡命令:ifconfig
知道了网卡,就可以使用tcpdump工具针对服务器上的网卡进行监控、过滤网络数据了。

2. 查看本地网卡状态

Iface:存在的网卡。
MTU:最大传输单元。
RX-OK RX-ERR RX-DRP RX-OVR:正确接收数据报的数量以及发生错误、流式、碰撞的总数。
TX-OK TX-ERR TX-DRP TX-OVR:正确发送数据报的数量以及发生错误、流式、碰撞的总数。
3. 指定网卡
普通情况下,直接启动tcpdump将监视第一个网络端口所有流过的数据包。
如果不指定网卡,默认tcpdump只会监视第一个网络接口。

tcpdump -i ens33(网卡名)

4.监视所有进入或离开主机xps的数据包。xps为主机名。

tcpdump host xps

5.监视指定ip,截获指定主机收到和发出的所有数据包。
tcpdump host 192.168.1.5
6.截获主机192.168.1.5和192.168.1.10或192.168.1.113的通信包
tcpdump host 192.168.1.5 and (192.168.1.10 or 192.168.1.13)
7.打印xps与任何其他主机之间通信的IP数据包,但不包括与xps1之间的通信包
tcpdump ip host xps and not xps1
8.截获主机192.168.1.5除了和192.168.1.13之外所有的主机通信的ip包
tcpdump ip host 192.168.1.5 and ! 192.168.1.13
9.截获主机hostname发送的所有数据
tcpdump -i ens33 src host hostname
10.截获送到主机hostname的所有数据
tcpdump -i ens33 dst host hostname

5.2、监听指定域名TCP协议数据包

步骤一、开始监听指定域名的ip包流量:
tcpdump host baidu.com。
步骤二、打开浏览器、访问 baidu.com
此时、命令行下可以看到客户端和baidu服务之间的TCP协议IP包、学习网络协议的时候、配合使用很方便。
2、监听来自指定域名的TCP协议包数据包:
步骤一、开始监听指定域名的ip包流量:
tcpdump src host baidu.com。
步骤二、打开浏览器、访问 baidu.com
此时、命令行下可以看到客户端和baidu服务之间的TCP协议IP包、学习网络协议的时候、配合使用很方便。
3、监听发送到指定域名的TCP协议包数据包:
步骤一、开始监听指定域名的ip包流量:
tcpdump dst host baidu.com。
步骤二、打开浏览器、访问 baidu.com
此时、命令行下可以看到客户端和baidu服务之间的TCP协议IP包、学习网络协议的时候、配合使用很方便。
4、监听指定端口的tcp包
步骤一、开始监听:
tcpdump tcp port 80。
步骤二、打开另外一个终端、使用nc 192.168.10.188 80命令访问80端口。
此时、tcpdump监听终端下可以看到请求和返回的ip包。同理、如果要监听udp包可以用:tcpdump udp port 9999

5.3、tcpdump与Wireshark

我们可以把二者进行结合,在Linux中抓包,在windows中分析包。

tcpdump tcp -i ens33 -t -s 0 -c 5 and dst port ! 22 and src net 192.168.1.10/24 -w ./targetfile.cap

1.tcp: ip icmp arp rarp和tcp、udp、icmp这些选项等都要放到第一个参数的位置,用来过滤数据报的类型;
2. -i eth1 : 只抓取经过ens33 的数据包
3.-t: 不显示时间戳
4.-s 0 :抓取数据包时默认抓取长度为68字节,加上-S 0后可以抓取完整的数据包
5.-c 5: 只抓取5个数据包
6.dst port ! 22 : 不抓取目标端口为22的数据包
7.src net 192.168.1.10/24: 数据包的源网络地址是192.168.1.10/24
8.-w ./targetfile.cap: 保存为cap文件,方便用ethereal(wireshark)分析。

6、结语

tcpdump针对网络进行数据采集与分析,同时保存到指定文件,用wireshark来打开查看。可以快速查看符合网络接口符合某一条件的抓包,方便我们确定网络问题。

以上是关于Linux- 系统随你玩之--玩出花活的命令浏览器下的主要内容,如果未能解决你的问题,请参考以下文章

Linux- 系统随你玩之--玩出花活的命令浏览器上

Linux- 系统随你玩之--好用到炸裂的系统级监控诊断工具

Linux- 系统随你玩之--网络上的黑客帝国

Linux- 系统随你玩之--文本处理三剑客--grep继任者sed

Linux- 系统随你玩之--文件管理-双生姐妹花

Linux- 系统随你玩之--微服务应用出现极少概率会时断时续,它抽风了吗?