Meterpreter介绍
Meterpreter 是一个 Metasploit 有效负载,通过许多有价值的组件支持渗透测试过程。 Meterpreter 将在目标系统上运行,并充当命令和控制架构中的代理。您将与目标操作系统和文件进行交互,并使用 Meterpreter 的专用命令。
Meterpreter有很多版本,根据目标系统提供不同的功能。
Meterpreter 是一种 Metasploit 攻击负载,它提供了一个交互式 shell,攻击者可以从中探索目标机器并执行代码。它通常使用内存中 DLL 注入来部署,以完全驻留在内存中。
Meterpreter是如何工作的?
Meterpreter 在目标系统上运行,但未安装。它在内存中运行,不会将自身写入目标上的磁盘。此功能旨在避免在防病毒扫描期间被检测到。默认情况下,大多数防病毒软件将扫描磁盘上的新文件(例如,当您从互联网下载文件时)Meterpreter 在内存(RAM - 随机存取存储器)中运行,以避免将文件写入到磁盘上目标系统(例如meterpreter.exe)。这样,Meterpreter将被视为一个进程,并且在目标系统上没有文件。
Meterpreter 还旨在通过与运行 Metasploit 的服务器(通常是您的攻击机器)进行加密通信,避免被基于网络的 IPS(入侵防御系统)和IDS (入侵检测系统)解决方案检测到。如果目标组织不解密和检查进出本地网络的加密流量(例如 HTTPS),IPS 和IDS解决方案将无法检测其活动。
虽然Meterpreter被主要防病毒软件识别,但此功能提供了一定程度的隐蔽性。
下面的示例显示了使用 MS17-010 漏洞利用的目标 Windows 计算机。您将看到 Meterpreter 正在运行,进程 ID ( PID ) 为 1304;这个PID在你的情况下会有所不同。我们使用了该 getpid
命令,该命令返回运行 Meterpreter 的进程 ID。操作系统使用进程 ID(或进程标识符)来识别正在运行的进程。所有在Linux或Windows中运行的进程都会有一个唯一的ID号;该数字用于在需要时(例如,如果需要停止)与进程进行交互。
获取pid
meterpreter > getpid
Current pid: 1304
如果我们使用ps该命令列出目标系统上运行的进程 ,我们会看到PID 1304 是 spoolsv.exe,而不是人们所期望的 Meterpreter.exe 。
meterpreter > ps
Process List
============
PID PPID Name Arch Session User Path
--- ---- ---- ---- ------- ---- ----
0 0 [System Process]
4 0 System x64 0
396 644 LogonUI.exe x64 1 NT AUTHORITY\SYSTEM C:\Windows\system32\LogonUI.exe
416 4 smss.exe x64 0 NT AUTHORITY\SYSTEM \SystemRoot\System32\smss.exe
428 692 svchost.exe x64 0 NT AUTHORITY\SYSTEM
548 540 csrss.exe x64 0 NT AUTHORITY\SYSTEM C:\Windows\system32\csrss.exe
596 540 wininit.exe x64 0 NT AUTHORITY\SYSTEM C:\Windows\system32\wininit.exe
604 588 csrss.exe x64 1 NT AUTHORITY\SYSTEM C:\Windows\system32\csrss.exe
644 588 winlogon.exe x64 1 NT AUTHORITY\SYSTEM C:\Windows\system32\winlogon.exe
692 596 services.exe x64 0 NT AUTHORITY\SYSTEM C:\Windows\system32\services.exe
700 692 sppsvc.exe x64 0 NT AUTHORITY\NETWORK SERVICE
716 596 lsass.exe x64 0 NT AUTHORITY\SYSTEM C:\Windows\system32\lsass.exe 1276 1304 cmd.exe x64 0 NT AUTHORITY\SYSTEM C:\Windows\system32\cmd.exe
1304 692 spoolsv.exe x64 0 NT AUTHORITY\SYSTEM C:\Windows\System32\spoolsv.exe
1340 692 svchost.exe x64 0 NT AUTHORITY\LOCAL SERVICE
1388 548 conhost.exe x64 0 NT AUTHORITY\SYSTEM C:\Windows\system32\conhost.exe
即使我们更进一步查看 Meterpreter 进程使用的 DLL(动态链接库)(本例中为PID 1304),我们仍然找不到任何跳跃的内容(例如没有 meterpreter.dll)
TheMeterpreterprocess
C:\Windows\system32>tasklist /m /fi "pid eq 1304"
tasklist /m /fi "pid eq 1304"
Image Name PID Modules
========================= ======== ============================================
spoolsv.exe 1304 ntdll.dll, kernel32.dll, KERNELBASE.dll,
msvcrt.dll, sechost.dll, RPCRT4.dll,
USER32.dll, GDI32.dll, LPK.dll, USP10.dll,
POWRPROF.dll, SETUPAPI.dll, CFGMGR32.dll,
ADVAPI32.dll, OLEAUT32.dll, ole32.dll,
DEVOBJ.dll, DNSAPI.dll, WS2_32.dll,
NSI.dll, IMM32.DLL, MSCTF.dll,
CRYPTBASE.dll, slc.dll, RpcRtRemote.dll,
secur32.dll, SSPICLI.DLL, credssp.dll,
IPHLPAPI.DLL, WINNSI.DLL, mswsock.dll,
wshtcpip.dll, wship6.dll, rasadhlp.dll,
fwpuclnt.dll, CLBCatQ.DLL, umb.dll,
ATL.DLL, WINTRUST.dll, CRYPT32.dll,
MSASN1.dll, localspl.dll, SPOOLSS.DLL,
srvcli.dll, winspool.drv,
PrintIsolationProxy.dll, FXSMON.DLL,
tcpmon.dll, snmpapi.dll, wsnmp32.dll,
msxml6.dll, SHLWAPI.dll, usbmon.dll,
wls0wndh.dll, WSDMon.dll, wsdapi.dll,
webservices.dll, FirewallAPI.dll,
VERSION.dll, FunDisc.dll, fdPnp.dll,
winprint.dll, USERENV.dll, profapi.dll,
GPAPI.dll, dsrole.dll, win32spl.dll,
inetpp.dll, DEVRTL.dll, SPINF.dll,
CRYPTSP.dll, rsaenh.dll, WINSTA.dll,
cscapi.dll, netutils.dll, WININET.dll,
urlmon.dll, iertutil.dll, WINHTTP.dll,
webio.dll, SHELL32.