一般步骤
- 收集信息
- 寻找漏洞
- 入侵目标
- 留下后门
- 扩展攻击范围
- 清楚痕迹
收集信息
目的:尽可能多地收集目标的相关信息,为下一步攻击决策做准备。
内容:
- 网络信息(如域名、IP地址、网络拓扑)
- 系统信息(如操作系统版本、开放的各种网络服务版本)
- 用户信息(用户标识、共享资源、即时通信账号、邮件账号)
寻找漏洞
任何计算机系统都存在漏洞。
漏洞包括缓冲区溢出、操作系统漏洞、网络服务漏洞、网络协议漏洞、配置漏洞等。
入侵目标
获取目标系统的一定权限(得到超级用户权限)。攻击的手段主要有口令猜测、缓存区溢出攻击、拒绝服务攻击等。
留下后门
目的是在目标系统中安装后门程序,以更加方便、更加隐蔽的方式对目标系统进行操控。
主要方法是利用各种后门程序以及特洛伊木马。
扩展攻击范围
目的是以目标系统为“跳板”,对目标所属网络的其他主机进行攻击,最大程度的扩大影响。
清除痕迹
目的是消除一切攻击的痕迹,尽量做到使管理员无法察觉系统已被侵入,并防止被识别、追踪。
主要方法是针对目标所采取的安全措施清除各种日志及审核信息。
社会工程学攻击
社会工程学是一种利用人的弱点,如人的本能反应、好奇心、信任、贪便宜等弱点,进行诸如欺骗、伤害等危害手段,获取自身利益的手法。
扫描器
扫描器是一种通过收集系统的信息来自动检测远程或本地主机安全性弱点的程序。
主要功能
- 发现目标主机或网络
- 发现目标主机后,进一步搜集目标信息,包括操作系统类型、运行的服务以及服务软件的版本等;如果目标是一个网络,还可以进一步搜集该网络的拓扑结构、路由设备以及各主机的信息
- 判断或进一步测试系统存在哪些安全漏洞
扫描器技术
Ping扫描
用来判断远程设备可访问性最常用的方法,基于ICMP实现的。
PING就是向目标主机发送ICMP Echo Request数据包,如果主机可达,会回复ICMP Echo Reply包。
PING扫射,也称为ICMP扫射(ICMP sweep),探测多个主机地址是否处于活动状态,通过向多个目标主机发送ICMP Echo Request数据包,并等待主机的响应,来判断目标主机是否在线。
端口扫描
开放扫描
nmap -sT
扫描方通过三次握手过程与目标主机建立完整的TCP连接。
TCP CONNET扫描: 利用操作系统提供的connect()系统调用进行扫描,扫描器调用socket的connect()函数发起一个正常的连接
特点:不需要特殊权限,速度快。但是容易被发现,会被防火墙过滤。
半开放扫描
nmap -sS
扫描方不需要建立一个完全的TCP连接。
TCP SYN扫描: 扫描程序发送的一个SYN数据包,若返回SYN/ACK数据包,表示目标端口处于监听状态,然后扫描程序必须再发送一个RST信号来关闭这个连接进程,若返回RST数据包则表示端口没有开放。
一般不会在目标计算机上留下记录。但是SYN洪水是一种常见的拒绝服务的攻击方法,许多防火墙和入侵检测系统对SYN包都建立了报警和过滤机制。因此SYN扫描的隐蔽性逐渐下降。必须要有root权限才能构造SYN数据包。
秘密扫描
nmap -sF
秘密扫描不包含标准的TCP三次握手协议的任何部分
TCP FIN扫描: 向一个远端主机某端口发送只有FIN标志位的TCP数据