行之有效防范木马后门的几个实用招术
[ 2007-03-25 03:56:54 | 作者: sun ]
木马是一种非常特殊的程序,它与病毒和恶意代码不同。木马程序(Trojan horses)隐蔽性很强,您根本不知道它们在运行。但是它们产生的危害并不亚于病毒。一旦您的机器中了木马,则网上有人可以通过它来获取您的密码和一些资料。甚至一些高级的黑客可以远程控制您的电脑。下面我们就向大家介绍有效防范木马的招术。
小心下载软件
由于黑客软件被人们滥用,网上很多站点所提供下载的软件或多或少掺杂木马或病毒。一但该软件被用户下载到硬盘且满足运行条件,木马和病毒就会对电脑系统和用户的信息安全构成巨大的威胁,而这一切,毕竟是普通用户所不能察觉的。惟一能避免木马和病毒横行的,并不一定全依赖反病毒软件,而是靠用户的自制能力。如不要去访问不知名的站点,不要去登录染色站点,不要从上面下载拨号器或是黑客站点下载看似安全的软件。同时,下载的时候一定要开启防火墙。
不随意打开附件
有很多不怀好意的人喜欢把木马加在邮件附件中,甚至把木马和正常文件混合在一起,然后再起上一个具有吸引力的邮件名来诱惑无辜的网友们去打开附件。此外,通过QQ间的文件传递也能发出木马来。因此,我们不可以随便打开陌生人发来的邮件,尤其是其中的附件,而.doc,.exe,.swf的附件更是要小心谨慎。如果实在要打开,可以先把这个附件文件保存到硬盘上,用邮件监控或反病毒扫描一番后再打开。
使用杀毒软件
新的木马和病毒一出来,惟一能控制其蔓延的就是不断地更新防毒软件中的病毒库。除开启防毒软件的保护功能外,我们还可以多运行一些其他的软件,如天网等,它可以监控网络之间正常的数据流通和不正常的数据流通并随时对用户发出相关提示。如果我们怀疑机器染了木马,还可以从http://download.zol.com.cn上下载个木马克星来彻底扫描木马,保护系统的安全。主要的木马查杀程序有Trojan Defense、Antiy Ghostbusters、Digital Patrol、PestPatrol、Tauscan、TDS-3 Trojan Defence Suite和Trojan Remover等,而且有的是免费软件,大家下载后可以免费使用。
查看文件扩展名
木马的扩展名多数为VBS、PIF等,甚至有的木马根本就没有扩展名。利用这个特征我们只要打开“我的电脑”,依次选择“查看→文件夹选项”命令,再单击“查看”标签,用鼠标向下拖动滚动栏,去掉“隐藏已知文件的扩展名”前的小钩让文件的扩展名显示出来。以后看到扩展名为VBS、PIF等文件时就要多加小心了。
编后语:以上都是一些操作习惯,但对于我们抵御木马是相当有帮助的。由于木马程序每天都会出现新的种类,所以一般的木马程序都会提供即时在线更新服务,以便让它能够即时检测出系统中的木马。
隐藏在背后的阴谋 浏览器劫持的攻与防
[ 2007-03-25 03:56:44 | 作者: sun ]
“浏览器劫持”,通俗点说就是故意误导浏览器的行进路线的一种现象,常见的浏览器劫持现象有:访问正常网站时被转向到恶意网页、当输入错误的网址时被转到劫持软件指定的网站、输入字符时浏览器速度严重减慢、IE浏览器主页/搜索页等被修改为劫持软件指定的网站地址、自动添加网站到“受信任站点”、不经意的插件提示安装、收藏夹里自动反复添加恶意网站链接等,不少用户都深受其害。那么,这类现象是如何引起的呢?用户又该如何防范应对呢?这就是本文要介绍的内容。
一、“攻”之解说
1、整体认识。
浏览器劫持(Browser Hijack)是一种恶意程序软件,通过恶意修改用户个人电脑的浏览器默认设置,以引导用户登录被其修改的或并非用户本意要浏览的网页。大多数浏览器劫持者是在用户访问其网站时,通过修改其浏览器默认首页或搜索结果页,达到劫持网民浏览器的目的。这些载体可以直接寄生于浏览器的模块里,成为浏览器的一部分,进而直接操纵浏览器的行为。“浏览器劫持”的后果非常严重,用户只有在受到劫持后才会发现异常情况;目前,浏览器劫持已经成为Internet用户最大的威胁之一。
2、现象分析。
“浏览器劫持”的攻击手段可以通过被系统认可的“合法途径”来进行。所谓“合法途径”,即是说大部分浏览器劫持的发起者,都是通过一种被称为“BHO”(Browser Helper Object,浏览器辅助对象)的技术手段来植入系统。
而BHO是微软早在1999年推出的作为浏览器对第三方程序员开放交互接口的业界标准,它是一种可以让程序员使用简单代码进入浏览器领域的“交互接口”, 由于BHO的交互特性,程序员还可以使用代码去控制浏览器的行为,比如常见的修改替换浏览器工具栏、在浏览器界面上添加自己的程序按钮等操作,这些操作都被系统视为“合法”,这就是“浏览器劫持”现象赖以存在的根源。
二、“防”之细谈
这类现象确实难以防范,用户永远处于被动地位。我们只能通过一些设置与软件的应用,让这种影响减至最低。以下办法可供大家参考。
1、个别劫持现象的手动修正。
Windows登录窗口被劫持。
在注册表中打开HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Winlogon分支,然后将其下的“LegalNoticeCaption”和“LegalNoticeText”主键删除即可解决问题。
在网页中单击鼠标右键,在弹出的菜单里显示网页广告。
在注册表中打开HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt分支,IE浏览器中显示的附加右键菜单都在这里设置,常见的网际快车单击右键下载的信息也存放在这里,只需找到显示广告的主键条目删除即可。
2、通用修正法。
虽然“浏览器劫持”一般都需要手工修正,但仍可以通过一些检测浏览器劫持工具如HijackThis、Browser Hijack Recover等来实现修正工作。下面以HijackThis为例,简要说明修正过程。
软件下载地址:http://www.mydown.com/soft/187/187841.html。下载完成后双击即可启动到如图所示主界面。单击左下角“扫描”按钮,软件会自动对系统进行全方位的安全检测;稍等之后即会返回系统中所有可疑内容,每个可疑项目前都有一个编号,这些编号代表了不同的类别;勾选某个项目后单击右下角的“显示所选项目信息”按钮可以查看到更详细的信息;然后单击“修复”按钮即可进行修复。
三、总结
浏览器一旦被劫持,就意味这你无法决定自己的电脑里将被存放进什么资料,这无疑存在巨大安全隐患。而如今的互联网络环境可谓处处是“浏览器劫持”式的陷阱,单凭普通用户被动的事后修正无异于亡羊补牢;更多的需要全世界互联网使用者把好公众舆论和道德走向一关。
安全攻略:提高操作系统和IIS安全性
[ 2007-03-25 03:56:31 | 作者: sun ]
IIS(Internet Information Server)作为目前最为流行的Web服务器平台,发挥着巨大的作用。因此,了解如何加强IIS的安全机制,建立一个高安全性能的Web服务器就显得尤为重要。
保证系统的安全性
因为IIS是建立在操作系统下,安全性也应该建立在系统安全性的基础上,因此,保证系统的安全性是IIS安全性的基础,为此,我们要做以下事情。
1、 使用NTFS文件系统
在NT系统中应该使用NTFS系统,NTFS可以对文件和目录进行管理,而FAT文件系统只能提供共享级的安全,而且在默认情况下,每建立一个新的共享,所有的用户就都能看到,这样不利于系统的安全性。和FAT文件系统不同,在NTFS文件下,建立新共享后可以通过修改权限保证系统安全。
2、 关闭默认共享
在Windows 2000中,有一个“默认共享”,这是在安装服务器的时候,把系统安装分区自动进行共享,虽然对其访问还需要超级用户的密码,但这是潜在的安全隐患,从服务器的安全考虑,最好关闭这个“默认共享”,以保证系统安全。方法是:单击“开始/运行”,在运行窗口中输入“Regedit”,打开注册表编辑器,展开“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\lanmanworkstation\parameters”,在右侧窗口中创建一个名为“AutoShare-Wks”的双字节值,将其值设置为0,这样就可以彻底关闭“默认共享”。
3、 设置用户密码
用户一定要设置密码,用户的密码尽量使用数字与字母大小混排的口令,还需要经常修改密码,封锁失败的登录尝试,并且设定严格的账户生存时间。应避免设置简单的密码,且用户的密码尽可能不要和用户名有任何关联。
保证IIS自身的安全性
在保证系统具有较高安全性的情况下,还要保证IIS的安全性,主要请注意以下事情:
1、要尽量避免把IIS安装在网络中的主域控制器上。因为在安装完IIS后,会在所安装的计算机上生成IUSR_Computername的匿名账户。这个账户会被添加到域用户组中,从而把应用于域用户组的访问权限提供给访问Web服务器的每个匿名用户,这样不仅不能保证IIS的安全性,而且会威胁到主域控制器。
2、限制网站的目录权限。目前有很多的脚本都有可能导致安全隐患,因此在设定IIS中网站的目录权限时,要严格限制执行、写入等权限。
3、经常到微软的站点下载IIS的补丁程序,保证IIS最新版本。
只要提高安全意识,经常注意系统和IIS的设置情况,IIS就会是一个比较安全的服务器平台,能为我们提供安全稳定的服务。
卡巴斯基6安全防护机制的相关分析
[ 2007-03-25 03:56:20 | 作者: sun ]
2006年 5月15日,著名的反病毒安全软件厂商KasperskyLab发布了划时代的安全软件套装Kaspersky Internet Security 6(简称KIS6)以及 Kaspersky AntiVirus 6.0(简称KAV6)。KIS6/KAV6比卡罢以前的产品有了质的提高。KIS6包含了文件防毒、邮件防毒、网页防毒、事前防卫(包括进程行为监控,监视各类代码注入、安装全局钩子、加载驱动/服务等行为;文件完整性检查;检查各类运用RK技术的文件/进程/端口/注册表隐藏;Office宏保护等);反间谍软件、防火墙、反垃圾邮件等功能。KAV6比KIS6缺少了防火墙模块。
整体来说,KIS6非常强大。 Руткит 讨论组里,我们一致公认KIS6是目前最强的个人类安全套装。卡巴实验室里的确实都是精英,实力雄厚,许多东西都运用的Undocumented技术,导致我上一版本的WinDbg一进入内核调试状态就崩溃。KIS6的注册表监控的非常全:NoWinodwsApp,ShellServiceObjectDelayLoad,ShellExcuteHooks,SharedTaskScheduler,SafeBoot,\Winlogon\Notify,AppInit_DLLs,开关机脚本等其他安全软件较少监控的自启动键值他都监控了;另外KIS6监控了各类代码注入,包括SetThreadContext的方法;监控了加载驱动、服务加载、通过\\Device\\PhysicalMemory对象进Ring0等;监控全局钩子的安装;文件完整性检查;反Rootkit,检测隐藏文件隐藏进程隐藏端口隐藏注册表;值的一提的是涂改PspIdTable方法隐藏进程的方法KIS6也能查。另外KIS6的防火墙的控管规则也比较细,不像国内的个人防火墙是以进程为最小控管单位,KIS6如国外的其他一些防火墙把控制策略细化到具体进程的某个端口,比如默认情况下只允许Explorer.exe访问HTTP80端口,而不是完全允许Explorer.exe进程访问网络。
夸KIS6夸完了,现在来说说他的弱点:关于KIS6监控采用远程线程代码注入的行为时,他只对注入IE等进程有反映,而他防火墙默认的控管规则里却允许Svchost等进程访问HTTP等端口,那木马程序只要用远程线程的方法注入svchost等进程,就能完完全全逃过卡巴了。
再来看在KIS6下怎样实现自启动。KIS6监控注册表确实监控得很全,而且还监控服务之类的,初看你在自启动方面是无处下手。不过可爱的卡巴斯基又犯了让我悲哀的低级错误,开始菜单里的启动文件夹他竟然没监控。免得被人说这样做太猥琐,那就再说个方法,因为可爱的卡巴在监控远程线程代码注入时只IE等进程进行提示,从而我们可以注入Winlogon,注入Winlogon后我们就可以Defeat SFP,然后感染文件实现自启动,虽然卡巴有文件完整性检查,不过问题不大,你自己试了就明白为什么了,呵呵。
再说点底层的,KIS6监控加载驱动监控得不全,嘿嘿,使用ZwSetSystemInformation我们照样可以加载驱动了,能加载驱动了天下还不是我们的了? 恢复SSDT表呀,DKOM,Miniport NDIS Hook,任我们玩了。
vxk的补充:
除了XYZREG说的几个地方,卡巴斯基在面对BOOT.INI+NTOSKRNL.EXE改写大法(这个方法很无耻),还有HOTPATCH(几乎通吃FireWall)大法时都很脆弱啊!
hotPatch能够动态的改写某些dll的,比如kernel32.dll,我就不多说了。你在kernel32.dll里做一个code injection然后在适当的进程内部加载我们的DLL,好了,一切搞定。
实战录 一次对顽固灰鸽子的查杀
[ 2007-03-25 03:56:07 | 作者: sun ]
朋友电脑中了木马,因为在异地,所以有了这次不很方便的查杀。
她用的是卡巴,卡巴也报出了病毒GAAKEY.DLL,显示是鸽子“HUPIGON”。不过进程里没有IE。我记得灰鸽子是往IE里边插的,让她用卡巴查杀了一下内存,汗,好多的病毒。插入了EXPLORER等众多进程中,而且卡巴无法删除。也是,那些进程都用着呢。对方是个MM,电脑小白的MM,远控总是断。费尽九牛二虎之力让她明白了如何进入安全模式。当时我是这么想的,肯定还有GAAHOOK.DLL,GAA.EXE这样的文件在%systemroot%下边。所以叮嘱她进入安全模式以后找这三个东东,然后删除掉。没想到的是她找不到,当时电话联系着。问,你看你C盘下有没有BOOT.INI什么文件,显示颜色有点淡的(就是隐藏文件,之前已经叫她把系统那些保护和隐藏文件都显示了的)?答曰:无。
看来木马用了手段,这些看不到。让她重启回来,QQ上给她“System Repair Engineer”。使用“智能扫描”,按下“扫描”按钮进行扫描,扫描完成后按下“保存报告”按钮保存报告日志文件(SREng.LOG),把保存的报告日志文件给我。我一看发现有GADMIN GADMINISTRATOR两个服务。
把System Repair Engineer和KILLBOXE.exe给准备好,然后我把文本发给她,让她保存到桌面,进安全模式进行删除。
文本内容如下:
==========================
重新启动电脑, 开机检测完后, 不停按[F8]键(可以一直按到启动菜单出来为止), 选择安全模式进入Windows,这个你应该可以操作了。
运行(双击)System Repair Engineer(就是我给你那个“SREng.exe”),
点启动项目,服务,然后点“Win32服务应用程序”。勾选“隐藏微软服务”,好了,然后要选择病毒服务了。选中病毒服务Gadmin / GAadministrator,选择“删除服务”点“设置”选择“否”
双击打开KillBox.exe,分别删除
C:\WINDOWS\GAadmin
C:\WINDOWS\GAaKey.DLL
c:\windows\gaa.dll(这个找不到或者没有删除都没有关系,等下交给杀毒软件就可以搞定的了。)
删除时勾选“删除前先结束Explorer.EXE进程”,可能会没有了桌面,不过等一会儿就会出来了。
=============================
不过可惜的是MM的桌面一直没出来,汗!我让她强行关机了,然后重启。哇哈哈,再用卡巴扫描清理了一下,世界清静了,MM笑了
重定向命令在安全方面的应用
[ 2007-03-25 03:55:57 | 作者: sun ]
大家知道,DOS下有一个不为大家所常用的命令——重定向命令,这个小东西非常有用,该命令同样可以用于Win9x/ME/2000/XP下,灵活的使用这个命令可以给我们带来很大的方便——无论是入侵还是防守抑或是系统应用,都会带来很大的便利。今天就让我们来看几个重定向命令在安全方面的应用实例。
一、命令格式
DOS的标准输入输出通常是在标准设备键盘和显示器上进行的,利用重定向,可以方便地将输入输出改向磁盘文件或其它设备。其中:
1.大于号“>”将命令发送到文件或设备,例如打印机>prn。使用大于号“>”时,有些命令输出(例如错误消息)不能重定向。
2.双大于号“>>”将命令输出添加到文件结尾而不删除文件中已有的信息。
3.小于号“<”从文件而不是键盘上获取命令所需的输入。
4.>&符号将输出从一个默认I/O流(stdout,stdin,stderr)重新定向到另一个默认I/O流。例如,command >output_file 2>&1将处理command过程中的所有错误信息从屏幕重定向到标准文件输出中。标准输出的数值如下所示:
标准输出 等价的数值
Stdin 0
Stdout 1
Stderr 2
其中,1和2都创建一个文件用于存放数据;4可能不能够在DOS下使用。
二、重定向命令的输出
几乎所有的命令均将输出发送到屏幕。即使是将输出发送到驱动器或打印机的命令,也会在屏幕上显示消息和提示。要将输出从屏幕重定向到文件或打印机,请使用大于号(>)。大多数命令中均可以使用大于号。例如,在以下命令中,dir命令生成的目录列表重定向到Dirlist.txt文件:dir>dirlist.txt,如果Dirlist.txt文件不存在,系统将创建该文件。如果Dirlist.txt存在,系统将使用dir命令的输出替换文件中的信息。
要将命令输出添加到文件结尾而不丢失文件中的任何信息,请使用双大于号(>>)。例如,在以下命令中,dir命令生成的目录列表附加到Dirlist.txt文件中:dir>dirlist.txt,将输入重定向到一个命令,就象可以将命令输出发送到文件或打印机而不是屏幕一样,您可以从文件而不是从键盘获取命令的输入。要从文件获取输入,请使用小于号(<)。例如,以下命令将从List.txt文件中获取sort命令的输入:sort
一、命令格式
DOS的标准输入输出通常是在标准设备键盘和显示器上进行的,利用重定向,可以方便地将输入输出改向磁盘文件或其它设备。其中:
1.大于号“>”将命令发送到文件或设备,例如打印机>prn。使用大于号“>”时,有些命令输出(例如错误消息)不能重定向。
2.双大于号“>>”将命令输出添加到文件结尾而不删除文件中已有的信息。
3.小于号“<”从文件而不是键盘上获取命令所需的输入。
4.>&符号将输出从一个默认I/O流(stdout,stdin,stderr)重新定向到另一个默认I/O流。例如,command >output_file 2>&1将处理command过程中的所有错误信息从屏幕重定向到标准文件输出中。标准输出的数值如下所示:
标准输出 等价的数值
Stdin 0
Stdout 1
Stderr 2
其中,1和2都创建一个文件用于存放数据;4可能不能够在DOS下使用。
二、重定向命令的输出
几乎所有的命令均将输出发送到屏幕。即使是将输出发送到驱动器或打印机的命令,也会在屏幕上显示消息和提示。要将输出从屏幕重定向到文件或打印机,请使用大于号(>)。大多数命令中均可以使用大于号。例如,在以下命令中,dir命令生成的目录列表重定向到Dirlist.txt文件:dir>dirlist.txt,如果Dirlist.txt文件不存在,系统将创建该文件。如果Dirlist.txt存在,系统将使用dir命令的输出替换文件中的信息。
要将命令输出添加到文件结尾而不丢失文件中的任何信息,请使用双大于号(>>)。例如,在以下命令中,dir命令生成的目录列表附加到Dirlist.txt文件中:dir>dirlist.txt,将输入重定向到一个命令,就象可以将命令输出发送到文件或打印机而不是屏幕一样,您可以从文件而不是从键盘获取命令的输入。要从文件获取输入,请使用小于号(<)。例如,以下命令将从List.txt文件中获取sort命令的输入:sort
最大限度保护无线网络安全的六项措施
[ 2007-03-25 03:55:46 | 作者: sun ]
合理保护无线访问点的目的在于,将无线网络与无权使用服务的外人隔离开来。往往说来容易做时难。就安全而言,无线网络通常比固定有线网络更难保护,这是因为有线网络的固定物理访问点数量有限,而在天线辐射范围内的任何一点都可以使用无线网络。尽管本身存在着困难,但合理保护无线网络系统是保护系统避免严重安全问题的关键所在。为了最大限度地堵住这些安全漏洞,就要确保网络人员采取保护无线网络的六项措施。
规划天线的放置
要部署封闭的无线访问点,第一步就是合理放置访问点的天线,以便能够限制信号在覆盖区以外的传输距离。别将天线放在窗户附近,因为玻璃无法阻挡信号。你最好将天线放在需要覆盖的区域的中心,尽量减少信号泄露到墙外。当然,完全控制信号泄露几乎是不可能的,所以还需要采取其它措施。
使用WEP
无线加密协议(WEP)是对无线网络上的流量进行加密的一种标准方法。尽管存在重大缺陷,但WEP仍有助于阻挠偶尔闯入的黑客。许多无线访问点厂商为了方便安装产品,交付设备时关闭了WEP功能。但一旦采用这做法,黑客就能立即访问无线网络上的流量,因为利用无线嗅探器就可以直接读取数据。
变更SSID及禁止SSID广播
服务集标识符(SSID)是无线访问点使用的识别字符串,客户端利用它就能建立连接。该标识符由设备制造商设定,每种标识符使用默认短语,如101就是3Com设备的标识符。倘若黑客知道了这种口令短语,即使未经授权,也很容易使用你的无线服务。对于部署的每个无线访问点而言,你要选择独一无二并且很难猜中的SSID。如果可能的话,禁止通过天线向外广播该标识符。这样网络仍可使用,但不会出现在可用网络列表上。
禁用DHCP
对无线网络而言,这很有意义。如果采取这项措施,黑客不得不破译你的IP地址、子网掩码及其它所需的TCP/IP参数。无论黑客怎样利用你的访问点,他仍需要弄清楚IP地址。
禁用或改动SNMP设置
如果你的访问点支持SNMP,要么禁用,要么改变公开及专用的共用字符串。如果不采取这项措施,黑客就能利用SNMP获得有关你方网络的重要信息。
使用访问列表
为了进一步保护无线网络,请使用访问列表,如果可能的话。不是所有的无线访问点都支持这项特性,但如果你的网络支持,你就可以具体地指定允许哪些机器连接到访问点。支持这项特性的访问点有时会使用普通文件传输协议(TFTP),定期下载更新的列表,以避免管理员必须在每台设备上使这些列表保持同步的棘手问题
规划天线的放置
要部署封闭的无线访问点,第一步就是合理放置访问点的天线,以便能够限制信号在覆盖区以外的传输距离。别将天线放在窗户附近,因为玻璃无法阻挡信号。你最好将天线放在需要覆盖的区域的中心,尽量减少信号泄露到墙外。当然,完全控制信号泄露几乎是不可能的,所以还需要采取其它措施。
使用WEP
无线加密协议(WEP)是对无线网络上的流量进行加密的一种标准方法。尽管存在重大缺陷,但WEP仍有助于阻挠偶尔闯入的黑客。许多无线访问点厂商为了方便安装产品,交付设备时关闭了WEP功能。但一旦采用这做法,黑客就能立即访问无线网络上的流量,因为利用无线嗅探器就可以直接读取数据。
变更SSID及禁止SSID广播
服务集标识符(SSID)是无线访问点使用的识别字符串,客户端利用它就能建立连接。该标识符由设备制造商设定,每种标识符使用默认短语,如101就是3Com设备的标识符。倘若黑客知道了这种口令短语,即使未经授权,也很容易使用你的无线服务。对于部署的每个无线访问点而言,你要选择独一无二并且很难猜中的SSID。如果可能的话,禁止通过天线向外广播该标识符。这样网络仍可使用,但不会出现在可用网络列表上。
禁用DHCP
对无线网络而言,这很有意义。如果采取这项措施,黑客不得不破译你的IP地址、子网掩码及其它所需的TCP/IP参数。无论黑客怎样利用你的访问点,他仍需要弄清楚IP地址。
禁用或改动SNMP设置
如果你的访问点支持SNMP,要么禁用,要么改变公开及专用的共用字符串。如果不采取这项措施,黑客就能利用SNMP获得有关你方网络的重要信息。
使用访问列表
为了进一步保护无线网络,请使用访问列表,如果可能的话。不是所有的无线访问点都支持这项特性,但如果你的网络支持,你就可以具体地指定允许哪些机器连接到访问点。支持这项特性的访问点有时会使用普通文件传输协议(TFTP),定期下载更新的列表,以避免管理员必须在每台设备上使这些列表保持同步的棘手问题
菜鸟安全加倍:精通防火墙问与答
[ 2007-03-25 03:55:36 | 作者: sun ]
凡是网络存在之处,都不可避免地会受到诸多不安全因素的威胁,在系统中安装防火墙无疑是最明智、有效的选择。我们既然寄希望于防火墙成为个人计算机与网络之间的一道安全屏障,就一定要对防火墙的方方面面有通透的了解,才能事半功倍,达到预期效果。
问:Windows 2003 自带的防火墙应该如何打开和关闭?
答:可以直接在网卡属性里面设置,也可以在服务里面自己开启服务。
*******************************************************
问:除了Norton 8.1版能装在Windows 2003,还有哪个杀毒软件能支持Windows 2003的?
答:McAfee VirusScan Enterprise、Kaspersky Anti-Virus for NT Server 都可以,但惟一通过Windows 2003认证的目前是趋势SPNT 5.57中文版。
******************************************************
问:Windows 2000 Server装了ZoneAlarm Pro防火墙,还装了Terminal Service终端服务用来远程控制。可怎么配置都无法从远程连接终端服务,大概是ZoneAlarm Pro禁止了链接请求。应该怎样配置才能让ZoneAlarm Pro允许终端服务连接呢?
答:开放3389端口。
***************************************************
问:我在使用 Norton Internet Security 时遇到了以下问题:一是由于硬性屏蔽了来路信息,导致 Discuz 提交安全检查无法通过,在发帖等情况下提示为未定义操作;二是由于误判断,将发帖时的 Discuz 代码辅助提示判断为广告信息而不被执行。有何解决方法?
答:修改 Norton 的默认配置可以避免以上问题,方法如下(以 Norton Internet Security 2003 中文版为例)。
1. 调出“选项”窗口,选择“Norton Internet Security→Web内容→浏览站点的信息”,选择“允许”。
2. 选择“禁止广告→配置”,取消“启用禁止广告”复选框。
经过上述修改后,在安装有 Norton Internet Security 的机器上仍然可以顺畅地访问 Discuz! 及其他网站。
************************************************************
问:单位有人使用BT大量下载东西。以前我在防火墙上封掉对外的6969端口好像很有效果,但是最近好像没啥效果了。请问有什么好的建议吗?
答:那就使用防火墙把6999-9999端口都封了,不过,他们还会开别的,用监视看他们用哪个就封哪个。
***********************************************************
问:朋友的一台笔记本电脑,主要就是写写文章,上网查点东西,不玩游戏,其他东西做的也不多。3月份重装系统安装了ZoneAlarm防火墙后,就开始出现:如果ADSL网络没有流量(就是不访问点什么,停在那里不动)大概过10分钟就会断线,然后机器重新拨号连接!我检查半天,就是找不到有什么问题,请问可能会是什么原因?
答:通常来说,这类防火墙都有当网络闲置时自动断线的功能,而且,一般来说,这个功能默认情况下是启用的,解决这位朋友遇到的问题办法其实很简单,只需去掉这个功能即可。
************************************************************
问:装Kerio Personal Firewall 2.1.5防火墙的这台机器是直接拨号上网ADSL,两台机器是Hub相连的,通过Windows XP的那个共享来一起上网。现在装了防火墙之后,另一台就不能上网了,不论做什么都不行。请问大家,要创建些怎样的规则才行呢?
答:选择“管理→防火墙→高级→Microsoft网络”,选中“允许其他用户访问我的共享文件夹和打印机”即可。
********************************************************
问:我现在QQ每发送一个消息,Norton都会进行病毒扫描。在内存驻留Savscan.exe这个程序,在后台强行关闭不了这个文件,一关闭就会出现提示,但是仍然继续扫描,好像是扫描msg.db的一个文件。扫描过程使我用QQ速度很慢,而且CPU占用率很高,请问我如何关闭Norton对QQ的病毒扫描?
答:在Norton的程序选项中,选择“系统→自动防护→排除”,在右侧列表中将QQ程序添加至要“排除的项目”。再选择“其它→威胁类别→排除”,同样添加QQ程序至右侧列表中。
问:Windows 2003 自带的防火墙应该如何打开和关闭?
答:可以直接在网卡属性里面设置,也可以在服务里面自己开启服务。
*******************************************************
问:除了Norton 8.1版能装在Windows 2003,还有哪个杀毒软件能支持Windows 2003的?
答:McAfee VirusScan Enterprise、Kaspersky Anti-Virus for NT Server 都可以,但惟一通过Windows 2003认证的目前是趋势SPNT 5.57中文版。
******************************************************
问:Windows 2000 Server装了ZoneAlarm Pro防火墙,还装了Terminal Service终端服务用来远程控制。可怎么配置都无法从远程连接终端服务,大概是ZoneAlarm Pro禁止了链接请求。应该怎样配置才能让ZoneAlarm Pro允许终端服务连接呢?
答:开放3389端口。
***************************************************
问:我在使用 Norton Internet Security 时遇到了以下问题:一是由于硬性屏蔽了来路信息,导致 Discuz 提交安全检查无法通过,在发帖等情况下提示为未定义操作;二是由于误判断,将发帖时的 Discuz 代码辅助提示判断为广告信息而不被执行。有何解决方法?
答:修改 Norton 的默认配置可以避免以上问题,方法如下(以 Norton Internet Security 2003 中文版为例)。
1. 调出“选项”窗口,选择“Norton Internet Security→Web内容→浏览站点的信息”,选择“允许”。
2. 选择“禁止广告→配置”,取消“启用禁止广告”复选框。
经过上述修改后,在安装有 Norton Internet Security 的机器上仍然可以顺畅地访问 Discuz! 及其他网站。
************************************************************
问:单位有人使用BT大量下载东西。以前我在防火墙上封掉对外的6969端口好像很有效果,但是最近好像没啥效果了。请问有什么好的建议吗?
答:那就使用防火墙把6999-9999端口都封了,不过,他们还会开别的,用监视看他们用哪个就封哪个。
***********************************************************
问:朋友的一台笔记本电脑,主要就是写写文章,上网查点东西,不玩游戏,其他东西做的也不多。3月份重装系统安装了ZoneAlarm防火墙后,就开始出现:如果ADSL网络没有流量(就是不访问点什么,停在那里不动)大概过10分钟就会断线,然后机器重新拨号连接!我检查半天,就是找不到有什么问题,请问可能会是什么原因?
答:通常来说,这类防火墙都有当网络闲置时自动断线的功能,而且,一般来说,这个功能默认情况下是启用的,解决这位朋友遇到的问题办法其实很简单,只需去掉这个功能即可。
************************************************************
问:装Kerio Personal Firewall 2.1.5防火墙的这台机器是直接拨号上网ADSL,两台机器是Hub相连的,通过Windows XP的那个共享来一起上网。现在装了防火墙之后,另一台就不能上网了,不论做什么都不行。请问大家,要创建些怎样的规则才行呢?
答:选择“管理→防火墙→高级→Microsoft网络”,选中“允许其他用户访问我的共享文件夹和打印机”即可。
********************************************************
问:我现在QQ每发送一个消息,Norton都会进行病毒扫描。在内存驻留Savscan.exe这个程序,在后台强行关闭不了这个文件,一关闭就会出现提示,但是仍然继续扫描,好像是扫描msg.db的一个文件。扫描过程使我用QQ速度很慢,而且CPU占用率很高,请问我如何关闭Norton对QQ的病毒扫描?
答:在Norton的程序选项中,选择“系统→自动防护→排除”,在右侧列表中将QQ程序添加至要“排除的项目”。再选择“其它→威胁类别→排除”,同样添加QQ程序至右侧列表中。
如何成为一个网络安全专家
[ 2007-03-25 03:55:24 | 作者: sun ]
cceye译
译自 RFP Cceye注脚:既 .rain.forest.puppy. 也是我在 BUG trag 见到的最有影响力的发言
者. )原文在: http://cceye.iscool.net
[ 我写这个并不是因为我已经厌倦了一遍又一遍的回答一样的问题,而是考虑到这确实是一个有意
义的问题,其实很多人(90%)确实需要问这个问题而从来没有去问.]
[ 这是一个可能经常更新的文档 ]
我被问了很多次有关于很多领域的问题.
比如:什么编程语言你最推荐? 应该读什么书作为开始?
总而言之,如何在安全领域内成为一个有影响的人.
既然我的答案和一般的答案有所不同,我打算把我的看法说出来.
-----------------------------------------------------------------------
从那里开始?
-----------------------------------------------------------------------
我的观点可能和一般的看法十分的不一样。如果你是刚刚起步,我建议你---*不要*以
Technotronic, Bugtraq,
Packetstorm, Rootshell (不知道这个是否还在运行?), 等等地方为开始。
没错!*不要*从那里开始。(尽管他们是很好的站点,而且这里没有说你不要去访问他们的站
点)。
原因十分简单。如果你以为通晓“安全”就是知道最新的漏洞,你将会发现你自己一无所获。
我同意,知道什么是好的,什么有漏洞是十分有必要的。但是这些并不能够给你的高手之路打下坚
实的基础知识。很好,你知道RDS 是最新的漏洞,你知道如何下载并使用利用这个漏洞的SCRIPT
工具。你知道如何修补这个漏洞(也许。很多人只知如何攻击,不知道如何防护)3个月后,补丁
漫天飞舞。这个漏洞已经不存再了------现在你的那些知识还有什么用?而且还不算你可能根本
没有理解漏洞的分析。
你的知识是什么? 分析?还是攻击手段?
这是我想要再一次强调的。人们可能没有注意,已经有很多人认为只要他们知道最新的漏洞他们就
是安全专家。NO! NO ! NO!所有他们知道的只不过是“漏洞”,而*不是* “安全”。
例如:你知道有关于PHF 的漏洞,SHOWCODE。ASP 的漏洞。 COUNT。CGI 和TEST-CGI 的漏洞。
但是你知道为什么他们会成为CGI 的漏洞吗?你知道如何编一个安全的通用网关吗?你会根据一
个CGI 的工作状态来判断他可能有哪些漏洞或那方面的漏洞吗?或者,你是不是只知道这些CGI
有漏洞呢?
所以我建议你*不要*从漏洞开始。就当他们不存在(你知道我的意思)。你真正需要做的是从一个
普通用户开始。
-----------------------------------------------------------------------
做一个用户。
-----------------------------------------------------------------------
我的意思是你至少要有一个基本的常规的知识。例如:如果你要从事 WEB HACKING 你是否可能连
浏览器都不会使用?你会打开NETSCAPE , 打开IE? 很好!你会输入姓名。你知道 。HTML 是
网页。 很好。。。你要一直这样下去,变成一个熟练的用户。你会区别ASP 和CGI 是动态的。
什么是PHP ? 什么是转向?COOKIE? SSL?你要知道任何一个普通用户可能接触到的关于WEB
的事物。
不是进攻漏洞,仅仅是使用。没有基础的(也许是枯燥的)的这些东西你不可能成为高手++。
这里没有任何捷径。
好, 现在你知道这里的一切了, 你用过了。在你HACK UNIX 之前你至少要知道如何LOGIN 。
LOGOUT 。 使用 SHELL COMMAND 。 使用一般的常用的程序。 ( MAIL , FTP ,WEB 。
LYNX 。 等等)。 你要想成为一个管理员,你要知道基本的操作。
-----------------------------------------------------------------------
成为一个管理员。
-----------------------------------------------------------------------
现在你已经超过了一个普通用户的领域了。进入了更复杂的领域。你要掌握更多的东西。
例如:WEB 服务器的类型。和其他的有什么区别?如何去配置他。想这样的知识你知道的越多意
味着你更了解他是如何工作的。他是干什么的。你理解HTTP 协议吗?你知道HTTP 1。0 和
HTTP1。1 之间的区别吗?WEBDAV 是什么?知道HTTP1。1 虚拟主机有助于你建立你的WEB 服务
器。。。。 深入, 深入。
操作系统?如果你从来没有配置过NT 你怎么可能去进攻一个NT 服务器?你从来没有用过
RDISK, 用户管理器, 却期望CRACK 一个ADMIN 的密码,得到用户权限?你
想使用RDS 而一切你在NT 下的操作你一直是使用图形界面?再一次,你需要从管理员上升到一
个”超级管理员“。这里不是指你有一个超级用户的权限。而是你的知识要贯穿你的所有领域。很
好, 你会在图形界面下添加用户,命令行方式怎么样?而且,那些在 SYSTERM32 里的。EXE 文
件都是干什么的?你知道为什么USERNETCTL 必须要有超级用户权限?你是不是从来没有接触过
USERNETCTL?深入, 深入。。。。
成为一个”百晓生“这是关键。不要以为知道如何作到就行了(骗老板可以,骗进攻
者??。。。)尽可能的知道越多越好。成为一个技术上的首脑。但是。。。。。。
-----------------------------------------------------------------------
你不可能知道所有的事情。
-----------------------------------------------------------------------
哎!这是生命中不得不面对的悲惨事实。不要以为你能。。。。如果你认为你可以。你在自欺欺
人。你需要做的是选择一个领域。一个你最感兴趣的领域。进一步的学习更多的知识。
成为一个用户, 成为一个管理员,成为一个首脑。成为在某领域的最优秀的家伙(小伙,姑
娘) 不要仅仅学习如何使用WEB 浏览器,怎样写CGI 就行了。知道HTTP ,知道WEB 服务器是干
什么的,怎么干的。知道在那里找答案。知道当服务器不正常工作时应该怎样让他工作。
当你在你的领域内有一定经验时,你自然就知道怎样进攻了。
这其实是很简单的道理。如果你知道所有的关于这里的知识,那么。你也知道安全隐患在那里。所
有的漏洞,新的,旧的,将来的,你自己就能够发现未知的漏洞(你这时已经是一个网络高手
了),你,找漏洞,是的,可以,但你必须了解你要找的一切先。
所以,放下你手中的WHISKER 的拷贝。去学习到底那些CGI 是干什么的。他们怎么使通过HTTP使
WEB 服务器有漏洞的?很快你就会知道到底WHISKER 是干什么的了。
-----------------------------------------------------------------------
编程语言。
-----------------------------------------------------------------------
一些最近我经常被问的问题中最常听的问题就是我认为什么编程语言应该学:
我想这要根据一些具体情况。----大致上是你准备花费多少时间在上面,你想让这个语言有多么
有用。一个程序要多长时间完成。和这个程序能完成多么复杂的事情。
以下有几个选项(排列没有什么意义)。
Visual Basic.
- 非常容易学习的语言。很多这方面的书,公开的免费原代码也很多。你应该可以很快的使用他。
但是这个语言有一个限度。他并不是象 比如 c++ 一样强大。你需要在WINDOWS 下运行他。需要
一个VB 的编程环境(不论盗版还是正版的 ,反正他不是免费的)。想用VB 来编攻击代码,或
补丁是十分困难的。
C++
- 也许是最强大的语言.在所有的操作系统里都有.在网上有上吨的原代码和书是免费的。
,包括编程环境。比VB 要复杂一点。也许要掌握他花费的时间要比VB 要多一点。简单的东西容易
学,干复杂的活的东西理解起来也要复杂一点。你自己衡量。
Assembly
- 最复杂的,也是最难学习的语言,如果你把他当作第一个你要学习的语言,那么将会难的你头要
爆裂。但是,你先学了汇编,其余的还不是小菜
有一些书,这方面的教材有减少的趋势。但是汇编知识对某些方面来说是致关紧要的。比如:缓冲
逸出。攻击。很多这类的免费软件。但从这个语言开始是十分*困难*。
Perl
- 一个很不错的语言. 他象VB 一样容易.学习他相应的容易一些.他也象VB一样有限制,但是他在
多数操作平台都能运行.(UNIX . 和WIN ).所以这是他的优势.很多这方面的书. (O‘Reilly
‘Camel‘ books), 而且这个语言是完全免费的.你可以使用他来作一些普通的攻击工具. 他主要
是作用于一些文本的技巧攻击.不适合做二进制程序.
我想这是所有你想知道的. 有把握的说 C/C++是最佳选择.
------------------------------------------------------------------------
推荐的书
-----------------------------------------------------------------------
另外一个问题是我推荐去读什么书:
我个人手边总是有以下的几本书做参考:
Applied Cryptography (Bruce Scheiner)
Linux Application Development (Mike Johnson and Erik Troan)
Windows Assembly Language and Systems Programming (Barry Kauler)
Perl Cookbook (Tom Christiansen and Nathan Torkington) (O‘Reilly)
Linux Programmer‘s Reference (Richard Petersen) (Osborne)
All the O‘Reilly ‘Pocket Reference‘ books, which include vi, emacs,
python, perl, pl/sql, NT, javascript, sendmail, tcl/tk, perl/tk
我总是在这些书的一些基本的规则里思考.
我的心得,大部分 O‘Reilly 书耐读.找一个你感兴趣的领域专心去钻研.
译自 RFP Cceye注脚:既 .rain.forest.puppy. 也是我在 BUG trag 见到的最有影响力的发言
者. )原文在: http://cceye.iscool.net
[ 我写这个并不是因为我已经厌倦了一遍又一遍的回答一样的问题,而是考虑到这确实是一个有意
义的问题,其实很多人(90%)确实需要问这个问题而从来没有去问.]
[ 这是一个可能经常更新的文档 ]
我被问了很多次有关于很多领域的问题.
比如:什么编程语言你最推荐? 应该读什么书作为开始?
总而言之,如何在安全领域内成为一个有影响的人.
既然我的答案和一般的答案有所不同,我打算把我的看法说出来.
-----------------------------------------------------------------------
从那里开始?
-----------------------------------------------------------------------
我的观点可能和一般的看法十分的不一样。如果你是刚刚起步,我建议你---*不要*以
Technotronic, Bugtraq,
Packetstorm, Rootshell (不知道这个是否还在运行?), 等等地方为开始。
没错!*不要*从那里开始。(尽管他们是很好的站点,而且这里没有说你不要去访问他们的站
点)。
原因十分简单。如果你以为通晓“安全”就是知道最新的漏洞,你将会发现你自己一无所获。
我同意,知道什么是好的,什么有漏洞是十分有必要的。但是这些并不能够给你的高手之路打下坚
实的基础知识。很好,你知道RDS 是最新的漏洞,你知道如何下载并使用利用这个漏洞的SCRIPT
工具。你知道如何修补这个漏洞(也许。很多人只知如何攻击,不知道如何防护)3个月后,补丁
漫天飞舞。这个漏洞已经不存再了------现在你的那些知识还有什么用?而且还不算你可能根本
没有理解漏洞的分析。
你的知识是什么? 分析?还是攻击手段?
这是我想要再一次强调的。人们可能没有注意,已经有很多人认为只要他们知道最新的漏洞他们就
是安全专家。NO! NO ! NO!所有他们知道的只不过是“漏洞”,而*不是* “安全”。
例如:你知道有关于PHF 的漏洞,SHOWCODE。ASP 的漏洞。 COUNT。CGI 和TEST-CGI 的漏洞。
但是你知道为什么他们会成为CGI 的漏洞吗?你知道如何编一个安全的通用网关吗?你会根据一
个CGI 的工作状态来判断他可能有哪些漏洞或那方面的漏洞吗?或者,你是不是只知道这些CGI
有漏洞呢?
所以我建议你*不要*从漏洞开始。就当他们不存在(你知道我的意思)。你真正需要做的是从一个
普通用户开始。
-----------------------------------------------------------------------
做一个用户。
-----------------------------------------------------------------------
我的意思是你至少要有一个基本的常规的知识。例如:如果你要从事 WEB HACKING 你是否可能连
浏览器都不会使用?你会打开NETSCAPE , 打开IE? 很好!你会输入姓名。你知道 。HTML 是
网页。 很好。。。你要一直这样下去,变成一个熟练的用户。你会区别ASP 和CGI 是动态的。
什么是PHP ? 什么是转向?COOKIE? SSL?你要知道任何一个普通用户可能接触到的关于WEB
的事物。
不是进攻漏洞,仅仅是使用。没有基础的(也许是枯燥的)的这些东西你不可能成为高手++。
这里没有任何捷径。
好, 现在你知道这里的一切了, 你用过了。在你HACK UNIX 之前你至少要知道如何LOGIN 。
LOGOUT 。 使用 SHELL COMMAND 。 使用一般的常用的程序。 ( MAIL , FTP ,WEB 。
LYNX 。 等等)。 你要想成为一个管理员,你要知道基本的操作。
-----------------------------------------------------------------------
成为一个管理员。
-----------------------------------------------------------------------
现在你已经超过了一个普通用户的领域了。进入了更复杂的领域。你要掌握更多的东西。
例如:WEB 服务器的类型。和其他的有什么区别?如何去配置他。想这样的知识你知道的越多意
味着你更了解他是如何工作的。他是干什么的。你理解HTTP 协议吗?你知道HTTP 1。0 和
HTTP1。1 之间的区别吗?WEBDAV 是什么?知道HTTP1。1 虚拟主机有助于你建立你的WEB 服务
器。。。。 深入, 深入。
操作系统?如果你从来没有配置过NT 你怎么可能去进攻一个NT 服务器?你从来没有用过
RDISK, 用户管理器, 却期望CRACK 一个ADMIN 的密码,得到用户权限?你
想使用RDS 而一切你在NT 下的操作你一直是使用图形界面?再一次,你需要从管理员上升到一
个”超级管理员“。这里不是指你有一个超级用户的权限。而是你的知识要贯穿你的所有领域。很
好, 你会在图形界面下添加用户,命令行方式怎么样?而且,那些在 SYSTERM32 里的。EXE 文
件都是干什么的?你知道为什么USERNETCTL 必须要有超级用户权限?你是不是从来没有接触过
USERNETCTL?深入, 深入。。。。
成为一个”百晓生“这是关键。不要以为知道如何作到就行了(骗老板可以,骗进攻
者??。。。)尽可能的知道越多越好。成为一个技术上的首脑。但是。。。。。。
-----------------------------------------------------------------------
你不可能知道所有的事情。
-----------------------------------------------------------------------
哎!这是生命中不得不面对的悲惨事实。不要以为你能。。。。如果你认为你可以。你在自欺欺
人。你需要做的是选择一个领域。一个你最感兴趣的领域。进一步的学习更多的知识。
成为一个用户, 成为一个管理员,成为一个首脑。成为在某领域的最优秀的家伙(小伙,姑
娘) 不要仅仅学习如何使用WEB 浏览器,怎样写CGI 就行了。知道HTTP ,知道WEB 服务器是干
什么的,怎么干的。知道在那里找答案。知道当服务器不正常工作时应该怎样让他工作。
当你在你的领域内有一定经验时,你自然就知道怎样进攻了。
这其实是很简单的道理。如果你知道所有的关于这里的知识,那么。你也知道安全隐患在那里。所
有的漏洞,新的,旧的,将来的,你自己就能够发现未知的漏洞(你这时已经是一个网络高手
了),你,找漏洞,是的,可以,但你必须了解你要找的一切先。
所以,放下你手中的WHISKER 的拷贝。去学习到底那些CGI 是干什么的。他们怎么使通过HTTP使
WEB 服务器有漏洞的?很快你就会知道到底WHISKER 是干什么的了。
-----------------------------------------------------------------------
编程语言。
-----------------------------------------------------------------------
一些最近我经常被问的问题中最常听的问题就是我认为什么编程语言应该学:
我想这要根据一些具体情况。----大致上是你准备花费多少时间在上面,你想让这个语言有多么
有用。一个程序要多长时间完成。和这个程序能完成多么复杂的事情。
以下有几个选项(排列没有什么意义)。
Visual Basic.
- 非常容易学习的语言。很多这方面的书,公开的免费原代码也很多。你应该可以很快的使用他。
但是这个语言有一个限度。他并不是象 比如 c++ 一样强大。你需要在WINDOWS 下运行他。需要
一个VB 的编程环境(不论盗版还是正版的 ,反正他不是免费的)。想用VB 来编攻击代码,或
补丁是十分困难的。
C++
- 也许是最强大的语言.在所有的操作系统里都有.在网上有上吨的原代码和书是免费的。
,包括编程环境。比VB 要复杂一点。也许要掌握他花费的时间要比VB 要多一点。简单的东西容易
学,干复杂的活的东西理解起来也要复杂一点。你自己衡量。
Assembly
- 最复杂的,也是最难学习的语言,如果你把他当作第一个你要学习的语言,那么将会难的你头要
爆裂。但是,你先学了汇编,其余的还不是小菜
有一些书,这方面的教材有减少的趋势。但是汇编知识对某些方面来说是致关紧要的。比如:缓冲
逸出。攻击。很多这类的免费软件。但从这个语言开始是十分*困难*。
Perl
- 一个很不错的语言. 他象VB 一样容易.学习他相应的容易一些.他也象VB一样有限制,但是他在
多数操作平台都能运行.(UNIX . 和WIN ).所以这是他的优势.很多这方面的书. (O‘Reilly
‘Camel‘ books), 而且这个语言是完全免费的.你可以使用他来作一些普通的攻击工具. 他主要
是作用于一些文本的技巧攻击.不适合做二进制程序.
我想这是所有你想知道的. 有把握的说 C/C++是最佳选择.
------------------------------------------------------------------------
推荐的书
-----------------------------------------------------------------------
另外一个问题是我推荐去读什么书:
我个人手边总是有以下的几本书做参考:
Applied Cryptography (Bruce Scheiner)
Linux Application Development (Mike Johnson and Erik Troan)
Windows Assembly Language and Systems Programming (Barry Kauler)
Perl Cookbook (Tom Christiansen and Nathan Torkington) (O‘Reilly)
Linux Programmer‘s Reference (Richard Petersen) (Osborne)
All the O‘Reilly ‘Pocket Reference‘ books, which include vi, emacs,
python, perl, pl/sql, NT, javascript, sendmail, tcl/tk, perl/tk
我总是在这些书的一些基本的规则里思考.
我的心得,大部分 O‘Reilly 书耐读.找一个你感兴趣的领域专心去钻研.
这些代码都是真实存在的漏洞代码,我想把他们收集起来,漏洞代码看多了势必提高自己的漏洞识别能力.至少当拿到一个待分析的程序时知道那些地方会出问题,从而有目的性的读.
1鸡肋的注入
现在PHP程序能直接注入的情况已经很少了,即使你按默认安装PHP,MAGIC就是打开的,这样提交的单引
号就会被转义成\’,这样就无法闭合单引号,也就不存在后面的查询,现在有好多程序都存在这种情况
,举个例子:
if($_GET[’x’] == "") {
if($_GET[’showimage’] == "") {
$row = sql_array("select * from ".$pixelpost_db_prefix."pixelpost where
datetime〈=’$cdate’ order by datetime DESC limit 0,1");
} else {
$row = sql_array("select * from ".$pixelpost_db_prefix."pixelpost where
(id=’".$_GET[’showimage’]."’)");
}
这样写程序的现在很多见的,说他是个漏洞,可利用价值很低;说他不是漏洞,可理论上确实存在注入
,很有点鸡肋的感觉,其实只需这样写就天下太平了:
$row = sql_array("select * from ".$pixelpost_db_prefix."pixelpost where (intval
(id=’".$_GET[’showimage’]."’))");
2跨站的问题
出现跨站漏洞的代码多种多样,今天看到了一种就记录下来
$message = isset($_POST[’message’]) ? $_POST[’message’] : "";
if (eregi("\r",$message) || eregi("\n",$message)){ die("No
intrusion! ?? :(");}
$message = clean(nl2br($message),’html’);
$name = isset($_POST[’name’]) ? $_POST[’name’] : "";
if (eregi("\r",$name) || eregi("\n",$name)){ die("No intrusion! ??
:(");}
$name = clean($name,’html’);
$url = isset($_POST[’url’]) ? $_POST[’url’] : "";
if (eregi("\r",$url) || eregi("\n",$url)){ die("No intrusion! ??
:(");}
$url = clean($url,’html’);
$parent_name = isset($_POST[’parent_name’]) ? $_POST[’parent_name’]
: "";
if (eregi("\r",$parent_name) || eregi("\n",$parent_name)){ die("No
intrusion! ?? :(");}
$parent_name = clean($parent_name);
$email = isset($_POST[’email’]) ? $_POST[’email’] : "";
if (eregi("\r",$email) || eregi("\n",$email)){ die("No intrusion!
?? :(");}
$email = clean($email,’html’);
if(($parent_id != "") and ($message != "")) $query = "Insert INTO
".$pixelpost_db_prefix."comments(id,parent_id,datetime,ip,message,name,url,email)
VALUES(’NULL’,’$parent_id’,’$datetime’,’$ip’,’$message’,’$name’,’$url’,’$email’)";
$result = mysql_query($query);
clean()函数并不是过滤用的,以上程序只是用了个3元判断是否有$_POST[$var],如果有就赋值,然
后就提交到数据库里了。
修补方法也很简单,可以用PHP自带的htmlspecialchars函数过滤掉HTML实体或者自己写过滤函数:
function dangerchr($var){
$var = str_replace("\t","",$msg);
$var = str_replace("〈","〈",$msg);
$var = str_replace("〉","〉",$msg);
$var = str_replace("\r","",$msg);
$var = str_replace("\n","〈br /〉",$msg);
$var = str_replace(" "," ",$msg);
}------来自PW的
3目录遍历漏洞:
这类漏洞一般会出现在一些比较简单的留言日记类程序或者邮件列表程序中。
Simplog是国外的一款基于PHP的日记程序。该程序中就出现了目录遍历漏洞
漏洞代码如下:
〈?
$act = $_GET[’act’];
if ($act == ’’)
{
include("blog.txt");
}
else
{
include("act/$act.txt");
}
?〉
〈?
$blog_id = $_GET[’blogid’];
if ($blog_id == ’’)
{
include("blog.txt");
}
else
{
include("./blog_entries/$blog_id.txt");
}
?〉
从上面的代码可以清晰的看出问题所在,第一段程序获得$_GET[]提交的数据并赋值给$act,这里没有对
act做任何的过滤,而在后面判断如果变量为空就把blog.txt包含进来,如果不为空就包含act目录下的
$act.txt文件,这样当我们不管提交什么文件类型都会被加上.txt后缀,再加上我们可以用../来跳转到别的
目录,就可以遍历整个服务器上的文件了。第2段程序也是同样的漏洞,只不过变量变成数字型了,我们
一样可以构造类似于index.php?act=blog&blogid=../config.php这样的URL来读取敏感文件内容。
修补方法很简单,对于数字形的只需用intval()函数来把ID强制整形化就可以了,对于字符形的可以
用类似的代码来过滤$act = str_replace("../","",$act),当然这样写是不全面的,如有需要可以自定
义一个过滤的函数,把危险字符都替换掉。
1鸡肋的注入
现在PHP程序能直接注入的情况已经很少了,即使你按默认安装PHP,MAGIC就是打开的,这样提交的单引
号就会被转义成\’,这样就无法闭合单引号,也就不存在后面的查询,现在有好多程序都存在这种情况
,举个例子:
if($_GET[’x’] == "") {
if($_GET[’showimage’] == "") {
$row = sql_array("select * from ".$pixelpost_db_prefix."pixelpost where
datetime〈=’$cdate’ order by datetime DESC limit 0,1");
} else {
$row = sql_array("select * from ".$pixelpost_db_prefix."pixelpost where
(id=’".$_GET[’showimage’]."’)");
}
这样写程序的现在很多见的,说他是个漏洞,可利用价值很低;说他不是漏洞,可理论上确实存在注入
,很有点鸡肋的感觉,其实只需这样写就天下太平了:
$row = sql_array("select * from ".$pixelpost_db_prefix."pixelpost where (intval
(id=’".$_GET[’showimage’]."’))");
2跨站的问题
出现跨站漏洞的代码多种多样,今天看到了一种就记录下来
$message = isset($_POST[’message’]) ? $_POST[’message’] : "";
if (eregi("\r",$message) || eregi("\n",$message)){ die("No
intrusion! ?? :(");}
$message = clean(nl2br($message),’html’);
$name = isset($_POST[’name’]) ? $_POST[’name’] : "";
if (eregi("\r",$name) || eregi("\n",$name)){ die("No intrusion! ??
:(");}
$name = clean($name,’html’);
$url = isset($_POST[’url’]) ? $_POST[’url’] : "";
if (eregi("\r",$url) || eregi("\n",$url)){ die("No intrusion! ??
:(");}
$url = clean($url,’html’);
$parent_name = isset($_POST[’parent_name’]) ? $_POST[’parent_name’]
: "";
if (eregi("\r",$parent_name) || eregi("\n",$parent_name)){ die("No
intrusion! ?? :(");}
$parent_name = clean($parent_name);
$email = isset($_POST[’email’]) ? $_POST[’email’] : "";
if (eregi("\r",$email) || eregi("\n",$email)){ die("No intrusion!
?? :(");}
$email = clean($email,’html’);
if(($parent_id != "") and ($message != "")) $query = "Insert INTO
".$pixelpost_db_prefix."comments(id,parent_id,datetime,ip,message,name,url,email)
VALUES(’NULL’,’$parent_id’,’$datetime’,’$ip’,’$message’,’$name’,’$url’,’$email’)";
$result = mysql_query($query);
clean()函数并不是过滤用的,以上程序只是用了个3元判断是否有$_POST[$var],如果有就赋值,然
后就提交到数据库里了。
修补方法也很简单,可以用PHP自带的htmlspecialchars函数过滤掉HTML实体或者自己写过滤函数:
function dangerchr($var){
$var = str_replace("\t","",$msg);
$var = str_replace("〈","〈",$msg);
$var = str_replace("〉","〉",$msg);
$var = str_replace("\r","",$msg);
$var = str_replace("\n","〈br /〉",$msg);
$var = str_replace(" "," ",$msg);
}------来自PW的
3目录遍历漏洞:
这类漏洞一般会出现在一些比较简单的留言日记类程序或者邮件列表程序中。
Simplog是国外的一款基于PHP的日记程序。该程序中就出现了目录遍历漏洞
漏洞代码如下:
〈?
$act = $_GET[’act’];
if ($act == ’’)
{
include("blog.txt");
}
else
{
include("act/$act.txt");
}
?〉
〈?
$blog_id = $_GET[’blogid’];
if ($blog_id == ’’)
{
include("blog.txt");
}
else
{
include("./blog_entries/$blog_id.txt");
}
?〉
从上面的代码可以清晰的看出问题所在,第一段程序获得$_GET[]提交的数据并赋值给$act,这里没有对
act做任何的过滤,而在后面判断如果变量为空就把blog.txt包含进来,如果不为空就包含act目录下的
$act.txt文件,这样当我们不管提交什么文件类型都会被加上.txt后缀,再加上我们可以用../来跳转到别的
目录,就可以遍历整个服务器上的文件了。第2段程序也是同样的漏洞,只不过变量变成数字型了,我们
一样可以构造类似于index.php?act=blog&blogid=../config.php这样的URL来读取敏感文件内容。
修补方法很简单,对于数字形的只需用intval()函数来把ID强制整形化就可以了,对于字符形的可以
用类似的代码来过滤$act = str_replace("../","",$act),当然这样写是不全面的,如有需要可以自定
义一个过滤的函数,把危险字符都替换掉。