源之原味

下面是如何在7分钟内破解40网站

 

本文来自thenextweb.com。源URL是: https://thenextweb.com/syndication/2017/12/25/heres-hack-40-websites-7-minutes/

以下内容由机器翻译生成。如果您觉得可读性不好, 请阅读原文或 点击这里.

去年夏天, 我开始学习信息安全和黑客攻击。在过去的一年中, 我在各种游戏, 捕捉旗帜和渗透测试模拟, 不断提高我的黑客技能和学习新的东西 ' 如何使计算机偏离他们的预期行为 '。

长话短说, 我的经验总是限于模拟环境, 因为我认为自己是一个白帽黑客 (又名好人), 我从来没有把我的鼻子进入其他人的业务-相当字面。

直到现在这将是一个详细的故事, 关于我是如何黑进一个服务器, 托管 40 (这是一个确切的数字) 网站和我的发现。

注意:需要一些必要的 CS 知识来完成文章的技术部分。

一个朋友给我的短信XSS 漏洞被发现在他的网站, 他想让我进一步看看。

这是一个重要的阶段, 因为我倾向于要求他正式表示, 我有他的权限, 对他的 web 应用程序和托管它的服务器进行全面测试。

答案是积极.

在其余的职位, 我会提到我的朋友的网站http://example.com

第一步是总是要列举和找到尽可能多的信息, 你可以对你的敌人-同时试图提醒他们尽可能少。

在这个阶段, 我们触发计时器并开始扫描。

nmap--顶部端口 1000-T4-sC http://example.com
Nmap 扫描报告的 example.com {编辑} 主机是高达 (0.077s 延迟)。rdn 记录 {已编辑}: {未编辑} 未显示: 972 过滤端口端口状态服务 21/tcp 打开 ftp 22/tcp 打开 ssh |ssh-hostkey: |  {编辑的} 80/tcp 打开 http |http 方法: | _ 潜在风险方法: 跟踪 | _http-标题: 受害者站点 139/tcp 打开 netbios-ssn 443/tcp 开放 https |http 方法: | _ 潜在的风险方法: 跟踪 | _http-标题: 站点没有标题 (文本/html; charset=UTF-8)。| _ {编辑的} 445/tcp 打开微软-ds 5901/tcp 打开 vnc-1 |vnc-信息: |  协议版本: 3.8 |  安全类型: | VNC 身份验证 (2) 8080/tcp 打开 http 代理 | _http-标题: 400 坏请求 8081/tcp 打开 blackice-冰

扫描在大约两分钟内完成。

这是很多开放的端口!通过观察ftp(端口 21) 和 SMB (端口 139/445) 端口是打开的我们可以猜到, 服务器是用于文件寄存和文件共享, 连同它是一个网站 (端口80/443 和代理在 8080/8081)。

从战争的艺术。枚举是关键。

如果上述扫描的信息不够, 则会考虑进行 UDP 端口扫描并扫描超过前1000端口。允许与 (没有凭据) 交互的唯一端口是端口80/443。

没有浪费任何时间, 我推出gobuster要在 web 服务器上枚举任何有趣的文件, 而我将手动挖掘信息。

gobuster 美元-http://example.com/股票/wordlists/dirbuster/目录-列表-2.3-中. txt-t 100
/管理/登录

原来/管理路径是一个 "管理工具", 允许经过身份验证的用户修改 web 服务器上的东西。它需要凭据, 因为我们既没有用户名, 也没有我们继续使用的密码。(掠夺: gobuster 没有发现任何有价值的东西)

到目前为止, 我们大约三分钟。没有用处

浏览到网站, 我们看到它要求我们登录。没有问题, 我们创建一个帐户虚拟电子邮件, 请单击确认电子邮件并在几秒钟后登录。

该网站欢迎我们, 并提示我们导航到我们的个人资料和更新我们的个人资料图片。真好

看到该网站看起来定制建设, 我倾向于测试一个无限制的文件上传漏洞.在我的终端上执行:

echo "<?php system($_GET['cmd']); ?>" > exploit.php

我尝试上传的 "图像", 和宾果!上传允许利用. php文件, 以获得上传。当然, 它没有缩略图, 但这意味着我的文件被上传到了某个地方。

获取利用漏洞的位置

在这里, 我们希望上传对上传的文件进行某种处理, 检查它的文件扩展名, 并用接受的文件扩展名替换为. jpeg,. jpg, 以避免攻击者上传恶意代码时执行远程代码, 如你的真实。

人们毕竟关心安全。

权利?权利?...权利?

"复制图像地址" 将导致以下 url 被复制到我们的剪贴板: http://www.example.com/admin/ftp/objects/XXXXXXXXXXXX.php

因此, 我们似乎有我们的 webshell 准备和功能:

看到 web 服务器运行perl脚本 (真的, perl?我们从我们的收藏夹中抓取一个 perl 反向 shell, 设置 IP/端口和我们的奖励低外壳-对不起, 没有截图。

〜五分钟的评估, 我们已经有一个低壳。

令我大吃一惊的是, 服务器不是只托管一个网站, 而是40不同的。可悲的是, 我没有保存每一个细节的截图, 但输出是沿着以下几行:

$ ls/var/www
access.log site1/site2/site3/的列表..。

你明白重点了令人惊讶的是, 读取访问所有托管网站是可用的, 这意味着我可以读取所有网站的后端代码。我仅限于举例. com 的代码。

值得注意的是, 在cgi-admin/pages目录, 所有的 perl 脚本都连接到一个 mysql 数据库为根。数据库的凭证在明文。让这些root:pwned42

果然, 服务器运行 MariaDB, 我不得不诉诸此问题才能访问数据库。之后, e 执行:

本地主机 victimdbname 密码: pwned42

我们在数据库中有 root 权限。

"使用名称" 允许我们访问任何35数据库并查看和修改其内容

在短短七分钟后, 我们有充分的读/写访问的内容35 (!) 数据库。

到目前为止, 我在道义上有义务停止和披露我的发现。潜在的损害已经很大了。

攻击者可以做什么

  1. 转储所有数据库的内容, 如下所述这里, 导致所有35家公司的数据都被泄露到公有领域。
  2. 除去所有的数据库, 有效地删除35公司的数据
  3. 为持久访问留下一个后门作为 apache 与 cronjob, 如所述这里, 以防他们想要回程。

在这里, 我应该注意到, mysql 进程是作为根运行, 所以我想我会尝试执行! whoami希望得到根。不幸的是我还是阿帕奇

该休息一会了停止计时器。

还有什么能进一步出错?

在公开我的发现后, 我得到进一步的许可去深入挖掘。

在查看如何将我的权限升级到 root 并能够造成巨大的潜在损害之前, 我正在查看我的有限用户可以阅读哪些其他有趣的文件。

在这一点上, 我记得关于开放的 SMB 端口。这意味着在系统中应该有一些用户共享的文件夹。

在进行了少量枚举之后, 将在目录中显示以下内容/home/samba/secured (请原谅我的大规模审查):

在所有这些目录中, 有每个用户的文件托管公司。其中包括各种敏感数据, 以及其他:

  • . psd/. ai 文件 (设计者知道保持这些隐私是多么重要, 毕竟是他们的工作和技术)
  • Cookie sqlite 文件
  • 发票
  • 盗版电子书 (笑了, 当我看到这个)
  • 他们的 WiFi ssid 的凭据

攻击者可以做什么

  1. 在公司办公室外的营地, 登录到他们的内联网, 并执行您可以在本地网络上进行的各种有趣的攻击
  2. 将上面列出的所有敏感数据转储到公共域

花了一些时间来遍历文件夹, 并意识到这个问题是多么严重。
再休息一会

最后一击

环顾四周, 再多一点apache我决定是时候去钓大鱼了, 唉, 得根去取。我指的是一个受欢迎并开始为有趣的文件枚举系统。

由于我挖掘到目前为止, 我已经经历了大部分的这些技术已经和似乎没有能够找到的东西, 将增加我的立足点。

那是当它击中我。在捕获的标志挑战, 我已经习惯了玩, 操作系统通常是修补, 它是一些故意错误的服务, 最终给你 sought-after 根特权。然而在现实世界中,人们不修补。

我是说看看 Equifax(无法抗拒)。

服务器运行的是哪种类型的 Linux?

猫/等/发行 CentOS Linux 版本 7.2. 1511 (核心)

内核的版本是什么?

这看起来像一个旧的内核版本。

这让你想起什么了吗?如果没有, 请阅读这里(提示: 这是非常严重的)

我发现this博客指出, 如果内核在这里找到的脚本是易受攻击的, 我将对其进行测试。

时间& 火狐 已修复的站点已编辑

其次:

游戏结束

我立即写了一封电子邮件, 充分披露的细节和潜在的影响, 每一个步骤如上所述, 包装的夜晚。呼.

攻击者可以做什么

  1. 读取/修改服务器上的所有文件
  2. 留下一个持久的后门 (与 apache 完成)
  3. 安装并潜在地将恶意软件传播到服务器的 intranet 中
  4. 安装勒索 (以35家公司的数据库和所有托管公司的数据为人质不是小事)
  5. 使用服务器作为 cryptocurrency 矿工
  6. 使用服务器作为代理
  7. 将服务器用作 C2C 服务器
  8. 将服务器用作僵尸网络的一部分
  9. ...(用你的想象力)
  10. rm 射频 /(甚至不是开玩笑)

第二天, 我得到了我的朋友 (谁来与公司的操作服务器联系) 联系, 并被告知, 在文件上传的 bug 是固定的。

博士

总结一下, 我们发现:

  1. 具有无限制文件上传漏洞的 web 应用程序, 它导致了低权限 shell。
  2. mysql 数据库的凭据, 它导致对35数据库的读/写访问
  3. 许多可读的敏感文件

最后, 我们滥用一个修补内核来获取 root 访问权。

建议

让我们从上传开始, 这给了我们最初的立足点。由于整个 web 应用程序的后端都是用 perl 编写的, 而且我不说 perl, 所以我不能真正建议修复。

我建议的一个解决方法是在2017年不使用 perl, 但这只是我的观点, 我觉得可以证明我是错的。

对于文件系统, 我建议在为用户分配适当的文件权限时要非常小心, 根据最小特权原则.这样, 即使像 apache 这样的低特权用户能够访问, 他们也无法读取任何敏感文件。

在同一台服务器上运行所有网站是一个坏主意, 我不确定 dockerized 的方法是否能解决这个问题。

对所有数据库拥有相同的凭据肯定是个坏主意。

单点故障通常是不好的。

最后,修补所有内容.它实际上是一个命令:su -c 'yum update'(CentOS 具体)

Thanks for reading and for making it until here, sorry for the long post. I wanted to be thorough, this was one serious situation 😄

这个故事是从 黑客中午: the destination for where hackers start their afternoons. Like them on Facebook 这里 然后在下面跟着他们:

下一篇:

PewDiePie screwed up in 2017 but influencers will only get stronger in 2018

Leave A Reply

Your email address will not be published.