Meterpreter命令详解
一、基础命令
基础命令包含meterpreter与MSF终端、Ruby接口、目标shell等交互的命令
-
background命令 :如果想在MSF终端中执行其他任务,可以使用background命令将meterpreter终端隐藏在后台
-
sessions 命令 : metasploit的sessions命令可以查看已经成功获取的会话,如果想继续与某会话进行交互,可以使用sessions -i命令
-
quit命令 : quit命令直接关闭当前的meterpreter会话,返回MSF终端
-
shell命令 :shell命令可以获取系统的控制台shell,如果目标系统上的命令行可执行程序不存在或禁止访问,那么shell命令会出错。成功运行的结果如下:
-
irb命令:irb命令可以在meterpreter会话里与Ruby终端进行交互,直接调用metasploit封装好的函数,如下显示了使用irb命令调用client.sys.config.sysinfo()函数获取系统配置信息的结果
二、文件系统命令
文件系统命令允许meterpreter与目标的文件系统进行交互,包括查看文件内容、上传下载文件、对文件进行搜索、直接编辑文件等功能。
-
cat命令 :使用cat命令查看文件内容。下图命令,在system权限下,可以读取目标机器上的boot.ini文件,并获得了引导文件信息。这里反斜杠需要转义
-
getwd命令 :getwd命令可以获得目标机上当前的工作目录,相似的命令有getlwd,这个命令可以获得当前系统的工作目录
-
upload命令:meterpreter的upload命令可以上传文件或文件夹到目标机器上,其命令行选项的帮助如下所示:
参数-r可以将文件夹内的文件或文件夹递归的上传,不需要考虑多层目录的问题,下面的命令,可以简单地将test1.txt 上传至目标机上的C盘根目录:
-
download命令 : download命令从目标机上下载文件或文件夹,需要注意的是这里用双反斜杠进行转义
-
edit命令 : 使用edit命令可以调用vi编辑器,对目标机上的文件进行编辑
-
search命令 : search命令支持对远程目标机上的文件进行搜索,用参数-h查看帮助如下
参数-d指定搜索的起始目录或驱动,如果为空,将进行全盘搜索;参数-f指定搜索的文件或者部分文件名,支持星号(*)匹配,星号(*)匹配任意长度的字符串,问号(?)匹配任意单个字符;参数-r递归搜索子目录。如下命令在目标主机上的C:\windows目录,搜索数据库文件
三、网络命令
网络命令可用于查看目标机器上的网络状况、连接信息等,还支持在目标机器上进行端口转发。
-
ipconfig命令 : ipconfig命令用于获取目标主机上的网络接口信息
-
portfwd命令 : portfwd命令是meterpreter内嵌的端口转发器,一般在目标主机开放的端口不允许直接访问的情况下使用,比如说,目标主机开放的远程桌面3389端口只允许内网访问,这时可以使用portfwd命令进行端口转发,以达到直接访问目标主机的目的。portfwd的帮助信息如下:
假设目标主机开放了3389端口,使用如下命令将其转发到本地的1234端口,如下图所示,可以看到本地1234端口已经开放
-
route命令 : route命令用于显示目标主机的路由信息:
四、系统命令
meterpreter的系统命令用于查看目标系统的一些信息、对系统进行基本的操作等。
-
ps命令 : ps命令用于获得目标主机上正在运行的进行信
-
migrate :使用migrate命令可以将meterpreter会话从一个进程移植到另一个进程的内存空间中,这个命令在渗透攻击模块中经常使用。试想一下,如果是利用IE浏览器漏洞进行溢出得到的meterpreter会话,meterpreter代码存在于IE的内存空间中,如果用户关闭浏览器,将会终止会话连接。这时可以将会话移植到稳定的系统服务进程中,比如explorer.exe 。而且这种移植是无缝移植,不需要端口已有TCP连接再建立新的连接。
-
execute命令 : execute命令可以在目标机上执行文件,帮助信息如下:
下面的命令在目标机上隐藏执行cmd.exe程序:
另外,execute命令的-m参数支持直接从内存中执行攻击端的可执行文件 ,如 (1) execute -H -m -d calc.exe -f wce.exe -a "-o foo.txt" (2)cat foo.txt 获取hash值。 这种内存执行方式有几个优点:(1)使用-d选项设置需要显示的进程名,这样可以避开敏感人士的检查。(2)可执行文件不需要在目标机上存储,不会留下痕迹,增大了取证分析的难度。(3)从内存执行的方式能避开大部分杀毒软件的查杀,这在使用如WCE等黑客工具时尤其有用。
-
getpid命令 :getpid命令用于获得当前会话所在进程的PID值
-
kill命令 : kill命令用于终结指定的PID进程
-
getuid命令 :getuid命令用于获得运行meterpreter会话的用户名,从而查看当前会话具有的权限
-
sysinfo命令: sysinfo命令用于得到目标系统的一些信息,包括机器名、使用的操作系统等
-
shutdown命令 : shutdown命令用于关闭目标主机,显然,meterpreter会话也将被关闭。
永远相信 永远热爱