在这篇文章中,我们将跟大家介绍如何使用Meterpreter来收集目标Windows系统中的信息,获取用户凭证,创建我们自己的账号,启用远程桌面,进行屏幕截图,以及获取用户键盘记录等等。

相关Payload

Payload中包含有需要在远程系统中运行的恶意代码,而在Metasploit中Payload是一种特殊模块,它们能够以漏洞利用模块运行,并能够利用目标系统中的安全漏洞实施攻击。简而言之,这种漏洞利用模块可以访问目标系统,而其中的代码定义了Payload在目标系统中的行为。

Metasploit中的Payload模块主要有以下三种类型:

-Single

-Stager

-Stage

Single是一种完全独立的Payload,而且使用起来就像运行calc.exe一样简单,例如添加一个系统用户或删除一份文件。由于Single Payload是完全独立的,因此它们有可能会被类似netcat这样的非metasploit处理工具所捕捉到。

Stager这种Payload负责建立目标用户与攻击者之间的网络连接,并下载额外的组件或应用程序。一种常见的Stagers Payload就是reverse_tcp,它可以让目标系统与攻击者建立一条tcp连接。另一种常见的是bind_tcp,它可以让目标系统开启一个tcp监听器,而攻击者随时可以与目标系统进行通信。

Stage是Stager Payload下载的一种Payload组件,这种Payload可以提供更加高级的功能,而且没有大小限制。

在Metasploit中,我们可以通过Payload的名称和使用格式来推断它的类型:

Single Payload的格式为<target>/ <single>
Stager/Stage Payload的格式为<target>/ <stage> / <stager>

当我们在Metasploit中执行“show payloads”命令之后,它会给我们显示一个可使用的Payload列表:

在这个列表中,windows/powershell_bind_tcp就是一个Single Payload,它不包含Stage Payload。而windows/x64/meterpreter/reverse_tcp则由一个Stager Payload(reverse_tcp)和一个Stage Payload(meterpreter)组成。

Meterpreter是什么?

在Metasploit Framework中,Meterpreter是一种后渗透工具,它属于一种在运行过程中可通过网络进行功能扩展的动态可扩展型Payload。这种工具是基于“内存DLL注入”理念实现的,它能够通过创建一个新进程并调用注入的DLL来让目标系统运行注入的DLL文件。

其中,攻击者与目标设备中Meterpreter的通信是通过Stager套接字实现的。

部署Meterpreter

在这里,我们选择使用reverse_tcp(windows/x64/meterpreter/reverse_tcp)来作为Stager,配置和运行情况如下图所示:

注意:运行了exploit命令之后,我们开启了一个reverseTCP处理器来监听192.168.198.196:4444,即我(攻击者)的本地主机地址(LHOST)和端口号(LPORT)。运行成功之后,我们将会看到命令提示符meterpreter >出现。

接下来,我们就可以开始“做事”了。

访问文件系统

Meterpreter支持非常多的文件系统命令(基本跟Linux系统命令类似),一些常用命令如下:

cd:切换目标目录;

cat:读取文件内容;

del:删除文件;

edit:使用vim编辑文件

ls:获取当前目录下的文件;

mkdir:新建目录;

rmdir:删除目录;

上传/下载文件

“download”命令可以帮助我们从目标系统中下载文件,“upload”命令则能够向目标系统上传文件。

“download”命令的使用样例如下所示:

权限提升

有的时候,你可能会发现自己的Meterpreter会话受到了用户权限的限制,而这将会严重影响你在目标系统中的活动。比如说,修改注册表、安装后门或导出密码等活动都需要提升用户权限,而Meterpreter给我们提供了一个“getsystem”命令,它可以使用多种技术在目标系统中实现提权:

“getuid”命令可以获取当前用户的信息,在上面的例子中,用户为“NT AUTHORITY\SYSTEM”,这个就是Windows本地系统账号。

获取凭证

hashdump模块(post)可以从SAM数据库中导出本地用户账号,credential_collector脚本(post/windows/gather/credentials)也可以从目标设备中收集令牌信息。

脚本和post模块都需要通过“run”命令执行,我在测试环境中运行hashdump模块后的结果如下:

数据的输出格式为:用户名:SID:LM哈希:NTLM哈希:::,所以我们得到了三个用户账号,分别为Administrator, Guest和Coen。

其中的LM哈希(aad3b435b51404eeaad3b435b51404ee)跟NTLM哈希(31d6cfe0d16ae931b73c59d7e0c089c0)对应的是一个空密码。

