难度: Intermediate 关于: Will you gain your status as a 00 agent? 题目地址:https://www.vulnhub.com/entry/casino-royale-1,287/# Flags: 您的目标是获取root和Flag is /root/flag/flag.sh Write Up: 0x01 获取root 1.通过nmap扫描靶机端口版本,发现存在四个端口:21、25、80、8081 nmap -sV x.x.x.x 2.我们从80端口入手,首先查看网页的源代码并无发现线索,其次对80端口进行目录爆破找到一个phpmyadmin的登陆页面和一个install dirb [url] 3.我们开打install页面出现这样一个界面,点击cliek to start install 后页面报错 4.存在install页面说明网站肯定存在这个cms,我们查找相关cms版本信息并获取到源代码且存在一个exp漏洞 5.翻开源代码后台路径是pokeradmin,并且发现登陆处并且未做sql注入防护 6.直接使用sqlmap跑取账户密码后getshell sqlmap.py -u 'http://192.168.235.140:80/pokeradmin/' --data='op=adminlogin&username=admin&password=admin' --level=5 --risk=3 --os-shell 7.将kali开一个apache把一句话放在/var/www/html中,然后在靶机的shell中运行wget 8.打开中国蚁剑或中国菜刀(效果是一样的)配置如下 9.getshell后我们先将数据库的账户密码保存下来 valenka:11archives11! 10.在一段查看后没有发现有价值的信息,查看8081端口,主页面有一个Run Data Collect的按钮,点击后访问到collect.php 11.因为我们已经拿到www-data的权限了所以我们可以通过find来查找collect.php,找到8081端口的主目录在/opt/casino-royale/ find / -name [name] 12.进入8081端口主目录后查看文件权限 13.查看权限后发现只有casino-data-collection.py这个文件我可以修改,cat查看文件内容,python文件打开了user-data.log继续查看里面内容与collect.php内容一样 14.继续查看collect.php,基本了解程序大概的过程和出题人的思路,collect.php为root权限只可读所以不能更改但是执行的casino-data-collection.py为www-data组所以可以修改,而casino-data-collection.py打开了user-data.log所以php读到了log的内容,所以我们只要修改python文件即可获取到le的权限 解题思路:在python文件中通过os模块执行系统命令返回nc拿到le权限 15.修改python后,再在浏览器重新打开页面靶机会开启一个带bash的1111端口,使用攻击机的nc连接,获取到le的权限 16.但是这是一个半交互式的页面无法切换账户,通过查阅资料可以通过python调用本地shell echo "import pty; pty.spawn('/bin/bash')" > /tmp/asdf.py python /tmp/asdf.py 17.在获取到le的交互式shell后尝试第九步中valenka的账户密码登录。成功登陆但是先切回le,exit退出 valenka:11archives11!