下载地址:https://download.vulnhub.com/ha/forensics.ova
1.配置环境
kali:NAT
HA: FORENSICS:NAT
2.主机发现
已知kali的ip为142,经过一番粗略的扫描我们可以知道吧唧的ip为149
多积累一种方法,不一定用nmap,也可以去github上面哈一个脚本下来梭哈,这里我使用的是这个脚本:MyCode/Scan/scapy/ping.py at master · czheisenberg/MyCode · GitHub
经过较为详细的扫描,我们可以知道他开启了22ssh服务以及80http服务
3.访问服务
直接访问他的http服务,通过查看我们可以知道他是Apache的服务器,Ubuntu的操作系统,点击HA:Forensics后url栏会多一个#之后就没有反应了,点击Click here to get flag!后会出现一个动图,暂时没有什么思路,于是我决定先扫描一下目录
这里通过一番扫描我们可以看出他并没有什么玩意儿东西,大部分都是403禁止访问,还有两个重定向
这里我尝试访问了一下两个重定向的目录,images目录里面有图像,大部分(十张有八张)都是主页看到的图片,这张看起来可能会有一些东东就先放这里吧,style目录见名知意就是一些样式之类的,有字体和一些css样式,目前来说并没有什么特别的东西,我始终觉得点击Click here to get flag!按钮后出现的动图是有东西的但是我不太会,于是我决定进行一番沉淀
经过一番沉淀还是图片的问题,这里我使用wget命令下载了吧唧images目录下的所有东东,-r参数的意思是遍历所有子目录,-np意思不越过当前目录,-R index.html意思是排除名为index.html的文件(他会创建一个文件夹,名字是吧唧的ip,也可以加上-nH参数不破坏当前目录结构,只不过那样子文件就是散在当前目录下的)
这里我们去images目录下查看所有图片文件信息即拿到了第一个flag(我估摸着也算是信息搜集?),然后我用file专门去看了一下点击Click here to get flag!按钮后出现的那个动图并没有什么
Flag:1 {bc02d4ffbeeab9f57c5e03de1098ff31}
经过一番沉淀后我知道了是我扫目录的字典多少有点问题,这个字典是kali自带的,因为经过沉淀知道有tips.txt所以我直接添加的这条记录,以后扫描目录的时候多多注意字典的问题
直接进行访问没想到如此有说法,激动的心颤抖的手直接就是下载flag.zip,结果他喵喵的居然有密码
不难发现这是一个pgp加密的东西,此时他给你了加密的私钥和消息,那我们可以百度一下然后进行解密
顺利的寻找工具,顺利的创建私钥,顺利的创建加密信息文件,导入私钥的时候亚麻呆住了,居然需要密码,给我直接就是闷头一棒不知道该干嘛,试了空密码但是有个error,于是我进行沉淀(这里创建文件的时候需要从---那一行一直到其对应的---那一行)
在我们使用google的时候搜索英文往往会有意想不到的效果(有感而发)
经过一番后我又双叒叕被麻住了,他居然是空密码,但是我尝试了很多网站和工具都解不出来,这上面的结果是我伪造的(扭捏.jpg),这里我们得到一个整到一个突破口,密码是forxxx,接下来就该构造字典了(后来才知道这是个取证吧唧,才知道这种吧唧嘛玩意儿都是线索,预期的那个解密网站应该是PGP的目录名,也就是www.igolder.com)
成功生成了我们的字典,浅浅秀了一把我“高超”的Python技术(bushi)
这里我学到了两条命令,用于生成密码列表的crunch和用于比较文本文件是否一样的diff,经过一番测试我们得到了字典
使用fcrackzip命令我们成功爆出密码为007
打开就是第二个flag
Flag:2 {4a3232c59ecda21ac71bebe3b329bf36}
另一个文件lesass.DMP,以.dmp结尾的一般是windows的内存转储文件,在操作系统发生严重错误或崩溃的的时候,将计算机内存上的内容保存在硬盘的文件上,很明显这类文件的主要作用是帮助系统管理员诊断修复问题。这里我们就可以知道是lesass进程崩溃掉了,但是他并不是平常的文件名所以我看不出来他有什么用但他一定是有用的(我是大傻呗,LSASS进程是本地安全授予子系统,包含了用户登录会话的凭证信息),于是我开始进行沉淀
经过一番沉淀我知道了可以使用windows的mimikatz工具来检查文件,是可以检查出来一些东西的,但我还是比较执着于命令行,于是找到了pypykatz,他是mimikatz的Python版,更适合命令行宝宝体质~
嘛玩意儿有点儿难看(难以看)
经过一番筛选,jasoos和raj两个用户名就显眼多了
经过一番沉淀后我知道了这里的NT并不是我想的那样,而是NTLM,即md5加密的密码
这里我们可以得到一对儿账号密码jasoos:Password@1(惊奇的发现raj的密码也是介个诶)
4.信息搜集
成功上号jasoos,可恶的raj并不能上号
我们可以看出他只有三个用户,是Ubuntu的操作系统,而且我查看了命令的历史记录并没有看到任何有用的东西,理解,渗透嘛,线索永远是等待我们去挖掘的
当我进入另一个用户forensic目录下的时候,嘛玩意儿docker,ftp服务(ftp文件上传),合计着嘛玩意儿我打的吧唧又是一台服务器?感觉像是在套娃,我得进行一番沉淀
使用ip add命令查看网络接口ip,可以发现确实有个docker,那这就涉及内网了
5.内网穿透
关于内网穿透,这也是我第一次接触到,我并不知道该怎么做,于是我选择沉淀,之前接触过一点点Metasploit的msfconsole,那是在Apache tomcat服务中使用msfvenom创建war包,还有使用msfconsole来getshell,这里再次用到msfconsole,用于内网渗透测试
这里我们使用msfconsole成功上号jasoos
我们可以升级会话为meterpreter会话,就像一个shell我们为了好看+便于使用,跟之前我们会使用python来让使shell更加接近于我们平时使用的shell是一样的道理
因为吧唧内部有个docker,所以说我们这里部署一个相同网段的路由
这里我们将ssh会话挂到后台之后,切换扫描ip对应的模块,设置正确的网段和ssh的会话编号,之后成功扫描出ip为172.17.0.2
通过扫描网段得到了目标ip,切换模块用于扫描端口,看看他部署了什么服务,合理减少扫描的端口数可以更快的扫描,扫描出了一个端口21,结合之前看到的文件名,猜测他部署了ftp服务(我在这里耽误了一万年,端口扫描不出来,他喵的重来了三遍,终于知道了是172.17不是172.16……)
这里使用了一个模块检测是否允许ftp匿名登录,经过测试我们得到的结果是肯定的
这里我们成功使用匿名登录登上了ftp服务,第一次登上ftp服务,不知道可以干嘛的我决定进行一番沉淀(简单沉淀:FTP 命令 - 知乎 (zhihu.com))
翻到一个后缀为001的文件,不知道是嘛玩意儿
我真的是傻呗了,看到saboot.001就跟他大眼瞪小眼,沉淀之后才知道可以整到kali本地去
使用file saboot.001查看发现为NTFS即 windows 镜像,这就涉及磁盘取证
6.磁盘取证
kali自带这个工具,我们直接双击
双击之后会弹出来一个小黑框框,他告诉我在浏览器访问指定的URL
访问之后就是这么个事儿,我们选择新建
然后我们随便填写一下名字、描述和相关人员,不知道填什么就填吧唧的名字是没有错的啦
还是在选名字,随便选选啦
这个就点添加主机
继续点~
这里我们选择add image file加载镜像文件
把我们的文件载入进去,选分区
点击add~
这里是ok~
点进去分析
然后就是开始我们的分析之旅
因为是这里是网页,所以我们直接就是Ctrl+F调出搜索框搜索flag
成功拿到我们的第三个flag
Flag:3 {8442460f48338fe60a9497b8e0e9022f}
除了flag我们再仔细看看其他文件,吧唧那边多半是没有什么特殊的信息的
creds.txt中的字符串非常可疑,猜测是base64编码,解码后为jeenaliisagoodgirl
吧唧中可疑的字符串不是密码就是密码,我们自信上号forensic,成功上号
惊呆了老铁,我的表情如下
我不信这个forensic上号就是root
好吧我信了,forensic和root没区别
最后的flag奉上~
Root Flag: {9440aee508b6215995219c58c8ba4b45}
总结:后来才知道这个吧唧是一个取证吧唧,这是我打的第一个取证靶机,回头看才发现整个吧唧的线索是环环相扣的,就像是警察根据蛛丝马迹在抓小偷一样,我始终觉得打吧唧是一个量变产生质变的过程,积累的东西多了,思路解法多了,自然而然就明了了。这道题开始就是通过网站目录的图片,从文件信息中得到了第一个flag,然后通过更全面的字典爆破出新的压缩包文件和提示信息文件,利用提示信息文件给出的密钥和密文,猜测密钥的密码为空得到构造压缩包密码的提示,破解出第二个flag还有DMP文件,DMP为内存转储文件,我们通过pypykatz命令来检查DMP文件,可以得到一些有用的东西,这里我们就得到了吧唧登录用户jasoos的密码,上号jasoos后经过一番信息搜集我们不难发现这个吧唧作为被攻击机的同时他也是一台服务器,于是我第一次接触了内网穿透,使用msfconsole结合一些模块(ssh-_login模块、ip扫描模块、端口扫描模块)部署了对应的网段的路由,知道了内网的目标ip及其开启了21ftp服务,于是又结合一个很有意思的模块(判断ftp是否能匿名登录模块),然后回到我们的ssh会话匿名登录ftp服务,找到一个001后缀的windows镜像文件,使用kali自带的autopsy工具找到了第三个flag,还找到了forensic用户的登录密码,成功上号forensic后sudo -l发现其具有sudo的权限,直接查看到我们的最后一个root的flag。总的来说还是学到了不少东西,使用工具的熟练程度还有的练,多积累积累渗透的思路,多见识见识不同类型的点。(新手上路,请多指教)