第二十三次打靶

打印 上一主题 下一主题

主题 866|帖子 866|积分 2608

靶机介绍

1)靶机地址:https://download.vulnhub.com/cereal/Cereal.ova
2)靶机难度:高(最接近真实场景)
3)打靶目标:  取得 root 权限 + 2 Flag
4)涉及攻击方法:主机发现、端口扫描、信息收集、路径枚举、密码爆破、域名解析、匿名FTP、子域名爆破、源码审计、反序列化漏洞、编写漏洞利用代码、进程监视、本地提权
5)靶机简介:如果说上周的靶机非常接近真实环境的渗透,那么本周的靶机应该就是真实渗透本身了。通常靶机只会开放一两个端口,所以很容易确定攻击的入口点。但是本周的打靶开放了多个端口,因此需要逐个排查,过滤掉其中的干扰项,找到那个真正存在漏洞的服务。这个排查的过程往往是初学者最大的难点,作为渗透测试者,需要在众多不确定因素的干扰下,利用工程思维找到自己的出路。通常打靶的过程是不涉及子域名爆破的,但是对于本周这台靶机却是必须的,否则连突破边界的入口都找不到。即便找到了漏洞入口,仍然需要获取程序的源码,对其进行源码审计,发现其中的反序列化编码漏洞,并针对漏洞编写自己的漏洞利用代码。提权的过程同样需要不走寻常路,将利用一种前所未用方法,找到那个非常隐蔽的提权线索。针对本周的靶机,枚举、信息收集、源码审计都是突破边界不可或缺的能力要求。
6)注释:需要将本次靶机下载后,导入到vmwar workstation运行虚拟机
打靶过程

1)主机发现
  1. # arp-scan --interface eth1 172.24.10.0/24
复制代码

2)端口扫描
①对目标靶机进行全端口扫描,发现开放了很多个端口
  1. # nmap -p- 172.24.10.129
复制代码

②对上述端口进行服务版本扫描
  1. # nmap -p21,22,80,139,445,3306,11111,22222,33333,33334,44441,44444,55551,55555 -A 172.24.10.12
复制代码


③扫描出21端口开放了vstpd服务,且版本为3.0.3,通过searchsploit检查该服务版本不存在可利用的漏洞
  1. # searchsploit vsftpd 3.0.3
复制代码

④通过“ftp-anon: Anonymous FTP login allowed“说明,ftp服务器存在匿名登录,通过anonymous账号登录后,为发现任何可疑文件,且不允许往ftp服务器上传文件
  1. # ftp 172.24.10.129
  2. Name (172.24.10.129:root): anonymous        #输入登录用户名为anonymous
  3. Password:                                   #登录密码为空
  4. ftp> ls
  5. ftp> ls pub
  6. # echo 11111111 >1.txt                      #另起一个终端编写一个文件
  7. ftp> put 1.txt                              #上传文件
复制代码

⑤通过nc连接目标靶机的21端口,可以连接成功,但是不允许执行任何的命令
  1. # nc 172.24.10.129 21
  2. USER anonymous #输入用户名
  3. PASS           #输入密码
  4. help           #查看可支持的命令
  5. PORT
复制代码

⑥80端口显示目标靶机支持TRACE的请求方法,且使用的操作系统发行版为Rocky Linux,中间件为Apache 2.4.37
⑦139和445端口默认为SMB协议的应用,但是此处扫描为扫描出应用层信息,有可能端口进行了更改,并且对目标服务器的SMB服务进行探测(Enum4linux是用于枚举windows和Linux系统上的SMB服务的工具。可以轻松的从与SMB服务有关的目标中快速提取信息),此处未提取到任何有用信息
  1. # enum4linux 172.24.10.129
复制代码

⑧通过nc连接11111端口,但无任何反馈信息,表示目标主机的此端口是处于开放状态的,而且通过nc也已经连接到了此端口,说明此端口是一个虚假的端口或者上面的应用是一个未知的应用,同时其他类似端口,如22222,33333返回结果都一致

因为:本靶机突破点只能从80端口和44441端口进行
3)web信息搜集
①通过访问目标靶机:80端口,发现是一个apache的默认页面,在该页面为发现任何有用的信息
  1. http://172.24.10.129/
复制代码

②右键查看网页源代码也未能发现有用信息
③对目标靶机的web站点进行路径爬取,爬取发现了/admin的站点
  1. #dirb http://172.24.10.129
复制代码

