1、网络攻击技术研究网络攻击技术研究李德全中科院,软件所信息安全国家重点实验室认识黑客 HackerHacker 起源Hack:(1) cut roughly or clumsily, chop(砍辟)(2) horse may be hired(3) person paid to do hard and uninteresting work as a writer;引伸义:干了一件漂亮的事;Hacker: 也指恶作剧;Hacker differs from Cracker黑客守则1) 不恶意破坏系统2) 不修改系统文档3) 不在 bbs 上谈论入侵事项4) 不把要侵入的站点告诉不信任的朋友5)
2、在 post 文章时不用真名6) 入侵时不随意离开用户主机7) 不入侵政府机关系统8) 不在电话中谈入侵事项9) 将笔记保管好10) 要成功就要实践11) 不删除或涂改已入侵主机的帐号12) 不与朋友分享已破解的帐号网络攻击的分类1、特权提升攻击2、拒绝服务攻击3、病毒蠕虫的攻击(恶意代码攻击)1、特权提升攻击1.1 口令攻击1.2 窃听1.3 扫描1.4 木马攻击1.5 缓冲区溢出攻击1.6 社交工程1.1 口令攻击恢复或重现存入系统的口令强力破解破解加密的口令文件击键记录从击键记录中查找可能的口令恢复或重现存入系统的口令在向系统输入口令时,为了避免输入的口令被旁边的人看到,系统通常不会显示
3、你键入的口令字符,而是以星号“*”代替字符显示。当把口令存入机器以后,下次登录时系统会自动从存储在口令文件中取出相应的口令进行登录,这时候,需要输入帐号、口令的界面仍然会显示出来,而口令一栏则仍以几个“*”代替。采用口令恢复软件可以把“*”还原显示为原来的口令字符。恢复或重现存入系统的口令用 iOpusPassword Recovery XP 软件显示出口令为“uhf”由于我们用的是试用模式,因此,只显示了口令的前 3 位强力破解口令如果没有采用很强的口令策略(如口令的尝试次数的限制)时,强力攻击还是很有效的。强力攻击可以通过字典加速找到不安全的口令。一些常用的不安全口令:password、s
4、ecret、sex、money、love、computer、football、hello、morning、ibm、work、office、online、terminal、internet选择口令的要点是:长度要足够,数字、字母、符号都要有,字母要大小写都有,不能使用有意义的单词等等。破解加密的口令文件在系统上,通常都有加密的口令文件,当用户输入帐号和口令时,系统将口令加密与口令文件中的对应项比较,如果一致,什么口令正确,验证通过。如果攻击者获得了此口令文件,其通过口令破解软件如JohnTheRipper、L0phtCrack、Ntcrack、Cracker Jack、Dictionary Ma
5、ker 等从预先准备好的字典中取出一个,进行加密,然后与口令文件中的口令(一般会有很多)比较,看看与哪个一致,如果匹配成功,则攻击者就获得了对应帐号的口令,此口令即为匹配前进行加密的那个。1.2 窃听网络窃听(远程)本地窃听网络窃听在一个共享式网络,可以听取所有的流量是一把双刃剑管理员可以用来监听网络的流量情况开发网络应用的程序员可以监视程序的网络情况黑客可以用来刺探网络情报目前有大量商业的、免费的监听工具,俗称嗅探器(sniffer)以太网卡的工作模式网卡的 MAC 地址(48 位)通过 ARP 来解析 MAC 与 IP 地址的转换用 ipconfig/ifconfig 可以查看 MAC 地
6、址正常情况下,网卡应该只接收这样的包MAC 地址与自己相匹配的数据帧广播包网卡完成收发数据包的工作,两种接收模式混杂模式:不管数据帧中的目的地址是否与自己的地址匹配,都接收下来非混杂模式:只接收目的地址相匹配的数据帧,以及广播数据包(和组播数据包)为了监听网络上的流量,必须设置为混杂模式共享网络和交换网络共享式网络通过网络的所有数据包发往每一个主机最常见的是通过 HUB 连接起来的子网交换式网络通过交换机连接网络由交换机构造一个“MAC 地址-端口”映射表发送包的时候,只发到特定的端口上共享式网络示意图在交换式网络上监听数据包ARP 重定向攻击AB1 B 打开 IP 转发功能2 B 发送假冒的
7、 arp 包给 A,声称自己是 C 的 IP 地址3 A 给 C 发送数据,而实际上数据传到了 B 的 MAC 地址,于是 B 窃听了 A 给 C 的消息做法:利用 dsniff 中的 arpredirect 工具AC应用程序抓包的技术UNIX 系统提供了标准的 API 支持Packet socketBPFWindows 平台上通过驱动程序来获取数据包驱动程序WinPcap通过取包工具窃听帐号口令第 73 个数据包给出的是 pop3 帐号的用户名,第 75 个数据包给出口令注意,这里只是示意,这里的口令是不安全的!本地窃听软件的:木马、Keylogger(http:/ Loggers)1.3
8、扫描Port scanning: 找出网络中开放的服务。基于 TCP/IP 协议,对各种网络服务,无论是主机或者防火墙、路由器都适用端口扫描可以确认各种配置的正确性,避免遭受不必要的攻击用途,双刃剑管理员可以用来确保自己系统的安全性黑客用来探查系统的入侵点端口扫描的技术已经非常成熟,目前有大量的商业、非商业的扫描器扫描器的重要性扫描器能够暴露网络上潜在的脆弱性无论扫描器被管理员利用,或者被黑客利用,都有助于加强系统的安全性它能使得漏洞被及早发现,而漏洞迟早会被发现的扫描器可以满足很多人的好奇心扫描器除了能扫描端口,往往还能够发现系统存活情况,以及哪些服务在运行用已知的漏洞测试这些系统对一批机器
9、进行测试,简单的迭代过程有进一步的功能,包括操作系统辨识、应用系统识别扫描器历史早期80 年代,网络没有普及,上网的好奇心驱使许多年轻人通过 Modem 拨号进入到 UNIX 系统中。这时候的手段需要大量的手工操作于是,出现了 war dialer自动扫描,并记录下扫描的结果现代的扫描器要先进得多SATAN: Security Administrators Tool for Analyzing Networks1995 年 4 月发布,引起了新闻界的轰动界面上的突破,从命令行走向图形界面(使用 HTML界面),不依赖于X两位作者的影响(Dan Farmer 写过网络安全检查工具 COPS,另一
10、位 Weitse Venema 是TCP_Wrapper 的作者)Nmap作者为 Fyodor,技术上,是最先进的扫描技术大集成结合了功能强大的通过栈指纹来识别操作系统的众多技术地址扫描IP 扫描的目的是对一个网段内的所有可能的 IP 地址进行扫描测试,看看哪些 IP 地址处于使用中(即有系统以该 IP 地址在网络中运行) 。端口扫描技术基本的 TCP connect()扫描TCP SYN 扫描(半开连接扫描, half open)TCP Fin 扫描(秘密扫描,stealth)TCP ftp proxy 扫描(bounce attack)用 IP 分片进行 SYN/FIN 扫描(躲开包过滤防
11、火墙)UDP recvfrom 扫描UDP ICMP 端口不可达扫描Reverse-ident 扫描漏洞扫描漏洞扫描器是一种自动检测远程或本地主机安全性弱点的程序。通过使用漏洞扫描器,系统管理员能够发现所维护的 Web 服务器的各种 TCP 端口的分配、提供的服务、Web 服务软件版本和这些服务及软件呈现在 Internet 上的安全漏洞。从而在计算机网络系统安全保卫战中做到“有的放矢” ,及时修补漏洞,构筑坚固的安全长城。攻击者也可以利用漏洞扫描查找受害者系统的漏洞,然后根据这些已知漏洞对受害者发起攻击。可以分为主机漏洞扫描和网络漏洞扫描1.4 木马攻击特洛伊木马是一种隐藏在具有一定使用功能
12、的程序(称为载体程序或外壳程序)中的一段非法的代码。当载体程序执行时,木马也得以执行。于是木马就进行一些恶意的操作,最典型的就是在系统中安装后门。木马在植入到被攻击主机后,它一般会通过一定的方式把相应信息,如主机的 IP 地址、打开的端口号(即后门)等发送给攻击者,这样,攻击者可以通过后门控制该系统。木马的植入木马的植入一般是在用户不知情的情况下完成的木马也可以通过 Script、ActiveX、Asp、CGI 等交互式脚本的方式植入。由于微软的浏览器在执行 Script 脚本上存在一些漏洞,攻击者可以利用这些漏洞传播病毒和木马,甚至直接对浏览者的电脑进行文件操作等。Back Orifice、
13、冰河等都是比较著名的特洛伊木马。木马的结构木马程序往往包含两个部分外壳程序:公开的,谁都可以看得到。往往具有足够的吸引力,使人下载或拷贝,并运行内核程序:隐藏在外壳程序之后,可以做各种对系统造成破坏的事情,比如.发动攻击、破坏设备.安装后门通过 Internet 传播是极好的途径木马的防范如何防止不要轻易相信别人发送的程序不要轻易打开来路不明的程序或者内嵌脚本的文档在网络上发布和下载文件,留意文件的 MD5 码用防病毒软件来检测或过滤已经发现的木马(网上一些软件等的发布,都有检验码,目的在于防止他人加入木马)1.5 缓冲区溢出攻击返回地址攻击代码局部变量缓冲区FFFF0000堆栈增长方向字串增
14、长方向Buffer Overflows基本的思想通过修改某些内存区域,把一段恶意代码存储到一个 buffer 中,并且使这个 buffer 被溢出,以便当前进程被非法利用(执行这段恶意的代码)危害性在 UNIX 平台上,通过发掘 Buffer Overflow, 可以获得一个交互式的 shell在 Windows 平台上,可以上载并执行任何的代码溢出漏洞发掘起来需要较高的技巧和知识背景,但是,一旦有人编写出溢出代码,则用起来非常简单与其他的攻击类型相比,缓冲区溢出攻击.不需要太多的先决条件.杀伤力很强.技术性强在 Buffer Overflows 攻击面前,防火墙往往显得很无奈Buffer Overflow 的历史1988 年的 Morris 蠕虫,瘫痪了 6000 多台机器:利用 UNIX 服务 finger 中的缓冲区溢出漏洞来获得访问权限,得到一个 shell;1996 年前后,开始出现大量的 Buffer Overflow 攻击,因此引起人们的广泛关注;源码开放的操作系统首当其冲;随后,Windows 系统下的 Buffer Overflows 也相继被发掘出来;已经有一些非常经典细致的文章来介绍与 Buffer overflows有关的技术.