前言:
下载链接:bossplayersCTF: 1 ~ VulnHub
因为Vulnhub靶机设计的问题大多数靶机在VM上使用时会出现无法扫描到IP的问题,附上一个博主讲解的链接,能解决大部分无法扫描IP问题:【Vulnhub靶场】靶机导入到vmware后获取不到IP_vulnhub靶子在vm中找不到-优快云博客
正文:
第一步:主机发现
使用arp-scan -l
(kaliIP为192.168.156.128)
或者使用nmap -sn 192.168.156.0/24
(小知识:在使用nmap -sn 192.168.156.1/24时也可以扫描到IP这是因为nmap设计的机制,但不建议使用,正常使用还是以nmap -sn 192.168.156.0/24为主)
第二步:信息收集
nmap -sT --min-rate 5000 -p- 192.168.156.138
-sT 以TCP协议扫描端口。--min-rate 5000以5000的速率进行扫描。-p-指定扫描所有端口
nmap -sT -sC -sV -O -p22,80 192.168.156.138 --一般来说这一步是分析重点
-sC以默认脚本进行扫描。-sV查看服务版本信息。-O查看操作系统信息
nmap --script=vuln -p22,80 192.168.156.138使用nmap自带的脚本扫描漏洞
(发现robots.txt文件和logs.php)
nmap -sU --top-ports 20 192.168.156.138--以UDP协议扫描常见的20个端口
第三步:端口测试
80端口测试:
根据前面得到的robots.txt文件查看为base64编码
解码得到
查看logs.php---暂时未得到有用信息
目录爆破:以下列出三种爆破以便更好的收集信息
dirb http://192.168.156.138
dirsearch -u http://192.168.156.138
gobuster dir -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -u http://192.168.156.138 --dir -w 是指定字典的路径(可能与读者略有不同)
很遗憾并未发现有用信息
回头分析网页源码发现信息:
WkRJNWVXRXliSFZhTW14MVkwaEtkbG96U214ak0wMTFZMGRvZDBOblBUMEsK
经过三次base64解码发现
workinginprogress.php
进行一些尝试?id=whoami无回显.?cmd=whoami有回显显示www-data
进行nc反弹
两种方法获得交互式shell
1.python3 -c 'import pty;pty.spawn("/bin/bash")';---可以先输入dpkg -l | grep python查看是否有python
2.SHELL=/bin/bash script -q /dev/null
SHELL=/bin/bash:这是一个环境变量的设置。它指定了在运行脚本时要使用的默认shell,即/bin/bash
script -q /dev/null:这是在Unix和Linux系统中用来记录终端会话的命令。-q 参数表示“quiet”模式,它使得script命令在不显示启动和停止信息的情况下工作。/dev/null 是一个特殊的设备文件,通常用于丢弃输出
在输入export TERM=xterm
这个命令是用来设置环境变量 TERM 的值为 xterm。在 Unix 和类Unix系统中,TERM 环境变量通常用来告知程序当前所使用的终端类型,以便正确地显示颜色、格式化文本以及执行其他与终端相关的操作。
将 TERM 设置为 xterm 通常表示当前终端使用的是 xterm 类型的终端模拟器。这样做的目的是为了让系统和应用程序知道终端的能力和特性,以便适当地调整和显示内容
第四步:提权
sudo -l 列出当前用户在特定系统上可以以哪些身份或权限执行命令
发现bash: sudo: command not found
用find查找所有具有 SetUID 权限的文件
可以用find / -perm -u=s -type f 2>/dev/null或者find / -perm -4000 -ls 2>/dev/null两者并无区别
安利一个特别好用的网站GTFOBins 这个在Linux提权时很有帮助
接下来采用find进行提权
第五步:尾声
进入root目录发现root.txt
base64解码为
congratulations
至此这台靶机也就结束了,感谢观看