『VulnHub系列』DC-1靶机渗透测试
0x00 前言
在开始之前我们需要知道的是,
靶机的ip获取方式是dhcp服务器来分配ip的,如果dhcp没有自动分配ip的话,请看我的置顶文章,解决没有ip的问题
而我的VMware就只有NAT模式可以使用dhcp服务器
那么接下来都将是NAT模式
工具、知识点和漏洞
nmap
metasploit
mysql
网站配置
hydra
find命令
suid提权
配置环境
kali: 192.168.100.34
靶机DC-1: 192.168.100.136
0x01 探测目标
探测目标的命令有很多种,arp-scan -l
、netdiscover
、masscan
,
但是我一般喜欢linux用arp-scan -l
window系统用arp -a
因为我设置的dhcp服务器自动分配的ip是从130开始分配,那么这个192.168.100.136应该就是我们的靶机了
0x02 枚举和初步搜索信息
一般而言,我们确定一个目标后,就要收集他的端口、目录
之类的。
跑一下目录
我们用nmap跑一下,看他开放了那些端口。
nmap还有很多其他的参数,但是我比较喜欢用这2个
-sV 查看版本详细信息
-p- 扫描所有端口
nmap -sV -p- 192.168.100.136
从上图可以看到开启了80端口,使用浏览器打开看一下。
很明显,我们看到网站的cms,所以我们可以直接在网上搜索这个cms的漏洞利用方式
0x03 漏洞利用
我们使用metasploit对漏洞进行利用
1.启动metasploit,搜索drupal模块。
搜出来有很多这个cms的利用方法
一一尝试,看那个能用就用那个
2.经测试采用2018的,配置好参数,开始攻击。
yes的地方是必填,然后我们看到第3个箭头是没有指向目标ip的
设置目标ip
3.开始攻击,run或者exploit都可以
在meterpreter中能进行的命令比较少,所有我们一般都直接进入系统下的shell
4.很显然这个shell虽然已经进入,但是这里并不是交互的shell,所以我们要进入交互式的shell
使用python反弹一个交互式shell
python -c 'import pty;pty.spawn("/bin/bash")'
5.因www-data权限很低,我们接下来开始提权。
使用suid提权
详细可以了解这篇文章
https://blog.csdn.net/qq_36119192/article/details/84872644
找到一个属于root的有s权限的文件
find / -perm -u=s -type f 2>/dev/null
如果执行失败,可以多试几次
查看find是否是s权限,答案是的
开始提权,因为我们这里的find命令才有root权限,那么就要用find命令来执行,而find命令又是用来找东西的命令。我们就可以来随便来制造一个文件,然后来使用find命令来找这个文件。后面再跟我们真正用的命令
。
但是发现新建一个文件是没有权限是新建不了
那就算了,随便在当前目录找个文件,开始我们真正的命令
提权成功
6.接下来我们开始寻找flag。
进入/home目录,发现flag4文件。
我们去翻译翻译这句话啥意思,难道是网站根目录吗
发现还果然是,发现一个flag1.txt
唉,楼主英语差,还是百度翻译康康吧
说喊我们找找CMS的配置文件,按照楼主的以往经验
难道是说,去找配置文件,然后得到数据库的账号密码,
然后查看用户表,找到后台管理员的账号密码?
但是这个CMS,楼主也是第一次遇到啊,看看网上是怎么安装这个CMS的
https://blog.csdn.net/yaojuns/article/details/38084627?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.control
https://developer.aliyun.com/article/429981?spm=a2c6h.13813017.0.dArticle738638.2d6869a6tlI9Iz
Drupal的默认配置文件为 /var/www/sites/default/settings.php,
查看发现了flag2和数据库的账号密码,
我们先进入数据库查看。
查找user 表,发现admin用户。
其实楼主的这种查询表的方法还是有点错的
应该是
直接查找默认的Drupal user 表,发现admin用户。
方法一
使用Drupal对数据库的加密方法,加密脚本位置在网站根目录下的scripts下
使用加密脚本加密新密码123456,生成加密密文
参考链接:http://drupalchina.cn/node/2128
1.站点路径下执行
2.php scripts/password-hash.sh 新密码
3.修改admin用户的密码,更新为新密码:000000
将新密码覆盖掉原来的密码
得到账户密码后,我们去登录之前那个页面试试
在content模块找到了flag3
方法二
在exploitdb中有一个针对Drupal 7版本的攻击脚本,可以增加一个admin权限的用户账号,使用此方法简便了**admin的密码,更直接
查看Drupal版本,确定Drupal版本为7.24
cat /var/www/includes/bootstrap.inc | grep VERSION
攻击脚本适用于7.31以下,所以适合7.24版本
利用drupal7.0版本漏洞增加有admin权限的用户:admin1/admin1
python /usr/share/exploitdb/exploits/php/webapps/34992.py -t http://192.168.100.136 -u admin1 -p admin1
查看users表,添加admin1成功
使用新添加的用户admin1/admin1登录网站,在content模块下,找到flag3
去翻译一下,看到shadow,瞬间想到/etc/shadow
查看/etc/shadow 文件,发现flag4用户,并且flag4用户可以登录并且有密码,所以存在flag4的根目录,我们可以使用 hydra 进行**
1.-l 指定用户名
2.-P 加载密码字典(自定义)
3.ssh://ip 指定使用协议和ip地址
4.**密码为:flag4/orange
使用flag4用户可以通过ssh登录系统
1.ssh aaa@qq.com
2.密码:orange
在flag4中提示在root根目录下存在,
进入到root根目录/root下找到thefinalflag.txt文本文件
自此5个flag就找到了,还是来总结一下吧
学习了新的ssh**工具hydra
学习了suid方式提权
学习了针对不用CMS的数据库的加密方式的思路
学习了/etc/passwd发现flag4可以登录且有密码,可以用hydra**
参考文章
SUID提权
https://blog.csdn.net/qq_36119192/article/details/84872644
靶机参考
https://www.freebuf.com/articles/network/218073.html
上一篇: 正则表达式如何匹配递增数字
下一篇: PHP输出Excel PHPExcel