靶机目标
在靶机的根root目录下找到flag文件并读取flag
相关知识
-
nmap使用
-
Drupal 7 CMS RCE
-
mysql数据看查询语句
-
Mysql执行SQL修改后台管理员账号
-
hashcat密码暴力破解
-
hydra暴力破解ssh登陆密码
-
使用SUID权限运行的find命令进行提权
环境搭建
攻击主机:192.168.174.131
目标靶机:192.168.174.195
渗透流程
目标发现
首先扫描整个局域网,查找目标主机IP地址:
arp-scan -l
确定目标主机IP地址为:192.168.174.195
端口扫描
使用nmap进行端口扫描探测:
nmap -A -p- -T4 192.168.174.195
从上面的扫描结果可以发现这里开放了常见的22(ssh)、80(http)、111(nfs共享)端口,其中80对应主要的web服务,经过访问发现此处web使用的是Drupal 7:
目录扫描
尝试了弱口令与爆破,发现无果,之后扫描一下目录看看:
这里看到有一个robots.txt,随后访问看看:
版本确定
也没有什么重大的发现,不妨查看网页源代码看看呢?————发现使用的是Drupal 7:
漏洞查询
一想Drupal 7应该也是有很多漏洞的,因为目前已经有了8了,所以直接使用searchsploit来查看一下有没有什么可以直接利用的漏洞:
searchsploit drupal
漏洞利用
从上面的搜索结果中我们发现有很多的sql注入,但是我们这里不想要那么麻烦,所以直接使用RCE类漏洞,同时发现有可以在Metasploite中直接使用的,那么我们直接在MSF中查看一下可用的模块:
从模块的时间来看,2018、2019的应该是可以使用的,这里使用2018的exp来实施攻击,首先配置参数
之后输入“run”实施攻击,成功获得一个meterpreter:
查看权限
之后,进入shell模式,查看一下当前用户的权限,发现是普通用户
查看权限
之后,进入shell模式,查看一下当前用户的权限,发现是普通用户
反弹bash
之后尝试使用python来反弹一个bash回来:
python -c \\\'import pty;pty.spawn(\\\"/bin/sh\\\")\\\'
发现Flag1
之后查看一下当前目录下的文件信息,发现flag1
之后读取flag1.txt文件信息:
从上面的信息我们可以看到,指示我们去找CMS的配置文件,这也许是flag2的下落信息!
获取flag2
之后翻阅网站目录,发现配置文件位于:
/var/www/sites/default/settings.php
之后查看配置文件获取flag2:
从flag2的信息提示我们可以了解到爆破不是唯一的方法,而且成功率较小,但是在这里我们看到了配置文件,在配置文件的下面就有默认的数据库的账号密码,那么还在等什么呢?对了,连接数据库呗
获取flag3
之后连接数据库试试,发现使用上面的数据库连接信息可以成功连接数据库:
之后查询一下当前可用的数据库信息:
select database();
之后使用drupaldb数据库,并查询所有的表面信息:
use drupaldb;
select table_name from information_schema.tables;
之后查看user表来获取用户信息:
可以看到这里的信息进行了加密处理,这里给出两种方法:
一:hashcat解密:
hashcat的使用说明:
Drupal 7为7900:
使用hashcat进行破解:
一段时间后成功爆破(当然这取决于用户的字典的强大与否)
第二种方法:使用mysql命令修改用户密码为——drupal(Drupal 7采用的pass加密方式为password-hash.sh)
update users set pass=\\\'$S$DFLfuzfO9WDKAJcUHnNmhS9NwOD6MRj3pk00qEl4O7iNBD2X4n3v\\\' where name=\\\'admin\\\';
之后使用账号密码登陆(admin:drupal):
之后获取flag3:
从上面的提示,可以看到flag4与password文件相关!
获取flag4
查看/etc/passwd文件,发现flag4提示信息
这里也有两种方法:
方法一:直接查看flag4用户目录:
在flag4用户的目录发现flag4.txt文件:
之后查看flag4文件信息:
方法二:爆破flag4用户账户密码
hydra -l flag4 -P pass.txt ssh://192.168.174.195
从上面可以看到成功爆破账户密码orange,之后ssh远程连接试试看呢?成功登陆后发现也是普通用户权限:
之后查看当前目录下文件即可获得flag:
从以上的flag信息我们可以知道flag5位于root目录下,而我们此时没有访问权限,所以要先提权才可以获取flag5!
获取flag5
首先使用sudo -l查看一下有没有什么命令可以进行提权的:
之后查看有没有 root 权限的 SUID 命令,发现了下面这些:
find / -type f -perm -u=s 2>/dev/null
发现一个可用的命令——find命令,之后构造以下命令语句进行提权:
find flag4.txt -exec \\\"whoami\\\" \\\\;
从上面的结果我们可以看到,此时我们已经是root权限了!之后我们直接执行以下命令完成完美提权:
find flag4.txt -exec \\\"/bin/sh\\\" \\\\;
PS:这段命令的意思是先使用 find 命令查找flag4.txt 文件,然后使用它的参数 -exec 来执行命令 /bin/sh,以此来获取root权限!
成功完成提权并获取flag5!
原创文章,作者:七芒星实验室,如若转载,请注明出处:https://www.sudun.com/ask/34100.html