管理Meterpreter和Shell会话

成功利用主机后,会打开shell或Meterpreter会话。默认情况下,Metasploit尝试交付Meterpreter有效负载。Meterpreter负载被上传到远程机器,允许您运行Metasploit模块。如果Metasploit无法交付Meterpreter有效负载,那么它将打开一个shell。

根据用于创建会话的模块,将打开Shell会话或同时打开Shell和Meterpreter会话。这是因为shell有效负载是通过在远程机器上运行命令创建的,它们更容易“启动”。一些漏洞在功能上是有限的,并且shell命令需要较少的漏洞操作。

Meterpreter shell允许您访问Metasploit模块和命令shell中不可用的其他操作。

shell会话打开目标主机上的标准终端,为您提供与操作系统上的终端类似的功能。根据使用的攻击类型,功能可能有所不同。使用shell不能提供与Meterpreter shell相同的操作。

命令Shell

“命令Shell”列在Shell和Meterpreter下面。虽然名称相同,但功能不同。Meterpreter >命令Shell将打开一个Meterpreter shell,而Shell >命令Shell将打开一个标准终端。

管理Meterpreter会话

要访问顶部菜单中的会话页面,请转到“Sessions”。

Meterpreter“活动会话”页面为您提供以下信息:

  • 会话—会话编号。它们按创建的顺序附加到会话中。
  • 操作系统—主机操作系统。
  • 宿主—主机地址和名称。
  • 类型-外壳的类型。
  • 年龄—会话打开的时间,以分钟或秒为单位。一旦达到60秒,时间将以分钟为单位记录。
  • 描述—任何与会话如何打开相关的信息。例如,bruteforce打开的会话将包含使用的用户名和密码。
  • 攻击模块-用来打开会话的漏洞。

查看可用Meterpreter操作

要查看Meterpreter shell在会话期间的所有可用操作,请执行以下操作:

  1. 在“活动会话”下选择一个“类型”为“Meterpreter”的会话。
  1. 在会话页上,查看可用的操作。从这个页面,您可以启动一个终端,查看可用的模块并运行使用后操作。

Meterpreter会话页面有以下信息:

  • 会话—会话号和目标主机地址。在上图中第2节127.0.0.1
  • 会话类型—用于打开会话的有效载荷和模块的类型。
  • 信息-任何关于会议如何开始的信息。如果这是一个蛮力攻击的结果,它将包括使用的身份验证类型和凭据对。
  • 攻击模块-利用打开会话。
  • 可用的行动-所有可以采取的行动。
  • 会话历史-在公开会议期间所采取的所有行动的详细列表。
  • Post-Exploitation模块—根据操作系统和负载类型可运行的模块。

启动Meterpreter命令Shell

在“可用操作”下单击命令Shell.它将打开一个空白终端。最上面是会话ID和目标主机地址。在本例中,会话ID为:Metasploit—Mdm::Session ID # 2 (127.0.0.1)

底部是壳层输入。Meterpreter >

查看可用的Meterpreter Shell命令

  • 查看可用命令类型的列表Meterpreter > ?它将显示一个列表可用命令每一种都有描述。从这里,您可以运行一个模块,查看目标主机文件并获取网络信息。

  • 从shell使用中关闭会话辞职

