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初探的更多相关文章

  1. 初探APT攻击

    首发于i春秋 作者:joe     所属团队:Arctic Shell 团队博客地址:https://www.cnblogs.com/anbus/   0x1:关于APT的相关介绍:     APT是 ...

  2. 初探APT 攻击

    作者:joe       所属团队:Arctic Shell 本文编写参考: https://www.freebuf.com/vuls/175280.html https://www.freebuf. ...

  3. 初探领域驱动设计(2)Repository在DDD中的应用

    概述 上一篇我们算是粗略的介绍了一下DDD,我们提到了实体.值类型和领域服务,也稍微讲到了DDD中的分层结构.但这只能算是一个很简单的介绍,并且我们在上篇的末尾还留下了一些问题,其中大家讨论比较多的, ...

  4. CSharpGL(8)使用3D纹理渲染体数据 (Volume Rendering) 初探

    CSharpGL(8)使用3D纹理渲染体数据 (Volume Rendering) 初探 2016-08-13 由于CSharpGL一直在更新,现在这个教程已经不适用最新的代码了.CSharpGL源码 ...

  5. 从273二手车的M站点初探js模块化编程

    前言 这几天在看273M站点时被他们的页面交互方式所吸引,他们的首页是采用三次加载+分页的方式.也就说分为大分页和小分页两种交互.大分页就是通过分页按钮来操作,小分页是通过下拉(向下滑动)时异步加载数 ...

  6. JavaScript学习(一) —— 环境搭建与JavaScript初探

    1.开发环境搭建 本系列教程的开发工具,我们采用HBuilder. 可以去网上下载最新的版本,然后解压一下就能直接用了.学习JavaScript,环境搭建是非常简单的,或者说,只要你有一个浏览器,一个 ...

  7. .NET文件并发与RabbitMQ(初探RabbitMQ)

    本文版权归博客园和作者吴双本人共同所有.欢迎转载,转载和爬虫请注明原文地址:http://www.cnblogs.com/tdws/p/5860668.html 想必MQ这两个字母对于各位前辈们和老司 ...

  8. React Native初探

    前言 很久之前就想研究React Native了,但是一直没有落地的机会,我一直认为一个技术要有落地的场景才有研究的意义,刚好最近迎来了新的APP,在可控的范围内,我们可以在上面做任何想做的事情. P ...

  9. Meterpreter run vnc 遇到的问题

    Metasploit框架中的meterpreter无疑是相当强大的工具,而且具有我目前挺喜欢的vnc.但是我在run vnc时发现得到的远程控制桌面是view-only的,通过-h选项发现没有修改的方 ...

随机推荐

  1. RocketMQ(二):producer客户端实践

    MQ解耦了生产者和消费者,前提是有一个稳定强大的消息服务,我们只管与之通信即可. 所以,和MqServer通信是什么样的?难否? 0. 发送端demo /** * This class demonst ...

  2. Oracle数据库之第一篇

    1 : Oracle 简介 : 是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器IP,端口,用户名.密码,点击:连接 (CLIENT/SERVER) ...

  3. Html5 Canvas动画基础碰撞检测的实现

    在Canvas中进行碰撞检测,大家往往直接采用游戏引擎(Cocos2d-JS.Egret)或物理引擎(Box2D)内置的碰撞检测功能,好奇的你有思考过它们的内部运行机制吗?下面将针对基本的碰撞检测技术 ...

  4. 前端知识体系-NodeJS相关】NodeJS基础知识全面总结

    NodeJS基础知识 1. Node的全局对象和全局变量 1.1 全局对象:所有模块都可以调用的 global:表示Node所在的全局环境,类似于浏览器的window对象. process:该对象表示 ...

  5. 单词倒序(java)

    如何将一串单词组成的字符串倒序呢?如:" we go to school" 变成"school to go we "java代码实现: public stati ...

  6. 如何使用块更改跟踪文件估算RMAN增量备份大小 (Doc ID 1938079.1)

    How to estimate RMAN incremental backup size using block change tracking file (Doc ID 1938079.1) APP ...

  7. PyCharm设置完自动上传,却不会自动上传任何内容

    Upload changed files automatically to the default server 选择了 Always 下面有一个提示 Default server or group ...

  8. 【测试点】微信小程序的常见测试点

    第一次测试微信小程序,整理了一些必要的测试点和原则,以此为参考去设计详细测试用例

  9. mysql中group by 使用

    问题描述 我现在需要查询表test,里面需要安装字段a 进行分组.分组之后还有按照b字段最大的.还要查询出字段c. 我先在使用的数据库是mysql8.0 解决 需注意: group by 分组的时候是 ...

  10. Centos7源码编译安装PHP7.2(生产环境)

    安装PHP依赖包,否则在编译的过程中可能会出现各种报错 # Centos 安装epel-release源并将系统包更新到最新版本 $ yum install epel-release-y $ yum ...