网络安全讲义.docx
《网络安全讲义.docx》由会员分享,可在线阅读,更多相关《网络安全讲义.docx(39页珍藏版)》请在冰豆网上搜索。
网络安全讲义
拒绝服务攻击
DoS(DenialOfService),拒绝服务的缩写,是指故意攻击网络协议实现的缺陷或直接通过野蛮手段耗尽被攻击对象的资源,目的是让目标计算机或网络无法提供正常的服务,使目标系统停止响应甚至崩溃。
这些服务资源包括网络带宽,文件系统空间容量,开放的进程或者允许的连接。
这种攻击会导致资源的匮乏,无论计算机的处理速度多快、内存容量多大、网络带宽的速度多快都无法避免这种攻击带来的后果。
大多数的DoS攻击是需要相当大的带宽的,而以个人为单位的黑客没有可用的高带宽资源。
为了克服这个缺点,DoS攻击者开发了分布式的攻击。
攻击者利用工具集合许多的网络带宽来同时对同一个目标发动大量的攻击请求,这就是DDOS(DistributedDenialOfService)攻击。
可以说DDoS攻击是由黑客集中控制发动的一组DoS攻击的集合,这种方式被认为是最有效的攻击形式,并且非常难以抵挡。
如何防止DoS/DDoS攻击
各种DoS攻击软件都可以很轻松地从Internet上获得,DoS攻击给飞速发展的Internet网络安全带来重大的威胁。
然而从某种程度上可以说,DoS攻击永远不会消失并且从技术上目前没有根本的解决办法。
面对凶多吉少的DoS险滩,我们该如何应付呢?
让我们首先对造成DoS攻击威胁的技术问题作一下总结。
DoS攻击可以说是如下原因造成的。
1.软件弱点造成的漏洞。
这包含在操作系统或应用程序中与安全相关的系统缺陷,这些缺陷大多是由于错误的程序编制,粗心的源代码审核,无心的副效应或一些不适当的绑定所造成的。
由于使用的软件几乎完全依赖于开发商,所以对于由软件引起的漏洞只能依靠打补丁来弥补。
2.错误配置也会成为系统的安全隐患。
这些错误配置通常发生在硬件装置、服务器系统或者应用程序中,大多是由于一些没经验、不负责任员工或者错误的理论所造成。
因此我们必须保证对网络中的路由器、交换机等网络连接设备和服务器系统都进行正确的配置,这样才会减小这些错误发生的可能性。
3.重复请求导致过载的拒绝服务攻击。
当对资源的重复请求大大超过资源的支持能力时就会造成拒绝服务攻击。
要避免系统遭受DoS攻击,从前两点来看,网络管理员要积极谨慎地维护整个系统,确保无安全隐患和漏洞;而针对第三点的恶意攻击方式则需要安装防火墙等安全设备过滤DoS攻击,同时强烈建议网络管理员定期查看安全设备的日志,及时发现对系统存在安全威胁的行为。
DDOS网络攻击是我们最常见的问题了,要防止DDOS网络攻击,首先就要了解其攻击的方式。
1.Synflood:
该攻击以多个随机的源主机地址向目的主机发送SYN包,而在收到目的主机的SYNACK后并不回应,这样,目的主机就为这些源主机建立了大量的连接队列,而且由于没有收到ACK一直维护着这些队列,造成了资源的大量消耗而不能向正常请求提供服务。
2.Smurf:
该攻击向一个子网的广播地址发一个带有特定请求(如ICMP回应请求)的包,并且将源地址伪装成想要攻击的主机地址。
子网上所有主机都回应广播包请求而向被攻击主机发包,使该主机受到攻击。
3.Land-based:
攻击者将一个包的源地址和目的地址都设置为目标主机的地址,然后将该包通过IP欺骗的方式发送给被攻击主机,这种包可以造成被攻击主机因试图与自己建立连接而陷入死循环,从而很大程度地降低了系统性能。
4.PingofDeath:
根据TCP/IP的规范,一个包的长度最大为65536字节。
尽管一个包的长度不能超过65536字节,但是一个包分成的多个片段的叠加却能做到。
当一个主机收到了长度大于65536字节的包时,就是受到了PingofDeath攻击,该攻击会造成主机的宕机。
5.Teardrop:
IP数据包在网络传递时,数据包可以分成更小的片段。
攻击者可以通过发送两段(或者更多)数据包来实现TearDrop攻击。
第一个包的偏移量为0,长度为N,第二个包的偏移量小于N。
为了合并这些数据段,TCP/IP堆栈会分配超乎寻常的巨大资源,从而造成系统资源的缺乏甚至机器的重新启动。
6.PingSweep:
使用ICMPEcho轮询多个主机。
7.Pingflood:
该攻击在短时间内向目的主机发送大量ping包,造成网络堵塞或主机资源耗尽。
网络攻击方面的术语解释2008-02-1417:
55DDOS:
DDOS的中文名叫分布式拒绝服务攻击,俗称洪水攻击。
DoS的攻击方式有很多种,最基本的DoS攻击就是利用合理的服务请求来占用过多的服务资源,从而使合法用户无法得到服务的响应。
被攻击主机上有大量等待的TCP连接,网络中充斥着大量的无用的数据包,源地址为假,制造高流量无用数据,造成网络拥塞,使受害主机无法正常和外界通讯,利用受害主机提供的服务或传输协议上的缺陷,反复高速的发出特定的服务请求,使受害主机无法及时处理所有正常请求,严重时会造成系统死机。
Worm:
网络蠕虫病毒,为了尽量减少蠕虫病毒在网络上的传播,现在常常配置ACL,把已知的蠕虫病毒常用的一些端口给封掉。
蠕虫也在计算机与计算机之间自我复制,但蠕虫病毒可自动完成复制过程,因为它接管了计算机中传输文件或信息的功能。
一旦计算机感染蠕虫病毒,蠕虫即可独自传播。
但最危险的是,蠕虫可大量复制。
例如,蠕虫可向电子邮件地址簿中的所有联系人发送自己的副本,联系人的计算机也将执行同样的操作,结果造成多米诺效应(网络通信负担沉重),业务网络和整个Internet的速度都将减慢。
IPSpoof:
即IP电子欺骗,我们可以说是一台主机设备冒充另外一台主机的IP地址,与其它设备通信,从而达到某种目的技术。
在TCP三次握手过程中实现,黑客主机可以假装TRUST的ip向TARget发送请求连接报文,target响应(在这个过程中,黑客主机必须使用DDOS等拒绝服务攻击使trust主机无法接受target的包,而同时黑客主机又必须猜测target发送的响应包的内容以便向target发送确认报文,与target建立连接)。
SYNFlood:
是当前最流行的DoS(拒绝服务攻击)与DdoS(分布式拒绝服务攻击)的方式之一,这是一种利用TCP协议缺陷,发送大量伪造的TCP连接请求,从而使得被攻击方资源耗尽(CPU满负荷或内存不足)的攻击方式。
发生在Tcp连接握手过程。
SocialEngineering:
社会工程攻击是一种利用"社会工程学"来实施的网络攻击行为。
最近流行的免费下载软件中捆绑流氓软件、免费音乐中包含病毒、网络钓鱼、垃圾电子邮件中包括间谍软件等,都是近来社会工程学的代表应用。
Honeybot:
僵尸网络跟踪工具。
HoneyBOT是一款能够在网络上模仿超过1000个易受攻击的服务的Windows蜜罐程序,可以捕获和记录入侵和袭击企图。
它运行于Windows2000及以上版本,是AtomicSfotwareSolutions公司的产品。
ShellCode:
Shellcode实际是一段代码(也可以是填充数据),是用来发送到服务器利用特定漏洞的代码,一般可以获取权限。
另外,Shellcode一般是作为数据发送给受攻击服务的。
BruteAttack:
蛮力攻击就是我们常说的穷举法。
SQL注入攻击
什么是SQL注入呢?
简单的说也就是攻击者通过黑盒测试的方法查询到目标网站脚本存在过滤不严,那么攻击者就可以利用某些特殊构造的SQL语句插入SQL的特殊字符和指令,提交一段数据库查询代码,通过在IE浏览器访问直接查询管理员的用户口令等等。
或者利用数据库的一些特性进行权限提升等等,这就是我们常说的sqlinjection也就是SQL注入。
我们来看一下的代码:
<%
dimID
dimrs,sql
ID=request("id")//从客户端获取ID的值
sql="select*fromInfowhereID="&ID//把查询语句赋值给SQL变量
Setrs=Server.CreateObject("ADODB.Recordset")//创建记录对象
rs.opensql,conn,1,1//执行查询语句
ifnot(rs.eofandrs.bof)then//判断记录是否存在
%>
如果程序员在网站的某一程序,比如vite.asp里有如上语句。
那么我们可以清楚的看到ID没有经过任何过滤便放入到SQL查询语句当中,注入漏洞产生。
那么我们可以构造地址为http:
//127.0.0.1/vite.asp?
id=1的地址来进行SQL注射攻击。
SQL注射为目前WEB应用的最重要的威胁。
据了解,90%的企业网站被攻险都是因为SQL注入引起的。
顾名思义就是从旁注入,也就是利用主机上面的一个虚拟站点进行渗透此类手法多出现与虚拟主机站点。
如一个网站本身程序非常安全,攻击者没有任何下手的地方,那么攻击者可以通过入侵同服务器的另外一个站点,然后提升权限从而达到入侵目标站的目的。
防御方法:
尽量选择单独服务器或者服务器权限设置比较好的虚拟机。
跨站攻击XSS又叫CSS(CrossSiteScript)
跨站脚本攻击。
它指的是恶意攻击者向Web面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码被执行,从而达到攻击者的特殊目的。
XSS属于被动式的攻击,因为其被动且好利用,所以许多人经常忽略其危害性。
一般来说跨站最容易出现的地方在网站的留言版块.攻击者可以构造如
的语句。
稍懂JS的人知道如果程序员在编写代码时没有过滤掉如
传统的跨站利用方式一般都是攻击者首先构造一个网页,然后在攻击者的另一个空间里面放一个收集cookie的页面接着结合其他技术让用户打开跨站页面以便盗取用户的cookie从而进行攻击。
如当攻击者要渗透一个站点,攻击者可能首先使简单的HTML标签如
(粗体),(斜体)或(下划线)
或者他可能尝试简单的script标签如
来检测,这样也是很容易检测出跨站漏洞。
然而,高明点的攻击者可能用它的hex值替换整个字符串。
这样
标签会以
%3C%73%63%72%69%70%74%3E
出现。
另一方面,攻击者可能使用web代理服务器像Achilles会自动转换一些特殊字符如<换成%3C>换成%3E。
这样攻击发生时,URL中通常以hex等值代替角括号。
另外攻击者通过结合其它技术,如社会工程学等,欺骗目标服务器的管理员打开有跨站漏洞的网页。
来达到目地因为跨站漏洞属于被动式攻击方法,所以不被很多人看好。
其实不然。
精心构造的跨站页面结合攻击者的思维方式和独特的思路一样可以打开胜利之门
解析iFrame攻击手法
对黑客而言,如何让使用者毫无警觉,下载恶意程序到使用者的计算机,才能达到黑客之后的目的,例如窃取账号、密码或植入傀儡程序。
利用HTML语法中的iframe语法,即是一个极常见的手法。
iframe设计的目的,是让设计人员能在网页中嵌入页框,而页框中可以加载另一个页面,透过这种方式可以设计出更为弹性的网页功能。
但iframe到黑客手中,就有了不一样的玩法。
只要在iframe属性将宽与高设定为「0」时,被呼叫的页面一样会执行,但不会显示在网页上。
这种宛如替网页穿上隐身衣的作法,就会在使用者浏览被骇网站时,神不知鬼不觉地执行藏在隐身页面中的语法。
由于iframe手法太过盛行,而且具有明显的辨识特征,于是就有变种的方式出现,利用JavaScript语法改写呼叫手法,再混进网页原有JavaScript中,增加发掘的难度。
一般而言,浏览器如果设定适当的安全性等级,恶意程序在下载或执行时会出现警告讯息,但如果黑客利用安全漏洞,就有机会在不用任何询问下安装恶意程序。
比起自行伪造网站容易被人识破,黑客会挑选流量大或知名网站作为散播的源头,成功率较高。
黑客会尝试由各种可能的管道入侵,例如网页应用程序本身的缺陷或是未更新的漏洞。
Google强大的搜寻能力,更是助长黑客能取得更多没有作好设定的网站,透过一些关键词往往能查出系统信息或可能的弱点,而让黑客可以取得修改网页的权限。
社会工程学
我们通常把基于非计算机的欺骗技术叫做社会工程。
社会工程中,攻击者设法设计让人相信它是其他人。
这就像攻击者在给人打电话时说自己是某人一样的简单。
因为他说了一些大概只有那个人知道的信息,所以受害人相信他。
社会工程的核心是,攻击者设法伪装自己的身份并设计让受害人泄密私人信息。
这些攻击的目标是搜集信息来侵入计算机系统的,通常通过欺骗某人使之泄露出口令或者在系统中建立个新帐号。
其他目标使侦察环境,找出安装了什么硬件和软件,服务器上装载了什么补丁等等。
另外一般黑客在拿到同一个机房一台密码之后,会使用这个密码尝试登陆其他的机器,因为如果是同一个管理员的话那么他很有可能在他管理的服务器上都使用同一个密码。
或者是通过破解一个管理员的油箱伪造他给另外的管理员发信息。
网站被入侵后的应及办法
管理员应首先作到以下几点:
1.对重要数据和资料完全进行备份,并将备份所用的存储设备单独放置,而不是连在互联网上,这是网站或系统遭到恶意攻击后最好的解救方法。
2.特别重要的网站要做到24小时有网络管理员值班,并采取技术措施循环检查系统日志,以及动态IP的变化。
3.无人值守网站时,关闭一切连在互联网上的供工作人员使用的电脑终端设备,因为绝大多数黑客攻击时往往都是从这些防范薄弱的电脑终端侵入,从中找到网站或系统的弱点,进而取得管理员或用户密码,并夺取网站管理的超级权限,借此转攻网站系统内的其他机器。
4.检查所有用户口令,特别是管理员的超级权限口令,尽量作到使口令中同时含有数字,大小写字母,符号等,因为口令的组合多,解码将是相当困难的,而且口令长度不得小于8位;另外,还要经常去有关的安全站点下载系统补丁程序,尽可能地将系统的漏洞补上。
特殊文件名删除
1、 特殊命名的文件夹无法删除
这类命名是利用WINDOWS操作系统的命名规则的一个缺陷,也有利用该规则来实现免疫Autorun类型病毒的工具软件,常见的是以“.”作为后缀名的文件夹,普通方法是无法删除的,要进入命令提示符模式来使用命令删除。
下面要提到两个命令:
1、 MD
即MakeDir:
创建目录的意思
2、 RD
即RemoveDir:
删除目录的意思
创建这类目录的方法:
MD[PATH].[后缀]\
例子:
MDTPR..\ 就创建了一个TPR.的文件夹,若是MDTPR…\就是TPR..文件夹,类推。
删除这类目录的方法:
RD[PATH].[后缀]\
例子:
RDTPR..\ 就删除了刚才建立的TPR.这个文件夹
2、 设备名文件或文件夹无法删除
Windows下不能够以下面这些字样来命名文件或文件夹,包括:
“aux”“com1”“com2”“prn”“con”和“nul”等,因为这些名字都属于设备名称,等价于一个DOS设备,如果我们把文件命名为这些名字,Windows就会误以为发生重名,所以会提示“不能创建同名的文件”等等。
当然,有一些特殊的方法可以偷机取巧,建立以这些设备名为名的文件夹,比如我们在命令提示符下执行“mdc:
\aux\\”,就在C盘建了一个名叫aux的文件夹。
此文件夹虽然可以访问,也可以建立子文件夹,但却无法删除,因为Windows不允许以这种方式删除设备。
在系统看来,这个aux文件夹就是设备。
删除方法:
1、 得到该文件或文件夹完整的UNC路径格式,就是网上邻居的路径格式。
比如要删除C盘下的aux文件夹,可在命令提示符下执行:
rd/s\\.\c:
\aux,rd是命令提示符删除文件夹的命令,/s参数表示从所有子目录删除指定文件。
再比如要删除C盘temp文件夹下的nul.exe文件,在命令提示符下执行:
del\\.\c:
\temp\nul.exe即可。
2、 或者可以打开cmd,然后定位到aux所在的目录使用命令:
rdaux\来删除
克隆用户的方法详细介绍
(
一、克隆账号的原理与危害
1.克隆账号的原理
在注册表中有两处保存了账号的SID相对标志符,一处是注册表HKEY_LOCAL_MACHINE\SAM\AMDomains\AccountUsers下的子键名,另一处是该子键的子项F的值。
但微软犯了个不同步它们的错误,登录时用的是后者,查询时用前者。
当用Administrator的F项覆盖其他账号的F项后,就造成了账号是管理员权限,但查询还是原来状态的情况,这就是所谓的克隆账号。
安全小知识:
SID也就是安全标识符(SecurityIdentifiers),是标识用户、组和计算机账户的唯一的号码。
在第一次创建该账户时,将给网络上的每一个账户发布一个唯一的SID。
Windows2000中的内部进程将引用账户的SID而不是账户的用户或组名。
如果创建账户,再删除账户,然后使用相同的用户名创建另一个账户,则新账户将不具有授权给前一个账户的权力或权限,原因是该账户具有不同的SID号。
2.克隆账号的危害
当系统用户一旦被克隆,配合终端服务,就等于向攻击者开启了一扇隐蔽的后门,让攻击者可以随时进入你的系统,这一扇门你看不到,因为它依靠的是微软的终端服务,并没有释放病毒文件,所以也不会被杀毒软件所查杀。
二、克隆用户的常用方法
1.手工克隆方法一
在Windows2000/xp/2003和WindowsNT里,默认管理员账号的SID是固定的500(0x1f4),那么我们可以用机器里已经存在的一个账号将SID为500的账号进行克隆,在这里我们选择的账号是IUSR_XODU5PTT910NHOO(XODU5PTT910NHOO为已被攻陷的服务器机器名。
为了加强隐蔽性,我们选择了这个账号,所有用户都可以用以下的方法,只不过这个用户较常见罢了)
我们这里要用到的一个工具是PsExec,一个轻型的telnet替代工具,它使您无需手动安装客户端软件即可执行其他系统上的进程,并且可以获得与控制台应用程序相当的完全交互性。
PsExec最强大的功能之一是在远程系统和远程支持工具(如IpConfig)中启动交互式命令提示窗口,以便显示无法通过其他方式显示的有关远程系统的信息。
执行:
psexec-i-s-dcmd运行一个System的CMDShell,如图1所示。
图1
得到一个有system权限的cmdshell,然后在该CMDShell里面运行“regedit/eadmin.regHKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\000001F4”,这样我们将SID为500(0x1f4)的管理员账号的相关信息导出,如图2所示。
图2
然后编辑admin.reg文件,将admin.reg文件的第三行HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\000001F4中的“1F4”修改为IUSR_XODU5PTT910NHOO的SID,将文件中的“1F4”修改为“3EB”,如图3所示。
图3
保存之后,然后执行如下命令:
“regedit/sadmin.reg”,导入该admin.reg文件,最后执行“netuserIUSR_XODU5PTT910NHOOn3tl04d”命令,修改IUSR_XODU5PTT910NHOO的密码为n3tl04d。
这里建议最好使用14位的密码,也就是说越像IUSR_XODU5PTT910NHOO的密码越好,现在,就可以使用IUSR_XODU5PTT910NHOO密码为n3tl04d远程登录了,和管理员一样的配置环境!
如图4所示。
图4
注意:
大部份机器里IUSR_MACHINE用户的SID都为0x3E9(如果机器在最初安装的时候没有安装IIS,而是自己创建了账号后再安装IIS就有可能不是这个值了),如果不确定,可以使用:
“regedit/esid.regHKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names\IUSR_MACHINE”命令先导出注册表,然后编辑sid.reg文件,就可以看到SID为“3EB”,如图5所示。
图5
2.手工克隆方法二
另外一种克隆账户的方法是:
首先运行regedt32.exe,展开注册表到HKEY_LOCAL_MACHINE\SAM\SAM,然后点菜单栏的“编辑”→“权限”(Windows2000是菜单栏的“安全”→“权限”),会弹出“SAM的权限”窗口,点击Administrators,在该窗口中勾选允许完全控制,(Windows2000是在该窗口中勾选“允许将来自父系的可继承权限传播给该对象”)然后点击“确定”按钮。
如图6所示。
图6
再找到HKEY_LOCAL_MACHINE\SAM\SAM\DomainsAccount\Users\00001F4,双击右边窗口中的“F”项,如图7所示。
图7
选取全部内容,然后点击鼠标右键选“复制”,再打开HKEY_LOCAL_MACHINE\SAM\SAM\DomainsAccount\Users\00003EB下的F项,将刚才复制的内容粘贴进去,这样我们就将IUSR_XODU5PTT910NHOO账号克隆成了管理员,再将刚才SAM目录的权限给删掉,以免被人发现。
3.使用mt克隆
mt.exe是一款非常强大的网络工具,它主要以命令行方式执行,可以开启系统服务,检查用户以及直接显示用户登陆密码等。
它就象一把双刃剑,入侵者和系统管理员都要使用它,但由于常被入侵者使用,所以被很多杀毒软件列为病毒。
关于MT的详细测试报告可以到
mt-clone
如:
mt-cloneadminstratorIUSR_XODU5PTT910NHOO
如图8所示。
图8
就是把管理员账号administrator克隆为IUSR_XODU5PTT910NHOO账号。
最后执行“netuserIUSR_XODU5PTT910NHOOn3tl04d”命令,修改IUSR_XODU5PTT910NHOO的密码为n3tl04d。
4.使用AIO克隆
AIO(AllInOne)是WinEggDrop写的一个把很多小工具功能集成一体的一个“工具”,其中有克隆用户、修改服务的启动类型、删除系统账户、检查系统隐藏服务、端口扫描和端口转发等等。
使用AIO克隆很简单,就是:
Aio.exe-Clone正常账号要被克隆账户密码
如:
Aio.exe-CloneAdministratorIUSR_XODU5PTT910NHOOn3tl04d
这样就可以用IUSR_XODU5PTT910NHOO\n3tl04d作为管理员登录了。
如图9所示。
图9
5.使用CA克隆
ca.exe小榕编写的一个远程克隆账号工具,当然本地克隆也没