Linux下HTTPS抓包教程-linuxhttps抓包 (linux小红帽系统)

教程大全 2025-07-15 19:21:40 浏览

HTTPS是目前最常用的加密通信协议,它可以确保通信过程中的数据安全。然而,有时候我们需要对HTTPS通信进行抓包分析,以便于调试和排查问题。在Linux下进行HTTPS抓包也并不复杂,下面是HTTPS抓包的详细教程。

前置条件

1. 安装wireshark

Wireshark是一款开源的网络协议分析工具,可以抓取网络上的数据包并解析出各个协议的内容。在Ubuntu下,安装Wireshark只需要在终端输入以下命令即可:

sudo apt-get update

sudo apt-get install wireshark

2. 安装openssl

OpenSSL是一个开源的加密库,用来保护网络通信的安全性。在Ubuntu下,可以使用以下命令进行安装:

sudo apt-get install openssl

3. 安装mitmproxy

mitmproxy是一个基于Python的中间人代理工具,可以拦截HTTP和HTTPS流量并进行分析和修改。在Ubuntu下,使用以下命令进行安装:

sudo apt-get install python3-pip

sudo pip3 install mitmproxy

进行HTTPS抓包

1. 配置mitmproxy

在终端输入以下命令启动mitmproxy:

启动之后,可以看到类似如下的输出:

Proxy server listening at

默认情况下,mitmproxy监听的端口是8080,在后面的步骤中需要用到。

2. 配置iptables

iptables是Linux下的一个防火墙软件,可以限制网络流量的传输规则。在这里,我们用iptables来将HTTPS流量转发到mitmproxy上。

输入以下命令开启iptables:

sudo iptables -t nat -A OUTPUT -p tcp –dport 443 -j REDIRECT –to-port 8080

此时,iptables会将所有的HTTPS流量重定向到mitmproxy监听的8080端口。

3. 安装证书

为了实现中间人攻击,mitmproxy需要向客户端发送自己的根证书。在mitmproxy的配置输出中,可以看到如下的一句话:

Certificate Authority chn:

这表示mitmproxy已经为我们生成了一个CA证书。但是,为了让客户端能够识别这个证书,我们需要将它安装在系统中。

我们需要将mitmproxy的根证书导出到一个文件中,输入以下命令:

openssl x509 -in $(echo $HOME)/.mitmproxy/mitmproxy-ca.pem -out ca.crt

接着,我们将生成的ca.crt文件复制到指定的目录中,例如:

sudo cp ca.crt /usr/local/share/ca-certificates/mitmproxy.crt

输入以下命令刷新证书:

sudo update-ca-certificates

此时,mitmproxy的根证书已经被成功安装到系统中。

4. 进行HTTPS抓包

现在,我们可以启动浏览器,访问,并在mitmproxy的控制台中查看抓包情况了。在控制台中,可以看到如下输出:

GET

Accept-Encoding: gzip, deflate, br

Host: www.bdu.com

User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:75.0) Gecko/20230101 Firefox/75.0

HTTP/1.1 200 OK

Content-Type: text/html;charset=utf-8

这表示我们已经成功抓取到了HTTPS通信的数据包,并且可以对这些数据包进行分析和修改。

结束语

通过上述步骤,我们可以在Linux下实现HTTPS抓包。当然,在实际的应用中,中间人攻击是一种非常危险的行为,需要特别注意。此外,在进行HTTPS抓包的过程中,为了避免出现安全风险,应该遵守公司或组织的安全规范,不要进行非法或未经授权的行为。

相关问题拓展阅读:

HTTP/HTTPS抓包工具Charles

http抓包比较简单,基本上只要打开了charles,然后随便一个网络请求,就可以在charles中看到抓取的信息了

那么我们怎么抓取iOS真机设备上的http呢?

在电脑上抓包https,例如百度的,首先就是安装Charles的根证书,Help – SSL Proxying – Install Charles Root Certificate ,会打开 钥匙 应用,安装进去

这样,证书是不可用的,你还是不能抓包https,怎么做呢?

在证书上 右键 – 显示详情 ,展开信任 选择 始终信任

然后点击左上角的关闭,系统会弹出授权提示框,授权同意修改,回到列表,稍等,证书就刷新了

这个时候就可以用了

就可以抓包这个host了

其实这一步等返高价于

在host中可以输入 * 表示 匹配所有的

linux小红帽系统

当然启世侍,Port 也可以输入 *

这样就是匹配所有的了

