NullByte1
arp-scan -l扫描ip段存活的主机,实战可以用nmap扫,然后找到主机Ip192.168.31.137
然后用nmap扫描端口
开了3个服务,后面两个服务也不知道是什么,第一次见,先看80服务
前端源码
1 | <html> |
静态页面没有漏洞点,用御剑扫描一下其他可能页面,
uploads
phpmyadmin
数据库管理工具,但是mysql服务没有开,尝试sql注入,用bp抓包包所有参数都加上’,但是没有报错,找不到注入点在哪里。
ok啊,看了眼wp说是前面的图片用了图片隐写,实战应该不太可能,所以这里就跳过了,得到的结果是kzMb5nVYJw
提示没有连接数据库,不用尝试sql注入了,然后用hydra进行爆破处理
1 | hydra 192.168.31.137 http-form-post "/kzMb5nVYJw/index.php:key=^PASS^:invalid key" -l admin -P /usr/share/wordlists/rockyou.txt |
得到结果elite
http://192.168.31.137/kzMb5nVYJw/420search.php?usrtosearch=root这样的url就很有可能存在sql注入
报错了,说明存在sql注入
http://192.168.31.137/kzMb5nVYJw/420search.php?usrtosearch=" union select 1,database(),3--+
然后直接用sqlmap查users表
得到了用户和密码,密码看上去是base64加密,我们解密后得到c6d6bd7ebf806f43c76acc3681703b81,因为是32位,而且base64不应该拿来当密码,猜测是MD5,解密一下,
有一个777端口的服务,第一次扫描nmap也不知道具体是什么服务,而且这个没有ssh服务,我们用-sV在单独扫一次
发现这个777端口就是ssh服务。然后用用户名和密码登入
登入后执行sudo -l发现该用户没有sudo权限。尝试suid提权find / -user root -perm -4000 -print 2>/dev/null
没有看到类似于find,vim,bash这种,有一个比较特殊的/var/www/backup/procwatch,cd 看看
后面的提权也没有思路了,看看wp,执行这个文件
可以看到是执行文件后,回显和ps命令一样,所以感觉是使用了ps命令,当执行ps文件的时候,会先去环境变量靠前的去找,所以我们可以在当前目录下写一个ps文件,然后把当前目录放在环境变量的最前面,然后给权限,然后执行.procwatch文件
1 | echo "/bin/sh" > ps |
这里不知道为什么/bin/bash不行
查了一下,是因为/bin/bash有安全机制,如果是自动打开的bin/bash会丢弃特权身份,而/bin/sh不会,所以以后提权尽量还是用/bin/bash
