freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

VnlnHub EvilBox---One
2022-09-07 20:28:11
所属地 湖南省

靶场搭建

靶场下载地址:https://download.vulnhub.com/evilbox/EvilBox---One.ova

下载下来是虚拟机.ova压缩文件,直接用Vmvare导出就行

打开后把网络模式设置为NAT模式(桥接模式也可以,和kali攻击机保持一致就可以)

开启虚拟机

开启后发现没有自动获取ip,解决办法看我这个文章:https://www.freebuf.com/articles/network/343723.html

解决后,重启发现这里还是没有显示ip,但是扫描能扫描到ip,看来是这里回显有问题

靶场搭建完成

渗透测试

由于不知道靶机ip,所以需要扫描NAT的网段

128是kali攻击机的ip,所以135是靶机ip

扫描靶机端口开放情况

发现开放了22端口,存在ssh服务

发现开放了80端口,存在http服务,并且服务器中间件为Apache

访问一下WEB页面,发现为Apache默认页面

搜索一下敏感目录

发现robots.txt

发现/secret,什么都没有

/secret/是个目录,我们继续搜索目录下的铭感目录

发现/secret/index.html页面,发现页面什么都没有

再扩大一下目录字典

很奇怪的是用dirsearch这个工具什么都没有搜索到

同样的字典,换gobuster这个工具能搜索到

feroxbuster这款工具也可以搜索到,看来是我使用的这款工具dirsearch有问题

发现了evil.php文件,发现什么都没有,猜测可能需要添加参数

进行参数爆破

创建一个字典用于保存参数值,将数字和一些常用符号和一些很大可能存在于服务器上的文件名输入(用于探测各种可能存在的漏洞)

使用ffuf工具进行爆破

ffuf -w /usr/share/wordlists/seclists/Discovery/Web-Content/burp-parameter-names.txt:dic1 -w /usr/share/wordlists/seclists/Discovery/Web-Content/canshuzhi.txt:dic2  -u http://192.168.52.135/secret/evil.php?dic1=dic2 -fs 0

爆破出了参数名为command,参数值为/etc/passwd

在网页上看一下这个参数的回显,发现读取到了/etc/passwd这个文件,存在任意文件读取漏洞

试着读取/etc/shadow这个文件,发现没有读取到,权限不足

试一下看文件包含是否可以进行远程文件包含

在kali攻击机上搭建一个一句话木马的网站页面

进入/var/www/html页面下,新建一个shell.php页面,启动apache服务

发现不存在远程文件包含

不存在文件包含,我们尝试使用php伪协议

我这里利用php://filter伪协议封装器来读取文件(base64编码可以读取未被解析的文件源码的base64编码,正常情况下读取会被解析,读取到的是返回结果)

读取evil.php

command=php://filter/convert.base64-encode/resource=evil.php

通过cyberchef来解码获得到源码

也可以通过这个php封装器来进行文件写入,测试看是否具有写入权限

先生成一段base64编码

将这段编码写入

command=php://filter/write=convert.base64-decode/resource=test.php&txt=dGVzdAo=

读取刚才写入的文件,没有读取到文件,发现写入失败,不具有写权限

这个文件包含漏洞不能getshell

我们在刚才读取到的/etc/passwd文件里可以看到一个具有ssh登录权限的一个叫mowree的用户,我们可以尝试进行ssh爆破

爆破之前查看一下靶机ssh支持的验证方式,发现支持密钥和密码验证

支持密钥认证的话,我们可以尝试去读取这个用户的家目录下是否存在有公钥,发现果然存在公钥

在公钥中我们知道了,密钥使用的是rsa算法

看一下目录下是否存在私钥(因为是rsa算法,所以默认私钥名称为id_rsa),发现也存在私钥

获得了私钥,我们可以利用私钥进行登录

将私钥保存到kali上

给私钥赋予600的权限

发现密钥登录还是需要密码

所以我们需要对私钥进行密码爆破

## 先将id_rsa生成一个用于john工具可以识别的hash文件
ssh2john id_rsa > passwd

## 利用john工具进行破解
john --wordlist=/usr/share/wordlists/rockyou.txt passwd

成功爆破出密码为unicorn

进行登录,登录成功(我中间有出错,可能时私钥没有复制完全的缘故,如果出错可以多试几次重新保存私钥)

为普通用户权限,成功获得第一个shell

进行提权

sudo提权

sudo -l 查看是否有可提权的命令

不能通过这种方式提权

SUID提权

SUID可以让程序调用者以文件拥有者的身份运行该文件,当我们以一个普通用户去运行一个root用户所有的SUID文件,那么运行该文件我们就可以获取到root权限

通过命令

find / -perm -4000 2>/dev/null查看是否具有root权限的命令

常见可用于提权root权限文件

nmap

vim

find

bash

more

less

nano

cp

awk

也不能利用

内核提权

搜索相应漏洞,提权失败

查找当前账号可以写的文件(一般情况下/proc、/sys、/run目录下的文件不应关注)

find / -writable 2>/dev/null | grep -v /proc | grep -v /sys | grep -v /run

在文件中发现了异常,对/etc/passwd文件可写

/etc/passwd这个文件在linux中应该时只能被root最高权限用户可写,其他用户只能读

但是在靶机上,任何用户都可以改写/etc/passwd文件

/etc/passwd文件的内容

root:x:0:0:root:/root:/bin/bash
account:password:UID:GID:GECOS:directory:shell
用户名:密码:用户ID:组ID:用户说明:家目录:登陆之后的 shell

尝试改写root用户的密码

生成一个root的密码

openssl passwd -1

将密码复制到/etc/passwd替换root的密码

通过su切换到root用户,提权成功

获得到第二个flag

# 渗透测试 # 网络安全 # web安全 # 系统安全 # 网络安全技术
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
  • 0 文章数
  • 0 关注者
文章目录