Vulnhub之路Ⅰ——Lampiao(脏牛提权)
Vulnhub之路Ⅰ——Lampiao(脏牛提权)
靶机详情
- 靶机地址:https://download.vulnhub.com/lampiao/Lampiao.zip
- MD5: 7437D6FB83B63A7E14BB00F9C7A758B9
- Level: Easy
- Mission: Get root & find the flag.txt
Description
Would you like to keep hacking in your own lab?
Try this brand new vulnerable machine! "Lampião 1".
Get root!
您想继续在自己的实验室中进行黑客攻击吗?
试试这个全新的易受攻击的机器! 'Lampião 1'。
获得root权限吧!
环境准备
都说Vulnhub上的靶机和vmware适配的不是很好,但是我好像直接导入ovf就完事了,网卡名字也是一样的
Write Up
主机发现
nmap -sN 发现靶机IP: 192.168.110.149
端口扫描
对靶机进行完整全面的扫描:
nmap –T4 –A –v -p- 192.168.110.149
-A 选项用于使用进攻性(Aggressive)方式扫描;
-T4 指定扫描过程使用的时序(Timing),总有6个级别(0-5),级别越高,扫描速度越快,但也容易被防火墙或IDS检测并屏蔽掉,在网络通讯状况良好的情况推荐使用T4;
-v 表示显示冗余(verbosity)信息,在扫描过程中显示扫描的细节,从而让用户了解当前的扫描状态。
-p- 表示扫描所有的端口
扫出22、80、1898端口开放,其中1898信息量很大,重点关注
服务器拿shell
发现Drupal
CMS,还有一个登录窗口(刚开始扫目录,除了robot.txt都没什么有用的信息)
到MSF中Search Drupal
直接拿服务器shell
上马连哥斯拉
网站信息搜集
CHANGELOG.txt 发现最近一次更新 Drupal 7.54
网站的根目录
发现几个不应该出现在这里的东西
- audio.m4a:音频文件,提示user tiago
- lampiao.jpg:这就是个banner logo,没啥隐写
- LuizGonzaga-LampiaoFalou.mp3:一首正常的音乐
- qrc.png:一个二维码,结果为 Try harger! muahuahuahua
然后在/sites/default/settings.php中还找到密码 结合上面的.m4a提示,tiago/Virgulino
想用tiago登网页,没成功,发现这是个普通用户ssh的密码,那目前来说,作用还不如我们的🐴儿
还有一个发现,ssh连进去以后试出来root@mysql也是这个密码
发现Drupal数据库有个user表,里面有邮箱,假如这是个真实站点我们就可以考虑钓鱼了
然后就是艰辛的root提权。
学习了一个通过爬取网站上关键信息生成字典的一个神器——Cewl
cewl是一个 ruby 应用,爬行指定url的指定深度。也可以跟一个外部链接,结果会返回一个单词列表,这个列表可以扔到John the ripper工具里进行密码破解。cewl还有一个相关的命令行 工具 应用FAB,它使用相同的元数据提取技术从已下载的列表中创建作者/创建者列表。
Usage:cewl
[options]
然后就想着去爆破一波
hydra -l root -P lampiao_dict.txt -V -t 4 ssh://192.168.110.149
-l 用户名
-P 爆破字典
-V 显示爆破详细信息
-t 指定线程数
ssh爆破未果
社工手段看来是不行了,搜了下WP,这里需要用一个内核CVE——脏牛进行提权
脏牛提权(cve-2016-5159)
原理:linux内核的子系统在处理写入时复制至产生了竞争条件,恶意用户可利用此漏洞来获取高权限,对只读内存映射进行访问。竞争条件,指的是任务执行顺序异常,可导致应用奔溃,或令攻击者有机可乘,进一步执行其他代码,利用这一漏洞,攻击者可在其目标系统提升权限,甚至可能获取到root权限。
漏洞范围:大于2.6.22版本 (2007年发行,到2016年10月18日修复)
危害:低权限的用户可利用这一漏洞在本地进行提权
这是一个内核漏洞
uname -a 查看内核版本
靶机为 ubuntu14.04.5 更新时间:2016年8月5日 所以存在漏洞
利用方法
Kali searchsploit dirty cow
使用40847.cpp提权exp
cp /usr/share/exploitdb/exploits/linux/local/40847.cpp
用我们的🐴儿传上去
Usage:
g++ -Wall -pedantic -O2 -std=c++11 -pthread -o dcow 40847.cpp -lutil
-Wall 一般使用该选项,允许发出GCC能够提供的所有有用的警告
-pedantic 允许发出ANSI/ISO C标准所列出的所有警告
-O2编译器的优化选项的4个级别,-O0表示没有优化,-O1为缺省值,-O3优化级别最高
-std=c++11就是用按C++2011标准来编译的
-pthread 在Linux中要用到多线程时,需要链接pthread库
-o dcow gcc生成的目标文件,名字为dcow
./dcow -s 执行
非常关键的一点,哥斯拉的Terminal不支持切换用户,所以报错了
所以这里执行提权文件的时候,还是要用tiago@ssh(所以ssh还是派到了用处)
OK,直接get root
find / -name flag.txt
Misson Completed!
学习总结
1.哥斯拉的马不支持切换用户
2.信息搜集字典cewl
3.在信息搜集的过程中注意目录中不寻常的文件,可能就是突破口
4.脏牛提权(适用2016年10月18日前的Linux版本)
5.注意数据库配置文件
6.nmap最全端口扫描命令 nmap –T4 –A –v -p-