vulnhub dc-9靶机通关

Vulnhub dc-9靶机通关

思路:sql注入登录->LFI(本地文件包含)->端口敲门->root提权

首先搭建好环境,我这里使用NAT模式,使用局域网扫描器,扫描到我142的地址

 vulnhub dc-9靶机通关

访问页面,点击几下之后发现search这里存在了搜索功能,尝试抓包看看有无注入

 vulnhub dc-9靶机通关

通过and 1=1 and 1=2判断此处是存在了注入,使用sqlmap跑起来。

 vulnhub dc-9靶机通关

通过sqlmap跑到一些数据,通过somd5解密admin密码,登录后成功:transorbital1

 

 vulnhub dc-9靶机通关vulnhub dc-9靶机通关

 

登录只有就多了两个功能点,看到网页下方存在 File does not exist文件不存在,猜测可能存在本地文件包含漏洞,使用fuzz跑一下

 vulnhub dc-9靶机通关

可以看到还是可以跑到一些文件的。但是到这里也就卡住了,没有跑到日志文件无法通过日志文件包含拿shell

 vulnhub dc-9靶机通关

去看大佬的做法,这里需要使用端口敲门的方法

原理简单分析:

  端口敲门服务,即:knockd服务。该服务通过动态的添加iptables规则来隐藏系统开启的服务,使用自定义的一系列序列号来“敲门”,使系统开启需要访问的服务端口,才能对外访问。不使用时,再使用自定义的序列号来“关门”,将端口关闭,不对外监听。进一步提升了服务和系统的安全性。

  vulnhub dc-9靶机通关

简单来说就是:知道它的自定义端口后,依次对其进行敲门,然后就可以开启ssh服务从而进行连接了。它的默认配置文件为:/etc/knockd.conf

看到他存在3个自定义的端口,根据port-knocking的规则依次访问这三个端口就可以打开ssh服务

 

根据大佬提供2种敲击方法:nc、nmap

for x in 7469 8475 9842;do nmap ‐Pn ‐‐max‐retries 0 ‐p $x 192.168.147.142;done

for x in 7469 8475 9842 22 ;do nc 192.168.147.142 $x;done

 

还是这种方式好使,使用nmap没开起来。可以看到ssh服务已经开启了

 vulnhub dc-9靶机通关

将sqlmap枚举出来的用户名密码做成一个字典,使用hydra爆破,有三个用户名可以登录

 vulnhub dc-9靶机通关

通过查找这三个用户名的目录,只有janitor文件下有可读文件,文件内容是一些密码,添加到密码字典再次进行爆破

 vulnhub dc-9靶机通关

果然出现了一个新的用户

 vulnhub dc-9靶机通关

登录进去之后使用sudo -l 查看权限,发现在/opt/devstuff/dist/test/test文件下有root权限

 vulnhub dc-9靶机通关

在/opt/devstuff/目录下发现了test.py脚本,他会打开第一个参数读取内容,然后打开第二个参数写入

 

既然拥有root权限,那现在我们要做的就是构造一个拥有root权限的用户,并且在/etc/passwd文件中储存,只要使用这个用户登录后,就可以获取到root权限

创建一个具有root权限的新用户

首先在kali本地使用OpenSSL生成一个名为test的用户,其密码为123456

openssl passwd -1 -salt test 123456

 vulnhub dc-9靶机通关

添加用户名、:和:0:0:: ,使test用户拥有root权限,使用echo在tmp下创建test文件

echo 'test:$1$test$at615QShYKduQlx5z9Zm7/:0:0::/root:/bin/bash' >> /tmp/test

将test文件中的信息追加到/etc/passwd中,切换到test用户

 

 vulnhub dc-9靶机通关

vulnhub dc-9靶机通关

 

上一篇:Vulnhub DC-2


下一篇:vulnhub-CH4INRULZ