老规矩主机发现一波
得到靶机IP为192.168.31.131
其他主机发现方法:
netdiscover -p
arp-scan -l
对靶机进行全面扫描
只开放了22和80端口,22端口估计还被防火墙屏蔽了,还是要先从网站本身下手
几个页面全部点一遍
显示所有用户数据
搜索信息,考虑SQL注入
登录界面,考虑账密爆破
进一步目录扫描
这两个都没什么价值)
返回之前的两个页面尝试SQL注入与账密爆破
会显示出所有的数据,证明是有SQL注入漏洞,且由返回的界面来看是POST型
直接上sqlmap一把梭(🤪
sqlmap -u "http://192.168.31.131/results.php" --data="search=1" --dbs
有三个数据库,重点关注users
sqlmap -u "http://192.168.31.131/results.php" --data="search=1" -D users --tables
只有一张表,直接全部dump出来
sqlmap -u "http://192.168.31.131/results.php" --data="search=1" -D users -T UserDetails --dump
先把账密保存下来做成字典
尝试对登录页面进行爆破
结果没有一个符合的🙃
想起来还有另一个数据库Staff,也把数据dump下来
发现只有一条admin的,但是经过编码,感觉有戏
UserID | Password | Username |
+--------+----------------------------------+----------+
| 1 | 856f5de590ef37314e7c3bdf6f8a66dc | admin
md5解码后得到transorbital1
登录成功了
发现底部有一行字,难道有LFI?
真的出来了
接下来从22端口找突破口,最常见的就是hydra爆破ssh密码,还是用上面的账密字典
还真被防火墙拒绝了
网上搜一下发现这是由于运行了knockd服务,查看一下相关配置/etc/knockd.conf
(knockd服务:即敲门端口服务,该服务通过动态的添加iptables规则来隐藏系统开启的服务,使用自定义的一系列序列号来“敲门”,,使系统开启需要访问的服务端口,才能对外访问,不使用时,再使用自定义序列号来“关门”,将端口关闭,不对外监听。进一步提升了服务和系统的安全性,它的默认配置文件是:/etc/knockd.conf)
要解开需要nmap顺序访问端口敲门(?)
nmap -p 7469 192.168.31.131 nmap -p 8475 192.168.31.131 nmap -p 9842 192.168.31.131 或者直接nc for x in 7469 8475 9842 22 ;do nc 192.168.31.131 $x;done
22端口就可以访问啦~
上hydra,最后爆破出三个账密,分别连接一下
janitor | Ilovepeepee |
joeyt | Passw0rd |
chandlerb | UrAG0D! |
然后老三样:查看文件、查看root权限、历史命令
发现janitor比其他两个多了一个文件,非常可疑
竟然是新的密码
先记录下来做成密码字典
三个账户都没有root权限,也没有历史命令,于是又回到hydra试试新的密码能否爆破出新的
真发现了一个新的用户,对其老三样check
fredf | B4-Tru3-001 |
发现fredf可以无需密码就以root权限执行test
先看看这个test是什么东西
执行一下看看
大概是读取一个文件的内容并追加到另一个文件中
这里提供了一个思路,就是直接追加一个有root权限的账号写入/etc/passwd中实现提权
创建一个admin用户并生成密码
先写入临时文件
再利用test追加
提权成功,拿flag