阅读须知
技术文章仅供参考,此文所提供的信息仅用于学习,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。本文所提供的工具仅用于学习,禁止用于其他!!!
没更的这段时间,其实就是不知道写点啥,都提不起来兴趣。终于找到了这个系列。希望可以对你学习红队有点帮助。
从这篇文章开始,我们进行红队靶场系列,vulnhub靶机中的W1R3S 1.0.1。
选用工具:
VM17 官网下载
kali 2023.3版 https://mirrors.tuna.tsinghua.edu.cn/kali-images/kali-2023.3/
靶场文件 https://download.vulnhub.com/w1r3s/w1r3s.v1.0.1.zip
打开靶机文件将文件用虚拟机打开即可。
-
主机发现
对于靶机而言,我们利用靶机打开前后的 ip 差异,即可发现靶机 ip 。
好的,我们得到了靶机的 ip
下面我们来对第一条命令进行解读
sudo arp-scan -l
arp-scan是Kali Linux自带的一款ARP扫描工具。
轻量级扫描工具,用来扫描局域网的主机还是挺好用的,由于扫描的少,所以扫描速度比较快,可以很快的查看到局域网有哪些主机和对应的MAC地址。
也可以使用 nmap
sudo nmap -sn 网段
1、为什么选用 sudo ,而不是直接使用 arp命令?
主要是权限问题,直接使用不了,但这不是我想讲的重点,有很多命令,我们在使用的时候选用高权限和低权限,两者可调用的底层有可能是不同的。我们一般选择使用高权限。
2、既然使用高权限,为什么不直接选用root用户?
直接选用高权限,意味着你在执行任何操作都没有提示该操作的后果,极有可能存在因为拼写错误的原因,出现不可挽回的后果,所以我建议减少使用root用户的情况。
-
端口扫描
找到ip之后,我们自然而然会进行端口扫描,所以我们使用 nmap 进行端口的探测和扫描。
mdkir nmapscan
先建立一个文件夹,用来存放后续 nmap 扫描数据。
执行下面的命令,进行namp扫描
sudo nmap -sT --min-rate 10000 -p- 172.30.158.173 -oA nmapscan/ports
解释:
-sT 与 -sS
先来解释 “ -sT ”,在 --min-rate 之前,我们也可以不加指令,而不加指令时,nmap默认执行的是 “ -sS ”,这两者之间有什么区别呢。
默认的 sS 是发送一个syn包,只建立TCP链接的第一步,如果收到了目标主机的syn加ack回复,则表示目标主机相应的端口是开放的。而收到复位数据包RST,则表示端口是关闭的。
而 sT 是利用三次握手过程来判断端口的状态。它通过发送完整的TCP请求,等待目标主机的回复,收到syn加ack回复,即开放。
所以说,sS适用于大规模且快速探测。而 sT 具有更好的准确性,但速度也相应会慢上一些。最大的优点是具备更好的隐蔽性,在面对防火墙的检测上,完整的 tcp 请求比只发syn包的更具有隐蔽性。
我们现在是对靶机的渗透,在速度上可以调节的快一些,所以我们选用“ sT ”。
--min-rate 10000
指最小的发包速率,也就是最快的速度为10000,这个是按一些大佬的速度进行的,在实际的场景中,只会更慢。
-p-
“ -p ”意味着制定扫描端口区间,而“ -p- ”是将1-65535,进行了简化,而默认的话,则是常见的1000个。为了准确性,(管理员有可能会留有较高数值的管理端口)我们这里使用最全的。
-oA
“ -o ”是输出,A 指 all,“ -oA ”是输出全部格式的文件。这是为了扫描结果的数据化。
好的,我们继续。
可以看到,我们扫出了4个端口,分别是21,22,80,3306。我们需要更多、更详细的数据进行下一步的判断。
一般标准的流程还会进行三次扫描(有可能用上,也有可能用不上,但流程要走完)
-
更详细版本探测扫描
-
udp扫描
-
漏洞的初步扫描(nmap)
-
更详细版本探测扫描
sudo nmap -sT -sV -sC -O -p21,22,80,3306 172.30.158.173 -oA nmapscan/d
etail
这句稍稍多了点,但不难理解的,我们继续看。
-sV
探测各服务器的版本号
-sC
使用默认脚本
-O
探测操作系统的版本号
其他见上一条解释
扫描结果如下:
看21端口。显示允许匿名ftp登录。这有可能存在信息泄露,在下一步渗透中,要重点去看。
看22端口。一些主机秘钥,进行SSH爆破?先放一放,最后看它。(主要是以22端口为突破点的不多)
看80端口。在大部分场景中,web的权重都是最高,也要看下,比如目录扫描啊、漏扫工具什么的。
看3306端口。显示为mysql。一般会配合其他漏洞进行。
靶机主机最有可能为linux的这几个版本。
-
udp扫描
sudo -sU --top-ports 20 172.30.158.173 -oA nmapscan/udp
选择最常用的20个端口进行探测。留作备用
-
漏洞的初步扫描(nmap)
sudo nmap --script=vuln -p21,22,80,3306 172.30.158.173 -oA nmapscan/vuln
可以看到。扫出一个ddos,和一个登录界面(可以进行查看)
/wordpress/wp-login.php: Wordpress login page.
-
渗透过程
经过前期的大量准备,我们要进行渗透了,还记得从谁开始看吗?
-
21 端口 FTP
信息收集中发现存在匿名登录。
匿名登录所用用户名为:anonymous ,密码为空。
进入FTP 中,首先就要使用binary转换成二进制模式,防止文件下载出错。
同时,它上边也给了提示。
FTP的命令和Linux比较像。
ls查看文件
将文件下载下来。
具体流程为下面操作
值得注意的有两个地方
-
mget 用于多个文件下载,get用于单个文件下载;
-
在开始进行上述下载操作时,先使用prompt命令取消交互, 使得可以没有交互的麻烦;
好的,我们现在下载了5个文件,我们将他们全部打开,(可以看到文件很小,全部打开更方便查看)
我们一个一个看,
-
inc是指股份有限公司,意思是:适用于W1R3S.inc的新FTP服务器(百度机翻)第一个没啥东西。
-
大概率为MD5,我们可以网上找MD5爆破,32个字符为01ec2d8fc11c493b25029fb1f47f39ce
好像没用,下一个
-
后面存在补全符,为base64,(值得一提的是,base64是一种编码方式,而非加解密方式)
也没用,下一个
-
核心是该公司的人员名单,可以构造社工字典?
-
这貌似是文件进行了颠倒?试试
下面这句大概是:I don't think this is the way to root!
好吧,废话文学。看来这五个文件没啥用了。21端口,先到这里,看看其他的。
-
3306端口 mysql
这种数据库端口一般会试几个弱密码,空密码啥的。
好吧,不允许访问,我们使用其他软件进行尝试。使用 Navicat呢,也不行。是我浮浅了。
3306端口就先到这。
-
80端口
打开网站。
网站主页是apache的默认页,没发现有敏感信息的泄露。查看页面源码,也没有隐藏信息。
还记得我们扫描的时候存在了一个登录界面,我们现在打开它,进行尝试。与此同时,使用目录扫描,看看是否有其他目录。
对于登陆界面
发现存在跳转,不管点什么,都会跳转到localhost
先放着吧,看看其他的
扫描出来了一个这个界面,见下图
这是一个cms框架。这既然是一种框架,那大概率存在可以利用的漏洞,找下
可以网上找,也可以使用kali自带的。
我们今天就用kali自带的。
我们查看下这个漏洞,看看是否可以利用
发现这是一个文件包含漏洞,我们先试试是否在该网站中存在。
先试一下本地包含。
第一次构造失败,多试几种组合
选择这种构造出现了不同,说明有大概率存在文件包含,猜测不显示文件有可能为传输方式为post,url为get传输。
我们先用post传一下。看看显示如何。
curl --data-urlencode urlConfig=../../../../../../../../../etc/passwd http://172.30.158.173/administrator/alerts/alertConfigField.php
发现确实存在用户名。
我们这就来查密码!
curl --data-urlencode urlConfig=../../../../../../../../../etc/shadow http://172.30.158.173/administrator/alerts/alertConfigField.php
可以看到存在明显的hash,把它整理一下,使用john进行破解。
(通过创建文件,命令john进行爆破)
虽然还没跑完,但可以看到已经有密码了
ssh [email protected]
密码:computer
-
提权操作
通过id,查看可以使用的命令,发现存在27(sudo),直接使用sudo 提权。
在root目录下找到flag。结束。
“在若干信息中突围、选择、取舍,这才是渗透测试人员的本事。”大佬说的这句话真是好啊!
都看到这了,点个赞再走呗。
原文始发于微信公众号(Glass的网安笔记):【红队靶机系列】--W1R3S 1.0.1
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论