热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Docker在渗透中的应用

起因环境因素影响,我他么路由器映射端口msf就是反弹不回来session,在跟大牛交流后,大牛说服务器装个kali就行了,我

 

起因

环境因素影响,我他么路由器映射端口 msf就是反弹不回来session,在跟大牛交流后,大牛说服务器装个kali就行了,我以为是叫idc那边直接安装,但是因为这个系统特殊,很多 idc不允许安装这个的,不过很多国外的idc倒是允许自行上传iso镜像,自行安装。

Docker简介
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app)。几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,他们不依赖于任何语言、框架包括系统。–来自Docker_百度百科 (不懂的自行科普)

Docker值得关注的特性
文件系统隔离:每个进程容器运行在一个完全独立的根文件系统里。
资源隔离:系统资源,像CPU和内存等可以分配到不同的容器中,使用cgroup。
网络隔离:每个进程容器运行在自己的网络空间,虚拟接口和IP地址。
日志记录:Docker将会收集和记录每个进程容器的标准流(stdout/stderr/stdin),用于实时检索或批量检索。
变更管理:容器文件系统的变更可以提交到新的映像中,并可重复使用以创建更多的容器。无需使用模板或手动配置。
交互式shell:Docker可以分配一个虚拟终端并关联到任何容器的标准输入上,例如运行一个一次***互shell。 

Docker通常用于如下场景
web应用的自动化打包和发布;
自动化测试和持续集成、发布;
在服务型环境中部署和调整数据库或其他的后台应用;
从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境。

实验环境
外网vps服务器一台(注:内存超过2g)
实验环境中是一台centos6.7 64位的系统

官方文档要求Linux kernel至少3.8以上,且docker只能运行在64位的系统中,由于RHEL6和CentOS6的内核版本为2.6,因此必须要先升级内核。(实验环境中内核升级后是2.6.32-573.7.1.el6.x86_64)额,官方说至少3.8以上,我也不理解。

实验环境中我是直接

升级的。

安装方法很多,自行科普。

开始安装Docker
curl -sSL https://get.docker.com/ | sh
安装完毕后启动服务

查看是否启动成功

1

docker参数

2

搜索docker可用镜像
docker search ****  (搜索kali) 3

 

 

docke  pull kalilinux/kali-linux-docker

执行pull命令的时候要写完整的名字,比如”docker  pull kalilinux/kali-linux-docker”。

额,我已经装好了就不截图了。

在docker容器(kali)中 运行“hello 90sec”。(文中的kali容器我自己改名过的,安装哪个镜像就是哪个镜像的名字,原:kalilinux/kali-linux-docker)4

在容器中安装程序

 

 

docker run kali apt-get install ****

这样安装是否太麻烦,那么我直接进入系统直接安装所要的程序吧。

进入容器(kali)

更新一下

更新完毕后kali中的所有软件只要想用的 都可以自己安装 下面我们安装msf

 

 

apt-get install metasploit-framework

安装完毕后启动postgresql

 

 

/etc/init.d/postgresql start

启动msf6

docker 可以自动化打包和发布,你可以把你需要的都安装进容器里面,并且发布,方便自己以后使用。(打造一个属于自己的渗透测试环境是不是很方便,当然docker的应用还有很多)

接下来退出容器,并且保存 查看容器的id

保存容器

7

感觉就每次使用都要保存,好麻烦。(嘿嘿,每次渗透的记录都不会被保存不挺好的嘛,取证就不太方便了。)

安装好后,会自动分配个内网ip到容器中,并且每次登录的ip都是不一样的。
细心点的同学会发现,容器中的内核是跟宿主机的内核一样的
每次保存也就等于快照一样。

小技巧:

由于容器中的msf ip是内网的 启动容器的时候可以映射端口,加上p参数就行。

 

 

docker run -i -t -p 53:53 kali

也可以共享目录,v参数

 

 

docker run -i -t -p 53:53 -v /mnt:/mnt kali

基本就这样了,发一些自己刚玩整理的命令。 启动一个退出的容器:

attach到运行中的容器:

 

 

docker attach CONTAINERID

查看安装的镜像:

在docker容器中运行命令:

 

 

docker run IMAGE [COMMAND] [ARG...]

docker run命令有两个参数,一个是镜像名,一个是要在镜像中运行的命令。 注意:IMAGE=REPOSITORY[:TAG],如果IMAGE参数不指定镜像的TAG,默认TAG为latest。

列出容器:

查看最近生成的容器:

查看正在运行的容器:

停止正在运行的容器:

启动一个退出的容器:

删除容器:

查看所有容器ID:

删除所有的容器:

 

 