这个时候,你悄吵访问https网络请求,就可以在charles上看到了!

Wireshark抓包图解HTTPS连接过程

图1.1是通过Wireshark抓到的HTTPS(TLS1.2)连接过程的数据包

数据包中的client端ip地址是192.168.1.51,是一部iOS手机;server端ip地址是54.213.131.0,是AWS的某台 服务器

数据包主要分为三部分:

红色标记部分:TCP三次握手

绿色标记部分:TLS1.2握手交换密钥并确定加密方式

蓝色标记部分:HTTPS正式通信

Wireshark的抓包展示栏从左至右分别是: 消息ID(no.),消息时间戳(time),消息请求端ip地址(source),消息目标端ip地址(destination), 使用协议(protocol),消息长度(length),消息描述(info),下面会对数据包进行逐条解释

no.89 client向server发起的TCP连接请求的之一次握手,发送一个SYN包,Seq=0,TCP连接有两个基本要素:ip和port,443是HTTPS的端口号

no.91 server向client回复的TCP第二次握手,发送一个SYN包和ACK包,Seq=0, Ack=no.89的Seq+1, 所以Ack=0+1

no.92 client向server端发起的TCP第三次握手,发送一个ACK包,Ack=no.91的Seq+1,所以Ack=0+1

以上三个消息就完成了HTTPS中的TCP握手阶段,由此可兄哗丛以看出HTTPS是基于TCP的连接成功的。

HTTPS = HTTP + SSL,如果是HTTP协议,则没有SSL握手过程,直接进入第三步

no.93 client向server发起Hello消息,这里面主要包含五种信息(图2.1):

1. client的TLS版本

2. client支持的加密方式(图2.2)

3. client支持的压缩方式

4. 会话ID

5. 客户端随机数 Random1

no.98 server向client回复一个Ack表示no.93的包已经收到,这个是基于TCP的确认收到。

no.99 server向client发送Hello消息, 这里面主要包含五种信息(图2.3)

1. 采用TLS的版本

2. 在no.93中client支持的加密方法列表选取的加密方式

3. 在no.93中client支持的压缩方式列表选取的芦姿压缩方式

4. 服务器的随机数 Random2

5. 会话ID

no.102 server向client发出三个包(见图2.4):

1.Certificate 服务器的公钥

2.Server Key Exchange Server端计算加密的参数,如果是DH加密则需要这一步(见图2.5)

3.Server Hello Done 握手结束事件

no.对TCP包的ACK

no.106 client向server发出三个包(见图2.6):

1. Client Key Exchange 客户端验证no.102的公钥的合法性后,生成一个随机数 Random3, 通过公钥对Random3进行 非对称加密 发送给server端,server端通过私钥进行解密;至此client和server都存在Random1,2,3 三个变量,通过同一种加密算法计算出相同的加密密钥。

2. Change Cipher Spec client通知server进入对称加密模式

3. Encrypted Handshake Message client将之前握手消息通过计算出的密钥加密发给server, 如果server能解析出来则说明密钥一致; 这是client之一条加密消息

no.109 server向client发送两个包羡樱(见图2.7)

1. Change Cipher Spec server通知client进入对称加密模式

2.EncryptedHandshake Message server将之前握手消息通过计算出的密钥加密发给client, 如果client能解析出来则说明密钥一致; 这是server之一条加密消息

直到no.109消息,整体HTTPS的连接过程已经结束,剩下为正式通信数据

最后,附上整个的HTTPS连接过程的时序图(图3.1)

linuxhttps抓包的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linuxhttps抓包,Linux下HTTPS抓包教程,HTTP/HTTPS抓包工具Charles,Wireshark抓包图解HTTPS连接过程的信息别忘了在本站进行查找喔。

香港服务器首选树叶云,2H2G首月10元开通。树叶云(shuyeidc.com)提供简单好用,价格厚道的香港/美国云服务器和独立服务器。IDC+ISP+ICP资质。ARIN和APNIC会员。成熟技术团队15年行业经验。


fiddler怎么抓https的包

