• 主页
  • 相册
  • 随笔
  • 目录
  • 存档
Total 244
Search AboutMe

  • 主页
  • 相册
  • 随笔
  • 目录
  • 存档

HTTP代理服务器实验

2019-11-15

本博客内容旨在技术学习交流,仅供学习参考之用,请勿用于任何非法用途,否则后果作者概不负责

内容

  • tinyproxy建立正向代理
  • 提取pcap包中的SSL证书
  • 解密本地主机HTTPS流量

1. 实验环境

配置完成拓扑环境的kali-attacke以及kali-victim两台主机

tinyproxy

  • 下载:apt install tinyproxy -y
  • 配置:vi /etc/tinyproxy/tinyproxy.conf
    • 配置Allow IP

2. 实验原理

代理服务器

**代理的工作模式**
  • 转发代理
    • 正向代理
    • 绕过审查: 黑名单之外的 IP 地址搭建转发代理服务器
  • 开放代理
    • 是互联网上人人可访问的转发代理
  • 反向代理
    • 外网发布:特别对于一些官方新闻站点、展示型站点,不需要用户反馈和交互功能,代理服务器可以提供全静态的只读网页服务

正向代理(前向代理)与反向代理

前向代理作为客户端的代理,将从互联网上获取的资源返回给一个或多个的客户端,服务端(如Web服务器)只知道代理的IP地址而不知道客户端的IP地址;而反向代理是作为服务器端(如Web服务器)代理使用,而不是客户端。

客户端借由前向代理可以间接访问很多不同互联网服务器(集群)的资源,而反向代理是供很多客户端都通过它间接访问不同后端服务器上的资源,而不需要知道【常常也不知道】这些后端服务器的存在,而以为所有资源都来自于这个反向代理服务器。

透明代理

透明代理的意思是客户端根本不需要知道有代理服务器的存在,它改变你的request fields(报文),并会传送真实IP,多用于路由器的NAT转发中

匿名代理

  • 高度匿名代理
    • 这样的服务器会把你的数据包原封不动的来转发,就好像自己的一样,这样对目标站来讲,根本就不会以为是代理服务器在访问它而不是你
  • 普通匿名代理
    • 相对于高度匿名代理来讲,这样的服务器会被目标站认出来是代理服务器,从而很有可能还是会追踪到你的真实IP

透明代理与匿名代理

  • 使用透明代理,对方服务器可以知道你使用了代理,并且也知道你的真实IP。透明代理访问对方服务器所带的HTTP头信息如下:
    1
    2
    3
    REMOTE_ADDR = 代理服务器IP
    HTTP_VIA = 代理服务器IP
    HTTP_X_FORWARDED_FOR = 你的真实IP
  • 使用匿名代理,对方服务器可以知道你使用了代理,但不知道你的真实IP
    1
    2
    3
    REMOTE_ADDR = 代理服务器IP
    HTTP_VIA = 代理服务器IP
    HTTP_X_FORWARDED_FOR = 代理服务器IP
  • 使用高匿名代理,对方服务器不知道你使用了代理,更不知道你的真实IP
    1
    2
    3
    REMOTE_ADDR = 代理服务器IP
    HTTP_VIA 不显示
    HTTP_X_FORWARDED_FOR 不显示

正反向连接

  • 正向连接(bind),是我主动去连接别人机器上的某个端口,很显然,这样极易被对方防火墙拦掉
  • 反向连接(reverse),是让别人机器上的某个端口上的流量主动连到我机器上的某个端口上,起码暂时对各类应用层防火墙的穿透效果还是蛮不错的

cdn

A content delivery network, or content distribution network (CDN), is a geographically distributed network of proxy servers and their data centers. The goal is to provide high availability and performance by distributing the service spatially relative to end users.

source:wikipedia

HTTP代理

  • 手工配置 – 自动检测设置 (WPAD (Web Proxy Auto Discovery))

3. 实验内容

4. 实验:正向代理

开启端口

  • kali-attacker:\etc\init.d\tinyproxy start

配置代理

  • kali-victim:Settings -> Configure Proxy Access to theInternet -> Manual proxy

抓包

  • 打开Wireshark进行抓包

关闭端口

  • \etc\init.d\tinyproxy stop

4.1. 实验结果

查看所有HTTPS代理请求

**查看所有HTTP GET代理请求**
## 实验:提取pcap包中的SSL证书
  • 过滤规则ssl,找到SSL会话

  • 通过packet list里的info列找到Certificate

  • 导出:Handshake Protocol: Certificate –> Certificates –> Certificate –> Export Selected Packet Bytes

  • 使用openssl命令行工具解析DER证书:openssl x509 -in xxx.der -inform der -text

4.2. 实验结果

## 实验:解密本地主机HTTPS流量
  • 由于Firefox下的Key Log有坑,下载并安装google-chrome

    1
    2
    3
    wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
    sudo dpkg -i google-chrome-stable_current_amd64.deb
    # apt-get update && apt-get install -f
  • 配置SSL Key Log:

    1
    2
    touch sslkeylog.log
    export SSLKEYLOGFILE=~/workspace/sslkeylog.log
  • 开启Wireshark监听

  • 在配置完成SSL Key Log同一终端中,用终端打开google

    1
    google-chrome --no-sandbox www.baidu.com
  • Wireshark:首选项 -> Protocol TLS -> (Pre)-Master-Secret log filename,选择sslkeylog.log

4.3. 实验结果

* 解密后TLS包出现`Decrypted TLS`

5. 常见问题解决

The administrator of this proxy has not configured it to service requests from your host

  • 在/etc/tinyproxy/tinyproxy.conf中添加Allow IP,取消Allow 10.0.0.0/8行首注释

Cannot capture SSL/TLS package

  • 检查浏览器配置代理时,SSL的配置。在Firefox中,选择Use this proxy server for all protocols

6. 参考资料

  • 反向代理 - 维基百科,自由的百科全书
  • web渗透第一步之信息搜集 [ 透过cdn找目标真实ip ]
  • 高匿名、匿名和透明代理有什么区别?_网络_zhuolingyun的博客-CSDN博客
  • sec
  • Security
  • Network Security
实验:读写者问题
WebGoat、JuiceShop搭建以及实验
© 2024 何决云 载入天数...