1、1-1 11网络联通嗅探实验 111、Ping 原理 .112、Ping 工作过程 .113、Ping 命令详解 .12网络联通嗅探实验 13主机信息探测实验 161、主机信息探测的原理 161.1 基于 ICMP echo 扫描 161.2 基于高级 ICMP 的扫描 .161.3 全连接扫描(TCP connect Scan) 172、Nmap 扫描工具 .172.1 Nmap 简介 .172.2 命令详解 .183、对扫描工具的防范 22主机信息探测实验 251、主机信息探测 252、Ident 扫描( Ident Scanning) 29路由信息探测实验 30路由信息探测实验 33域名
2、信息探测实验 361、域名信息探测原理介绍 361.1 域名 362、nslookup 实例详解 392.1 实例详解: 39域名信息探测实验 411、查询域名信息 422、 通过 nslookup 获得子域名 .43安全漏洞探测实验 451、实验环境 452、Xscan 使用 .46安全漏洞探测实验 511、安全漏洞信息探测原理 511.1 端口扫描基础 .511.2 端口扫描技术分类 .522、xscan 详解 .53Linux 路由信息探测实验 .561、路由信息探测原理介绍 561.1 路由 561.2 traceroute 原理 .562、traceroute 命令详解 .57Lin
3、ux 路由信息探测实验 .59共享式网络嗅探实验 651、网络嗅探基础知识及原理 651.1 预备知识 651.2 嗅探器介绍 651.3 嗅探器的工作原理 .651.4 网络嗅探软件 672、网络监视功能 683、报文捕获解析 704、防御技术和方案 75共享式网络嗅探实验 761、 实验环境 762、步骤 772.1 Sniffer 的使用 .773、iptools 的使用 86交换式网络嗅探实验 921、网络嗅探基础知识及原理 921.2 预备知识 921.3 交换式嗅探原理 922、交换式局域网监听的防御 944、结语 96交换式网络嗅探实验 971、运行 Wireshark972、抓
4、包 993、Wireshark 抓包结果分析 100Linux 密码破解实验 .1011、Linux 口令破解原理介绍 .1012、Linux 口令 .1012.1 Passwd 文件 .1012.2Shadow 文件 .1023、John the ripper1024、防御技术和方案 102Linux 密码破解实验 .103Windows 本地密码破解(lc)实验 1051、攻防原理介绍 1052、防御技术和方案 105Windows 本地密码破解(lc)实验 107Windows 本地密码破解(pwdump)实验 .1171、攻防原理介绍 1172、防御技术和方案 117Windows 本
5、地密码破解(pwdump)实验 .1185、加载彩虹表 xp_free_fast.1206、加载 hash 值 1217、点击 crack 按钮,开始破解 .122本地密码直接查看实验 1231、运行 SAMInside 1242、破解 SYSKEY 加密过的密码文件 1243、导入 SAM 密码文件 .1253).选择破解方式 .1274、开始破解 129本地密码直接查看实验 1311、 密码原理介绍 1312、防御技术和方案 131远程密码破解实验 1321、远程 FTP 密码破解原理介绍 .1321.1 什么是 FTP1321.2FTP 的口令 .1331.3 破解 FTP 口令 .13
6、32、防御技术和方案 133远程密码破解实验 1351、运行环境 1352、准备工作 1361、安装工具 Cain V2.5。 136应用软件本地密码破解实验 1421、攻防原理介绍 1422、防御技术和方案 142应用软件本地密码破解实验 144Access 手工注入实验 .1461、SQL 注入原理介绍 .1461.1 什么是 SQL 注入 1461.2 注入原理概述 1461.3Access 数据库的注入原理 1471.4 SQL Server 注入原理 1481.5PHP 注入原理 1482、防御技术 150Access 手工注入实验 .1501、找到有注入漏洞的目标网站 1512、猜
7、测表名 1523、猜测字段名 1534、字段内容的获取。 1542、获取权限,以管理员用户身份登陆 155Access 工具注入实验 .1571、SQL 注入原理介绍 .1571.1 什么是 SQL 注入 .1571.2 注入原理概述 .1571.3 Access 数据库的注入原理 .1571.4 SQL Server 注入原理 1581.5 PHP 注入原理 .1592、防御技术 160PHP 手动注入实验 .1621、点击目标网站 http:/222.18.158.139/index.php?id=11632、探测是否有注入漏洞 1633、确定 mysql 的版本 1634、判断字段个数
8、1645、判断数据库连接帐号有没有写权限 1656、猜测管理员表 1657、猜测字段名 166SQL Server 数据库注入实验 1671、SQL 注入原理介绍 .1671.1 什么是 SQL 注入 .1671.2 注入原理概述 .1671.3 Access 数据库的注入原理 .1671.4 SQL Server 注入原理 1681.5 PHP 注入原理 .1692、防御技术 170SQL Server 数据库注入实验 1711、找到有注入漏洞的目标网站 1722、SQL 注入检测 .1733、猜测表段名 1744、猜测字段名: 1755、猜测字段内容 1766、以管理员身份登陆 1777、
9、目录查看 1778、CMD/上传 .1789、注册表读取 17810、字典维护 1794-1ARP_DNS 欺骗实验 .1801、DNS 欺骗原理介绍 .1801.1 什么是 DNS1801.2 欺骗原理 .1811.3 DNS 服务器高速缓存中毒 .1811.4 DNS ID 欺骗(DNS ID Spoofing ) 1822、防御技术 182ARP_DNS 欺骗实验 .1831、安装使用工具 Cain.1832、绑定网卡 1843、确定嗅探区域 1864、ARP 欺骗 .1885、ARP_DNS 欺骗: .1906、查看结果: 1914-2ARP 欺骗实验 .1921、安装使用工具 Cai
10、n.1932、绑定网卡 1933、确定嗅探区域 1954、ARP 欺骗 .1975、查看结果: 199ARP 欺骗实验 .2021、数据链路层协议攻击 ARP 欺骗攻击 .2021.1 什么是 ARP.2021.2 ARP 欺骗原理 .2031.2.1 窃取数据(嗅探) .2031.2.2 导致断网 2042、防御手段 2042.1 静态绑定 .2042.2 ARP 防护软件 .2052.3 具有 ARP 防护功能的路由器 .2054-3MAC 地址欺骗实验 2051、什么是 MAC 地址? 2052、MAC 地址的作用 .2063、MAC 地址绑定 .207MAC 地址欺骗实验 .2071、
11、查看 MAC 地址 2082、修改 MAC 地址 2084-4DOS 攻击实验 .2111、拒绝服务攻击介绍 .2111.1 拒绝服务攻击原理 .2111.2 ping 攻击实例 .2111.3syn flood(syn 淹没) 实例 .2121.4 smurf 实例 2121.5 分布式拒绝服务攻击 2132、拒绝服务攻击防御 .2132.1 主机设置 2142.2 网络设备上的设置 214DOS 攻击实验 .2151、打开攻击器 2152、运行 EXE 文件 2163.、输入攻击链接 .2164、选择攻击威力 2175、HTTP 攻击选项(可选) .2176、附加功能选择(可选) 2177
12、、开始测试 2188、实验结果 2185-1Linux 日志清除实验 2191、日志原理介绍 2191.1 Windows 日志原理 .2191.2 IPC$空链接 2201.3 LINUX 日志 .2212、防御技术和方案 223Linux 日志清除实验 .2241、Linux 中日志文件的存放路径和文件名 .2252、手动清除日志 2262.1 输入命令:ls /var/log .2265-2Windows 日志工具清除实验 1.2291、日志原理介绍 2291.1 Windows 日志原理 2291.2 IPC$空链接 2311.3 LINUX 日志 2322、防御技术和方案 .233W
13、indows 日志工具清除实验 1 2351、获取 IIS 日志文件的存放路径和文件名 .2352、查看日志文件 2363、测试 CleanIISLog 软件能否正常运行 .2374、使用 CleanIISLog.exe 清除 IIS 日志 .2375-3Windows 日志工具清除实验 2.2391、日志原理介绍 2391.1 Windows 日志原理 .2391.2 IPC$空链接 2401.3 LINUX 日志 .2412、防御技术和方案 2435-4Windows 日志手动清除实验 2471、日志原理介绍 .2471.1 Windows 日志原理 2471.2 IPC$空链接 2481
14、.3 LINUX 日志 2492、防御技术和方案 .251Windows 日志手动清除实验 .2521、获取 IIS 日志文件的存放路径和文件名 .2532.、查看日志文件 .2543、手动删除 IIS 日志文件 .2546-1 操作系统安全策略配置-WinXP 实验 .2561、windows xp 系统漏洞介绍 2562、防御技术和方案 .2572.1 账号安全策略 2572.2 网络安全策略 .2592.3 应用安全策略设置 .260操作系统安全策略配置-WinXP 实验 .2611、实验环境 2622、实验步骤 2622.1 设置账号安全策略 2622.2 网络安全策略 2692.3
15、应用安全策略设置 .2737-1 缓冲区溢出攻击初级实验 .2791、缓冲区溢出综述 .2791.1 缓冲区溢出发展背景 .2791.2 栈溢出原理 .2801.3 缓冲区溢出防御方法 .2801.4 堆栈不可执行(NX 保护:No Execution) 2801.1. 寻址空间随机分布(ASLR:Address Space Layout Randomization) .2811.2. 对源代码进行安全漏洞分析 2811.5 改善编译器 .2811.6 使用安全的编程语言 .2811.3. 用更安全的函数库 281缓冲区溢出攻击初级实验 2821、栈溢出简述 2832、编译一个简单程序例子 2
16、833、在 OD 中来到程序的入口处 2844、单步跟踪到 call fun()的位置,观察堆栈和参数传递的情况 2845、单步跟踪到 fun()的最后一条指令 retn 查看程序是如何回到 main()函数的 .2856、开始攻击 2877、strcpy 执行 .2878、攻击发生 2888-1VBS 病毒实验 .2901、VBS 的概念 .2902、VBS 病毒的特点 .2903、VBS 病毒常常用到的技术 .2903.1 对文件的操作 .2903.2 如何发送邮件 .2913.3 对 html 等文件的感染 .2924、自加密 .2925、如何防范 .293VBS 病毒实验 .2941、
17、用文本编辑器查看源码 2942、分别指出 1,2,3,4 部分代码的用途,推测病毒的行为 2953、在虚拟机里面运行,验证推断是否正确 2958-2 简单恶意脚本攻击实验 .2961、攻防原理介绍 .2962、防御技术和方案 .297简单恶意脚本攻击实验 2978-3 木马技术初级实验 1 2991、木马/后门概述 2992、木马/后门的发展 2993、木马/后门实施网络入侵的基本步骤 3004、木马/后门的特点与技术 3005、木马/后门配置 3016、木马/后门的手动清除 301木马技术初级实验 1.3021、IP 交换地址配置原理 .3022、木马相关配置 3038-4 木马技术初级实验
18、 23051、木马/后门概述 .3052、木马/后门的发展 .3053、木马/后门实施网络入侵的基本步骤 .3064、木马/后门的特点与技术 .3075、木马/后门配置 .3076、木马/后门的手动清除 .308木马技术初级实验 2.3081、获取实验工具,了解实验工具的使用。 3092、使用 Fport 查看可疑进程和文件路径。 .3093、使用 Pskill 终止可疑进程,并手动删除可疑文件。 3108-5 木马技术初级实验 3 3111、木马/后门概述 .3112、木马/后门的发展 .3113、木马/后门实施网络入侵的基本步骤 .3124、木马/后门的特点与技术 .3125、木马/后门配
19、置 .3136、木马/后门的手动清除 .313木马技术初级实验 3.3141、获取 IceSword 实验工具,了解实验工具的使用。 3152、使用 IceSword 终止可疑进程或插入到进程中的线程。 3153、使用 IceSword 回复系统函数入口地址,并手动删除木马文件。 3168-6 手机病毒分析实验 1 3181、Android .3182、系统简介 .3183、编程语言 .3194、Android 软件包分析 3195、课外阅读 理解 Android 上的安全性 .321常用缩写词 321前提条件 321用户 ID:Linux 与 Android322手机病毒分析实验 1.340
20、1、Android 3402、系统简介 3403、编程语言 3414、Android 软件包分析 .3415、分析实践 3438-7 手机病毒分析实验 23451、Android .3452、系统简介 .3453、编程语言 .3464、Android 软件包分析 3465、课外阅读 理解 Android 上的安全性 .348常用缩写词 348前提条件 348用户 ID:Linux 与 Android349手机病毒分析实验 2.3678-8 网马病毒分析实验 .3691、网马 .3692、Fiddler .370网马病毒分析实验 3711、网马 3722、Fiddler 3728-9MPEG2
21、网马实验 3761、网马 3762、Fiddler 377MPEG2 网马实验 .3781、用网马生成器生成网马 3782、阅读木马文件 3793、在虚拟机里面运行,验证推断是否正确 3818-10 跨站攻击实验 .3811、什么是跨站攻击? .3812、跨站漏洞成因 .3823、防范跨站攻击 .382跨站攻击实验 3821、跨站攻击原理及效果展示 3832、跨站盗取用户 cookie3849-1 逆向工程技术初级实验 .3861、逆向工程简述 .3862、逆向分析技巧 .3863、函数 .3873.1 参数传递和局部变量 .3883.2 函数返回值 .3894、循环 .3895、全局变量 .
22、3896、PE 文件格式 389逆向工程技术初级实验 3981、Ollydbg 加载目标程序 .3982、Ollydbg 调试实战 .3993、IDA Pro 静态反汇编分析 .4009-2 逆向工程技术高级实验 .4041、逆向工程简述 .4042、逆向分析技巧 .4042.1 函数 .4052.2 参数传递和局部变量 .4062.3 函数返回值 .4072.4 循环 .4072.5 全局变量 .4073、PE 文件格式 407逆向工程技术中级实验 4161、基于源代码的反汇编对比学习 4169-3 逆向工程技术高级实验 .4211、逆向工程简述 .4212、逆向分析技巧 .4222.1 函
23、数 .4222.2 参数传递和局部变量 .4232.3 函数返回值 .4242.4 循环 .4242.5 全局变量 .4253、PE 文件格式 425逆向工程技术高级实验 4331、逆向程序找出程序注册码 4339-4Aspack 加壳实验 4401、壳的概念 .4402、壳的加载过程 .4413、加壳工具简单介绍 .442Aspack 加壳实验 .4431、安装 aspack 加壳工具 .4432、加密 notepad4433、从节,字符串,导入表等信息比较加密前后的文件有何不同 4449-5Aspack 反汇编分析实验 4441、壳的概念 .4442、壳的加载过程 .4453、加壳工具简单
24、介绍 .446Aspack 反汇编分析实验 .4471、IDA 常用命令 .4472、Aspack 大致流程 .4492.1 获取壳所需要的 API 4492.2 解密原程序数据 4492.3 重定位 4502.4 填充 IAT4502.5 跳转到 OEP.4513、用 Ollydbg 脱壳并修复 45110-1 交换机口令恢复实验 .4531、交换机口令恢复原理介绍 4531.1 路由器口令恢复 .4531.2 交换机口令恢复 .453交换机口令恢复实验 4531、设备要求 4542、操作说明 4543、操作步骤 45410-2 路由器口令恢复实验 .4551、路由器口令恢复原理介绍 455
25、2、CISCO 路由器内部组件 .4553、路由器的启动顺序 4564、配置寄存器设置 45610-3PIX 防火墙口令恢复实验 .4571、PIX 防火墙口令恢复原理介绍 457PIX 防火墙口令恢复实验 4571、设备要求 4582、操作说明 4583、操作步骤 45810-4ASA 防火墙口令恢复实验 .4591、ASA 防火墙口令恢复原理介绍 .459ASA 防火墙口令恢复实验 .4591、设备要求 4602、操作说明 4603、操作步骤 4601-1网络联通嗅探实验实验原理1、Ping 原理Ping 程序是用来探测主机到主机之间是否可通信,如果不能 ping 到某台主机,表明不能和这
26、台主机建立连接。ping 使用的是 ICMP 协议,它发送 icmp 回送请求消息给目的主机。ICMP 协议规定:目的主机必须返回 ICMP 回送应答消息给源主机。如果源主机在一定时间内收到应答,则认为主机可达。ICMP 协议通过 IP 协议发送的,IP 协议是一种无连接的,不可靠的数据包协议。 Ping不通一个地址,并不一定表示这个 IP 不存在或者没有连接在网络上,因为对方主机可能做了限制,比如安装了防火墙,因此 Ping 不通并不表示不能使用 FTP 或者 TELNET 连接。2、Ping 工作过程假定主机 A 的 IP 地址是 192.168.1.1,主机 B 的 IP 地址是 192
27、.168.1.2,都在同一子网内,则当你在主机 A 上运行 “Ping 192.168.1.2”后,都发生了些什么呢?首先,Ping 命令会构建一个固定格式的 ICMP 请求数据包,然后由 ICMP 协议将这个数据包连同地址“192.168.1.2”一起交给 IP 层协议(和 ICMP 一样,实际上是一组后台运行的进程),IP 层协议将以地址“192.168.1.2”作为目的地址,本机 IP 地址作为源地址,加上一些其他的控制信息,构建一个 IP 数据包,并在一个映射表中查找出 IP 地址 192.168.1.2所对应的物理地址(也叫 MAC 地址,这是数据链路层协议构建数据链路层的传输单元帧
28、所必需的),一并交给数据链路层。后者构建一个数据帧,目的地址是 IP 层传过来的物理地址,源地址则是本机的物理地址,还要附加上一些控制信息,依据以太网的介质访问规则,将它们传送出去。主机 B 收到这个数据帧后,先检查它的目的地址,并和本机的物理地址对比,如符合,则接收;否则丢弃。接收后检查该数据帧,将 IP 数据包从帧中提取出来,交给本机的 IP 层协议。同样,IP 层检查后,将有用的信息提取后交给 ICMP 协议,后者处理后,马上构建一个 ICMP 应答包,发送给主机 A,其过程和主机 A 发送 ICMP 请求包到主机 B 一模一样。3、Ping 命令详解Ping 命令格式如下:ping -
29、t -a -n count -l length -f -i ttl -v tos -r count -s count -j computer-list | -k computer-list -w timeout destination-list参数-tping 指定的计算机直到中断。ctrl+c 停止-a将地址解析为计算机名。例:c:ping -a 127.0.0.1pinging china-hacker 127.0.0.1 with 32 bytes of data:(china-hacker 就是他的计算机名)reply from 127.0.0.1: bytes=32 timeping
30、 pinging 192.20.239.132 with 32 bytes of data: (192.20.239.132 他的 ip地址)reply from 192.20.239.132:bytes=32 time=101ms ttl=243reply from 192.20.239.132:bytes=32 time=100ms ttl=243reply from 192.20.239.132:bytes=32 time=120ms ttl=243reply from 192.20.239.132:bytes=32 time=120ms ttl=243网络联通嗅探实验实验目的1、 了
31、解网络连通测试的方法和工作原理。2、 掌握 ping 命令的用法。实验要求1、 认真阅读和掌握本实验相关的知识点。2、 上机实现软件的基本操作。3、 得到实验结果,并加以分析生成实验报告。注:因为实验所选取的软件版本不同,学生要有举一反三的能力,通过对该软件的使用能掌握运行其他版本或类似软件的方法。实验步骤Ping 命令是一种 TCP/IP 实用工具,在 DOS 和 UNIX 系统下都有此命令。它将您的计算机与目标服务器间传输一个数据包,再 要 求 对 方 返 回 一 个 同 样 大 小 的 数 据 包 来 确 定 两台 网 络 机 器 是 否 连 接 相 通 。1 在命令提示符窗口中输入:p
32、ing 。了解该命令的详细参数说明。图 1 ping 命令参数帮助2 输入 ping ,查看目标主机是否在线(需要配置 DNS)。图 2 ping 主机名称从返回的结果可以得到,目标主机可能不在线,或者开启了防火墙。3 输入:ping 192.168.100.1 。查看主机能否到达网关。图 3 ping 主机 IP 地址从返回结果可以得到,本主机能到达网关,说明网络是通的。实验总结根据 ping 命令查看主机网络的连通性是否正常。 命令:ping软件大小: 软件语言: 开 发 商: 应用平台: WinXP 授 权: 软件介绍: ping 命令是操作系统自带程序,无需下载。使用 ping 可以测
33、试计算机名和计算机的 ip 地址,验证与远程计算机的连接,通过将 icmp 回显数据包发送到计算机并侦听回显回复数据包来验证与一台或多台远程计算机的连接,该命令只有在安装了 tcp/ip 协议后才可以使用。 北京西普阳光教育科技有限公司 版权所有公司网址: 联系电话:010-82327658 技术支持: 1-2主机信息探测实验实验原理1、主机信息探测的原理1.1 基于 ICMP echo 扫描Ping 是最常用的,也是最简单的探测手段,其实这并不能算是真正意义上的扫描。通过 Ping 命令判断在一个网络上主机是否开机的原理是:Ping 向目标发送一个回显(Type8)的 ICMP 数据包,当主
34、机得到请求后,会再返回一个回显(Type0)的数据包,通过是否收到 Ping 的响应包就可以判断主机是否开机。而且 Ping 程序一般是直接实现在系统内核中的,而不是一个用户进程,是不易被发现的。1.2 基于高级 ICMP 的扫描Ping 是利用 ICMP 协议实现的,高级的 ICMP 扫描技术主要利用 ICMP 协议最基本的用途报错。根据网络协议,如果接收到的数据包协议项出现了错误,那么接收端将产生一个“Destination Unreachable”(目标主机不可达)ICMP 的错误报文。这些错误报文不是主动发送的,而是由于错误,根据协议自动产生的。当 IP 数据包出现 Checksum(
35、校验和)和版本的错误的时候,目标主机将抛弃这个数据包;如果是 Checksum 出现错误,那么路由器就直接丢弃这个数据包。有些主机比如AIX、HP/UX 等,是不会发送 ICMP 的 Unreachable 数据包的。可以向目标主机发送一个只有 IP 头的 IP 数据包,此时目标主机将返 “Destination Unreachable”的 ICMP 错误报文。如果向目标主机发送一个坏 IP 数据包,比如不正确的IP 头长度,目标主机将返回“Parameter Problem”(参数有问题)的 ICMP 错误报文。注意:如果是在目标主机前有一个防火墙或者一个其他的过滤装置,可能过滤掉提出的要求
36、,从而接收不到任何的回应。这时可以使用一个非常大的协议数字作为 IP 头部的协议内容,而且这个协议数字至少在今天还没有被使用,主机一定会返回 Unreachable;如果没有Unreachable 的 ICMP 数据包返回错误提示,那么,就说明被防火墙或者其他设备过滤了,也可以用这个方法探测是否有防火墙或者其他过滤设备存在。1.3 全连接扫描(TCP connect Scan)全连接扫描是 TCP 端口扫描的基础,现有的全连接扫描有 TCP connect()扫描和 TCP反向 ident 扫描等。其中 TCP connect()扫描的实现原理如下所述:扫描主机通过TCP/IP 协议的三次握手
37、与目标主机的指定端口建立一次完整的连接。连接由系统调用connect 开始。如果端口开放,则连接将建立成功;否则,若返回-1 则表示端口关闭。建立连接成功:响应扫描主机的 SYN/ACK 连接请求,这一响应表明目标端口处于监听(打开)的状态。如果目标端口处于关闭状态,则目标主机会向扫描主机发送 RST 的响应。全连接扫描技术的一个最大的优点是不需要任何权限,系统中的任何用户都有权利使用这个调用。另一个好处是速度快。如果对每个目标端口以线性的方式,使用单独的“connect()”函数调用,那么将会花费相当长的时间,用户可以同时打开多个套接字,从而加速扫描。使用非阻塞 I/O 允许用户设置一个低的
38、时间以用尽周期,并同时观察多个套接字。但这种方法的缺点是很容易被发觉,并且很容易被过滤掉。目标计算机的日志文件会显示一连串的连接和连接出错的服务消息,目标计算机用户发现后就能很快使它关闭。2、Nmap 扫描工具2.1 Nmap 简介Nmap 是俗称“扫描器之王”的工具软件,由此可见他的确非同一般。Nmap 运行通常会得到被扫描主机端口的列表,给出 well known 端口的服务名(如果可能)、端口号、状态和协议等信息。每个端口的状态有:open、filtered、unfiltered。open 状态意味着目标主机能够在这个端口使用 accept()系统调用接受连接。filtered 状态表示
39、防火墙、包过滤和其他的网络安全软件掩盖了这个端口,禁止 Nmap 探测其是否打开。unfiltered 表示这个端口关闭,并且没有防火墙/包过滤软件来隔离 Nmap 的探测企图。通常情况下,端口的状态基本都是 unfiltered 状态,只有在大多数被扫描的端口处于 filtered 状态下,才会显示处于 unfiltered 状态的端口。根据使用的功能选项,Nmap 也可以报告远程主机的下列特征:使用的操作系统、TCP序列、运行绑定到每个端口上的应用程序的用户名、DNS 名、主机地址是否是欺骗地址,以及其他一些东西。Nmap 还提供了一些高级的特征,例如,通过 TCP/IP 协议栈特征探测操
40、作系统类型,秘密扫描,动态延时和重传计算,并行扫描,通过并行 Ping 扫描探测关闭的主机、诱饵扫描、避开端口过滤检测、直接 RPC 扫描(无须端口影射)、碎片扫描,以及灵活的目标和端口设定。Nmap 命令的基本语法格式如下:nmap Scan Type(s) Options 从语法格式中可以看出,它主要包括“Scan Type(s)”(扫描类型)和“Options”(选项)两部分,而“”部分是扫描目标说明,可以是 IP 地址,也可以是主机名或域名。在“Scan Type(s)” 和“Options”这两大部分却包含了非常强大的功能,其可选参数非常之多。如图 3-31 所示的是 Nmap 其中
41、的一部分功能。直接在命令提示符下输入 Nmap 命令即可得到如图 3-31 所示的功能和使用介绍。2.2 命令详解2.2.1 扫描类型首先介绍“Scan Type(s)”部分,即扫描类型选项。1)-sTTCP connect()扫描:这是最基本的 TCP 扫描方式。Connect()是一种系统调用,由操作系统提供,用来打开一个连接。如果目标端口有程序监听,connect()就会成功返回,否则这个端口是不可达的。这项技术最大的优点是,无须 Root 或 Administrator 权限,任何UNIX 或 Windows 用户都可以自由使用这个系统调用。这种扫描很容易被检测到,在目标主机的日志中会
42、记录大批的连接请求以及错误信息。2)-sSTCP 同步扫描(TCP SYN):因为不必全部打开一个 TCP 连接,所以这项技术通常称为半开(half-open)扫描。可以发出一个 TCP 同步包(SYN),然后等待回应,如果对方返回 SYN/ACK(响应)包就表示目标端口正在监听;如果返回 RST 数据包,就表示目标端口没有监听程序;如果收到一个 SYN/ACK 包,源主机就会马上发出一个 RST(复位)数据包断开和目标主机的连接,这实际上是由操作系统内核自动完成的。这项技术最大的好处是,很少有系统能够把这记入系统日志。不过,需要 Root 权限来定制 SYN 数据包。3)-sN/-sF/sX
43、空(Null)扫描、秘密 FIN 数据包扫描和圣诞树(Xmas Tree)模式:在 SYN 扫描都无法确定的情况下使用。一些防火墙和包过滤软件能够对发送到被限制端口的 SYN 数据包进行监视,而且有些程序比如 synlogger 和 courtney 能够检测那些扫描。这些高级的扫描方式可以逃过这些干扰。使用-sF、-sX 或者-sN 扫描显示所有的端口都是关闭的,而使用SYN 扫描显示有打开的端口,可以确定目标主机可能运行的是 Windwos 系统。现在这种方式没有什么太大的用处,因为 Nmap 有内嵌的操作系统检测功能。还有其他几个系统使用和Windows 同样的处理方式,包括 Cisco
44、、BSDI、HP/UX、MYS、IRIX。在应该抛弃数据包时,以上这些系统都会从打开的端口发出复位数据包。4)-sPPing 扫描:有时只是想知道此时网络上哪些主机正在运行。通过指定网络内的每个 IP地址发送 ICMP echo 请求数据包,Nmap 就可以完成这项任务。如果主机正在运行就会作出响应,但也有一些站点(如 )阻塞 ICMP echo 请求数据包。在默认的情况下 Nmap 也能够向 80 号端口发送 TCP ACK 包,如果收到一个 RST 包,就表示主机正在运行。Nmap 使用的第三种技术是:发送一个 SYN 包,然后等待一个 RST 或者 SYN/ACK 包。对于非Root 用
45、户,Nmap 使用 connect()方法。Nmap 在任何情况下都会进行 Ping 扫描,只有目标主机处于运行状态,才会进行后续的扫描。如果只是想知道目标主机是否运行,而不想进行其他扫描,才会用到这个选项。5)-sUUDP 扫描:如果想知道在某台主机上提供哪些 UDP(用户数据报协议,RFC768)服务,可以使用这种扫描方法。Nmap 首先向目标主机的每个端口发出一个 0 字节的 UDP 包,如果收到端口不可达的 ICMP 消息,端口就是关闭的,否则就假设它是打开的。6)-sAACK 扫描:这项高级的扫描方法通常用来穿过防火墙的规则集。通常情况下,这有助于确定一个防火墙是功能比较完善的或者是
46、一个简单的包过滤程序,只是阻塞进入的 SYN包。这种扫描是向特定的端口发送 ACK 包(使用随机的应答/序列号)。如果返回一个 RST包,这个端口就标记为 unfiltered 状态。如果什么都没有返回,或者返回一个不可达ICMP 消息,这个端口就归入 filtered 类。注意,Nmap 通常不输出 unfiltered 的端口,所以在输出中通常不显示所有被探测的端口。显然,这种扫描方式不能找出处于打开状态的端口。7)-sW滑动窗口的扫描:这项高级扫描技术非常类似于 ACK 扫描,除了它有时可以检测到处于打开状态的端口,因为滑动窗口的大小是不规则的,有些操作系统可以报告其大小。这些系统至少包
47、括:某些版本的 AIX、Amiga、BeOS、BSDI、Cray、Tru64 UNIX、DG/UX、OpenVMS、Digital UNIX、OpenBSD、OpenStep、QNX、Rhapsody、SunOS 4.x、Ultrix、VAX、VXWORKS。从 nmap-hackers 邮件 3 列表的文档中可以得到完整的列表。8)-sRRPC 扫描:这种方法和 Nmap 的其他不同的端口扫描方法结合使用。选择所有处于打开状态的端口向它们发出 SunRPC 程序的 null 命令,以确定它们是否是 RPC 端口,如果是,就确定是哪种软件及其版本号,由此能够获得防火墙的一些信息。诱饵扫描现在还
48、不能和RPC 扫描结合使用。9)-bFTP 反弹攻击(bounce attack):FTP 协议有一个很有意思的特征,它支持代理 FTP连接。也就是说,能够从 连接到 FTP 服务器 ,并且可以要求这台 FTP 服务器为自己发送 Internet 上任何地方的文件。传递给-b 功能选项的参数,是要作为代理的 FTP 服务器。语法格式为:-b usernameasswordserverort除了 server 以外,其余都是可选的。2.2.2 选项在“Options”部分中可选择的选项如下。1)-P0在扫描之前,不必 Ping 主机。有些网络的防火墙不允许 ICMP echo 请求穿过,使用这
49、个选项可以对这些网络进行扫描。2)-PT扫描之前,使用 TCP Ping 确定哪些主机正在运行。Nmap 不是通过发送 ICMP echo 请求包然后等待响应来实现这种功能,而是向目标网络(或者单一主机)发出 TCP ACK 包然后等待回应。如果主机正在运行就会返回 RST 包。只有在目标网络/主机阻塞了 Ping 包,而仍旧允许对其进行扫描时,这个选项才有效。对于非 Root 用户,使用 connect()系统调用来实现这项功能。使用-PT 来设定目标端口。默认的端口号是 80,因为这个端口通常不会被过滤。3)-PS对于 Root 用户,这个选项让 Nmap 使用 SYN 包而不是 ACK 包来对目标主机进行扫描。如果主机正在运行就返回一个 RST 包(或者一个 SYN/ACK 包)。4)-PI设置这个选项,让 Nmap 使用真正的 Ping(ICMP echo 请求)来扫描目标主机是否正在运行。使用这个选项让 Nmap 发现正在运行的