方法/步骤安装完Fiddler后,我们每次打开浏览器输入url,Fiddler便会捕获到我们的http请求(Fiddler是以代理web服务器的形式工作的,它使用代理地址:127.0.0.1,端口:8888.当浏览器打开时Fiddler会自动设置代理,退出的时候它会自动注销代理,这样就不会影响别的程序)。 但是,如果要捕获https的请求,我们还需要进行一些额外的设置。 要抓取走HTTPS的JS内容,Fiddler必须解密HTTPS流量。 但是,浏览器将会检查数字证书,并发现会话遭到窃听。 为了骗过浏览器,Fiddler通过使用另一个数字证书重新加密HTTPS流量。 Fiddler被配置为解密HTTPS流量后,会自动生成一个名为DO_NOT_TRUST_FiddlerRoot的CA证书,并使用该CA颁发每个域名的TLS证书。 若DO_NOT_TRUST_FiddlerRoot证书被列入浏览器或其他软件的信任CA名单内,则浏览器或其他软件就会认为HTTPS会话是可信任的、而不会再弹出“证书错误”警告。 首先,打开Fiddler,在菜单栏中依次选择【Tools】->【FiddlerOptions】->【HTTPS】,勾上如下图的选项。 勾上后,Fiddler会提示你安装一个证书。 安装完后点击上图中的exportRoot..按钮,将证书下载到桌面。 接着将证书导入到浏览器。 这里以chrome举例,依次选择【设置】->【管理证书..】将保存在桌面的证书导入即可(其他浏览器类似,通常有个“证书”选项设置)。 也可以直接双击下载下来的证书,进行安装。 我们打开,这时就可以愉快地捕获https请求了!细心的你可能会发现,在https的请求中夹杂着一些http的请求,并且该session的Host参数是个诡异的Tunnelto”,什么鬼?StackOverflow里早已有精彩解答,或者可以直接看这里,简单地说fiddler当做代理转发https请求的时候,就会产生CONNECTTunnels,所以大可忽略它。

在linux下,怎么用命令来查看版本?

1,查看内核版本命令:cat /proc/versionuname -auname -rcat /etc/issueman uname2,查看linux版本:抄录如下:1) 登录到服务器执行 lsb_release -a ,即可列出所有版本信息,例如:[root@3.5.5Biz-46 ~]# lsb_release -aLSB Version: 1.3Distributor ID: RedHatEnterpriseASDescrīption: Red Hat Enterprise Linux AS release 4 (Nahant Update 1)Release: 4Codename: NahantUpdate1[root@3.5.5Biz-46 ~]#这个命令适用于所有的linux,包括Redhat、SuSE、Debian等发行版。2) 登录到linux执行cat /etc/redhat-release ,例如如下:[root@3.5.5Biz-46 ~]# cat /etc/redhat-releaseRed Hat Enterprise Linux AS release 4 (Nahant Update 1)[root@3.5.5Biz-46 ~]#这种方式下可以直接看到具体的版本号,比如 AS4 Update 13)登录到linux执行rpm -q redhat-release ,例如如下[root@3.5.5Biz-46 ~]# rpm -q redhat-releaseredhat-release-4AS-2.4[root@3.5.5Biz-46 ~]#这种方式下可看到一个所谓的release号,比如上边的例子是2.4这个release号和实际的版本之间存在一定的对应关系,如下:redhat-release-3AS-1 -> Redhat Enterprise Linux AS 3redhat-release-3AS-7.4 -> Redhat Enterprise Linux AS 3 Update 4redhat-release-4AS-2 -> Redhat Enterprise Linux AS 4redhat-release-4AS-2.4 -> Redhat Enterprise Linux AS 4 Update 1redhat-release-4AS-3 -> Redhat Enterprise Linux AS 4 Update 2redhat-release-4AS-4.1 -> Redhat Enterprise Linux AS 4 Update 3redhat-release-4AS-5.5 -> Redhat Enterprise Linux AS 4 Update 4

web抓包工具有哪些

HTTP Analyzer界面非常直观,无需选择要抓包的浏览器或者软件,直接全局抓取,很傻瓜化,但是功能决定不简单。 其他抓包工具有的功能它有,其他没有的功能它也有。 点击start即可进行抓包,红色按钮停止抓包,停止按钮右边的就是暂停抓包按钮。 HttpWatch界面和HTTP Analyzer有点像,但是功能少了几个。 而且只能附加到浏览器进行抓包。 附加的办法:打开浏览器-》查看-》浏览器栏-》HttpWatch,然后点record即可抓包。 特点:抓包功能强大,但是只能依附在IE上。 Post提交的数据只有参数和参数的值,没有显示提交的url编码数据。 HTTPDebugger同样是全局抓包,抓包和停止抓包同个按钮。 软件界面感觉没有那么友好,POST的数据只能在requestcontent内查看,只显示提交的url编码数据

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。

发表评论

热门推荐