vulnhub靶场Dripping Blues: 1打靶记录

1.信息收集

照例整个端口扫描

 

开放了21,22,80端口。ftp还允许匿名用户登录,不多说直接登来看看。 

 里面唯一的文件是个压缩包。打开却需要密码。可以,DNA动了,感觉又回去打CTF了。

 那就按打CTF的方法来,先丢进zip2john弄出哈希,再用john解密码,过了一会儿还真整出密码来

 打开压缩包发现是另外一个要密码的压缩包和一个txt文件,这个txt文件写的是"就只要关注于drip",啥意思却摸不到头绪。另外一个要密码的压缩包爆破不出来,不管了。

二.渗透测试

 去看看80端口。刚刚nmap帮我扫出来了有robots.txt文件,先去瞅瞅。

给了两个文件,一个名字是drip is real.txt(drip是真的) ,一个名字是drip is powerful.txt(drip是强大的)。到底啥是drip啊,难不成是什么工具吗,也搜不到啊。而且第二个文件怎么在/etc目录下,难不成有目录穿越或者文件包含漏洞?总之先去看看dripisreal.txt

 英文不好,大概意思是把网页里的那个歌(Young Thug - Constantly Hating Lyrics | AZLyrics.com)n打头的单词统计一下md5加密一下就是ssh的密码。试过了,不行。而且看上去也很假,就算真的给我密码我也不知道ssh的用户名啊。

试了一下,没有目录穿越的漏洞,整个.%2e/%2e%2e/%2e%2e/%2e%2e/etc/dripispowerful.html靶机只会把%2e过滤掉。可dripispowerful.html这个点一定是要在web方面被利用的。这个文件虽然被放在/etc目录下,却故意保存成html文件的格式就是暗示。

 也就是说是文件包含了。可文件包含得有个被包含的参数点啊,比如$file啊什么的......等等,drip!!

越想越有可能,那么现在问题是究竟要在哪个页面包含,去整个目录扫描

 竟然只扫出了index.php,啊这不会直接在主页面被包含吧.......还真是........

 包含完以后反而是张图片,怪哉。点开看看源代码,发现有密码

 芜湖,是那个我打不开的压缩包的密码吗?去试试

纳尼???那我还能什么地方需要密码,ssh吗?可我到现在还是不知道用户名啊。欸不对,今时不同往日,我有文件包含漏洞了。去passwd文件看看,这个叫thugger的很可疑啊,主页面也有这个名字。

 可以,很顺利。成功登录thugger用户。

 三.后渗透提权

每当要提权时,第一反应总是网上找个自动提权脚本一键梭哈。可惜,发现竟然不给我用gcc,可网上大部分提权脚本都是C语言写的啊

看看还有啥编程语言可以用,java啊perl啊也可以将就一下,找了一会儿发现有python3,也行吧

 上传个辅助提权脚本,发现又有之前靶机上出现的CVE-2021-4034漏洞。

 

 去网上下个python写的脚本,一键root。

https://github.com/nikaiw/CVE-2021-4034.git

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
模板方法模式是一种行为型设计模式,它定义了一个算法的骨架,将一些步骤延迟到子类中实现,以使子类可以在不改变算法结构的情况下重新定义算法中的某些步骤。 模板方法模式的核心思想是:将相同的代码抽象到一个父类中,将不同的代码实现延迟到子类中,以实现代码的复用和解耦。 应用案例: 一个经典的应用案例是咖啡和茶的制作过程。咖啡和茶的制作过程很相似,但是细节上还是有些不同的,所以可以使用模板方法模式来实现。 首先,定义一个饮料抽象类,它包含了制作饮料的模板方法和一些基本方法: ```java public abstract class Beverage { // 制作饮料的模板方法 public final void prepareBeverage() { boilWater(); brew(); pourInCup(); addCondiments(); } // 烧水 public void boilWater() { System.out.println("Boiling water..."); } // 把饮料倒入杯子中 public void pourInCup() { System.out.println("Pouring into cup..."); } // 把饮料冲泡 public abstract void brew(); // 添加调料 public abstract void addCondiments(); } ``` 然后,定义咖啡和茶的具体类,它们继承自饮料抽象类,重写了抽象方法: ```java public class Coffee extends Beverage { public void brew() { System.out.println("Dripping coffee through filter..."); } public void addCondiments() { System.out.println("Adding sugar and milk..."); } } public class Tea extends Beverage { public void brew() { System.out.println("Steeping the tea..."); } public void addCondiments() { System.out.println("Adding lemon..."); } } ``` 最后,客户端可以直接使用咖啡和茶的对象来制作饮料: ```java public class Client { public static void main(String[] args) { Beverage coffee = new Coffee(); coffee.prepareBeverage(); Beverage tea = new Tea(); tea.prepareBeverage(); } } ``` 输出结果为: ``` Boiling water... Dripping coffee through filter... Pouring into cup... Adding sugar and milk... Boiling water... Steeping the tea... Pouring into cup... Adding lemon... ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值