我是如何在 7 分钟内黑掉 40 家网站的?

简介: 我的一个朋友告诉我,他的网站上发现了一个 XSS 漏洞,他想让我深入看看。XSS,又称跨站脚本攻击 Cross-site scripting,它是一种安全漏洞。XSS 攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。我向他申请了正式的许可,这样我能在这个网站和服务器上做完整的渗透测试。(注:这一步非常重要,注意法律风险)

原文链接

image.png

1、端口扫描

第一步就是尽可能多地了解你的“敌人”,并且尽量不要惊动它们。
这时候,我开始启动计时器计时。

image.png

这次扫描花了大概2分钟

扫描发现了很多开放的端口!通过 FTP(port 21) 和 SMB(ports 139/445),我们可以猜出这个服务器是用于保存文件和共享文件的。

与此同时,它还是一个 Web 服务器 (port 80/443 和相应的代理 8080/8081) 。

如果上面的信息不够,我可能还会做一个 UDP 端口的扫描。现在唯一允许我们与之交互的端口 (不需要登录服务器) 是 80/443。

没有浪费一点儿时间,我启动了 gobuster 来探索这个 Web 服务器上让我“感兴趣”的文件。与此同时,我也通过手工的方式开始挖掘。

$gobuster -u http://example.com -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -t 100 /admin  /login

我发现/admin这个路径对应这“管理工具”,通过认证的用户可以修改这个 web 服务器上的东西,由于我没有用户名和密码,在这里走不下去了。(剧透:gobuster 也没有发现什么有价值的东西)

已经过去三分钟了,还没有发现有用的东西。

2、获取 Webshell
浏览这个网站的时候,它需要我登录,没问题,用一个假的 e-mail 创建一个账户,点击确认邮件,几秒钟后就登录了。

这个网站对我的登录表示欢迎,提示我到个人主页去修改头像,很贴心嘛!

网站看起来像是自己开发的,要不要“试试不受限的文件上传”漏洞?

我迅速在本机生成了一个文件:

image.png

然后试着把它当作图像文件上传, 成功了!

为了避免这个漏洞,上传者一定要对上传的文件做处理,检查文件扩展名,把它替换成.jpeg、.jpg,这样可以避免远程代码执行。

当然,我上传的文件没有缩略图:

image.png

通过“复制图片地址”的功能,我得到了这个 URL ,在浏览器中运行一下:

!image.png


哈哈,看起来我们已经有一个可以工作的 webshell 了。

这个 web 服务器居然运行着 Perl 脚本,我从我最喜欢的备忘录中找了一个 reverse shell 脚本,设置好了 IP 和端口,这样我就获得了一个低权限的 shell ——抱歉,没有屏幕截图。

大约 5 分钟以后,我获得了一个低权限的 shell。

3、拿下数据库
让我十分惊奇的是,这个服务器不仅 host 一个 web 站点,而是 40 个!

$ ls /var/www access.log site1/ site2/ site3/ {… 更多的 sites}

你也许猜到了,我具备这些 web 站点目录读的权限,可以读任意的后端代码。

我把注意力集中到example.com的代码中,很明显,在cgi-admin/pages目录中,所有的 perl 脚本都是用 root 来连接 MySQL 数据库的,密码也是明文存放的, 我们假设它们是 root:pwned42

执行这条命令:

