• 中级篇丨从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文件夹里”这才茅塞顿开,顺利解开题目,非常不错的靶机。

  • 相关阅读:
    嵌入式系统的应用
    linux shell编程
    JS高级学习历程-1
    JavaScript入门
    二叉树 数据结构
    用css固定textarea文本域大小尺寸
    ie img 3px bug
    OpenCV-Python(1)在Python中使用OpenCV进行人脸检测
    教你用Python解决非平衡数据问题(附代码)
    图片人脸检测(OpenCV版)
  • 原文地址:https://www.cnblogs.com/ichunqiu/p/12372529.html
Copyright © 2020-2023  润新知