攻击机kali:192.168.56.108
靶机dc-9:192.168.56.111
扫描存活主机:
扫描开放端口:
发现开放了80端口和22端口,且22端口处于filtered状态(被防火墙屏蔽,无法确定状态),并没有处于open状态。 浏览器进行访问,访问之后页面有点像drupal的,但是通过wappalyzer没发现有cms。
在manage目录下发现登录页面
在display all records中发现一些信息
在search目录下发现可以进行搜索,尝试输入刚刚我们看到的信息,看看有什么回显
搜索到的正是前面我们看的信息,疑似存在sql注入,bp抓包进行分析
把数据包另存为一个文件
然后用sqlmap跑一下,看看是否存在sql注入,
sqlmap -r 1.txt --batch
发现存在sql注入,sqlmap一把梭,爆数据库
sqlmap -r 1.txt --dbs
发现有三个数据库,Staff库和users库对我们应该是有用的
爆Staff库下的表
爆Users表下的字段
查看Username,Password的内容
发现用户名和密码,拿密码进行md5解密
得到密码:transorbital1
接着爆users数据库下的表
只有一个表,爆字段
爆username,password内容
猜测后面应该会用到,分别存为users.txt和passwd.txt。接着我们尝试去页面进行登录
登录后的页面是这样的,再点开manage,add record页面,进行对比,发现页面下放都有个file does not exist
猜测存在文件包含漏洞,尝试读取/etc/passwd文件,
利用hydra对ssh登录口令进行破解,使用命令:
hydra -L users.txt -P passwd.txt ssh://192.168.56.111
提示连接被拒绝,这时想到开始扫描端口的时候,ssh服务是处于filter状态的,也许和这个有关。百度查找相关信息,了解到这种情况可能是进行了防护,使用了knocked,如果是使用了knocked,那就需要依次对端口进行敲门,必须是正确的序列,才会给我们开门(开启服务),而端口敲门的序列可以在/etc/knockd.conf配置文件中得到
得到了敲门序列,接下来就依次进行敲门,百度了解到可以使用nc命令或者knockd进行敲门,knockd的话更方便一些,不过得进行安装,那我就使用nc进行吧
再使用nmap扫描端口开放的服务看是否成功
可以看到ssh服务的状态处于open了,再接着之前的用hydra对ssh的登录口令进行爆破
得到三个账号密码,进入ssh远程登录,
登录成功,但在这个账号下并没有什么东西,查看具有root权限的命令也是没有发现,切换到joeyt用户看一看,还是什么都没发现,在janitor用户下发现了几个密码
把这几个再添加到字典里,然后再次进行撞库,发现多了一组用户名和密码
切换到fredf,并没有什么发现
查找root权限,
有新的发现,进入该目录,提示了个可以用的python代码,
查找test.py的位置
find / -name test.py 2>/dev/null
得到位置之后查看test.py的内容
cat命令not found,使用less命令进行查看
发现这是一段追加脚本,那么我们可以新建一个用户,将信息追加到/etc/passwd中。
那么我们就可以创建一个具有root权限的用户并将信息追加到/etc/passwd文件中完成提权操作
使用openssl生成一个root用户,密码为123456.
openssl passwd -1 -salt test 123456
在tmp目录下新建一个test文件,添加这些数据到文件里并使其具有root权限,
echo 'root:$1$root$j0bp.KLPyr.u9kgQ428D10:0:0::/root:/bin/bash' >> /tmp/test
然后把test文件中的信息追加到/etc/passwd文件中
sudo ./test /tmp/test /etc/passwd
追加完成之后就切换到test用户,发现提权成功。
然后到root目录下找到flag文件
dc-9靶机结束~~