TRY HACK ME | Daily Bugle「HASH+YUM」

TRY HACK ME 渗透测试靶场,以基础为主层层深入,知识点讲解详细,对于想实现从零到一飞跃的白客,TRY HACK ME无非是最好的选择。而网络上资源良莠不齐,好的资源难找的一逼。因此,今天起我将与大家一起详细学习THM重要的ROOM里的内容,力求让每个人都能理解、掌握其中的内容,让我们一起学习、一起å进步、一起GET THE FLAG!

THM靶场:Daily Bugle

在这个房间中,我们将学习通过 SQLi 入侵 Joomla CMS 帐户,练习破解哈希并利用 yum 提升权限到root,这是一个相对比较简单的靶场,直接开秒吧!

每日号角


启动机器,连接openvpn,点击“Start Machine”获取目标IP,本次测试使用KAIL作为攻击机,连接成功后显示如下:

蜘蛛侠抢银行
可以看到,左边有一个“蜘蛛侠抢的新银行”的新闻标题,那这个主题应该和蜘蛛侠有关,右边有个登录页面,可能可以爆破或者绕过,先常规nmap探测一波端口:

export IP=10.10.xx.xx //设置靶机IP
nmap -Pn -T5 --max-retries 2500 -sC -sV -oN nmap/initial $IP //扫描开始,将结果保存在nmap/initial中

nmap结果

可以看到,虽然没有什么很好直接利用的服务端口,但是我们扫出了该网站的CMS,为joomla,这里我们使用一个很好用的扫描工具,可以在github上直接下载:https://github.com/stefanlucas/Exploit-Joomla。运行该工具进行扫描:

joomscan -url http://10.10.58.126 

版本为3.7.0

直接爆出了CMS版本3.7.0,后台管理页面administrator

找到后台页面!
搜索改版本漏洞,找到一个SQL注入漏洞,可以参考链接:https://blog.sucuri.net/2017/05/sql-injection-vulnerability-joomla-3-7.html,有关于这个漏洞的代码分析。我们这里直接找到了利用脚本:https://github.com/stefanlucas/Exploit-Joomla,下载下来直接运行就可以找到用户名和密码:hash加密
其中,用户名为jonah,密码为:

a$2y$10$0veO/JSFh4389Lluc4Xya.dfy2MF.bZhz0jVMw.V.d3p12kBtZutm

查询该hash值的加密方式,可以发现,为bcrypt 2 ∗ 2* 2, Blowfish (Unix)加密对方式:hash
构造hashcat命令,对hash值进行破解:

hashcat -m 3200 hash.txt /usr/share/wordlists/rockyou.txt  //这里我使用字典rockyou.txt,可以在github上下载

这里爆了巨长的时间,总之,最后爆出来的结果是密码为spiderman123(这密码,真是无语了),我们找到之前扫出来的后台,成功登陆!

后台页面
搜了一下,这个CMS可以执行反向shell,我们进入template “protostar”,把error.php里的代码改成kali里的反向shell,配置一下端口和IP,在kali设置一下监听端口,直接在网页访问就可以获取shell了:
构造反向shell代码
获取shell成功!
我们进入home页面,下意识找一下flag,发现居然没有权限!(不演了,毕竟没提权)denied

我们进入var/www/html页面,看到有一个configuration.php页面,cat一下,获取到密码!

在这里插入图片描述
密码get!

我们再用ssh直接登录jjameson这个账户,成功获取到user flag!user flag
像往常一样,我们要尝试的第一件事是获取允许以 sudo 运行的命令列表的命令:sudo -l

sudo -l

看起来我们可以使用 sudo 来运行 Yum,在gtfobins上搜索yum,显示如下:
root shell
复制提权命令直接执行,我们成功提升权限至root!!!提权!
提权成功!
最后进入root,get flag!!!
get flag!


Daily Bugle 靶场通关小结

在这个房间中,我们一起学习了通过sql注入获取CMS后台用户名密码信息,构造反向shell获取普通权限,最后通过yum提升权限至root,其中最繁杂的部分应该是hash值的破解,这里我建议大家直接使用sqlmap抓个包把密码跑出来就完事了,hashcat和john the ripper都太慢了。如果有部分不明白的,可以把流程反反复复的多看几遍,同时也非常欢迎大家私信我,如果觉得内容做的不错的话,也可以关注我的公众号:HACKER 航仔 以获取最新消息并与我联系,十分感谢能看到这里的各位,虽然制作不易,看到你们的点赞我还是很开心的!我们下期再见,拜了个拜~~~

这是一个关于 Java 编程的问题。我可以为您解答。 请看以下 Java 代码实现动物演员的相关内容: ```java class AnimalPlayer { private int number; // 编号 private String name; // 名字 private int age; // 年龄 public AnimalPlayer(int number, String name, int age) { this.number = number; this.name = name; this.age = age; } public void drive() { System.out.println("Oh, " + name + " is driving."); } public void rollBall() { System.out.println("Oh, " + name + " is rolling the ball."); } public void bugle() { System.out.println("Oh, " + name + " is blowing the bugle."); } public void stunt() { System.out.println("Oh, " + name + " is performing a special stunt."); } } class Monkey extends AnimalPlayer { public Monkey(int number, String name, int age) { super(number, name, age); } @Override public void stunt() { System.out.println("Oh, " + getName() + " is swinging from the trapeze."); } } class Dog extends AnimalPlayer { public Dog(int number, String name, int age) { super(number, name, age); } @Override public void stunt() { System.out.println("Oh, " + getName() + " is jumping through a hoop."); } } class Bear extends AnimalPlayer { public Bear(int number, String name, int age) { super(number, name, age); } @Override public void stunt() { System.out.println("Oh, " + getName() + " is balancing on a ball."); } } class Panda extends AnimalPlayer { public Panda(int number, String name, int age) { super(number, name, age); } @Override public void stunt() { System.out.println("Oh, " + getName() + " is eating bamboo while balancing on a seesaw."); } } public class AnimalPlayerDemo { public static void main(String[] args) { AnimalPlayer monkey = new Monkey(1, "Jerry", 3); AnimalPlayer dog = new Dog(2, "Sparky", 5); AnimalPlayer bear = new Bear(3, "Teddy", 4); AnimalPlayer panda = new Panda(4, "Bao Bao", 2); perform(monkey); perform(dog); perform(bear); perform(panda); } public static void perform(AnimalPlayer ap) { ap.drive(); ap.rollBall(); ap.bugle(); ap.stunt(); System.out.println(""); } } ``` 以上代码定义了一个 AnimalPlayer 类和四个继承自该类的类:Monkey、Dog、Bear、Panda。每个类都有自己的 stunt 特技表演。 在 `AnimalPlayerDemo` 类中,创建了四个动物实例,每个动物实例都进行表演。`perform` 方法接收一个 AnimalPlayer 类型的参数,并依次执行骑车、滚球、吹号和特技表演,并输出相关信息。 比如执行 `monkey.drive()` 的结果会输出:"Oh, Jerry is driving."。 希望能帮到您!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值