常见黑客攻击方法及入侵流程解析
1. 口令攻击
口令是网络信息系统的第一道防线。当前的网络信息系统大多是通过口令来验证用户身份、实施访问控制的。虽然存在短信认证、图形认证等生物特征或二次验证方式,但口令认证依然是主流。
口令攻击是指黑客以口令为攻击目标,破解合法用户的口令,或避开口令验证过程,然后冒充合法用户潜入目标网络系统,夺取目标系统控制权的过程。如果口令攻击成功,黑客进入了目标网络系统,便能随心所欲地窃取、破坏和篡改被侵入方的信息,直至完全控制被侵入方。
口令攻击的主要方法
1. 社会工程学攻击 社会工程学攻击即通过人际交往这一非技术手段以欺骗、套取的方式来获得口令。例如伪装成 IT 支持人员打电话索要密码,或利用钓鱼邮件诱导用户输入凭证。
2. 猜测攻击 首先,使用口令猜测程序进行攻击。口令猜测程序往往根据用户定义口令的习惯猜测用户口令,像名字缩写、生日、宠物名、部门名等。在详细了解用户的社会背景之后,黑客可以列举出几百种可能的口令,并在很短的时间内就可以完成猜测攻击。
3. 字典攻击 如果人工猜测攻击不成功,攻击者会继续扩大攻击范围,对所有英文单词进行尝试,程序将按序取出一个又一个的单词,进行一次又一次尝试,直到成功。据报道,对于一个有 10 万个英文单词的集合来说,入侵者不到两分钟就可试完。所以,如果用户的口令不太长或是单词、短语,那么很快就会被破译出来。
4. 穷举攻击(暴力破解) 如果字典攻击仍然不能够成功,入侵者会采取穷举攻击。一般从长度为 1 的口令开始,按长度递增进行尝试攻击。由于人们往往偏爱简单易记的口令,穷举攻击的成功率很高。如果每千分之一秒检查一个口令,那么 86% 的口令可以在一周内破译出来。针对这种攻击的防护措施主要是设置的口令要足够长,并且复杂。例如,至少 8 位以上,数字 + 符号 + 大小写组合就行了。
5. 混合攻击 混合攻击结合了字典攻击和穷举攻击,先进行字典攻击,再进行暴力攻击。这种方式大大提高了破解效率。
避免被攻击的对策
- 不用汉语拼音、英文单词作为口令。
- 不用生日、纪念日、有意义的字符串。
- 使用大小写字母、符号、数字的组合。
- 不要将口令写下来。
- 不要将口令存于计算机文件中。
- 不要在不同系统上使用同一口令。
- 为防止眼明手快的人窃取口令,在输入口令时应确认无人在身边。
- 定期改变口令,至少两个月左右要改变一次。
- 启用多因素认证(MFA)以增加安全性。
2. 网络监听
在网络空间环境中,网络监听是一种用来监视网络状态、数据流程以及网络上信息传输的管理工具。它可以将网络功能设定成监听模式,这样就可以截获网络上所传输的信息。也就是说,当攻击者登录网络主机并取得超级用户权限后,若要登录其他主机,使用网络监听的方法可以有效地截获网络上的数据。
这是攻击者优先使用的方法。但是网络监听仅能应用于连接同一网段的主机,且通常用来获取用户口令或密码。
网上有许多网络监听工具,例如 Wireshark, Sniffer Pro, NetXray, tcpdump 等。它们可以轻而易举地截取包括口令、账号等敏感信息。特别是在未加密的 HTTP 协议下,明文传输的数据极易被嗅探。
针对网络嗅探攻击的防范措施包括
- 安装 VPN 网关,防止入侵者对网络信道进行嗅探。
- 对内部网络通信采取加密处理,如使用 HTTPS、SSH 代替 HTTP、Telnet。
- 采用交换设备进行网络分段,减少广播域范围。
- 采取技术手段发现处于混杂模式的主机,即发掘'鼹鼠'。
- 部署入侵检测系统(IDS)监控异常流量。
3. 缓冲区溢出攻击
缓冲区溢出是指用户向计算机缓冲区内填充的数据位数超过了缓冲区本身的容量时,溢出的数据覆盖了合法的数据。理想的情况是:检测程序会自行检查数据长度,并且不允许输入超过缓冲区长度的字符。
然而,绝大多数程序都会假设数据长度总是与所分配的储存空间相匹配,这就为缓冲区溢出埋下巨大的隐患。操作系统中使用的缓冲区,又称为'堆栈'。在各个操作系统进程之间,指令会被临时储存在'堆栈'当中,'堆栈'也会出现缓冲区溢出的情况。
缓冲区溢出攻击则是利用软件的缓冲区溢出漏洞进行的攻击。缓冲区溢出漏洞是一种非常普遍而且非常危险的漏洞,它在操作系统和应用软件中广泛存在。利用缓冲区溢出攻击,能导致程序运行失败、系统关机、重新启动、内存异常、CPU 运行异常等严重后果。
保护缓冲区免受缓冲区溢出的攻击和影响的方法
- 通过操作系统的检测使得缓冲区溢出不可执行,从而阻止攻击者植入攻击用的代码(如 DEP 技术)。
- 强制编写正确的代码,遵循安全编码规范。
- 利用编译器的边界检查实现缓冲区保护。这种方法使得缓冲区溢出的情况不大可能出现,从而完全消除了缓冲区溢出威胁,但是相对而言代价也比较大。
- 在程序指针失效前进行完整性的检查。虽然这种方法不能使所有的缓冲区溢出失效,但可以阻止绝大多数的缓冲区溢出攻击。
- 启用 ASLR(地址空间布局随机化),增加攻击者预测内存地址的难度。
4. 拒绝服务攻击
拒绝服务攻击,英文名称是 Denial of Service,简称 DoS,即拒绝服务。DoS 攻击即攻击者想办法让目标主机或系统拒绝提供服务或资源访问,这些资源包括 CPU、磁盘空间、内存、进程、网络带宽等,从而阻止正常用户的访问。
针对这种攻击的防护,主要是通过防火墙来实现的。
分布式拒绝服务攻击简介
分布式拒绝服务 (Distributed Denial of Service,DDoS) 攻击,是使用网络上两个或两个以上被攻陷的计算机作为'僵尸'向特定的目标发动'拒绝服务'式攻击。这种攻击是以 DoS 攻击为基础,但是效果要比 DoS 攻击强很多。
DDoS 攻击的基本步骤如下
- 扫描阶段:攻击者使用扫描工具扫描大量主机以寻找潜在入侵目标。
- 植入阶段:攻击者设法入侵有安全漏洞的主机并获取控制权,这些主机将被用于放置后门、守护程序、攻击者程序等。
- 组建阶段:攻击者在得到入侵计算机清单后,从中选出建立网络所需要的主机,放置已编译好的守护程序,并向被控制的计算机发送命令。
- 准备阶段:攻击者发送控制命令给主机,准备启动对目标系统的攻击。
- 攻击阶段:主机发送攻击信号给被控制计算机开始对目标系统发起攻击。
- 淹没阶段:目标系统被无数个伪造的请求所淹没,从而无法对合法用户进行响应,DDoS 攻击成功。
拒绝服务攻击的防护
- 定期扫描现有的网络主节点,清查可能存在的安全漏洞。对新出现的漏洞及时进行清理。
- 骨干节点的计算机因为具有较高的带宽,是黑客入侵的重灾区,因此对这些主机本身加强安全是非常重要的。
- 骨干节点上的防火墙的配置至关重要。防火墙本身能抵御 DDoS 攻击和其他一些攻击。在发现受到攻击的时候,将攻击导向一些牺牲主机,这样可以保护真正的主机不瘫痪。
- 用足够的机器承受黑客攻击。这是一种较为理想的应对策略。如果用户拥有足够的容量和足够的资源让黑客攻击,黑客在不断访问用户、夺取用户资源的同时,自己的能量也在逐渐耗失,或许未等用户被攻死,黑客已无力支持下去。
- 充分利用网络设备保护网络资源。所谓网络设备是指路由器、防火墙等负载均衡设备,它们可将网络有效地保护起来。当网络被攻击时最先死掉的是路由器,但其他机器没有死。死掉的路由器经重启后会恢复正常,而且启动起来还很快,没有什么损失。若其他服务器死掉,其中的数据会丢失,而且重启服务器又是一个漫长的过程。
- 使用 Express Forwarding 可以过滤不必要的服务和端口,即在路由器上过滤假 IP。比如 Cisco 公司的 CEF(Cisco Express Forwarding)可以对封包 Source IP 和 Routing Table 做比较,并加以过滤。
- 使用单播反向通路转发(Unicast Reverse Path Forwarding)检查访问者的来源。它通过反向路由表查询的方法检查访问者的 IP 地址是否是真,如果是假的,它将予以屏蔽。许多黑客攻击常采用假 IP 地址的方式来迷惑用户,很难查出它来自何处,因此,利用单播反向通路转发可减少假 IP 地址的出现,有助于提高网络安全性。
- 过滤所有 RFC1918 IP 地址。RFC1918 IP 地址是内部网的 IP 地址,像 10.0.0.0、192.168.0.0 和 172.16.0.0,它们不是某个网段的固定 IP 地址,而是 Internet 内部保留的区域性 IP 地址,所以应该把它们过滤掉。
- 限制 SYN/ICMP 流量。用户应在路由器上设置 SYN/ICMP 的最大流量来限制 SYN/ICMP 封包所能占有的最高频宽,这样,当出现大量的超过所限定的 SYN/ICMP 流量时,就说明不是正常的网络访问,而是有黑客正在入侵。
5. SQL 注入攻击
SQL 注入攻击是攻击者对数据库进行攻击的常用方法之一。
随着 B/S 模式应用开发的广泛使用,采用这种模式编写的应用程序也越来越多。然而由于程序员之间的水平及经验也存在差距,很多程序员在编写代码的时候,没有对用户输入数据的合法性进行验证,使应用程序存在许多安全隐患。
攻击者可以提交一段用 SQL 语言编写的数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的 SQL 注入攻击(SQL Injection)。常见的注入类型包括联合查询注入、报错注入、盲注等。
SQL 注入攻击会导致的数据库安全风险包括刷库、拖库、撞库。
- 刷库:批量读取数据库中的敏感信息。
- 拖库:将整个数据库导出到攻击者本地。
- 撞库:利用泄露的账号密码尝试登录其他平台。
防御建议
- 使用参数化查询(Prepared Statements)。
- 对用户输入进行严格的白名单验证。
- 最小化数据库账户权限。
- 隐藏数据库错误信息。
6. 木马攻击
木马程序可以直接侵入用户的计算机并进行破坏,它常被伪装成工具程序或者游戏等,诱使用户打开带有木马程序的邮件附件或从网上直接下载,一旦用户打开了这些邮件的附件或者执行了这些程序,它们就会在计算机系统中隐藏一个可以在启动时悄悄执行的程序。这种远程控制工具可以完全控制受害主机,危害极大。
完整的木马程序一般由两部分组成:一个是服务器端,另一个是客户端(也叫控制器端)。'中了木马'就是指安装了木马的服务器端程序。若你的计算机被安装了服务器端程序,则拥有相应客户端的人就可以通过网络控制你的计算机,为所欲为。这时你计算机上的各种文件、程序,以及正在使用的账号、密码就无安全可言了。这里注意受害者安装的是服务器端,攻击者用的是客户端,不能反了。如果反了就被别人控制了。
木马的种类
- 破坏型:这类木马唯一的功能就是破坏并且删除文件,可以自动删除计算机中的 Word、DLL、INI、EXE 等重要文件。
- 密码发送型:可以获取用户的许多密码并把它们发送到指定的邮箱。很多人喜欢把自己的各种密码以文件的形式存放在计算机中,认为这样方便。但许多木马软件可以寻找到这些文件,把它们发送到黑客手中。也有些木马软件长期潜伏,记录操作者的键盘操作,从中寻找有用的密码。
- 远程访问型:如果有人运行了服务端程序,一旦攻击者知道了服务端的 IP 地址,就可以实现远程控制。这样可以观察受害者正在干什么,从而达到监视某个计算机操作的目的。
- 键盘记录木马:这种木马程序只做一件事情,就是记录受害者的键盘敲击并且在 LOG 文件里查找密码。它会随着 Windows 的启动而启动,并提供在线和离线记录这样的选项,可以分别记录受害者在线和离线状态下敲击键盘时的按键。也就是说受害者按过什么按键,木马程序都能知道,从这些按键中很容易就会得到受害者的密码甚至是银行卡账号等有用信息。
- DoS 攻击木马:随着 DoS 攻击越来越广泛,被用作 DoS 攻击的木马程序也越来越多。攻击者入侵一台计算机后,会向其植入 DoS 攻击木马程序,这台计算机日后就成为攻击者进行 DoS 攻击的得力助手了。所以,这种木马程序的危害不是体现在被感染的计算机上,而是体现在攻击者可以利用它来攻击一台又一台计算机。
木马的防范
- 检测和寻找木马隐藏的位置,使用专业杀毒软件扫描。
- 防范端口,关闭不必要的端口,使用防火墙拦截异常连接。
- 删除可疑程序,定期检查系统启动项和进程列表。
- 保持系统和软件更新,修补已知漏洞。
7. 社会工程学攻击
社会工程学攻击是一种利用人的弱点,以顺从人的意愿、满足人的欲望的方式,让受害者上当受骗的方法。
社会工程学的基本攻击目标和其他攻击方法基本相同,目的都是为了获得目标系统的未授权访问路径或重要信息,从事网络入侵、信息盗取、身份盗取,或者仅仅是扰乱系统或网络,或是为了骗取受害人的钱财等。
防范社会工程学攻击
- 当心来路不明的电子邮件、短信以及电话。在提供任何个人信息之前,验证其可靠性和权威性。
- 仔细并认真地浏览电子邮件、短信、微信等的细节。不要让攻击者消息中的急迫性阻碍了你的判断。
- 自学。信息是预防社会工程攻击的最有力的工具。要经常学习并研究如何鉴别和防御网络攻击者。
- 永远不要打开来自未知发送者的电子邮件中的嵌入链接。如果有必要就使用搜索引擎寻找目标网站或手动输入网站地址。
- 永远不要在未知发送者的电子邮件中下载附件。
- 拒绝来自陌生人的在线技术帮助,无论他们声称自己是多么正当的。
- 使用防火墙来保护计算机空间,及时更新杀毒软件同时提高垃圾邮件过滤器的门槛。
- 下载软件及操作系统补丁,预防零日漏洞。及时安装软件供应商发布的补丁程序。
- 经常关注网站的 URL。有时网上的骗子对 URL 做了细微的改动,将流量诱导进了自己的诈骗网站。
- 不要幻想不劳而获。如果你从来没有买过彩票,那你永远都不会成为那个中大奖的幸运儿。如果你从来就没有丢过钱,那为什么还要接受来自国外某个机构的退款呢?
8. 黑客攻击的一般流程
一、预攻击探测
这一阶段主要为信息收集,收集的信息包括网络信息(域名、IP 地址、网络拓扑)、系统信息(操作系统版本、开放的各种网络服务版本)、用户信息(用户标识、组标识、共享资源、即时通信软件账号、邮件账号)等。
收集信息的方法或工具
- SNMP 协议:用它来查阅非安全路由器的路由表,从而了解目标机构网络拓扑的内部细节。
- TraceRoute 程序:用它能够得出到达目标主机所要经过的网络数和路由器数。
- Whois 协议:它是一种信息服务,能够提供有关所有 DNS 域和负责各个域的系统管理员数据。不过这些数据常常是过时的。
- DNS 服务器:它查看访问主机的 IP 地址表和它们对应的主机名。
- Finger 协议:它能够提供特定主机上用户们的详细信息(注册名、电话号码、最后一次注册的时间等)。
- Ping 程序:可以用它来确定一个指定的主机的位置并确定其是否可达。把这个简单的工具用在扫描程序中,就可以 Ping 网络上每个可能的主机地址,从而构造出实际驻留在网络上的主机的清单。
二、发现漏洞,采取攻击
通过扫描工具对目标主机或网络进行扫描,扫描的主要目的如下。
- 发现存活主机、IP 地址,以及存活主机开放的端口。
- 发现主机操作系统类型和系统结构。
- 发现主机开启的服务类型。
- 发现主机存在的漏洞。
常用的几种公开的扫描工具,如 ISS(Internet Security Scanner)和 SATAN(Security Analysis Tool for Auditing Networks),可以对整个域或子网进行扫描并寻找安全漏洞。这些程序能够针对不同系统的脆弱性确定其弱点。入侵者利用扫描收集到的信息来获得对目标系统的非法访问权。
扫描到目标主机的信息之后,发起攻击。
三、获得攻击目标控制权系统
主要目标是获得系统账号权限,并提升为 root 或 administrator 权限。攻击者拥有这一权限后,可以对操作系统进行任意操作。
root 权限是 UNIX/Linux 系统权限的一种,也叫根权限。它可以与 Windows 系统里的 system 权限理解成一个概念,但高于 Administrator 权限。root 是 Linux 和 UNIX 系统中的超级管理员用户,该用户拥有整个系统至高无上的权力,所有对象它都可以操作。
获得 root 权限之后就意味着已经获得了系统的最高权限,这时候就可以对系统中的任何文件(包括系统文件)执行所有增、删、改、查的操作。
四、安装系统后门
后门程序一般是指那些绕过安全性控制而获取对程序或系统访问权的程序方法。在软件的开发阶段,程序员常常会在软件内创建后门程序以便可以修改程序设计中的缺陷。但是,如果这些后门被其他人知道,或是在发布软件之前没有删除后门程序,那么它就成为安全风险,容易被黑客当成漏洞进行攻击。
五、继续渗透,获取机密数据
以攻击成功的主机为跳板,攻击其他主机,直到找到攻击者想要的东西。这被称为横向移动(Lateral Movement)。
六、消除踪迹
消除所有攻击痕迹,以防止被计算机管理员发现。这里最常用的方法就是把日志文件全部清除。此外,攻击者还会修改时间戳、隐藏进程、清除历史记录等,以达到持久化控制和隐蔽的目的。
总结
网络安全是一个动态博弈的过程。了解黑客的攻击方法和流程,有助于我们更好地构建防御体系。通过强化口令管理、加密通信、修补漏洞、部署防火墙和入侵检测系统,并结合安全意识培训,可以显著降低被攻击的风险。


