HTTPS是目前最常用的加密通信协议,它可以确保通信过程中的数据安全。然而,有时候我们需要对HTTPS通信进行抓包分析,以便于调试和排查问题。在Linux下进行HTTPS抓包也并不复杂,下面是HTTPS抓包的详细教程。
成都创新互联公司-专业网站定制、快速模板网站建设、高性价比望花网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式望花网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖望花地区。费用合理售后完善,十多年实体公司更值得信赖。
前置条件
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抓包的过程中,为了避免出现安全风险,应该遵守公司或组织的安全规范,不要进行非法或未经授权的行为。
成都网站建设公司-创新互联,建站经验丰富以策略为先导10多年以来专注数字化网站建设,提供企业网站建设,高端网站设计,响应式网站制作,设计师量身打造品牌风格,热线:028-86922220http抓包比较简单,基本上只要打开了charles,然后随便一个网络请求,就可以在charles中看到抓取的信息了
那么我们怎么抓取iOS真机设备上的http呢?
在电脑上抓包https,例如百度的,首先就是安装Charles的根证书,Help – SSL Proxying – Install Charles Root Certificate ,会打开 钥匙 应用,安装进去
这样,证书是不可用的,你还是不能抓包https,怎么做呢?
在证书上 右键 – 显示详情 ,展开信任 选择 始终信任
然后点击左上角的关闭,系统会弹出授权提示框,授权同意修改,回到列表,稍等,证书就刷新了
这个时候就可以用了
就可以抓包这个host了
其实这一步等返高价于
在host中可以输入 * 表示 匹配所有的
当然启世侍,Port 也可以输入 *
:
这样就是匹配所有的了
这个时候,你悄吵访问https网络请求,就可以在charles上看到了!
图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连接过程的信息别忘了在本站进行查找喔。
创新互联是成都专业网站建设、网站制作、网页设计、SEO优化、手机网站、小程序开发、APP开发公司等,多年经验沉淀,立志成为成都网站建设第一品牌!
分享标题:Linux下HTTPS抓包教程(linuxhttps抓包)
本文链接:http://www.36103.cn/qtweb/news14/1514.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联