vulnhub吧唧——CORROSION: 1

下载地址:https://download.vulnhub.com/corrosion/Corrosion.ova

1.配置环境

4344f670c82841658e5c995fa331606d.png

kali:NAT

CORROSION: 1:NAT

2.主机发现

de6ecae9c1684666829d33b17066f46b.png

我们通过粗略的扫描可以看到吧唧的ip为192.168.139.143

6c8ef65df212460c8aad53faad0da24b.png

经过较为详细的扫描我们可以看出他开启了22ssh服务和80http服务

3.访问服务 

3f3099ad6a5642b1b374b14adcea9d29.png

这个http服务长得就很抽象

103505b9dc9a4bb0b81d04b65cddbec8.png

这样看起来没有那么抽象了,我们可以看到他是一个平平无奇的apeach服务器

0373128ea616427ca043fa30be679b32.png

我们扫描出了他的目录我们就挨个儿进行访问

b28f7f6d32e14f8487995d3c3da591fe.png

访问/tasks目录时看到了这些东东,我们应该先想办法完整这些任务,但我此时毫无头绪,我决定进行一番沉淀

3e6600de0f0a4a2daf519b605cfcf726.png

 经过一番沉淀,我学会了使用dirsearch工具扫描目录的时候还可以使用-w参数指定扫描的字典,这里我把kali自带的DirBuster扫描工具中的字典整过来放在dirsearch目录下进行的扫描(DirBuster工具自带的字典目录为:/usr/share/dirbuster/wordlists)

ab00311f5cf74841895ff4cf2eb93c77.png

 我们访问这个目录发现他并没有什么用处,我们平时扫描网站都是python3 dirsearch.py -u http://ip/ -w 指定字典这样的命令,但是,我们这样子扫描的是网站的根目录,我们现在已经知道有个二级目录blog-post,我们就可以利用dirsearch进行继续扫描二级目录

f5b8fd3793ed45598940c8bdb271f84d.png

 我们挨个儿进行访问

945234ff3d144c258842a414fa4e96fc.png

 这里我们访问到了/blog-post/archives/目录下有东东,reandylogs.php是空的,另外一个/blog-post/uploads是返回到了博客页面并没有什么特别的东东

