vulnyx Open writeup

信息收集

nmap

image

image

获取userFlag

通过nmap的扫描结果发现三个端口上部署的均是web服务,挨个去看一下发现8080、7681上存在有价值的信息,先看8080

image

是一个openplc server,openplc我查了一下是一套用于用于工业自动化中的系统,而openplc webserver可以理解为使用它后就可以通过web的方式,远程访问和操作openplc。搜一下openplc的默认登录账密:

image

使用默认账密尝试登录

image

成功登录上来了,这里我也尝试了网上搜到的关于openplc的rce,但是利用失败了,所以这里拿到初始shell应该不是利用openplc的漏洞,之前的那个7681端口,访问后是需要先登录的

image

从nmap的结果中可以发现,7681上运行的具体的中间件是 ttyd 1.7.7-40e79c7,通过查询可知,这是一个基于 Web 的终端(TTY)共享服务,它的作用是允许用户通过web来访问服务器的命令行终端(类似于SSH,但是基于web),简单来说就是这个端口会给认证通过的用户提供一个shell,让用户可以通过该shell执行系统命令。而之前我们登录的openplc上在功能模块里刚好有一个Users模块

image

这里能看到用户列表,由于7681端口提供的是一个shell,所以登录那里最有可能的用户名就是tirex用户,对该用户名进行爆破

image

image

使用该账密登录

image

成功拿到shell,进入家目录拿到userflag

userFlag:9624efb1d0391fc75fe4b51af3d17133(MD5)

获取rootFlag

通过ss -lnpt发现目标没有部署数据库

image

但是在openplc中我们登录是通过账密认证了的,点击Users模块中的那个root用户,查看详情

image

这里我感觉算是一个提示,那么结合上述,目标openplc可能使用的是sqlite数据库,而root用户的密码就在其中的数据库文件中,在系统上翻一下可以发现openplc安装在/opt下

image

在这里搜索db文件

find ./ -name '*.db'

image 

目标机器上刚好有sqlite3,那就直接查看openplc.db中的数据

 image

通过该密码尝试登录root

image

登录成功,之后去/root下拿到rootflag

rootFlag:f3af361f25993e68ff0e42a7ba88ce30(MD5)

 

posted @ 2025-08-29 10:35  sky2dawn  阅读(12)  评论(0)    收藏  举报