netcat
netcat 是一个作为网络分析工具编写的应用程序。他可以使用任何端口在两台机器之间打开 TCP 和 UDP 连接。如果需要或是其他方法无效,还可将其作用于类似于 nmap 的端口扫描工具。
此外,netcat 可用于向远程系统开放一个连接。如果单独使用 netcat,则可以有效地在系统上开启一个远程 shell。但如果将 netcat 捆绑在另一个可执行文件中,则可以将其作用于木马并将其传递给目标。
netcat 只有一个可执行文件,可以配置为客户端或服务器运行,取决于具体的目标。通常,使用 netcat 的过程包括将其植入受害系统,然后使用客户端连接到系统,并向主机发出命令(可以通过制作一个木马或其他方法,将该软件部署到受害系统上实现)。也可以简单地通过纯粹的社会工程方法(如网络钓鱼),将该软件植入受害系统上。
此时假定 netcat 已经存在受害者客户端(Windows)中,我们可以随意安装和配置 netcat 软件。要使用 netcat,首先要了解他的语法和工作原理。基础语法为:
cc [选项] <主机地址> <端口号>
该命令将以类似 Telnet 的方式,向由主机地址和端口号定义的远程系统发送请求。
和 Telnet 十分类似,netcat 并不加密也不采取其他措施保护通信,因此可能对其进行窃听和监测。
如果需要更高的隐藏级别,也可以建立到主机的 UDP 连接。要使用基于 UDP 的连接,只需要执行以下命令:
nc -u <主机地址> <端口号>
了解这一基本语法后,即可使用 netcat 来执行先前进行的操作,例如端口扫描,执行以下命令:
nc -z -v <主机地址> 1-1000
该命令将扫描 1 到 1000 的所有端口。-z 选项使 netcat 不尝试连接,从而降低被检测的风险。最后,-v 将 netcat 置于详情模式,此模式可提供有关其正在执行的操作的更多信息,输出一般与下图类似
该扫描将提供大量信息,但扫描完成后,即可知道目标打开或关闭了哪些端口。
现在设想将 netcat 作为木马部署到系统中。在受害者不知不觉地将该软件安装在他们的系统中后,即可达到使用这种技术扫描受害者自己网络中的其他主机。
返回的消息将发送到标准错误(standard error)。可将标准错误消息发送到标准输出,这样可便于过滤结果。
与 netcat 通信
netcat 具备很多功能,例如在主机之间进行通信。可在客户机 - 服务器关系中连接 netcat 的两个实例并进行通信。
两台计算机中服务器和客户端是在初始配置中设定的,然后即可进行通信。建立连接后,两点之间的双向通信是完全同步的。
要进行此类通信,必须执行几步操作。首先,需要定义客户端,可以通过执行以下命令来完成:
nc -l 4444
zhejiang 配置 netcat 侦听端口 4444 的连接
接下来,在第二台机器上通过执行以下命令发起连接:
netcat zebes.com 4444
在客户端中,因为没有开启任何命令窗口,似乎没有任何事情发生。但是,在连接成功时,将在系统上得到一个命令提示符,可从中向远程主机发出命令。
完成消息传递后,只需要按 Ctrl+D 即可关闭连接。
使用 netcat 发送文件
基于上面的例子,还可以完成更有用的任务。下面介绍如何将文件传输到远程主机,之后利用此功能可以很容易地构建一些更强大的攻击。因为建立了一个标准的 TCP 连接,可以通过该连接传输任何类型的信息 —— 在这种情况下,传输一个文件。
为了实现这一点,必须首先选择连接的一端为侦听端。然而,在此并不是与上一个例子中一样,将信息打印到屏幕上,而是将所有信息直接存入一个文件中:
netcat -l 4444 > received_file
在第二台计算机上,通过输入以下内容创建一个简单的文本文件:
echo "Hello,this is a file" > original_file
现在即可使用此文件,作为下一步向监听计算机建立的 netcat 连接的输入。该文件将被传输到监听计算机,就像它是以交互方式输入的一样:
netcat zebes.com 4444 < original_file
可以在侦听连接的计算机上看到,其中现有一个名为 received_file 的新文件,文件中包含另一台计算机上所输入的文件的内容:
Notepad received_file
Hello,this is a file
如你所见,通过使用 netcat,可以很容易地利用此连接传输各种信息,包括整个目录的信息。
安装 rookit
rookit 是一种非常危险的恶意软件形式。这种类型的恶意软件从内核级植入到计算机中,可以提供远程访问、系统信息和数据信息、执行侦察行动、安装软件以及执行许多其他任务,所有这些行为都不会向系统或用户暴露其存在。
rookit 最早出现于 20 世纪 90 年代,经过多年的演变,他变得更加危险。事实上,现代版本的 rookit 可以将其自身嵌入操作系统的内核,从而可以从根本上改变操作系统本身的行为。它们可以拦截来自操作系统(外延到应用程序)的请求,并用虚假信息响应。由于 rookit 通常设计为从操作系统和系统日志隐藏其进程,因此难以检测和删除。
在理想情况下,采用之前叙述的方法,例如木马程序,攻击者可以快速有效地将 rookit 植入系统中。接收恶意内容的用户可能无意中激活 rookit 并将其安装到系统中。安装过程快速而隐秘,不会显示任何危险信号。在其他情况下,仅仅是浏览网页时访问受感染网站的行为就足以导致感染。
在安装 rookit 后,只要目标计算机联机,黑客即可秘密的与其通信,以触发任务或窃取信息。在其他情况下,rookit 可用于安装更多的隐藏程序,并在系统中建立 “后门”。如果黑客想窃取信息,可以安装一个键盘记录程序。该程序将在在线和离线状态下,秘密记录受害者录入的所有内容,并在下一次有机会时,将结果提供给攻击者。
rookit 的其他恶意用途包括攻击数百甚至数十万台计算机,形成一个称为 “僵尸网络(botnet)” 的远程 “rookit 网络”。僵尸网络用于向其他计算机发动分布式拒绝服务(DDoS)攻击,发送垃圾邮件、病毒和木马。这项活动如果追溯到发件人,可能会导致 rookit 网络的受害者被当成有恶意目的的攻击者。