`mysql -u root -p -h localhost victimdbname 
 
Password: pwned42

我就以 root 权限登录了数据库。

image.png

仅仅 7 分钟, 我具备了对 35 个数据库完全的读写权限!

在这里,我有道德义务停下来,潜在的损害非常巨大。一个攻击者可以做这些事情:

dump 这些数据库,这将导致 35 家公司的数据泄露。
删除所有数据库。
使用 cronjob 在 apache 里留个后门
该休息一下了,停止计时器。

4、还会有什么问题呢?
我告诉朋友这些发现,获得进一步挖掘的许可。

在将权限升级到威力巨大的 root 之前,我先看看我这个有限权力的用户能访问哪些有趣的文件。

此时我想起来那个开放的 SMB 端口,这意味着系统中应该有个文件夹在用户之间共享,经过一番探索,我找到了这个目录/home/samba/secured,里边的内容如下(请原谅为了隐私,我隐去了大量信息)

image.png

在这些目录中发现了大量的属于公司用户的敏感数据,包括:

**- .psd/.ai files (设计师应该知道这些文件多重要,这是它们的工作成果)
Cookie sqlite files
发票
盗版的电子书 (我看到这些的时候不由得笑了,谁说老外不看盗版?)
Wifi 密码
**攻击者就可以做这些事情:

到这些公司办公室的外边“露营”, 登录公司的内网,然后做各种各样有趣的、能在内网实施的攻击。
把这些敏感数据泄露出去。
这些目录花费了我不少时间,这个漏洞后果非常严重。

最后一击
用 apache 这个账户在四周看了很久以后,我决定是时候去钓个大鱼了:获取 root 权限。

通常,操作系统是打过补丁的,只有那些配置错误的服务才有可能给你想要的 root 权限, 但是在现实的世界中,人们很少给操作系统打补丁!

这个服务器运行的是什么操作系统呢?

image.png

内核是什么版本?

image.png

看起来这是一个老版本!这个版本有个漏洞,叫 Dirty Cow,可以提升用户的访问权限。

image.png

网上有篇博客讲述了如何测试内核是否有这个漏洞,并且提供了一个脚本。

执行这个脚本,root 最终到手!

image.png

游戏结束了
我立刻给朋友写了一封邮件,全面地告诉他这些渗透测试的细节和每一步的可能影响,然后结束了当晚的活动。

一个攻击者可以做的事情:

读 / 写服务器上所有的文件
植入一个持久的后门
安装恶意软件,并且传播到内网
安装勒索软件(劫持 35 家公司的数据库和相关数据可不是一件小事)
把这个服务器当作矿机
把服务器当作僵尸网络的一部分
把服务器当作 C2C 服务器
… (发挥你的想象力)
第二天,朋友联系了我,说他联系了负责那个服务器的公司,那个文件上传的漏洞已经 fix 了。

总结

有文件上传漏洞的 Web 应用可能导致黑客获得一个低权限的 shell

要仔细设计文件上传组件

明文的密码,让我们可以读写 35 个 Mysql 数据库

所有的数据库都用同一种密码可不是什么好事情

有很多的敏感数据可以阅读

**要小心地给用户分配文件访问权限,遵循最小权限原则
**
内核的漏洞让我们获得了 root 权限,

记住给操作系统打补丁

相关文章
|
12月前
|
SQL 安全 网络安全
你们公司的网站是如何被黑客盯上的
你们公司的网站是如何被黑客盯上的
金山打字通屡遭假冒 金山怒批“李鬼”带毒坑用户
假冒软件不仅危害了正版软件的权益,还会给使用者带来危害,广受欢迎的金山明星产品金山打字通近期又出现了“李鬼”产品,除了假冒软件常有的不稳定、报错、重启 等问题外,假冒软件还携带电脑病毒。针对这一假冒事件,金山公司发表了相关声明如下:   近日,经用户反映,我公司发现在网络上出现一系列假冒的《金山打字通2009》版本的软件产品。
2607 0
|
安全
多家高校网站被挂马 用户应小心QQ盗号木马
据瑞星“云安全”系统统计,周末共有1123万人次的网民遭到网页挂马攻击,瑞星共截获了3,273,495个挂马网址,比上周同期有所上升。 当日被挂马网站Top5:   (注意:以下网址都带有病毒,请不要点击)     1、“北京大学公共卫生学院”:http://sph.bjmu.edu.cn/Html/downloads/index.htm,被嵌入的恶意网址为http://z.hg9*3.cn/d1/16/ytbf.htm等。
1285 0
|
安全
黑客称攻破乔布斯亚马逊网站账户 欲售相关信息
5月15日消息,一个黑客称他已经攻破了苹果首席执行官史蒂夫·乔布斯在亚马逊网站的私人账户并且要把乔布斯账户的细节出售给新闻记者。这些私人账户的细节信息包括乔布斯最近几年的采购历史和乔布斯的信用卡号码。
671 0
|
安全 PHP
匿名者自述是如何黑掉一万多个暗网网站的?
本文讲的是匿名者自述是如何黑掉一万多个暗网网站的?,臭名昭著的匿名者黑客又回来了,这次他们的目标是Freedom Hosting II(一个流行的暗网托管供应商)。
3573 0
|
安全 测试技术 数据安全/隐私保护