Wireshark抓包分析/TCP/Http/Https及代理IP的识别

Web 代理(proxy)服务器是网络的中间实体。代理位于客户端和服务器之间,扮演 “中间人”的角色,在各端点之间来回传送 HTTP 报文。本章介绍了所有与 HTTP 代理服务器有关的内容,为代理特性提供的特殊支持,以及使用代理服务器时会遇

到的一些棘手的问题。   -引用自《HTTP权威指南》

代理的应用想必大家都很熟悉了,不再过多的描述,简单上图达意。

1:FQ

2:ANONYMOUS

3:“提升网速”

哈,这个不说大家也明白,以前在学校宿舍里的小伙伴打游戏经常用,各种联通跨电信等等(OK,不发ad~)

当然这个非普通的HTTP代理可以做到的。

4:xxxx

(前段时间一个词语叫做“不可描述”嗯,大家都懂得撒 :-)

当然代理还有很多功能,比如:局域网上网管理,好多年前的“绿@坝计划”

代理原理

这里要说明的是WEB代理区别于网关:

代理连接的是两个或多个使用相同协议的应用程序,而网关连接的则是 两个或多个使用不同协议的端点。网关扮演的是“协议转换器”的角色,即使客户端和服务器使用的是不同的协议,客户端也可以通过它完成与服务器之间的事务处理。如发邮件时连接HTTP协议与SMTP协议。

代理分为两种:普通代理与隧道代理

普通代理:

              -引用自《HTTP权威指南》

这里的代理既是服务器,又是客户端

隧道代理

                          -引用自《HTTP权威指南》

网关允许某客户端使用隧道之前,可以对其进行代理认证

(为了降低对隧道的滥用,网关应该只为特定的知名端口,比如 HTTPS 的端口 443)

比较

  • 普通代理可以用来承载 HTTP 流量;
  • 隧道代理可以用来承载任何 TCP 流量,包括 HTTP 和 HTTPS。

这里分别拿 赶集的登录页面,58的主站页面做简单的测试。

WireShark出场

捕获HTTP(以58主站为例)

捕获TLS(前身是SSL)(以赶集登录为例)

Follow TCP Steam

可以看出赶集用的是verisign的证书

WireShark很是强大,在各个平台上都有。网上的范例也不少,抓包的好助手之一。

1. Frame:   物理层-数据帧
2. Ethernet II: 数据链路层以太网帧头部信息
3. Internet Protocol Version   IP包 头部信息
4. Transmission Control Protocol:  传输层的数据段头部信息,如上图的TCP
5. Hypertext Transfer Protocol:  应用层的信息,如上图中的HTTP协议

既然说到这里,那么就复习一下三次握手吧。

(-。- ~~)

OK,简单图示回顾一下,  四次挥手这里就不再展开了。

另外 梳理一下

wireshark过滤用法

1:ip.addr/src/dst   用来过滤目标ip及来源ip
2:port
tcp.port eq 2016 or udp.port eq 2016
tcp.dstport == 2016    tcp.srcport == 2016
tcp.port >= 1 and tcp.port <= 2016
3:常用协议支持 非
Tcp udp arp icmp http smtp ftp dns msnms ip ssl oicq bootp
4:过滤MAC

等等,还有很多,具体可以看官方的,很强大的说。

咦,好像跑的偏了,言归正传,继续回到本文的话题继续谈论一下代理IP HTTP Head相关的

层次对比


REMOTE_ADDR


HTTP_X_FORWARDED_FOR


隐藏身份


识别难度


未使用代理


真实IP




透明代理


代理IP


真实IP




匿名代理


代理IP


代理IP




欺诈代理


代理IP


随机IP




高匿名代理


代理IP




这里简单做的一个表格汇总,显然,高匿的代理IP最具挑战,也是最常用的。

Http Head

  • Http 常见的Head 和识别IP相关的有如下几个,其中只有REMOTE_ADDR 这个字段是可靠的。其余的字段都是可以伪造的。因为建立 TCP 连接需要三次握手,如果伪造了源 IP,无法建立 TCP 连接。
  • 由于只能识别上一层的REMOTE_ADDR 字段,对于多层代理的情况下还是比较麻烦的。如下图:
    • REMOTE_ADDR

    • X-Forwarded-For

    • X-Real-IP

    • Proxy-Connection