接下来要处理的就是用户Coen的密码(f773c5db7ddebefa4b0dae7ee8c50aea)了。虽然我们可以使用类似John the Ripper这样的工具来破解密码,但是我们直接Google这个哈希之后,就直接得到了密码明文trustno1

运行程序

我们还可以使用“execute”命令在目标系统中执行应用程序。这个命令的使用方法如下:

execute -f<file> [Options]

运行后它将执行file参数所指定的文件。可选参数如下:

-H:创建一个隐藏进程

-a:传递给命令的参数

-i:跟进程进行交互

-m:从内存中执行

-t:使用当前伪造的线程令牌运行进程

-s:在给定会话中执行进程

屏幕截图

我们可以使用“screenshot”命令来进行屏幕截图并存储在我们的系统之中。

截取的效果如下所示:

创建一个新账号

接下来,我们可以在目标系统中创建一个新的用户账号(getgui脚本,使用-u和-p参数),并给它分配管理员权限(使用),然后将其添加到”远程桌面用户”组中。

当然了,你也可以尝试将这个新添加的用户Hacker在Windows登录界面中隐藏。

启用远程桌面

当我们新添加的用户已经拥有远程桌面权限之后,我们就可以使用这个账号凭证来开启远程桌面会话了。

首先,我们需要确保目标Windows设备开启了远程桌面功能(需要开启多个服务),不过我们的getgui脚本可以帮我们搞定。我们可以使用-e参数确保目标设备开启了远程桌面功能(重启之后同样会自动开启):

在开启远程桌面会话之前,我们还需要使用“idletime”命令检查远程用户的空闲时长:

这样可以降低你被发现的概率,因为当目标用户登录之后,它将会看到如下图所示的信息:

下图显示的是攻击者使用新创建的“Hacker”账号连接到远程桌面的画面:

键盘记录

Meterpreter还可以在目标设备上实现键盘记录功能,键盘记录主要涉及以下三种命令:

keyscan_start:开启键盘记录功能

keyscan_dump:显示捕捉到的键盘记录信息

keyscan_stop:停止键盘记录功能

首先,我们需要启动键盘记录进程:

启动之后,我们需要等待一段时间后再导出记录信息:

不过在使用键盘记录功能时,通常需要跟目标进程进行绑定,接下来我们介绍如何绑定进程。

绑定进程

Meterpreter既可以单独运行,也可以与其他进程进行绑定。因此,我们可以让Meterpreter与类似explorer.exe这样的进程进行绑定,并以此来实现持久化。

在下面的例子中,我们会将Meterpreter跟winlogon.exe绑定,并在登录进程中捕获键盘记录。

首先,我们需要使用“ps”命令查看目标设备中运行的进程:

接下来,使用“getpid”找出需要绑定的进程,接下来,使用migrate命令+pid来绑定进程。

绑定完成之后,我们就可以开始捕获键盘数据了:

接下来,我们可以选择导出键盘记录,或者使用命令“enum_logged_on_users”来检查用户是否成功登录:

等待片刻之后,使用keyscan_dump命令导出记录信息:

捕捉到的用户密码为trustno1。

清除事件日志

完成攻击操作之后,千万别忘了“打扫战场”。我们的所有操作都会被记录在目标系统的日志文件之中,因此我们需要在完成攻击之后使用命令“clearev”命令来清除事件日志:

总结

当然了,Meterpreter的功能还远不止如此,本文介绍的内容仅仅是冰山一角,感兴趣的同学可以利用搜索引擎来了解更多的相关知识。