④对/admin站点进行访问,发现是一个登录页面,尝试通过万能密码、简单弱口令以及暴力破解的方式,均无法成功登陆只目标靶机web站点后台
  1. http://172.24.10.129/admin
复制代码

⑤对/blog/站点进行访问,根据提示在域名http://cereal.ctf中保存着备份文件和正在运行的一些文件,如果存在网站源码,那么就可以进行简单代码审计发现网站的漏洞
  1. http://172.24.10.129/blog/
复制代码

⑥上述扫描发现存在/cgi-bin/目录,通过403bypass的方法尝试访问/cgi-bin/目录,也未能有收获,针对403的目录,可以通过文件名直接访问该目录下的文件,403只是说明无法查看该目录下有什么文件,访问文件方式此处也失败
⑦访问phpinfo.php,可获取一些目标靶机站点的基本信息
⑧通过/blog/wp-admin/可知目标靶机存在wordpress的CMS,但是访问是却跳转到了域名http://cereal.ctf
  1. http://172.24.10.129/blog/wp-admin/
复制代码

⑨在kali的hosts文件中,对该域名进行解析
  1. # vi /etc/hosts
  2. 172.24.10.129 cereal.ctf       #追加
复制代码

重新访问后,发现可以打开wordpress后台,通过弱口令和暴力破解也无法直接登陆至后台

⑩其他扫描出的目录及文件信息中均没有有价值的内容,通过wpscan工具对wordpress应用进行漏洞扫描,也未发现有价值内容
  1. # wpscan --url http://cereal.ctf/blog -e vt,vp --plugins-detection mixed
复制代码

⑪因第五步提示得知,目标靶机保存着备份文件和正在运行的文件,对其进行目录扫描,但是未扫描出任何备份文件
  1. #dirb http://cereal.ctf/blog/ -X .bak,back      
复制代码

通过使用dirburst扫描工具,也未扫描出任何内容

⑫对目标靶机的44441端口进行访问,返回页面如下,无任何有价值信息。对其进行目录扫描,也未发现有价值信息

3)此时怀疑是否在cereal.ctf域名之下隐藏着其他的子域名,
①通过域名扫描工具,查看目标靶机是否有虚拟主机或者子域名的存在。扫描发现存在secure.cereal.ctf:44441域名
  1. # gobuster vhost -u http://cereal.ctf:44441 -w /usr/share/seclists/Discovery/DNS/fierce-hostlist.txt             #-w表示指定DNS子域名爆破的字典
复制代码

②对子域名进行解析
  1. # vim /etc/hosts
  2. 172.24.10.129 secure.cereal.ctf
复制代码

③重新对新发现的域名进行访问,返回如下页面,通过功能测试,发现在表单输入ip地址后,可进行ping测试,猜测服务器有可能调用了操作系统的ping命令完成了ping测试
  1. http://secure.cereal.ctf:44441/
复制代码

④查看网页源代码,发现了javascript代码,代码表示从ipform表单中将值提取出来后,将其赋值给ipAddress变量,再对其进行一个序列化的操作,此处有可能存在反序列化的操作

可猜测在上述页面输入IP地址后,先对其进行序列化,传输的服务器后,再对其进行反序列化.
4)在ping测试中输入IP地址,提交表单时进行抓包


对请求体中的数据进行URL编码


PHP序列化之后的数据格式,其中pingTest为序列化对象在服务器端定义的类名称,在这个类中有一个变量的提交,变量名称为ipAddress,赋值为127.0.0.1,s表示序列化,9表示字符的长度
5)查找网站源代码
①除很简单的反序列化漏洞,使用黑盒进行反序列化漏洞挖掘时是很难发现的,除非拿到目标网站的源代码,所以此处通过测试是否存在.git泄露和.svn源码泄露.未发现git或者svn源码泄露
  1. http://secure.cereal.ctf:44441/.git
  2. http://secure.cereal.ctf:44441/.svn
复制代码

②通过dirbuster工具对http://secure.cereal.ctf:44441/进行一个目录扫描,选择一个大字典

爬取结果发现目标站点存在一个back_en的目录

③对back_en目录下的文件进行扫描,文件后缀选择bak,或者back,并且更换一个通用的字典,

发现在back_en目录下存在一个index.php.bak的文件

④将index.php.bak文件进行下载,查看文件类型发现为php的文本文件
  1. # wget http://secure.cereal.ctf:44441/back_en/index.php.bak
  2. #file index.php.bak
复制代码

⑤查看index.php.bak文件
[code]# cat index.php.bak

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

泉缘泉

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表