hackthebox-CCTV靶场练习

一、信息收集

这次选的是HTB的一个赛季靶场,难度为easy。

image-20260325194925158

拿到IP地址后先nmap扫一下:

image-20260325200223493

发现网站域名和开放的端口号,只开放了一个80和一个22,分别是web页面和ssh登录。

点进网站看一下,直接ip点开网站打不开,需要在本机的域名解析中加上才可以,在/etc/hosts中加上域名解析:

image-20260325200802393

二、通过CVE拿到第一个shell

然后点开网站即可打开:

发现没什么东西,有个登录按钮,进去看一下

image-20260325200858375

发现是一个系统的登录页面:

image-20260325200952395

且没有验证码,理论上可以进行爆破登录。但是对于这种系统,先去搜一下有没有默认密码最快,发现这是一个视频监控软件,且有相应的默认密码admin:admin。尝试登录一下发现可以成功登入。

image-20260325200127913

点进去后发现是一个很大的系统,

image-20260325201228136

但是可以看到该系统的版本为1.37.63,既然如此最快速的方法还是去搜一下这个系统有没有CVE,有的话直接利用就好了,发现网上正好有该版本适用的CVE,是一个sql注入,那就先注入一下看看能拿到什么数据

image-20260325201702207

直接用poc显示没有认证,这时候想起来之前登录过,应该加上cookie才可以

image-20260325202018192

加上cookie后即可sql注入,发现注入点且给了payload

image-20260325202556730

之后就是常规的爆库爆表爆字段了,基本上就是运行sqlmap就好了:

下面贴一下命令吧:

1
2
3
4
5
6
7
8
爆库名:
sqlmap -u 'http://cctv.htb/zm/index.php?view=request&request=event&action=removetag&tid=1' --cookie="ZMSESSID=bb2k6c68bbbqtt15c3ofouk3ci" --dbs
爆表名:
sqlmap -u 'http://cctv.htb/zm/index.php?view=request&request=event&action=removetag&tid=1' --cookie="ZMSESSID=bb2k6c68bbbqtt15c3ofouk3ci" -D zm --tables
爆列名:
sqlmap -u 'http://cctv.htb/zm/index.php?view=request&request=event&action=removetag&tid=1' --cookie="ZMSESSID=bb2k6c68bbbqtt15c3ofouk3ci" -D zm -T Users --columns
拿到用户名密码:
sqlmap -u 'http://cctv.htb/zm/index.php?view=request&request=event&action=removetag&tid=1' --cookie="ZMSESSID=bb2k6c68bbbqtt15c3ofouk3ci" -D zm -T Users -C "Password" --where="Username='mark'" --dump

最后拿到用户名和密码为:

image-20260325210123885

利用kali自带的密码爆破器john来爆破hash密码:

image-20260325210525397

最后爆破出账号密码为:mark:opensesame

然后ssh登录,发现目录下没有flag,那可能就是这个服务器上有多个用户,还需要我们登录到其他用户来拿flag。

image-20260325210734831

看一下/etc/passwd,发现一些可疑账户,先记下来

image-20260325210853655

再看一下home目录,发现另一个用户,也就是确认了需要切换到这个用户。

image-20260325210942990

三、提权到其他用户

然后就算切换到其他账户也需要提权,先下载linpeas这个脚本,简单讲一下这个脚本

image-20260325211638449

链接为PEASS-ng/linPEAS/README.md at master · peass-ng/PEASS-ng · GitHub

然后根据教程应该先下载到本地然后运行,但是拿到的shell连不了外网,只能通过kali这个机器来进行中转

image-20260325212324314

找到本地ip,然后wget一下并执行:

然后即可下载完执行

image-20260325212434257

然后这个工具就会从多方面来帮我们找一些提取路径,其中会给一些高危可能点:

image-20260325213122267

还有端口情况:

image-20260325213202115

有一个命令可以suid执行,搜一下这个命令的提权方式,发现版本不符合

image-20260325213230780

image-20260325213912270

只能放弃,再看看linpeas的其他输出,发现有一个server.log比较可疑

image-20260325213944420

看一下,很奇怪,这个用户一直在登录,每隔几秒就在登录,既然如此就可以直接嗅探一下网络包从而抓到他的账号密码:

image-20260325214123554

网上搜一下嗅探本地报文的命令,如下,找ai解释一下

image-20260325214240904

找到账号密码:sa_mark X1l9fx1ZjS7RZb

image-20260325215519433

然后去登录一下,拿到用户flag

image-20260325215724931

四、拿到ROOT权限

紧接着想办法提权到root,这时候发现其他的都没什么思路,可以看一下端口信息

image-20260325222250361

确实新发现一下nmap扫不到的端口,这时候用nmap定点扫一下

image-20260325222200343

发现8765端口为http服务,则搭建一个隧道访问一下

ssh -L 8765:127.0.0.1:8765 mark@10.129.253.78

发现另一套系统

image-20260325222555347

查看一下前端代码,是否有一些指纹

image-20260325222640235

发现架构名称和版本号,为motionEye Version 0.43.1b4,搜一下这个版本的cve,发现可以rce的cve:

CVE-2025-60787 : None - 漏洞平台

然后就可以按照上面的路径直接进行漏洞利用即可:

image-20260325223337702

拿到root的shell

image-20260325223438408

五、后话

后面回顾的时候发现上面的提权脚本也看了sudo的版本,发现这个版本刚好在前一段时间的sudo提权cve的影响范围内,所以实际上可以直接利用这个sudo提权到root,应该会更加方便一点。。

image-20260325223637449

image-20260325223748009