手把手教你如何利用Meterpreter渗透Windows系统的更多相关文章

  1. 教你如何用Meterpreter渗透Win系统

    在这篇文章中,我们将跟大家介绍如何使用Meterpreter来收集目标Windows系统中的信息,获取用户凭证,创建我们自己的账号,启用远程桌面,进行屏幕截图,以及获取用户键盘记录等等. 相关Payl ...

  2. 手把手教你如何利用 HeroKu 免费获取一个 Scrapyd 集群

    手把手教你如何利用 HeroKu 免费获取一个 Scrapyd 集群 本文原始地址:https://sitoi.cn/posts/48724.html 准备环境 一个 GitHub 的账号 一个 He ...

  3. 利用Python进行windows系统上的图像识别与点击(Mac OS系统也可以)

    系统环境: 1.安装了python 2.安装了pyautogui模块 windows系统:无需安装依赖模块,在cmd中直接输入pip install pyautogui即可完成安装 Mac OS系统: ...

  4. 【网络与系统安全】20179209 利用metasploit对windows系统的渗透

    这次实验的主角是素有"内网杀手"之称的metasploit.还是少说一些夸赞它的话(因为即使功能再强大,不明白它的原理,不会灵活使用它集成的功能,一样没有用),我们直入主题.简单说 ...

  5. 【教程】手把手教你如何利用工具(IE9的F12)去分析模拟登陆网站(百度首页)的内部逻辑过程

    [前提] 想要实现使用某种语言,比如Python,C#等,去实现模拟登陆网站的话,首先要做的事情就是使用某种工具,去分析本身使用浏览器去登陆网页的时候,其内部的执行过程,内部逻辑. 此登陆的逻辑过程, ...

  6. 手把手教你如何安装Tensorflow(Windows和Linux两种版本)

    tensorflow 不支持Python2.7,最好选择下载Python3.5 现在越来越多的人工智能和机器学习以及深度学习,强化学习出现了,然后自己也对这个产生了点兴趣,特别的进行了一点点学习,就通 ...

  7. 人人都能看懂的卡西欧fx991cnx玩机指南,手把手教你如何利用计算器的漏洞爆机

    专业术语说明 你是VerB还是VerC 别人问你这个问题的时候不要慌,帮你看你的计算器是Ver几: 同时按住shift.7.开机键 9 5次shift 第一行后半句即是 紧接着可以顺便看看计算器的序列 ...

  8. 手把手教你树莓派实现简易室内监控系统(C)之BOA服务器的搭建

    本篇主要讲利用BOA服务器做室内监控系统的服务器端. 古人云:万事开头靠百度,实在不行就Google.小编也是一步一步的,亲自搭建成功,不能说是万全之策,仅仅是给大家一个参考就满足了. 第一步: 1. ...

  9. 手把手教你树莓派实现简易室内监控系统(A)

    第一次写博文,有很多疏漏之处,然后受逼乎影响较深,希望大家多多包涵! _______________________________________________分割线是这样画的吧_________ ...

随机推荐

  1. luogu2756 飞行员配对方案问题

    匈牙利 #include <iostream> #include <cstring> #include <cstdio> using namespace std; ...

  2. logging模块的作用以及应用场景

    一.python中的logging模块 logging模块定义的函数和类为应用程序和库的开发实现了一个灵活的事件日志系统.logging模块是Python的一个标准库模块,由标准库模块提供日志记录AP ...

  3. 使用 D8 分析 javascript 如何被 V8 引擎优化的

    在上一篇文章中我们讲了如何使用 GN 编译 V8 源码,文章最后编译完成的可执行文件并不是 V8,而是 D8.这篇我们讲一下如何使用 D8 调试 javascript 代码. 如果没有 d8,可以使用 ...

  4. 将json的文本文件转换为csv文件

    import pandas as pd import fire import glob import json def text_to_csv(file_name): json_data = json ...

  5. wpf Combobox模拟键盘按键

    private void RadComboBox_PreviewKeyUp(object sender, KeyEventArgs e) { try { var obj = (RadComboBox) ...

  6. iOS开发中六种手势识别

    iOS开发中手势识别有六种: 轻击手势(TapGestureRecognizer), 轻扫手势 (SwipeGestureRecognizer), 长按手势(LongPressGestureRecog ...

  7. iOS学习笔记28-系统服务(一)短信和邮件

    一.系统应用 在开发某些应用时,我们可能希望能够调用iOS系统内置的电话.短信.邮件.浏览器应用,或者直接调用安装的第三方应用,这个要怎么实现呢? 这里统一使用UIApplication的一个对象方法 ...

  8. 【Luogu】P1472奶牛家谱(DP)

    题目链接 这是一道考思维的好题. 一开始设f[i][j]是i个点刚好j层的方案数,死活调不出来,看题解发现可以改为<=j层的方案数,最后输出f[n][m]-f[n][m-1]就好了. 对于计算考 ...

  9. 只用css3实现菜单的toggle效果

    一.原理: 使用label与input来实现,label和复选框是有关联的,label的for属性对应的是input的id,所以点击label时,它就会勾选或取消复选框. 如果我们需要让菜单默认显示, ...

  10. poj 3708 Recurrent Function

    Recurrent Function Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 1233   Accepted: 336 ...