[红队渗透]Vulhub-W1R3S靶机渗透
靶机W1R3S下载地址以及配置:
https://download.vulnhub.com/w1r3s/w1r3s.v1.0.1.zip
直接使用nat模式把靶机设置为和攻击机(kali)同一个网段
kali:192.168.88.133
渗透流程思路:
1.信息收集
存活主机
我们先扫描c段,也就是同一网段寻找主机。(跨网段的我们先不管,渗透就是得从易到难。c段解决不了我们再去考虑跨网段的问题,且不考虑子网划分的问题,因为存在子网划分我们ip的扫描也能覆盖到)
我们使用nmap扫描c段存活主机。
命令:
nmap -sn 192.168.88.0/24
'-s' 是 “扫描类型(scan type)” 的前缀;
'-n' 表示 “不进行端口扫描(no port scan)”,也可以理解为 “只做主机发现”
发现192.168.88.131主机
端口扫描
扫描端口时,我们分两种协议tcp,udp分别扫。若只扫一种协议,会遗漏大量关键服务。分开扫描可以根据需求调整策略:比如先快速扫 TCP 全端口,再针对性扫常见 UDP 端口,平衡效率和全面性
TCP扫(准,快,全)
nmap -sT --min-rate 10000 -p- 192.168.88.131 -oA nmapscan/ports1
-sT TCP扫描
--min-rate 指定最低速率扫描,每秒发包速率,
-p- 指定1-65535 全端口扫描
-oA 保存到文件中nmap -sU --top-port 20 192.168.88.131 -oA nmapscan/udp1
有需要则回来看
-oA 保存到文件中nmap参数:
-sS 采用默认扫描,发送TCP连接建立第一步的SYN,查看收到的SYN,ACK响应成功或RST代表错误,用于快速扫描
-sT 则是用tcp连接的全过程扫描 (很多防火墙可能会检测到不完整的tcp如只发送第一个SYN包)
接下来将端口提取出来做漏洞探测或者,服务识别等等
ports=$(grep open nmapscan/ports1.nmap | awk -F"/" '{print $1}'| paste -sd ',')grep open nmapscan/ports1.map 之前的tcp扫描保存在文件中,抓取带有open的一行,也就是开放端口awk是文本处理工具,用于按规则分割、提取文本字段
-F'/' 指定字段分隔符为斜杠(/)(Nmap 结果中,端口格式通常是 端口号/协议,如 22/tcp 80/udp)。
{print $1} 表示:打印分割后的 “第一个字段”(即斜杠前的 “端口号”,如 22 80)。
paste -s表示合并到一行 -d指定合并的间隔符为,
赋值给变量用来后面的操作
接下来具体探测这些端口服务
sudo nmap -sT -sV -sC -O -p21,22,80,3306 192.168.88.131 -oA nmapscan/details1-sV 探测服务的版本
-O 操作系统
-sC 默认脚本
可以看到扫描出了ftp匿名登录
nmap的默认脚本目录扫描,也需要扫描,相当于自带的nmap自带的漏扫
sudo nmap --script=vuln -p21,22,80,3306 192.168.88.131 -oA nmapscan/vuln
2.漏洞探测发现
FTP服务渗透
匿名登录ftp
账号为anonymous 密码为空,我们可以下载ftp里面的文件并且查看有什么相关的信息
首先切换为binary二进制模式适合下载文件然后下载所有文件,get是下载单个目录,mget可以下载多个文件
首先通过prompt关闭交互,这样下载文件时不用频繁确认,然后我们发现所有文件都是txt的,直接cd到目录后使用mget批量下载
然后我们直接批量查看文件,发现一些很相似的密文,可以尝试破解一下。以及公司员工的信息可以保存这些用户名作为用户名收集起来
使用工具hash-identifier识别密文(人工也可以)
hash-identifier 01ec2d8fc11c493b25029fb1f47f39ce
大概率是md5
解码的话可以拿到在线网站或者kali自带的工具
网站,一段没什么意义的文字
第二段是通过base64加密也没什么意义
最后一段
在网站搜索一些upsitedown,flip,reverse相关的找到了能反转文字的网站
破解了这一段文字,不过仍然没有什么价值,那么ftp的渗透就到此为止了
接下来看一下3306端口的mysql服务
MYSQL服务渗透
这里也没什么好测试的,登录一下,发现要密码,那就只能去搞80端口的http了
mysql -h 192.168.88.131 -u root -p
Web渗透
首先来到首页面,翻阅了一下html源代码也没什么东西,跑一下目录
我使用的dirsearch
dirsearch -u http://192.168.88.131 --include-status 200,301-o / --output将扫描结果保存到指定文件(支持 txt、json、html 等格式,自动根据后缀识别)。
--include-status 只保留指定状态码的结果
--exclude-status 排除指定状态码的结果
-w 指定字典
发现有一个登录页面,那便可以开始测试漏洞了
但发现我怎么访问都会到localhost去,因为这个页面根本没有在与后端交互,或者说他是只能在被攻击机上使用,因为全是localhost
尝试自己构造数据包但也没有任何作用,像一个静态页面一样,只能看刚刚扫到的其他的路径了
访问/installation来到了这个页面,看起来像是数据库创建,这里是靶场所以就直接创建试试了,但正常情况渗透测试下肯定是不允许的。但是也创建失败
不过翻到了指纹信息,尝试搜索指纹相关漏洞
使用工具searchsploit搜索工具,但是国内cms不好用。搜索出来一条记录。其实这个时候可以直接去代码审计了找源码,但是先试试历史漏洞
通过编号下载poc
searchsploit -m 25971
给出了出现漏洞的位置以及payload,文件包含,这里接受的REQUEST,get,post都可以使用
将其中的cuppa改为administrator发现成功访问,但是漏洞并没有生效,接着可以去找一下源码看一下为什么没生效
在github找到源码后发现请求方式是post,所以更改请求方式尝试
成功,接下来将这些保存在文件中进行解密
只保留有hash值的三个用户进行解密
成功解密出来两个用户的hash值,ssh尝试登录
登录成功
sudo ssh w1r3s@192.168.88.131
查看当前sudo权限,发现是权限相当于root,到此结束
-
(ALL : ALL) ALL
是最常见的权限,表示:
- 第一个
ALL
:允许以任何用户身份(包括 root)执行命令; - 第二个
ALL
:允许以任何用户组身份执行命令; - 最后的
ALL
:允许执行所有命令(无限制)。
- 第一个
SSH渗透
ssh的渗透方法,首先是得放用户名字典,这个只能看信息收集有没有一些特殊的了
hydra -L user.list -P /usr/share/wordlists/rockyou.txt ssh://192.168.88.131 -t 4
这个靶场的整个学习到这里就结束了
参考:
【「红队笔记」靶机精讲:W1R3S 1.0.1 - 渗透测试思路为王,细节多到即使对于纯萌新也能无感入圈。】https://www.bilibili.com/video/BV1mB4y1j7K6?vd_source=2884b80d333f3bfc8048b360e6195550