美文网首页
使用mitmproxy拦截获取dockerd的https请求

使用mitmproxy拦截获取dockerd的https请求

作者: 网赚之家 | 来源:发表于2019-07-25 12:59 被阅读0次

    作者:houkai
    链接https://www.jianshu.com/p/46c229724446
    版权声明: 著作权归 houkai 所有。转载时须注明出处及本声明

    mitmproxy是一个免费开源且支持多平台的中间人代理软件,可以用于调试、测试HTTP/HTTPS等协议软件,具体介绍及使用可以参看官方文档,本教程利用mitmproxy拦截获取dockerd的https请求,分析对应的HTTP API调用

    环境信息

    系统/软件 版本信息
    操作系统 Red Hat Enterprise Linux Server release 7.4 (Maipo)
    Linux内核 3.10.0-693.el7.x86_64
    Docker 18.03.0-ce
    Mitmproxy 4.0.4

    配置mitmproxy

    官方提供了几种安装方式,选择其中一种方式安装并运行如下命令,监听本地8080端口:

    mitmproxy --listen-port=8080
    

    首次会在~/.mitmproxy目录生成一些证书文件, 如下所示:

    [root@localhost ~]# ls -l ~/.mitmproxy
    total 24
    -rw-r--r--. 1 root root 1318 Jul 24 20:36 mitmproxy-ca-cert.cer
    -rw-r--r--. 1 root root 1140 Jul 24 20:36 mitmproxy-ca-cert.p12
    -rw-r--r--. 1 root root 1318 Jul 24 20:36 mitmproxy-ca-cert.pem
    -rw-r--r--. 1 root root 2529 Jul 24 20:36 mitmproxy-ca.p12
    -rw-r--r--. 1 root root 3026 Jul 24 20:36 mitmproxy-ca.pem
    -rw-r--r--. 1 root root  770 Jul 24 20:36 mitmproxy-dhparam.pem
    

    拷贝ca证书文件到/etc/pki/ca-trust/source/anchors/目录,并执行update-ca-trust命令:

    [root@localhost ~]# cp ~/.mitmproxy/mitmproxy-ca-cert.pem /etc/pki/ca-trust/source/anchors/
    [root@localhost ~]# update-ca-trust
    

    配置docker服务代理

    编辑docker服务文件/usr/lib/systemd/system/docker.service,增加以下内容

    [Service]
    Environment="HTTP_PROXY=http://localhost:8080"
    

    执行如下命令,使配置生效并重启docker

    [root@localhost ~]# systemctl daemon-reload
    [root@localhost ~]# systemctl restart docker
    

    执行如下命令,检查变量是否加载

    [root@localhost ~]# systemctl show docker --property Environment
    Environment=HTTP_PROXY=http://localhost:8080
    

    测试验证

    执行docker search命令查询busybox镜像:

    [root@localhost ~]# docker search busybox
    NAME                      DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
    busybox                   Busybox base image.                             1639                [OK]                
    progrium/busybox                                                          70                                      [OK]
    radial/busyboxplus        Full-chain, Internet enabled, busybox made f…   24                                      [OK]
    arm32v7/busybox           Busybox base image.                             7                                       
    yauritux/busybox-curl     Busybox with CURL                               5                                       
    armhf/busybox             Busybox base image.                             4                                       
    arm64v8/busybox           Busybox base image.                             3                                       
    arm32v6/busybox           Busybox base image.                             2                                       
    p7ppc64/busybox           Busybox base image for ppc64.                   2                                       
    joeshaw/busybox-nonroot   Busybox container with non-root user nobody     2                                       
    odise/busybox-curl                                                        2                                       [OK]
    prom/busybox              Prometheus Busybox Docker base images           2                                       [OK]
    s390x/busybox             Busybox base image.                             2                                       
    i386/busybox              Busybox base image.                             2                                       
    armel/busybox             Busybox base image.                             2                                       
    aarch64/busybox           Busybox base image.                             2                                       
    sequenceiq/busybox                                                        2                                       [OK]
    ppc64le/busybox           Busybox base image.                             1                                       
    spotify/busybox           Spotify fork of https://hub.docker.com/_/bus…   1                                       
    concourse/busyboxplus                                                     0                                       
    trollin/busybox                                                           0                                       
    ggtools/busybox-ubuntu    Busybox ubuntu version with extra goodies       0                                       [OK]
    amd64/busybox             Busybox base image.                             0                                       
    arm32v5/busybox           Busybox base image.                             0                                       
    sou856099/busybox 
    

    此时查看mitmproxy已经有了对应的请求信息,如下:

    mitmproxy请求列表
    mitmproxy请求详情

    相关文章

      网友评论

          本文标题:使用mitmproxy拦截获取dockerd的https请求

          本文链接:https://www.haomeiwen.com/subject/xsthrctx.html