wooyun镜像容器逆向分析

wooyun容器

安装参考:

v7hinc/wooyun - Docker Image | Docker Hub

dockerfile

V7hinc/wooyun_final: 根据hanc00l和m0l1ce提供的数据构建docker版的乌云漏洞库,包含8.8W漏洞信息 (github.com)

 FROM centos:7
 MAINTAINER V7hinc
 ​
 ENV WOOYUN_DB="wooyun"
 ENV DB_Root_Password="wooyun"
 ENV SITE_ROOT /home/wwwroot/default
 ​
 RUN set -x;\
 yum -y install wget git;\
 cd /tmp;\
 # 安装lamp
 wget http://soft.vpser.net/lnmp/lnmp1.7.tar.gz -cO lnmp1.7.tar.gz;\
 tar zxf lnmp1.7.tar.gz && cd lnmp1.7;\
 # lnmp脚本无人值守命令解释:DBSelect="6"表示MariaDB 5.5、PHPSelect="5"表示PHP5.6、SelectMalloc="1"表示不安装内存分配器、ApacheSelect="1"表示Apache2.2,其他请查看https://lnmp.org/faq/v1-5-auto-install.html
 LNMP_Auto="y" DBSelect="6" DB_Root_Password="${DB_Root_Password}" InstallInnodb="y" PHPSelect="5" SelectMalloc="1" ApacheSelect="1" ServerAdmin="" ./install.sh lamp;
 ​
 # 进入网站根目录
 WORKDIR ${SITE_ROOT}
 ​
 # 网站源码拉取
 RUN set -x;\
 # 清除网站根目录下的默认数据
 rm -rf *;\
 # 拉取网站源码到当前目录
 git clone https://github.com/V7hinc/wooyun_final.git ./;\
 # 删除Dockerfile文件
 rm -rf Dockerfile;\
 # 替换数据库密码
 sed -i "s/root\")/${DB_Root_Password}\")/" conn.php;
 ​
 # wooyun数据库恢复
 RUN set -x;\
 # 开启mariadb
 lnmp mariadb restart;\
 # 创建数据库wooyun
 create_db_sql="create database IF NOT EXISTS ${WOOYUN_DB}";\
 mysql -hlocalhost -P3306 -uroot -p${DB_Root_Password} -e "${create_db_sql}";\
 # 下载数据库源文件
 echo "正在下载wooyun_bugs_db.tar.bz2文件";\
 wget -c https://github.com/V7hinc/wooyun_final/releases/download/1.0/wooyun_bugs_db.tar.bz2;\
 # 解压数据库源文件到wooyun数据库目录下
 tar xjvf wooyun_bugs_db.tar.bz2 -C /usr/local/mariadb/var/${WOOYUN_DB};\
 # 清除压缩包
 rm -rf wooyun_bugs_db.tar.bz2;
 ​
 # 编写开机启动脚本
 RUN set -x;\
 echo "#!/bin/bash" >> /autostart.sh;\
 # nginx 重启
 echo "lnmp restart;" >> /autostart.sh;\
 # 保持前台
 echo "/bin/bash;" >> /autostart.sh;\
 chmod 755 /autostart.sh;
 ​
 VOLUME ["${SITE_ROOT}/upload"]
 ​
 EXPOSE 80
 EXPOSE 3306
 ​
 # 切换进入docker容器默认路径为网站根目录
 WORKDIR ${SITE_ROOT}
 ​
 ENTRYPOINT ["/autostart.sh"]

镜像分析

docker查找该镜像

docker search wooyun

docker 拉取镜像容器

docker pull v7hinc/wooyun

导出镜像,保存为wooyun.tar(需要几十秒时间,看镜像的大小)

docker save -o wooyun.tar v7hinc/wooyun

解压缩该tar文件:

首先查看manifest.json的内容,可以看出该文件一共包含了三个字段,ConfigRepoTagesLayers

  • Config 的值为镜像配置文件的json文件,对应733242646ba649f19be0efe15eb0dfee995e0ae431fdcce76688a072f82925d3.json

  • RepoTages 为镜像的名称和标签;

  • Layers 包含了镜像的有哪些层,每一个元素代表一个层目录,由此可见ubuntu含有五个层,对应33b5e87a65b65985a0445827bd27436b3467bb578d1b1cc2aa0b6000685fb4bf/layer.tar e203e4e9c0ac9eb1226cb20ac3da1946c2378ad4574b6c7d31f91edd5bfd2617/layer.tar 519c3f049f3fdc543f41ade13ec96b2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值