运行环境
- Virtualbox (二选一)
- Vnware Workstation player
通关提示
- fristi
设置
首先,我们在开始之前,我们按照作者的要求设置虚拟机的MAC地址
08:00:27:A5:A6:76
然后打开VM
发现靶机ip为 : 192.168.1.109
本次所选攻击机为kali ,ip为
对靶机进行服务探测:
nmap -sS -Pn -T4 -p 1-65535 192.168.1.109
既然只有一个端口,那就扫描再具体扫描80端口:
nmap -A -O -p 80 192.168.1.109
我们看到以下具体信息:
Apache httpd 2.2.15 ((CentOS) DAV/2 PHP/5.3.3)
http-robots.txt: 3 disallowed entries
现在我们浏览web服务
我们查看一下robots.txt,看一下目录结构
现在我们来尝试访问这些目录
就只出现这一张脸,顺便查看了一下源代码,事实证明并没有什么卵用,
我们用 御剑 扫一下目录:
我们访问一下这个/images 目录
感觉好鸡肋...不,鸡肋都算不上,没有思路了...
不过,当我们翻看主页面时,发现这么一段话:
"KEEP CALM AND DRINK FRISTI"
我们尝试一下 /fristi 这个目录....
真是众里寻他千百度,那人却在...眼前
话不多说,先扫个目录:
等等....我发现了一个上传页面!!!
emememem......我们看看其他的
看见了登陆框:
一波万能密码,弱口令操作....失败
查看源代码,发现两个注释:
看到一有一条信息,这是一个叫eezeepz的人留下来的。
那么那就有这种可能:他也许用eezeepz当做他的用户名或者密码。
再向下看。我们看到了一大块用base64编码的段落
base64解密一波:
发现是一个PNG的图片被base64编码了,这个时候我们还原图片
先保存为1.txt
然后在kali 命令行终端中输入:
base64 -d /1.txt > fristi.png
看起来像个密码,这样的话:
username : eezeepz
password : keKkeKKeKKeKkEkkEk
登陆尝试一下:
hahaha , 还有个上传页面:
这时候就直接上传shell ,比较牛逼的shell可以在这里下载:
http://pentestmonkey.net/tools/web-shells/php-reverse-shell
做一些必要的ip和端口修改
开启1234端口监听:
上后开始上传我们的shell
果然对文件上传做了限定...不过问题不大
我们直接在文件名后面加一个.jpg
上传php-reverse-shell.php.jpg
上传成功!我们来访问一下,顺便关注一下我们的端口监听:
我们已经接收到shell ,现在已经得到了一个低端权限
下面就是提权 ,我们看一下目录,有没有什么可以挖掘的东西:
在/home 目录下发现
马上看到关键人物eezeepz!
继续向前看
目录文件太多,最后发现了一个notes.txt
是 Jerry 写给 EZ(eezeepz)的信
这种东西...应该找百度翻译:
----------------------------------------------------
我让你做一些自动检查,但我只允许您访问/usr/bin /*系统二进制文件。但是复制一些额外需要的命令给我
homedir:chmod,df,cat,echo,ps,grep,egrep,所以你可以使用那些从/home/admin/
不要忘记为每个二进制指定完整的路径!
只需将一个名为“runthis”的文件放入/tmp/,每个行一个命令。这个输出到/tmp/文件中的“cronresult”。它应该使用我的帐户特权每分钟运行。
---------------------------------------------------
我们得到了提示,照着做就行了!
在/tmp下创建一个"runtis"文件
赋予权限:
现在我们可以阅读 /home/admin 下的内容了:
有几个文件。依次看一下
cryptpass.py
cryptepass.txt
whoisyourgodnow.txt
看样子应该是用了py文件去加密的。
我们重写一下文件:
解密试试:
分别得到:
1.mVGZ3O3omkJLmy2pcuTq :thisisalsopw123
2.=RFn0AKnlMHMPIzpyuTI0ITG :LetThereBeFristi!
这有可能是用户fristgod 的密码
我们换一下用户试试!
失败了....
查了一下网上是这样解释的:
跟 su 命令的实现有关; B环境上su的实现应该是判断标准输入是不是tty ; 而A环境上su的实现则允许从其他文件读取密码。
方法如下:
python -c 'import pty;pty.spawn("/bin/sh")'
接下来就可以正常使用了:
现在我们已经成功进入fristigod账户,ls试试:
没有东西...
-la 查看一下隐藏文件试试:
原来都藏起来了。。
到.secret_admin_stuff看看
继续 ls -la 查看具体信息
发现这个是个root的文件
权限应该是不够的
我们能回去看看history有没有一些线索
可以看到 “fristigod”用户一直sudo来执行命令
试试 sudo -l
让输入密码,上面我们得到了两个密码
呃。。。
再试试
成功了...居然是一个密码....好吧。
现在我们能用id 那么应该也可以创建一个shell
sudo -u fristi /var/fristigod/.secret_admin_stuff/doCom /bin/bash
成功了。直接去看/root下的文件
得到flag
.
.
.
真是万分艰难...
来源:oschina
链接:https://my.oschina.net/u/4298485/blog/3937316