简单讨论一下-Forwarded-For


X-Forwarded-For[16]


de facto standard for identifying the originating IP address of a client connecting to a web server through an HTTP proxy or load balancer


X-Forwarded-For: client1, proxy1, proxy2X-Forwarded-For: 129.78.138.66, 129.78.64.103

https://en.wikipedia.org/wiki/X-Forwarded-For

https://tools.ietf.org/html/rfc7239

The X-Forwarded-For (XFF) HTTP header field was a common method for identifying the originating IP address of a client connecting to a web server through an HTTP proxy or load balancer. As of 2014 RFC 7239 standardized a new Forwarded header with similar purpose but more features compared to XFF.[1] An example of a Forwarded header syntax:

Forwarded: for=192.0.2.60; proto=http; by=203.0.113.43

简单理解就是一个后出来一个非标准但被业内默认常用的一个用来识别proxy的一个httphaed。

也就是说 如果在直连的情况下是不会存在这个 参数的

当配置了反向代理 如 nginx(关于nginx,

网上有很多参考,自己也摘录过一些http://www.cnblogs.com/wenthink/p/nginxsetting.html)


1

2

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 

简单伪造 :curl http://wenthink.com/headdemo -H ‘X-Forwarded-For:192.168.8.8‘ -H ‘X-Real-IP: 192.168.8.8‘

Proxy-Connection


Proxy-Connection[23]


Implemented as a misunderstanding of the HTTP specifications. Common because of mistakes in implementations of early HTTP versions. Has exactly the same functionality as standard Connection field.


Proxy-Connection: keep-alive

这个字段同样也是常见的非标准要求字段,简而言之,有了这个字段可以判定为代理IP的可能性极大。

做一个简单的配置代理IP 这里不做展示

再次请出Wireshark

好吧 mask 有点儿多,其实就是验证下 多了一个Proxy—Connection这个请求头。

识别

那么对于代理IP的识别又是怎样的呢?

网上也有很多通用的说法

  • 反向探测扫描IP是不是开通了80,8080等代理服务器经常开通的端口,显然一个普通的用户IP不太可能开通如上的端口。
  • HTTP头部的X_Forwarded_For:开通了HTTP代理的IP可以通过此法来识别是不是代理IP;如果带有XFF信息,该IP是代理IP无疑。
  • Keep-alive报文:如果带有Proxy-Connection的Keep-alive报文,该IP毫无疑问是代理IP。
  • 查看IP上端口:如果一个IP有的端口大于10000,那么该IP大多也存在问题,普通的家庭IP开这么大的端口几乎是不可能的。

常见的方式类型及方式:HTTP TCP UDP / Ping,telnet,nmap ,socket

这里简单画一个基本的流程图

OK

简单粗浅分析先到这里吧,后期或许继续补充,或许不再就这方面展开。

时间: 2024-11-18 20:29:11

Wireshark抓包分析/TCP/Http/Https及代理IP的识别的相关文章

Wireshark抓包分析TCP 3次握手、4次挥手过程

Wireshark简介 更多有关Wireshark的教程.软件下载等,请见:http://www.52im.net/thread-259-1-1.html,本文只作简要介绍. 1Wireshark 是什么? Wireshark 是最著名的网络通讯抓包分析工具.功能十分强大,可以截取各种网络封包,显示网络封包的详细信息. 你可以把网络包分析工具当成是一种用来测量有什么东西从网线上进出的测量工具,就好像使电工用来测量进入电信的电量的电度表一样(当然比那个更高级).过去的此类工具要么是过于昂贵,要么是

基于wireshark抓包分析TCP的三次握手

在TCP/IP协议通讯过程中,采用三次握手建立连接,从而保证连接的安全可靠. 通常三次握手步骤如下: 1. 第1次握手:建立连接时,客户端发送 SYN 包到服务器端,携带一个序列码给服务器端用于确认,并进入 SYN_SEND 状态,等待服务器端确认.(发起连接状态) 2. 第2次握手:服务器端收到 SYN 包,首先确认客户的SYN,并对序列码加1处理,发送一个自己的SYN包,携带一个自己的序列码,即 SYN+ACK 包,此时服务器进入 SYN_RECV 状态.(连接接收状态) 3. 第3次握手:

从wireshark抓包分析rtmp协议,并提取出H264视频流

利用wireshark抓取rtmp流数据, 分析到rtmp流后,写入过滤条件,如 tcp.stream eq 6 导出tcp流 保存16进制的数据为纯文本格式 一定要选择 Hex转储,然后点击 "Sava as"注意,这个流开始的第一个字节一定是03,才是正确的.至此,我们有了可以用于分析的rtmp流的数据. 从wireshark抓包分析rtmp协议,并提取出H264视频流 原文地址:https://www.cnblogs.com/russinovich/p/9240944.html

云计算之路-阿里云上:Wireshark抓包分析一个耗时20秒的请求

这篇博文分享的是我们针对一个耗时20秒的请求,用Wireshark进行抓包分析的过程. 请求的流程是这样的:客户端浏览器 -> SLB(负载均衡) -> ECS(云服务器) -> SLB -> 客户端浏览器. 下面是分析的过程: 1. 启动Wireshark,针对内网网卡进行抓包. 2. 在IIS日志中找出要分析的请求(借助Log Parser Studio) 通过c-ip(Client IP Address)可以获知SLB的内网IP,在分析Wireshar抓包时需要依据这个IP进

【计算机网络】wireshark抓包分析1

学习计算机网络很久了,但总是局限于书本知识,感觉get不到重点.经师兄建议用wireshark抓包分析看看. 我自己以前并没有做过抓包分析,所以这篇博文可能会有很多错误,只是我自己的一个记录,路过的亲们千万别当成教程,以免误入歧途.... TCP协议首部: 在Filter中设置为:ip.dst == 222.199.191.33 or ip.src == 222.199.191.33 这个地址是干什么的不知道,只是跟它的交互特别多,就选他了. 分析第一个包: 源地址:我自己电脑的IP,就不放上来

wireshark抓包分析

wireshark抓包分析 wireshark是非常流行的网络封包分析软件,功能十分强大.可以抓取各种网络包,并显示网络包的详细信息. 开始界面 wireshark是捕获机器上的某一块网卡的网络包,当你的机器上有多块网卡的时候,你需要选择一个网卡. 点击Caputre->Interfaces.. 出现下面对话框,选择正确的网卡.然后点击"Start"按钮, 开始抓包 Wireshark 窗口介绍 WireShark 主要分为这几个界面 1. Display Filter(显示过滤

Wireshark抓包分析从入门到精通

曾近有个牛逼的实战课程放在你的面前,你不懂得好好珍惜,直到失去后才追悔莫及,如果G-LAB可以给你再来一次的机会,你会不会抓住?没错,G-LAB真的给了你再来一次的机会.[Wireshark抓包分析从入门到精通]主讲<郭主任>(月光宝盒索取)请联系QQ:2853771084

wireshark抓包图解-tcp三次握手四次挥手详解/

http://www.seanyxie.com/wireshark%E6%8A%93%E5%8C%85%E5%9B%BE%E8%A7%A3-tcp%E4%B8%89%E6%AC%A1%E6%8F%A1%E6%89%8B%E5%9B%9B%E6%AC%A1%E6%8C%A5%E6%89%8B%E8%AF%A6%E8%A7%A3/ wireshark抓包图解-tcp三次握手四次挥手详解/ tcpdump抓包命令使用方法及内容解析/

FTP协议的粗浅学习--利用wireshark抓包分析相关tcp连接

一.为什么写这个 昨天遇到个ftp相关的问题,关于ftp匿名访问的.花费了大量的脑细胞后,终于搞定了服务端的配置,现在客户端可以像下图一样,直接在浏览器输入url,即可直接访问. 期间不会弹出输入用户名密码来登录的窗口. 今天我主要是有点好奇,在此过程中,究竟是否是用匿名账户“anonymous”该账户登录了,还是根本不需要登录呢? 于是用wireshark抓包了一下. 二.抓包过程 我这边直接用了捕获过滤器抓本机和ftp之间的包.抓包后直接ctrl+F进行文本查找. 果然发现是发送了USER