Meterpreter初探
Meterpreter
Meterpreter号称“黑客瑞士军刀”,Meterpreter是Metasploit框架中的一个杀手锏,通常作为漏洞溢出后的攻击载荷使用,攻击载荷在触发漏洞后能够返回一个我们控制通道,例如利用远程过程带哦用RPC服务的一个漏洞,当漏洞被触发后,我们选择Meterpreter作为攻击载荷,就能够获得目标系统上的一个Meterpreter Shell连接。Meterpreter是Metasploit框架的一个扩展模块,可以调用Metasploit的一些功能,对目标系统进行更加深入的渗透,这些功能包括反追踪、纯内存工作模式、密码哈希值获取、特权提升、跳板攻击等。
认识 Meterpreter
获得Meterpreter会话
攻陷目标操作系统系统后就可以进入Meterpreter会话
根据《首次系统渗透Win_xp》的内容成功进入xp系统,随即出现meterpreter命令交互界面
获得目标系统的Meterpreter会话后,可以利用基本的Meterpreter命令完成更多的骚操作。(help帮助信息不要完了使用哦)
截屏:screenshot
命令 screenshot 可以获取活动用户的当前屏幕界面的图片并保存在本地指定的目录
如上图,我们成功的获得了桌面图像信息,由此可以获得更多的重要信息。(由于是靶机,所以比较干净,如果是正常的工作机,我们就会看见用户的安全软件安装了哪些?桌面上的信息等等……)
平台信息:sysinfo
命令 sysyinfo,可以帮助我们获取操作系统平台的详细信息
如上图,是我们sysinfo命令获取的平台信息,包括如下信息:
- 完整的计算机名
- 操作系统的版本
- 系统架构体系
- 工作组名
……
获取键盘记录
我们可以使用 ps 命令来捕获目标主机正在运行的任务进程:
我们看见了目标主机系统的PID:1684的explorer.exe进程,该进程是控制系统的GUI的哦!
执行 migrate 命令将会话迁移至explorer.exe进程空间中,然后调用keylog_recorder模块(使用Ctrl+C终止),在另一个终端里可以看见键盘的记录
在实验的时候出了小小的意外,所以没有出现记录内容。
获取摄像头信息
meterpreter > webcam_list #查看查看摄像头信息
meterpreter > webcam_snap #获取摄像头摄制的图像
摄像头的图像信息被保存在 /root/IykcCaUp.jpeg
挖掘用户名和密码
提取密码哈希值
Windows系统存储哈希值的方式一般是LM、NTLM或者NTLMv2。
在明文密码输入后系统会将密码转为哈希值;由于哈希值的长度限制,将密码切分为7个字符一组的哈希值;
以password123456密码为例,哈希值会以 【{passwor}{d123456}】每个花括号是一组哈希值共两组,所以攻击者只要破解7个字符一组的密码,而不是原始的14个字符,而NTLM存储方式和密码长度无关,密码将作为整体哈希值存储。
获取密码和哈希值*
use priv 命令:意味着运行在特权账号上。
post/windows/gether/hashdump模块:获取系统所有的用户名和密码哈希值
获取安全账户的账号管理器SAM数据库,我们需要运行在System权限下(use priv),以求绕过注册表的限制,获得受保护的用户和密码的SAM存储。
- 哈希值解析:
- 以 aad3b435 开头的哈希值是一个空的或不存在的哈希值(空字串的占位符)。
- 传递哈希值:
用哈希值传递技术,用psexec模块就可以实现,
权限提升
meterpreter会话中我们可以通过 net user 命令创建Windows系统下的普通用户账号。
如果是以受限的用户账号渗透登录,将会被限制执行一些命令。
在Win端cmd执行以下命令:
C:\ > net user mirror 926498 /add
命令执行后,我们就在win端创建了一个 mirror 用户。
建立Meterpreter会话
- 创建一个Meterpreter攻击载荷的程序——payload.exe;复制到XP靶机中,在bob用户下执行。
- 本地创建程序接收目标靶机的会话
handler模块创建“监听”后,等待目标靶机的mterpreter会话
- Mterpreter会话连接
我们在靶机环境下启动msfvenom.exe程序,启动后,终端就会建立Merterpreter会话
我们执行攻击载荷的系统环境是一个普通用户,所以我们开始执行提权了!
提权第一步
- 查看当前用户的权限和名称:getuid
meterpreter > getuid #查看当前会话的对方的用户权限和名
ps:meterpreter控制台中,输入background可以跳转到MSF终端里,Meterpreter会话仍在运行,然后输入sessions -i [会话ID]返回Meterpreter控制台。
- 升级权限 System
输入 use priv 命令加载priv扩展,以便访问某些特权模块位置。
输入 getsystem 命令尝试将权限提升至本地系统权限或者管理员权限。
输出 getuid 命令检查当前获得的权限等级。
令牌伪造
我们将会获取目标系统的一个Kerberos令牌,将其用在身份认证的环节,假冒当初创建这个令牌的用户。
比方说:我们建立了一个Meterpreter的控制台会话后,管理员用户登录过这个机器,在该用户登入这台机器的时候,一个kerberos令牌将会发送到服务器上,并在随后的一段时间之内一直有效;可以依靠这个令牌完成入侵系统,通过Meterpreter假冒为管理员的角色,而不需要破解密码。
我们利用 ps 命令列举当前系统的应用程序
- 使用 steal_token 命令和PID参数盗取用户的令牌
成功的盗取了用户的身份令牌,现在Meterpreter是以该用户的身份令牌进行运行的。
另外,我们可以使用 incofnito模块list_token -u 命令列举出系统上可以利用的所有令牌。
meterpreter > use incofnito # 加载incofnito模块
meterpreter > list_token -u # 列举处系统是所有可利用令牌
- 权限提升的奥秘可以单独研究哦!
跳板攻击
跳板攻击,允许从Meterpreter终端攻击网络中的其他系统;比方说,入侵一台系统后,就可以利用该主机作为跳板攻击同一个内网中的其他主机(内网扩展)。
入侵一个系统并在内部获得Metrpreter会话,可以通过这个系统建立路由去侵入其他主机
- 入侵WinXP主机
按照之前的两种方法:
- 利用MS08_067漏洞
- 主机上传攻击载荷程序(Payload.exe程序)
- 使用外部脚本:get_local_subnets
使用get_local_subnets脚本获得目标主机的子网信息 ==>
local subnet:192.168.2.0 / 255.255.255.0
- 路由信息
Routing Table(route print)告诉我们,路由信息,子网端和掩码以及通过session 4会话进行路由。
待补充
Meterpreter脚本
通过 run 脚本名字 命令,我们就可以在Meterpreter控制终端中运行扩展脚本。
run screen_unlock 命令允许得到并操作远程桌面。
迁移进程
如果目标的主机上没有开启我们需要利用的软件或者关闭了我们利用的漏洞建立会话的程序进程,就会导致我们的Meterpreter会话断开;为了避免这个问题,我们可以使用 迁移进程的后渗透攻击模块,将Meterpreter会话迁移到内存空间中其他稳定、不会被关闭的服务器进程中,以维持稳定的系统控制连接。
迁移后,我们发现,程序被迁移到了进程 2068 的程序中(该进程是系统的记事本)
关闭杀毒软件
- 使用 killav 关闭掉杀毒软件
获取系统密码哈希值
- 使用run hashdump命令获取哈希值
查看目标主机的流量
- run packetrecorder -i 1
获取系统信息
- run scraper
控制持久化
Meterpreter的persistence脚本允许注入Meterpreeter代理,以确保系统重启之后,Meterpreter会话还可以连接,如果是反弹连接方式,可以设置攻击机的时间间隔,如果是绑定方式,可以设置在指定时间绑定开放端口。
向后渗透攻击模块转变
Shell升级为Meterpreter会话
命令: sessions -u
Raligun组件操作WIndowsAPI
我们可以通过Metasploit附加组件——Raligun,直接与Windows系统API进行交互。
【全文只是对Meterpreter的控制做了非常简单的介绍】
Meterpreter初探的更多相关文章
- 初探APT攻击
首发于i春秋 作者:joe 所属团队:Arctic Shell 团队博客地址:https://www.cnblogs.com/anbus/ 0x1:关于APT的相关介绍: APT是 ...
- 初探APT 攻击
作者:joe 所属团队:Arctic Shell 本文编写参考: https://www.freebuf.com/vuls/175280.html https://www.freebuf. ...
- 初探领域驱动设计(2)Repository在DDD中的应用
概述 上一篇我们算是粗略的介绍了一下DDD,我们提到了实体.值类型和领域服务,也稍微讲到了DDD中的分层结构.但这只能算是一个很简单的介绍,并且我们在上篇的末尾还留下了一些问题,其中大家讨论比较多的, ...
- CSharpGL(8)使用3D纹理渲染体数据 (Volume Rendering) 初探
CSharpGL(8)使用3D纹理渲染体数据 (Volume Rendering) 初探 2016-08-13 由于CSharpGL一直在更新,现在这个教程已经不适用最新的代码了.CSharpGL源码 ...
- 从273二手车的M站点初探js模块化编程
前言 这几天在看273M站点时被他们的页面交互方式所吸引,他们的首页是采用三次加载+分页的方式.也就说分为大分页和小分页两种交互.大分页就是通过分页按钮来操作,小分页是通过下拉(向下滑动)时异步加载数 ...
- JavaScript学习(一) —— 环境搭建与JavaScript初探
1.开发环境搭建 本系列教程的开发工具,我们采用HBuilder. 可以去网上下载最新的版本,然后解压一下就能直接用了.学习JavaScript,环境搭建是非常简单的,或者说,只要你有一个浏览器,一个 ...
- .NET文件并发与RabbitMQ(初探RabbitMQ)
本文版权归博客园和作者吴双本人共同所有.欢迎转载,转载和爬虫请注明原文地址:http://www.cnblogs.com/tdws/p/5860668.html 想必MQ这两个字母对于各位前辈们和老司 ...
- React Native初探
前言 很久之前就想研究React Native了,但是一直没有落地的机会,我一直认为一个技术要有落地的场景才有研究的意义,刚好最近迎来了新的APP,在可控的范围内,我们可以在上面做任何想做的事情. P ...
- Meterpreter run vnc 遇到的问题
Metasploit框架中的meterpreter无疑是相当强大的工具,而且具有我目前挺喜欢的vnc.但是我在run vnc时发现得到的远程控制桌面是view-only的,通过-h选项发现没有修改的方 ...
随机推荐
- INT 3 中断调试处理流程
Windows内核分析索引目录:https://www.cnblogs.com/onetrainee/p/11675224.html INT 3 中断调试处理流程 一.调试器如何下INT 3 断点 1 ...
- Selenium(十三):验证码的处理、WebDriver原理
1. 验证码的处理 对于Web应用来说,大部分的系统在用户登录时都要求用户输入验证码.验证码的类型很多,有字母数字的.有汉字的,甚至还需要用户输入一道算术题的答案的.对于系统来说,使用验证码可以有效地 ...
- Flask 教程 第五章:用户登录
本文翻译自The Flask Mega-Tutorial Part V: User Logins 这是Flask Mega-Tutorial系列的第五部分,我将告诉你如何创建一个用户登录子系统. 你在 ...
- HTML空元素
什么是空元素? 首先空元素下是没有子级节点和内容的.然后空元素是在开始标签中关闭的,也就是说空元素没有闭合标签的. 在HTML中的空元素有以下几个: <area> <base> ...
- Cesium区分单击【LEFT_CLICK】和双击事件【LEFT_DOUBLE_CLICK】
问题描述 在cesium中,用户鼠标左键双击视图或Entity时,实际触发的是两次click和一次dbclick事件,非常影响代码设计,本文记录了如何区分单击[LEFT_CLICK]和双击事件[LEF ...
- linux学习(七)Shell编程中的变量
目录 shell编程的建立 shell的hello world! Shell的环境变量 使用和设置环境变量 Shell的系统变量 用户自定义变量 @(Shell编程) shell编程的建立 [root ...
- Python踩坑系列之安装pycrypto报错:“Microsoft Visual C++14.0 is required”问题。
由于要使用Python3实现des3加密要使用pycrypto模块,所以使用pip install pycrypto 来安装,然后就常规性掉坑.安装报错“Microsoft Visual C++14. ...
- 微信小程序支付功能讲解(2)
小程序支付 业务流程时序图 官方文档 步骤: 1. Openid 在小程序初次加载的时候就已经获取(详情见 小程序登录) 2. 生成商户订单 1.商品信息由小程序端提供 2.提供支付统一下单接口所需参 ...
- SpringCloud单元测试【六】
SpringCloud的单元测试主要是依靠 Mock以及Mockito, 所以我们需要对Mock以及Mockito有一定的认识. 一.为什么要用MockMvc 可能我们在测试控制层的代码都是启动服务器 ...
- 第三章 HTTP报文中的HTTP信息
第三章 HTTP报文中的HTTP信息 HTTP通信过程:客户端—>服务端,服务端—>客户端. 1.HTTP报文 使用HTTP协议交互的信息被称为HTTP报文,包括请求报文和响应报文. [请 ...