Meterpreter Shell命令

         
1
核心命令
2
= = = = = = = = = = = = =
3.
4
命令的描述
5
------- -----------
6
?帮助菜单
7
background当前会话的背景信息
8
背景别名
9
bgkill杀死一个背景仪表脚本
10
bglist运行后台脚本的列表
11
bgrun作为后台线程执行mepreter脚本
12
channel显示信息或控制活动通道
13
关闭通道
14
disable_unicode_encoding禁用unicode字符串编码
15
enable_unicode_encoding启用unicode字符串编码
16
exit终止mepreter会话
17
get_timeouts获取当前会话超时值
18
guid获取会话guid
19
帮助帮助菜单
20.
info显示Post模块信息
21
在当前会话上打开一个交互式的Ruby shell
22
加载一个或多个仪表扩展
23
machine_id获取附加到会话的机器的MSF ID
24
迁移服务器到另一个进程
25
管理pivot监听器
26
在当前会话上打开pry调试器
27
quit终止meterpreter会话
28
read从通道中读取数据
29
resource执行文件中的命令
30.
run执行mepreter脚本或Post模块
31
secure (Re)在会话中协商TLV报文加密
32
sessions快速切换到其他会话
33
set_timeouts设置当前会话超时时间
34
迫使Meterpreter安静下来,然后重新启动会话。
35
transport修改当前的传输机制
36
为“load”使用弃用别名
37
uuid获取当前会话的uuid
38
write将数据写入通道
39
40
41
Stdapi:文件系统命令
42
============================
43
44
命令的描述
45
------- -----------
46
cat将文件的内容读到屏幕上
47
cd改变目录
48
checksum获取文件的校验和
49
cp拷贝源到目标
50
列表文件(ls的别名)
51
download下载文件或目录
52
编辑文件
53
打印本地工作目录
54
打印工作目录
55
lcd更改本地工作目录
56
ls列出本地文件
57
打印本地工作目录
58
ls列表文件
59
mkdir做目录
60
mv将源移动到目标
61
pwd打印工作目录
62
rm删除指定的文件
63
删除文件夹删除目录
64
搜索文件
65
show_mount列出所有挂载点/逻辑驱动器
66
upload上传文件或目录
67
68
69
Stdapi:网络命令
70
===========================
71
72
命令的描述
73
------- -----------
74
arp显示主机arp缓存
75
getproxy显示当前代理配置
76
ifconfig显示接口
77
ipconfig显示接口
78
netstat显示网络连接
79
portfwd将本地端口转发给远程服务
80
resolve在目标上解析一组主机名
81
route查看并修改路由表
82
83
84
Stdapi:系统命令
85
=======================
86
87
命令的描述
88
------- -----------
89
clearev清除事件日志
90
drop_token放弃任何活动模拟令牌。
91
执行命令
92
getenv获取一个或多个环境变量值
93
getpid获取当前进程标识符
94
getprivs尝试启用当前进程的所有权限
95
获取服务器作为用户运行的SID
96
getuid获取服务器作为用户运行
97
终止进程
98
localtime显示目标系统的本地日期和时间
99
pgrep按进程名过滤进程
One hundred.
pkill按名称终止进程
101
列表正在运行的进程
102
reboot重启远程计算机
103
reg修改远程注册表并与之交互
104
在远程机器上调用RevertToSelf()
105
Drop into系统命令
106
shutdown关闭远程计算机
107
steal_token试图从目标进程窃取一个模拟令牌
108
suspend挂起或恢复进程列表
109
sysinfo获取远端系统信息,如OS
110
111
112
Stdapi:用户界面命令
113
===============================
114
115
命令的描述
116
------- -----------
117
enumdesktops列出所有可访问的桌面和窗口工作站
118
getdesktop获取当前meter解释器桌面
119
idletime返回远程用户空闲的秒数
120
keyboard_send发送按键
121
keyevent发送键事件
122
keyscan_dump转储击键缓冲区
123
keyscan_start开始捕获击键
124
keyscan_stop停止捕获击键
125
发送鼠标事件
126
屏幕共享实时监控远程用户的桌面
127
截图交互式桌面的截图
128
setdesktop修改仪表当前桌面
129
uictl控制一些用户界面组件
130
131
132
Stdapi:摄像头命令
133
=======================
134
135
命令的描述
136
------- -----------
137
record_mic从默认麦克风记录音频,持续X秒
138
webcam_chat开启视频聊天
139
webcam_list列表网络摄像头
140
webcam_snap从指定的网络摄像头中获取快照
141
webcam_stream播放指定摄像头的视频流
142
143
144
Stdapi:音频输出命令
145
= = = = = = = = = = = = = = = = = = = = = = = = = = = = =
146
147
命令的描述
148
------- -----------
149
播放目标系统上的音频文件,没有写入磁盘
150
151
152
我感到:提升命令
153
======================
154
155
命令的描述
156
------- -----------
157
getsystem尝试将您的权限提升到本地系统的权限。
158
159
160
Priv:密码数据库命令
161
================================
162
163
命令的描述
164
------- -----------
165
hashdump转储SAM数据库的内容
166
167
168
我感到:Timestomp命令
169
========================
170
171
命令的描述
172
------- -----------
173
timestomp操作文件MACE属性

管理Shell会话

Shell会话页面提供了以下信息:

  • **Session - **Session号和目标主机地址。在上图中第2节127.0.0.1
  • **会话类型- **用于打开会话的有效负载和模块的类型。
  • 信息-任何关于会议如何开始的信息。如果这是一个蛮力攻击的结果,它将包括使用的身份验证类型和凭据对。
  • 攻击模块-利用打开会话。
  • **可用的行动- **所有可采取的行动。
  • **会话历史- **在开放会话期间采取的所有行动的详细列表。
  • **后开发模块- **模块可运行基于操作系统和有效负载类型。

查看可用的Shell操作

  1. 在“活动会话”下选择一个“类型”为“Shell”的会话。
  1. 查看shell会话页面。从这个页面,您可以启动一个shell并运行使用后操作。由于这是一个shell会话,可用的“Post-Exploitation Modules”将与Meterpreter会话不同。他们将依赖于使用的exploit。

Shell会话页面有以下信息:

  • **Session - **Session号和目标主机地址。在上图中第2节127.0.0.1
  • **会话类型- **用于打开会话的有效负载和模块的类型。
  • 信息-任何关于会议如何开始的信息。如果这是一个蛮力攻击的结果,它将包括使用的身份验证类型和凭据对。
  • 攻击模块-利用打开会话。
  • **可用的行动- **所有可采取的行动。
  • **会话历史- **在开放会话期间采取的所有行动的详细列表。
  • **后开发模块- **模块可运行基于操作系统和有效负载类型。

启动命令Shell

在“可用操作”下单击命令Shell.然后它将打开一个空白终端。

会话ID和目标主机地址显示在命令的顶部。在本例中,会话ID为:Metasploit—Mdm::Session ID # 1 (127.0.0.1) SSH vagrant:vagrant (127.0.0.1:22)

底部是壳层输入。壳>shell可用的命令取决于目标主机的操作系统。