0x01 前言
很久没有写过文章了,最近准备考OSCP认证,所以用写文章的形式来记录一下OSCP的备考准备。今天的靶机是OSCP的Proving grounds Play上的Inclusiveness靶机。这个机器整体做完给我的感觉不算难,很适合刚接触安全的新手。
0x02 信息收集
靶机IP:192.168.170.14
端口信息
先用masscan做一个端口快速扫描,用于发现开放了了那些主机
masscan -p 0-65535 192.168.170.14 --rate=10000 -e tun0
-p 指定端口,例如-p 21,22 or -p 1-100(扫描1到100端口)
-e 指定网卡 我们这边是需要连\V\P\N,所以指定tun0
--rate 指定发包数
可以看到目标主机开放了21,22和80端口
再用nmap扫描端口
nmap -sC -sV -p 21,22,80 192.168.170.14 -oN nmap.txt
可以发现目标主机的ftp服务可以使用匿名登录
Web信息收集
访问目标Web站点,发现为Apache的默认页面。查看是否有robots.txt页面,发现无法访问,必须要浏览器才能访问。我们可以修改我们的数据包UA头来绕过检测。(Googlebot是谷歌爬虫)
得到隐藏目录Disallow: /secret_information/
访问该目录是一个描述域传送漏洞的页面,点击english,url出现了参数lang=es.php,怀疑存在LFI。
POC:
接下来就需要包含能利用的文件,尝试过包含tom的私钥文件等一系列文件都失败了。回过头看端口服务,发现还有FTP服务没有利用。
FTP利用
登录ftp发现只有一个pub的空目录(pub是ftp创建的默认目录,路径/var/ftp/pub),我们可以利用ftp上传文件,再利用LFI实现反弹shell。
反弹shell文件:
利用ftp上传上去
getshell
在kali上监听本地的4444端口
nc -lvvp 4444
成功拿到shell
在tom的家目录下发现local.txt和一个suid文件及其源码文件
源码内容为
#include <stdio.h> #include <unistd.h> #include <stdlib.h> #include <string.h> int main() { printf("checking if you are tom...\n"); FILE* f = popen("whoami", "r"); char user[80]; fgets(user, 80, f); printf("you are: %s\n", user); //printf("your euid is: %i\n", geteuid()); if (strncmp(user, "tom", 3) == 0) { printf("access granted.\n"); setuid(geteuid()); execlp("sh", "sh", (char *) 0); } }
大概意思是执行whoami命令后输入的如果为tom就可以提权到root用户,我们可以环境变量劫持去劫持whoami命令。(之前脑子抽了,忘记加可执行权限,一直没有提权成功。。。)
来到tmp目录创建一个whoami的可执行文件,内容为
echo 'tom'
修改环境变量
export PATH=/tmp:$PATH
然后回到tom的home目录执行rootshell文件,成功提权。
0x03 总结
这个靶机整体不难,需要我们了解服务的一些基本信息就能很快拿到shell。环境变量劫持提权也是很基本的提权方式。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)