Ethical Hacking 简明教程

Ethical Hacking - Fingerprinting

道德黑客中的术语 OS 指纹识别是指用来确定远程计算机上运行什么操作系统的任何方法。这可能是−

  1. Active Fingerprinting − 活动指纹识别是通过向目标机器发送特制的包来完成的,然后记下其响应并分析收集到的信息来确定目标 OS。在以下部分中,我们给出了一个示例来说明如何使用 NMAP 工具检测目标域的 OS。

  2. Passive Fingerprinting − 被动指纹识别基于远程系统的信息收集器痕迹。基于包的收集器痕迹(例如 Wireshark),您可以确定远程主机的操作系统。

我们有以下四个重要元素,我们将在其中查看这些元素以确定操作系统−

  1. TTL − 操作系统在出站包上设置 Time-To-Live

  2. Window Size − 操作系统设置窗口大小。

  3. DF − 操作系统是否设置 Don’t Fragment 位。

  4. TOS − 操作系统是否设置 Type of Service ,如果是,则设置什么。

通过分析数据包的这些因素,你能确定远程操作系统。此系统并非 100% 准确,且适用于某些操作系统,而不适用于其他操作系统。

Basic Steps

在攻击系统之前,你必须知道是哪些操作系统承载网站。一旦知道了目标操作系统,就很容易确定可能存在哪些漏洞以利用目标系统。

下面是一个简单的 nmap 命令,可以用来识别用于承载网站的操作系统,以及与域名相关的所有已打开端口,即 IP 地址。

$nmap -O -v tutorialspoint.com

它将向你展示有关给定域名或 IP 地址的以下敏感信息:

Starting Nmap 5.51 ( http://nmap.org ) at 2015-10-04 09:57 CDT
Initiating Parallel DNS resolution of 1 host. at 09:57
Completed Parallel DNS resolution of 1 host. at 09:57, 0.00s elapsed
Initiating SYN Stealth Scan at 09:57
Scanning tutorialspoint.com (66.135.33.172) [1000 ports]
Discovered open port 22/tcp on 66.135.33.172
Discovered open port 3306/tcp on 66.135.33.172
Discovered open port 80/tcp on 66.135.33.172
Discovered open port 443/tcp on 66.135.33.172
Completed SYN Stealth Scan at 09:57, 0.04s elapsed (1000 total ports)
Initiating OS detection (try #1) against tutorialspoint.com (66.135.33.172)
Retrying OS detection (try #2) against tutorialspoint.com (66.135.33.172)
Retrying OS detection (try #3) against tutorialspoint.com (66.135.33.172)
Retrying OS detection (try #4) against tutorialspoint.com (66.135.33.172)
Retrying OS detection (try #5) against tutorialspoint.com (66.135.33.172)
Nmap scan report for tutorialspoint.com (66.135.33.172)
Host is up (0.000038s latency).
Not shown: 996 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
443/tcp  open  https
3306/tcp open  mysql

TCP/IP fingerprint:
OS:SCAN(V=5.51%D=10/4%OT=22%CT=1%CU=40379%PV=N%DS=0%DC=L%G=Y%TM=56113E6D%P=
OS:x86_64-redhat-linux-gnu)SEQ(SP=106%GCD=1%ISR=109%TI=Z%CI=Z%II=I%TS=A)OPS
OS:(O1=MFFD7ST11NW7%O2=MFFD7ST11NW7%O3=MFFD7NNT11NW7%O4=MFFD7ST11NW7%O5=MFF
OS:D7ST11NW7%O6=MFFD7ST11)WIN(W1=FFCB%W2=FFCB%W3=FFCB%W4=FFCB%W5=FFCB%W6=FF
OS:CB)ECN(R=Y%DF=Y%T=40%W=FFD7%O=MFFD7NNSNW7%CC=Y%Q=)T1(R=Y%DF=Y%T=40%S=O%A
OS:=S+%F=AS%RD=0%Q=)T2(R=N)T3(R=N)T4(R=Y%DF=Y%T=40%W=0%S=A%A=Z%F=R%O=%RD=0%
OS:Q=)T5(R=Y%DF=Y%T=40%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)T6(R=Y%DF=Y%T=40%W=0%S=
OS:A%A=Z%F=R%O=%RD=0%Q=)T7(R=Y%DF=Y%T=40%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)U1(R=
OS:Y%DF=N%T=40%IPL=164%UN=0%RIPL=G%RID=G%RIPCK=G%RUCK=G%RUD=G)IE(R=Y%DFI=N%
OS:T=40%CD=S)

如果你没有在 Linux 系统上安装 nmap 命令,那么你可以使用以下 yum 命令安装它:

$yum install nmap

你可以仔细查看 nmap 命令来检查和了解与系统相关并保护其免遭恶意攻击的不同功能。

Quick Fix

你可以在一个安全代理服务器或 VPN 背后隐藏你的主系统,这样你的完整身份就是安全的,而且最终你的主系统保持安全。

Port Scanning

我们刚刚看到 nmap 命令给出的信息。此命令会列出给定服务器上所有打开的端口。

PORT       STATE   SERVICE
22/tcp     open    ssh
80/tcp     open    http
443/tcp    open    https
3306/tcp   open    mysql

你还可以使用以下命令检查是否打开了特定的端口:

$nmap -sT -p 443 tutorialspoint.com

它将产生以下结果 −

Starting Nmap 5.51 ( http://nmap.org ) at 2015-10-04 10:19 CDT
Nmap scan report for tutorialspoint.com (66.135.33.172)
Host is up (0.000067s latency).
PORT    STATE SERVICE
443/tcp open  https

Nmap done: 1 IP address (1 host up) scanned in 0.04 seconds

一旦黑客知道打开的端口,那么他就可以通过打开的端口计划不同的攻击技术。

Quick Fix

始终建议检查并关闭所有不需要的端口,以保护系统免受恶意攻击。

Ping Sweep

Ping 扫描是一种网络扫描技术,你可以使用它来确定 IP 地址范围内的哪些 IP 地址映射到活动主机。Ping 扫描也称为 ICMP sweep

你可以对 Ping 扫描使用 fping 命令。此命令是一个类似 ping 的程序,它使用因特网控制消息协议 (ICMP) 回声请求来确定主机是否已启动。

fping 不同于 ping ,因为你可以在命令行上指定任意数量的主机,或指定包含要 ping 的主机列表的文件。如果主机在某个时间限制和/或重试限制内没有响应,它将被认为不可达。

Quick Fix

要在网络上禁用 ping 扫描,你可以阻止来自外部来源的 ICMP ECHO 请求。你可以使用以下命令来完成此操作,这将在 iptable 中创建一个防火墙规则。

$iptables -A OUTPUT -p icmp --icmp-type echo-request -j DROP

DNS Enumeration

域名服务器 (DNS) 像地图或地址簿。事实上,它就像一个分布式数据库,用于将 IP 地址 192.111.1.120 转换为名称 www.example.com, 反之亦然。

DNS 枚举是查找所有 DNS 服务器及其对应记录的过程。其目的是在发起攻击之前尽可能收集有关目标的有趣详细信息。

你可以在 Linux 上使用 nslookup 命令来获取 DNS 和主机相关信息。此外,你可以使用以下 DNSenum 脚本来获取有关域名的详细信息:

DNSenum 脚本可以执行以下重要操作 −

  1. Get the host’s addresses

  2. Get the nameservers

  3. Get the MX record

  4. 对名称服务器执行 axfr 查询

  5. 通过 Google scraping 获取额外名称和子域名

  6. 从文件进行蛮力破解子域还可以对有 NS 记录的子域执行递归

  7. 计算 C 类域网络范围并在其上执行 whois 查询

  8. reverse lookups 上执行 netranges

Quick Fix

DNS 枚举没有快速修复程序,并且它确实超出了本教程的范围。防止 DNS 枚举是一个重大挑战。

如果您的 DNS 未以安全的方式配置,网络和组织的大量敏感信息可能会泄露出去,并且不受信任的 Internet 用户可能会执行 DNS 区域传输。