docker rm $(docker ps -a -q)

删除镜像:

P神补充:
docker使用完成后并不用保存。
注意区分镜像和容器的区别,使用完成后是一个docker容器,退出后,执行如下操作即可重启容器并再次进入:

 

 

查看容器id

docker ps -a

启动容器

docker start xxx

容器中执行bash并进入交互式shell

docker exec -it xxx /bin/bash

在容器中,按ctrl + p再按ctrl + q退出容器,但不结束bash

下次执行

docker attach xxx

即可再次进入此bash

只有当你觉得需要保存成镜像的时候才执行commit。

【via@90sec-9ye】

转:https://www.cnblogs.com/askDing/p/5109562.html



推荐阅读
  • 实践指南:使用Express、Create React App与MongoDB搭建React开发环境
    本文详细介绍了如何利用Express、Create React App和MongoDB构建一个高效的React应用开发环境,旨在为开发者提供一套完整的解决方案,包括环境搭建、数据模拟及前后端交互。 ... [详细]
  • Docker安全策略与管理
    本文探讨了Docker的安全挑战、核心安全特性及其管理策略,旨在帮助读者深入理解Docker安全机制,并提供实用的安全管理建议。 ... [详细]
  • 在Android应用开发过程中,开发者经常遇到诸如CPU使用率过高、内存泄漏等问题。本文将介绍几种常用的命令及其应用场景,帮助开发者有效定位并解决问题。 ... [详细]
  • CentOS下ProFTPD的安装与配置指南
    本文详细介绍在CentOS操作系统上安装和配置ProFTPD服务的方法,包括基本配置、安全设置及高级功能的启用。 ... [详细]
  • 本文探讨了在一个物理隔离的环境中构建数据交换平台所面临的挑战,包括但不限于数据加密、传输监控及确保文件交换的安全性和可靠性。同时,作者结合自身项目经验,分享了项目规划、实施过程中的关键决策及其背后的思考。 ... [详细]
  • 本文详细介绍了在Linux操作系统上安装和部署MySQL数据库的过程,包括必要的环境准备、安装步骤、配置优化及安全设置等内容。 ... [详细]
  • 深入探讨:Actor模型如何解决并发与分布式计算难题
    在现代软件开发中,高并发和分布式系统的设计面临着诸多挑战。本文基于Akka最新文档,详细探讨了Actor模型如何有效地解决这些挑战,并提供了对并发和分布式计算的新视角。 ... [详细]
  • 在现代Web开发中,HTML5 Canvas常用于图像处理和绘图任务。本文将详细介绍如何将Canvas中的图像导出并上传至服务器,适用于拼图、图片编辑等场景。 ... [详细]
  • Linux环境下MySQL的安装与配置
    本文详细介绍了在Linux系统上安装和配置MySQL的步骤,包括安装前的准备工作、下载和解压安装包、初始化数据库、配置文件编辑、启动服务以及设置开机自启动等。 ... [详细]
  • 精选10款Python框架助力并行与分布式机器学习
    随着神经网络模型的不断深化和复杂化,训练这些模型变得愈发具有挑战性,不仅需要处理大量的权重,还必须克服内存限制等问题。本文将介绍10款优秀的Python框架,帮助开发者高效地实现分布式和并行化的深度学习模型训练。 ... [详细]
  • 本文将从基础概念入手,详细探讨SpringMVC框架中DispatcherServlet如何通过HandlerMapping进行请求分发,以及其背后的源码实现细节。 ... [详细]
  • 本文详细介绍了如何搭建一个高可用的MongoDB集群,包括环境准备、用户配置、目录创建、MongoDB安装、配置文件设置、集群组件部署等步骤。特别关注分片、读写分离及负载均衡的实现。 ... [详细]
  • Flutter 核心技术与混合开发模式深入解析
    本文深入探讨了 Flutter 的核心技术,特别是其混合开发模式,包括统一管理模式和三端分离模式,以及混合栈原理。通过对比不同模式的优缺点,帮助开发者选择最适合项目的混合开发策略。 ... [详细]
  • JavaScript 实现图片文件转Base64编码的方法
    本文详细介绍了如何使用JavaScript将用户通过文件输入控件选择的图片文件转换为Base64编码字符串,适用于Web前端开发中图片上传前的预处理。 ... [详细]
  • 在Java开发中,保护代码安全是一个重要的课题。由于Java字节码容易被反编译,因此使用代码混淆工具如ProGuard变得尤为重要。本文将详细介绍如何使用ProGuard进行代码混淆,以及其基本原理和常见问题。 ... [详细]
author-avatar
幽雅闲居xl
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有