a0d9c33d124e4874a43b11b337416edd.png

 经过一番沉淀之后我大概明确了思路,上文提到,有个tasks_todo.txt文件中第一个提示是什么玩意儿日志什么玩意儿的,关于日志,就有一个日志包含,所以我们应该尝试进行文件包含。那么在哪里包含?用什么包含?我学会了一个新的工具——ffuf,我们用ffuf工具进行模糊测试(FUZZ),这类似与爆破,因为我们将会使用字典去爆破指定位置。这条命令中我们使用了ffuf工具,-w是指定字典文件(/usr/share/wordlists/dirb/big.txt是linux自带的字典文件),-u是指定请求的url,这个url中的FUZZ就是占位符,他会依次进行请求字典中的值,所以他的请求将会是"URL?admin=/var/log/auth.log"、"URL?passwd=/var/log/auth.log"这样式儿的,至于/var/log/auth.log是日志文件之一用于存储用户身份验证和授权相关的信息(这里我是经过沉淀之后知道要包含这个文件的,正常的思路是准备一个字典爆破一下),幸运的是,我们找到了一个有效的变量file(ffuf下载参考:ffuf安装与使用教程-FancyPig's blog

226b9625d72242438c748d7fcd11a08c.png

既然话已至此,那我们就记录一下怎么使用字典包含的吧

670673f120df4c08acab4c4ce4eeba37.png

首先我们还是使用ffuf命令测试出变量为file,因为是文件包含,所以我们先随便包含一个文件测试出变量名为file

c3c2e81e7b3f4539b9135874c57f7f7b.png

 我本来开始也想用ffuf用字典爆破出来的,但是用ffuf的话不能像bp这样直观的看见每一个可以成功包含的文件的具体内容,这里成功爆破出来的/var/log/auth.log长的就很像字典(目录字典参考:https://github.com/ClutchReboot/SecLists/blob/fb4298a4cbcb59a337968f6eb812ec20dd3a6cc2/Fuzzing/LFI/LFI-gracefulsecurity-linux.txt

c9f36d90faa8490b8d035a8098d868df.png

 言归正传,我们在尝试访问他的时候发现他属实长了一副不太好审计的样子,我们这时候可以Ctrl+U查看源代码来查看,会相对来说比较好审计

77f4350e7d394276a4502a783c13cdd0.png

上文我们提到/var/log/auth.log是存储用户身份验证和授权相关信息的文件,那我们在kali上尝试登录吧唧,看看这边是否有反应

a6d84125387043f2ba0c86165fa0789d.png

可以看到这里记载了我们刚刚ssh三次尝试登录root的行为,这我们就应该想到我们可以写点儿东西进去利用——一句话木马

af0d1a6a03004c26a4d027c889072fe5.png

 这里我们在ssh登录的时候趁机写入一句话木马

72f8dc7f72d24f8d8500e2dd75c88dc7.png

 回到网站,传入对应的参数后我们可以看见他是成功RCE的了!我们就要想办法弹一个shell到本地,我们该怎么用命令执行进行rce呢?请出我们的老朋友——nc

b00a9885f13f443ca363c9b64ac3090f.png

可以看到我们成功的弹回了本地,取得突破性进展(好诶)

4.信息搜集

7c63aafddb9440c79e6c2adf0930d0be.png

 nc弹回来的shell长得有点丑,我们使用一系列方式操作一下,最后键入reset按下回车后即可拿到一个正常的交互式shell(可以用上下箭头切换历史命令,较为详细的原理在我之前的《vulnhub吧唧——RAVEN: 1》这篇文章中提到过)

26279d91a7bd4a7391418c937a13a184.png

 言归正传,我们进行一番简单的信息搜集,可以看到他是ubuntu操作系统的吧唧,以及拥有/bin/bash权限的仅只有root

cbada92a1bd84593814f8b87c6782073.png

 进行一番基本的信息搜集,我们暂时没有发现什么特别的东西

eb3bfdb9c77c49ebbcfacbf9e78c6307.png

 经过一番沉淀以及一个weber敏锐的嗅觉,这个文件用我那蹩脚的英语翻译过来是备份的意思,这个名字就很有说法的

bcda9557dd144b16bed0119433f4acc4.png

 我们直接就是把他下载到本地的kali,活学活用,直接用nc

20c040251f7a4fd492726fdfdb1f0b67.png

这里我们成功的把他下载到了kali里面

5.密码爆破

3ec7fd0060e648eab31ae2199ad1f91c.png

 /usr/share/wordlists/rockyou.txt是一个非常著名的密码字典,来源于曾经泄露的数据中,我的kali里面的这个字典被压缩了,不过没有关系,我们解压之后尝试爆破zip文件

c3c912be84e04a4f86f6e4037676a9ac.png

 我们可以看到已经成功解压文件(unzip filename.zip、tar -xvf filename.tar、gunzip -d filename.gz、bzip2 -d filename.bz2、xz -d filename.xz等等等等)

a05c55fc28a447c59c421bd7a2876679.png

 当然,我们还可以使用别的命令比如fcrackzip破解zip文件

1b0ea19b06a24df8b348965bf772da0d.png

 同样我们得到了密码,randy:!randybaby

839a236bf6aa431387db589884880575.png

 可以看到我们得到了一个密码,猜测是最开始randy用户的密码

69f9daf1221546ddaab5121d9d2d5ce3.png

 运行了一下easysysinfo.c这个程序,他就是查看一些系统的配置,先放这儿

6.再次搜集

eb0f579d5fe044b4938ad7d344ccc78f.png

 我们成功登录randy,我们进行一番基本的信息搜集

48b18fa7be144960b29c9d6b9b344231.png

 我们这里找到的user.txt应该是第一个flag

flag{98342721012390839081}

然后我们这里看得到randy可以无密码以root的权限执行/home/randy/tools/easysysinfo这个东东,这个文件名似曾相识

736aa5c185a7409abe87df835a2398d5.png

 这个东东的运行结果跟刚刚easysysinfo.c的结果虽然不能说两模两样,简直就是一模一样

e9887bbe0a2a4b9aaab96e967e6bc13e.png

 我们查看一下easysysinfo的源代码,是pyhton3.9写的,经过一番审计不难发现一个的试试——程序在执行的时候具有root的权限

38456e8a1ab34e18ac38661c07c260f7.png

 那么我们就可以干一些坏坏的事情了

7.滥用变量

dafcb8f9777e46a49442fa95277eaa9c.png

 我们直接就是开始将但当前目录加入进当前环境变量中去

4c7bae4e41c24dae8a5932baced46f65.png

 我们先是将/bin/bash写入当前目录的cat中,然后更改其权限,运行easysysinfo的时候调用到了cat命令的时候,他会在当前系统环境变量中寻找,因为是从左至右左结合,一找一个准儿,直接就是找到了我们的/bin/bash,以root的权限新开了一个shell就提权成功啦

46283238990c42a5a8bb097ff85ee0d3.png

 直接就是拿到我们的flag

flag{4NJSA99SD7922197D7S90PLAWE}

8.gcc编译文件提权

a71be5e7c3474df192bb0790162eb3dc.png

 我们回到最初的程序,既然randy可以无密码运行easysysinfo这个程序,那我们可以偷梁换柱,我们搜索了一下发现没有vim但是有vi,一样的,我们先用一个文本编辑器(我这里用的vi)写一个以root权限开启shell的脚本

a426a6e1e8a7476d8271c1fb72854e6d.png

我们编译后以root权限执行可以发现提权成功啦

总结:学会了一些新的命令,dirsearch可以-w指定参数列表还可以扫二级目录,ffuf可以进行模糊测试可以扫目录可以爆破变量名,还有日志包含,利用ssh写入一句话木马执行命令,nc反弹shell,/usr/share/wordlists/是kali自带的密码目录,zip2john爆破压缩包密码,fcrackzip爆破zip文件密码,滥用环境变量用cat提权,还有gcc编译成可执行文件覆盖对应的文件以至提权,总的来说学到的小知识点非常的多,很开心能学到这些东西,多多积累啦

新手上路,请多指教

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值