Linux下HTTPS抓包教程 (linuxhttps抓包)

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:

“`

mitmproxy

“`

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

“`

Proxy server listening at http://*:8080

“`

默认情况下,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

“`

这表示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抓包

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

“`

GET https://www.bdu.com/

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
  • Wireshark抓包图解HTTPS连接过程

HTTP/HTTPS抓包工具Charles

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

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

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

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

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

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

这个时候就可以用了

就可以抓包这个host了

其实这一步等返高价于

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

当然启世侍,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. Encrypted Handshake 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年行业经验。

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/170217.html<

(0)
运维的头像运维
上一篇2025-03-22 07:18
下一篇 2025-03-22 07:19

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注