作者:hacker 日期:2022-07-14 分类:网络黑客
ASP编程门槛很低,新手很容易上路。在一段不长的时间里,新手往往就已经能够编出看来比较完美的动态网站,在功能上,老手能做到的,新手也能够做到。那么新手与老手就没区别了吗?这里面区别可就大了,只不过外行人很难一眼就看出来罢了。在界面的友好性、运行性能以及网站的安全性方面是新手与老手之间区别的三个集中点。而在安全性方面,新手最容易忽略的问题就是SQL注入漏洞的问题。用NBSI
2.0对网上的一些ASP网站稍加扫描,就能发现许多ASP网站存在SQL注入漏洞,教育网里高校内部机构的一些网站这种漏洞就更普遍了,可能这是因为这些网站大都是一些学生做的缘故吧,虽然个个都很聪明,可是毕竟没有经验,而且处于学习中,难免漏洞多多了。本文主要讲讲SQL注入的防范措施,而要明白这些防范措施的用处,须先详细讲解利用SQL注入漏洞入侵的过程。新手们看明白啦。
相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。如这是一个正常的网址,将这个网址提交到服务器后,服务器将进行类似Select
* from 表名 where 字段="ID的查询(ID即客户端提交的参数,本例是即444),再将查询结果返回给客户端,如果这里客户端故意提交这么一个网址nbsi渗透工具:
and user0,这时,服务器运行Select * from 表名
where 字段=444 and user0这样的查询,当然,这个语句是运行不下去的,肯定出错,错误信息如下:
·错误类型:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][ODBC SQL Server Driver][SQL Server]将 nvarchar 值 'sonybb' 转换为数据类型为
int 的列时发生语法错误。
/lawjia/show.asp, 第 47 行
但是别有用心的人从这个出错信息中,可以获得以下信息:该站使用MS_SQL数据库,用ODBC连接,连接帐号名为:sonybb。所谓SQL注入(SQL
Injection),就是利用程序员对用户输入数据的合法性检测不严或不检测的特点,故意从客户端提交特殊的代码,从而收集程序及服务器的信息,从而获取想得到的资料。通常别有用心者的目标是获取网站管理员的帐号和密码。比如当某个人知道网站管理员帐号存在表login中,管理员帐号名为admin,nbsi渗透工具他想知道管理员密码,这里他从客户端接着提交这样一个网址:
and (Select password from login where
user_name='admin')0,返回的出错信息如下:
·错误类型:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][ODBC SQL Server Driver][SQL Server]将 varchar 值 'nbsi渗透工具!@#*&admin' 转换为数据类型为
int 的列时发生语法错误。
/lawjia/show.asp, 第 47 行
你知道吗?上面标红的部分就是管理员帐号admin的密码!虽然很复杂,让人看几遍也记不住的,但它就这样显示在你面前了,这时您就可以用这个帐号和密码接管人家的网站了!这时你可能还会说,如果他不是事先知道管理员帐号存在表login中,而且知道管理员帐号为admin,那他就不可能获得管理员密码。你错了,只要人家愿意多花时间尝试,他将可以获得数据库连接帐号权限内所能获得的所有信息!
当然这个过程是很烦琐的而且要花费很多的时间,如果只能以这种手动方式进行SQL注入入侵的话,那么许多存在SQL注入漏洞的ASP网站会安全很多了,不是漏洞不存在了,而是利用这个漏洞入侵的成本太高了。但是如果利用专门的黑客工具来入侵的话,那情况就大大不同了。手动方式进行SQL注入入侵至少需要半天或一天乃至很多天的时间,而利用专门的工具来入侵就只需要几分钟时间了(视网速快慢决定),再利用获得的管理帐号和密码,上传一个从网上下载的ASP后门程序,就轻易获得整个网站的管理权限了,甚至整个服务器的管理权限。最有名的一种SQL注入入侵工具是NBSI
2.0,现在已经出到2.0版本了,不过,人家正式名称不叫SQL注入入侵工具,而叫做网站安全漏洞检测工具。有了这个所谓的检测工具,使得入侵存在SQL注入漏洞的ASP网站成了小儿科的游戏,那些既不懂ASP又不懂SQL、年纪小小的男性青年常常得以在一天之内入侵十多个ASP网站,他们以此获得内心的极大满足。他们似乎也非常讲究职业道德,往往并不破坏网站数据和系统,常见的破坏方式大都仅仅是改换掉网站的主页,留下"善意的警告",如:你的网站存在SQL注入漏洞,请管理员做好防范措施!并声明"nbsi渗透工具我没有破坏数据和系统",有的还要借机发布一下他的倡导:"国内网站大家不要入侵,有本事入侵小日本的!",最后,签上他的鼎鼎大名是必不可少的程序。
不知那些没注意过SQL注入漏洞的ASP程序员们看了上面的例子,要作何感想呢?如果您的网站就这样被人不费吹灰之力入侵了,您是不是要吐几升血了呢?也许您已经为系统安全费尽心思了,装补丁、安防火墙、装杀毒软件、巧妙配置IIS及数据库用户权限,但您就是没有注意到SQL注入漏洞,于是"千里之堤,溃于蚁穴"。防火墙与杀毒软件对SQL注入是没办法防范的,因为SQL注入入侵跟普通的WEB页面访问没什么区别,所以往往是防不甚防。而且一个服务器上放置的网站往往是有很多个的,服务器管理员不可能挨个网站挨个页面的审查其是否存在SQL注入漏洞。那么应该如何防范SQL注入入侵呢?作为服务器管理员或网站程序员应该分别怎么做呢?服务器管理员要做的事主要是配置IIS和数据库用户权限,而网站程序员主要是要在程序代码编写上防范SQL注入入侵。下面详细叙述:
对于服务器管理员,既然你不可能挨个检查每个网站是否存在SQL注入漏洞,那么就来个一个绝招。这个绝招能有效防止SQL注入入侵而且"省心又省力,效果真好!"SQL注入入侵是根据IIS给出的ASP错误提示信息来入侵的,如果你把IIS设置成不管出什么样的ASP错误,只给出一种错误提示信息,即http
500错误,那么人家就没办法入侵了。具体设置请参看图2。主要把500:100这个错误的默认提示页面
C:\WINDOWS\Help\iisHelp\common\500-100.asp改成
C:\WINDOWS\Help\iisHelp\common\500.htm即可,这时,无论ASP运行中出什么错,服务器都只提示HTTP 500错误。
但是这样设置一个不好的地方是程序员编写的代码出错时,服务器不给出详细的错误提示信息,会给程序员带来很大的不便。不过,服务器毕竟不是测试代码的地方,应坚持安全稳定第一,这样设置也是无可厚非的,事实上许多服务器的出错信息都是如此设置。
服务器管理员还应在IIS中为每个网站设置好执行权限,可千万别给人家静态网站以"脚本和可执行"权限。一般情况下给个"纯脚本"权限就够了,对于那些通过网站后台管理中心上传的文件存放的目录,就更吝啬一点吧,执行权限设为"无"好了,这样做是为了防止人家上传ASP木马,执行权限设为"无",人家上传ASP木马也运行不了。一般情况下,SQL注入漏洞仅是涉及一个网站安全的事,如果人家通过这个漏洞上传了ASP木马并运行起来,那整个服务器都失陷了。所以有远见的、有责任心的服务器管理员应该十分吝啬的配置IIS的执行权限。
同样的吝啬态度应适用于数据库用户的权限配置上,当然这里数据库是指MS_SQL啦,ACCESS都没有用户权限配置这一步骤。如果PUBLIC权限足够使用的绝不给再高的权限,可千万别把SA级别的权限随随便便地给人家啊。那个所谓的网站安全漏洞检测工具NBSI
2.0可有跨库进行SQL注入的功能啊,如果你把SA权限给了存在SQL注入漏洞的库,那其它库就不保啦!城门失火,殃及池鱼呀。而人家还可以通过调用xp_cmdshell命令得到系统的最高权限。具体步骤还是请参看上面提到的那篇《SQL注入漏洞全接触》这篇文章吧。
接下来要讲讲程序员的防范措施了。程序主要要做两件事,最重要的一件事,当然是对客户端提交的变量参数进行仔细地检测啦。对客户端提交的变量进行检查以防止SQL注入,有各种方法,到上搜索一下,你能获得许多有益信息。这里介绍一种现成的方法,别人已经写好了检测代码,拿来用一下,不用自己辛苦啦。那就是"枫叶SQL通用防注入V1.0
ASP版",这是一段对用户通过网址提交过来的变量参数进行检查的代码,发现客户端提交的参数中有"exec、insert、select、delete、from、update、count、user、xp_cmdshell、add、net、Asc"等用于SQL注入的常用字符时,立即停止执行ASP并给出警告信息或转向出错页面。大家可以到网上搜索一下,下载这段代码,存为一个ASP页面,如checkSQL.asp,把这个页面include到每个需要带参数查询SQL数据库ASP页面中,记住,只要加一行这样的!--#include
file="checkSQL.asp"--代码就行了。
程序员要做的第二件事是给用户密码加密啦。比如用MD5加密。MD5是没有反向算法,不能解密的。人家即使知道经加密后存在数据库里的像乱码一样的密码,他也没办法知道原始密码了。不过,人家可以用UPDATE方法用他的密码代替你的密码,但这个操作还是有点麻烦,人家可能会怕麻烦而放弃。而那个所谓的网站安全漏洞检测工具NBSI
2.0是没有提供UPDATE操作功能的,所以用MD5加密后,人家仅用NBSI
2.0而不辅以手动操作的话,就不可能获得网站管理员帐号的密码,这将挡住许多菜鸟级的攻击者,至少那些既不懂ASP又不懂SQL、年纪小小的男性青年是没有办法啦!
文章写到这,已经够长了,本来还想对那些所谓的网站安全漏洞检测工具如NBSI之流的黑客工具进行一番理性的探讨的,看来还是放弃好了。为了增强网站安全,了解攻击手段是必须的,但是,利用漏洞开发专门的黑客工具,使那些其实并不具备必要的网络技术和网络安全知识的人(就是文中提到的"既不懂ASP又不懂SQL、年纪小小的男性青年")轻而易举地侵入一家网站,这除了为许多网络管理员制造麻烦外,是否还具有加强网络安全意识提高网络安全水平的功效呢?
一、做好基础性的防护工作,服务器安装干净的操作系统,不需要的服务一律不装,多一项就多一种被入侵的可能性,打齐所有补丁,微软的操作系统当然推荐 WIN2K3,性能和安全性比WIN2K都有所增强,选择一款优秀的杀毒软件,至少能对付大多数木马和病毒的,安装好杀毒软件,设置好时间段自动上网升级,设置好帐号和权限,设置的用户尽可能的少,对用户的权限尽可能的小,密码设置要足够强壮。对于 MSSQL,也要设置分配好权限,按照最小原则分配。最好禁用xp_cmdshell。有的网络有硬件防火墙,当然好,但仅仅依靠硬件防火墙,并不能阻挡 hacker的攻击,利用反向连接型的木马和其他的办法还是可以突破硬件防火墙的阻挡。WIN2K3系统自带的防火墙功能还不够强大,建议打开,但还需要安装一款优秀的软件防火墙保护系统,我一般习惯用ZA,论坛有很多教程了。对于对互联网提供服务的服务器,软件防火墙的安全级别设置为最高,然后仅仅开放提供服务的端口,其他一律关闭,对于服务器上所有要访问网络的程序,现在防火墙都会给予提示是否允许访问,根据情况对于系统升级,杀毒软件自动升级等有必要访问外网的程序加到防火墙允许访问列表。那么那些反向连接型的木马就会被防火墙阻止,这样至少系统多了一些安全性的保障,给hacker入侵就多一些阻碍。网络上有很多基础型的防护资料,大家可以查查相关服务器安全配置方面的资料。
二、修补所有已知的漏洞,未知的就没法修补了,所以要养成良好的习惯,就是要经常去关注。了解自己的系统,知彼知己,百战百胜。所有补丁是否打齐,比如 mssql,server-U,论坛程序是否还有漏洞,每一个漏洞几乎都是致命的,系统开了哪些服务,开了哪些端口,目前开的这些服务中有没有漏洞可以被黑客应用,经常性的了解当前黑客攻击的手法和可以被利用的漏洞,检查自己的系统中是否存在这些漏洞。比如SQL注入漏洞,很多网站都是因为这个服务器被入侵,如果我们作为网站或者服务器的管理者,我们就应该经常去关注这些技术,自己经常可以用一些安全性扫描工具检测检测,比如X- scan,snamp, nbsi,PHP注入检测工具等,或者是用当前比较流行的hacker入侵工具检测自己的系统是否存在漏洞,这得针对自己的系统开的服务去检测,发现漏洞及时修补。网络管理人员不可能对每一方面都很精通,可以请精通的人员帮助检测,当然对于公司来说,如果系统非常重要,应该请专业的安全机构来检测,毕竟他们比较专业。
三、服务器的远程管理,相信很多人都喜欢用server自带的远程终端,我也喜欢,简洁速度快。但对于外网开放的服务器来说,就要谨慎了,要想到自己能用,那么这个端口就对外开放了,黑客也可以用,所以也要做一些防护了。一就是用证书策略来限制访问者,给 TS配置安全证书,客户端访问需要安全证书。二就是限制能够访问服务器终端服务的IP地址。三是可以在前两者的基础上再把默认的3389端口改一下。当然也可以用其他的远程管理软件,pcanywhere也不错。
四、另外一个容易忽视的环节是网络容易被薄弱的环节所攻破,服务器配置安全了,但网络存在其他不安全的机器,还是容易被攻破,“千里之堤,溃于蚁穴 ”。利用被控制的网络中的一台机器做跳板,可以对整个网络进行渗透攻击,所以安全的配置网络中的机器也很必要。说到跳板攻击,水平稍高一点的hacker 攻击一般都会隐藏其真实IP,所以说如果被入侵了,再去追查的话是很难成功的。Hacker利用控制的肉鸡,肉鸡一般都是有漏洞被完全控制的计算机,安装了一些代理程序或者黑客软件,比如DDOS攻击软件,跳板程序等,这些肉鸡就成为黑客的跳板,从而隐藏了真实IP。
五、最后想说的是即使大家经过层层防护,系统也未必就绝对安全了,但已经可以抵挡一般的hacker的攻击了。连老大微软都不能说他的系统绝对安全。系统即使只开放80端口,如果服务方面存在漏洞的话,水平高的hacker还是可以钻进去,所以最关键的一点我认为还是关注最新漏洞,发现就要及时修补。“攻就是防,防就是攻” ,这个观点我比较赞同,我说的意思并不是要去攻击别人的网站,而是要了解别人的攻击手法,更好的做好防护。比如不知道什么叫克隆管理员账号,也许你的机器已经被入侵并被克隆了账号,可能你还不知道呢?如果知道有这种手法,也许就会更注意这方面。自己的网站如果真的做得无漏洞可钻,hacker也就无可奈何了。
第一、物理安全
除了要保证要有电脑锁之外,我们更多的要注意防火,要将电线和网络放在比较隐蔽的地方。我们还要准备UPS,以确保网络能够以持续的电压运行,在电子学中,峰值电压是一个非常重要的概念,峰值电压高的时候可以烧坏电器,迫使网络瘫痪,峰值电压最小的时候,网络根本不能运行。使用UPS可以排除这些意外。另外我们要做好防老鼠咬坏网线。
第二、系统安全(口令安全)
我们要尽量使用大小写字母和数字以及特殊符号混合的密码,但是自己要记住,我也见过很多这样的网管,他的密码设置的的确是复杂也安全,但是经常自己都记不来,每次都要翻看笔记本。另外我们最好不要使用空口令或者是带有空格的,这样很容易被一些黑客识破。
我们也可以在屏保、重要的应用程序上添加密码,以确保双重安全。
第三、打补丁
我们要及时的对系统补丁进行更新,大多数病毒和黑客都是通过系统漏洞进来的,例如今年五一风靡全球臭名昭著的振荡波就是利用了微软的漏洞ms04-011进来的。还有一直杀不掉的SQLSERVER上的病毒slammer也是通过SQL的漏洞进来的。所以我们要及时对系统和应用程序打上最新的补丁,例如IE、OUTLOOK、SQL、OFFICE等应用程序。
另外我们要把那些不需要的服务关闭,例如TELNET,还有关闭Guset帐号等。
第四、安装防病毒软件
病毒扫描就是对机器中的所有文件和邮件内容以及带有.exe的可执行文件进行扫描,扫描的结果包括清除病毒,删除被感染文件,或将被感染文件和病毒放在一台隔离文件夹里面。所以我们要对全网的机器从网站服务器到邮件服务器到文件服务器知道客户机都要安装杀毒软件,并保持最新的病毒定义码。我们知道病毒一旦进入电脑,他会疯狂的自我复制,遍布全网,造成的危害巨大,甚至可以使得系统崩溃,丢失所有的重要资料。所以我们要至少每周一次对全网的电脑进行集中杀毒,并定期的清除隔离病毒的文件夹。
现在有很多防火墙等网关产品都带有反病毒功能,例如netscreen总裁谢青旗下的美国飞塔Fortigate防火墙就是,她具有防病毒的功能。
第五、应用程序
我们都知道病毒有超过一半都是通过电子邮件进来的,所以除了在邮件服务器上安装防病毒软件之外,还要对PC机上的outlook防护,我们要提高警惕性,当收到那些无标题的邮件,或是你不认识的人发过来的,或是全是英语例如什么happy99,money,然后又带有一个附件的邮件,建议您最好直接删除,不要去点击附件,因为百分之九十以上是病毒。我前段时间就在一个政府部门碰到这样的情况,他们单位有三个人一直收到邮件,一个小时竟然奇迹般的收到了2000多封邮件,致使最后邮箱爆破,起初他们怀疑是黑客进入了他们的网络,最后当问到这几个人他们都说收到了一封邮件,一个附件,当去打开附件的时候,便不断的收到邮件了,直至最后邮箱撑破。最后查出还是病毒惹的祸。
除了不去查看这些邮件之外,我们还要利用一下outlook中带有的黑名单功能和邮件过虑的功能。
很多黑客都是通过你访问网页的时候进来的,你是否经常碰到这种情况,当你打开一个网页的时候,会不断的跳出非常多窗口,你关都关不掉,这就是黑客已经进入了你的电脑,并试图控制你的电脑。
所以我们要将IE的安全性调高一点,经常删除一些cookies和脱机文件,还有就是禁用那些Active X的控件。
第六、代理服务器
代理服务器最先被利用的目的是可以加速访问我们经常看的网站,因为代理服务器都有缓冲的功能,在这里可以保留一些网站与IP地址的对应关系。
要想了解代理服务器,首先要了解它的工作原理:
环境:局域网里面有一台机器装有双网卡,充当代理服务器,其余电脑通过它来访问网络。
1、内网一台机器要访问新浪,于是将请求发送给代理服务器。
2、代理服务器对发来的请求进行检查,包括题头和内容,然后去掉不必要的或违反约定的内容。
3、代理服务器重新整合数据包,然后将请求发送给下一级网关。
4、新浪网回复请求,找到对应的IP地址。
5、代理服务器依然检查题头和内容是否合法,去掉不适当的内容。
6、重新整合请求,然后将结果发送给内网的那台机器。
由此可以看出,代理服务器的优点是可以隐藏内网的机器,这样可以防止黑客的直接攻击,另外可以节省公网IP。缺点就是每次都要经由服务器,这样访问速度会变慢。另外当代理服务器被攻击或者是损坏的时候,其余电脑将不能访问网络。
第七、防火墙
提到防火墙,顾名思义,就是防火的一道墙。防火墙的最根本工作原理就是数据包过滤。实际上在数据包过滤的提出之前,都已经出现了防火墙。
数据包过滤,就是通过查看题头的数据包是否含有非法的数据,我们将此屏蔽。
举个简单的例子,假如体育中心有一场刘德华演唱会,检票员坐镇门口,他首先检查你的票是否对应,是否今天的,然后撕下右边的一条,将剩余的给你,然后告诉你演唱会现场在哪里,告诉你怎么走。这个基本上就是数据包过滤的工作流程吧。
你也许经常听到你们老板说:要增加一台机器它可以禁止我们不想要的网站,可以禁止一些邮件它经常给我们发送垃圾邮件和病毒等,但是没有一个老板会说:要增加一台机器它可以禁止我们不愿意访问的数据包。实际意思就是这样。接下来我们推荐几个常用的数据包过滤工具。
零、前言
渗透测试在未得到被测试方授权之前依据某些地区法律规定是违法行为。 这里我们提供的所有渗透测试方法均为(假设为)合法的评估服务,也就是通常所说的道德黑客行为(Ethical hacking),因此我们这里的所有读者应当都是Ethical Hackers,如果您还不是,那么我希望您到过这里后会成为他们中的一员 ;)
这里,我还想对大家说一些话:渗透测试重在实践,您需要一颗永不言败的心和一个有着活跃思维的大脑。不是说您将这一份文档COPY到您网站上或者保存到本地电脑您就会了,即使您将它打印出来沾点辣椒酱吃了也不行,您一定要根据文档一步一步练习才行。而且测试重在用脑,千万别拿上一两个本文中提到的工具一阵乱搞,我敢保证:互联网的安全不为因为这样而更安全。祝您好运。。。
一、简介
什么叫渗透测试?
渗透测试最简单直接的解释就是:完全站在攻击者角度对目标系统进行的安全性测试过程。
进行渗透测试的目的?
了解当前系统的安全性、了解攻击者可能利用的途径。它能够让管理人员非常直观的了解当前系统所面临的问题。为什么说叫直观呢?就像Mitnick书里面提到的那样,安全管理(在这里我们改一下,改成安全评估工作)需要做到面面俱到才算成功,而一位黑客(渗透测试)只要能通过一点进入系统进行破坏,他就算是很成功的了。
渗透测试是否等同于风险评估?
不是,你可以暂时理解成渗透测试属于风险评估的一部分。事实上,风险评估远比渗透测试复杂的多,它除渗透测试外还要加上资产识别,风险分析,除此之外,也还包括了人工审查以及后期的优化部分(可选)。
已经进行了安全审查,还需要渗透测试吗?
如果我对您说:嘿,中国的现有太空理论技术通过计算机演算已经能够证明中国完全有能力实现宇航员太空漫步了,没必要再发射神8了。您能接受吗?
渗透测试是否就是黑盒测试?
否,很多技术人员对这个问题都存在这个错误的理解。渗透测试不只是要模拟外部黑客的入侵,同时,防止内部人员的有意识(无意识)攻击也是很有必要的。这时,安全测试人员可以被告之包括代码片段来内的有关于系统的一些信息。这时,它就满足灰盒甚至白盒测试。
渗透测试涉及哪些内容?
技术层面主要包括网络设备,主机,数据库,应用系统。另外可以考虑加入社会工程学(入侵的艺术/THE ART OF INTRUSION)。
渗透测试有哪些不足之处?
主要是投入高,风险高。而且必须是专业的Ethical Hackers才能相信输出的最终结果。
你说的那么好,为什么渗透测试工作在中国开展的不是很火热呢?
我只能说:会的,一定会的。渗透测试的关键在于没法证明你的测试结果就是完善的。用户不知道花了钱证明了系统有问题以后,自己的安全等级到了一个什么程序。但是很显然,用户是相信一个专业且经验丰富的安全团队的,这个在中国问题比较严重。在我接触了一些大型的安全公司进行的一些渗透测试过程来看,测试人员的水平是对不住开的那些价格的,而且从测试过程到结果报表上来看也是不负责的。我估计在三年以后,这种情况会有所改观,到时一方面安全人员的技术力量有很大程度的改观,另一方面各企业对渗透测试会有一个比较深刻的理解,也会将其做为一种IT审计的方式加入到开发流程中去。渗透测试的专业化、商业化会越来越成熟。
二、制定实施方案
实施方案应当由测试方与客户之间进行沟通协商。一开始测试方提供一份简单的问卷调查了解客户对测试的基本接收情况。内容包括但不限于如下:
目标系统介绍、重点保护对象及特性。
是否允许数据破坏?
是否允许阻断业务正常运行?
测试之前是否应当知会相关部门接口人?
接入方式?外网和内网?
测试是发现问题就算成功,还是尽可能的发现多的问题?
渗透过程是否需要考虑社会工程?
。。。
在得到客户反馈后,由测试方书写实施方案初稿并提交给客户,由客户进行审核。在审核完成后,客户应当对测试方进行书面委托授权。这里,两部分文档分别应当包含如下内容:
实施方案部分:
...
书面委托授权部分:
...
三、具体操作过程
1、信息收集过程
网络信息收集:
在这一部还不会直接对被测目标进行扫描,应当先从网络上搜索一些相关信息,包括Google Hacking, Whois查询, DNS等信息(如果考虑进行社会工程学的话,这里还可以相应从邮件列表/新闻组中获取目标系统中一些边缘信息如内部员工帐号组成,身份识别方式,邮件联系地址等)。
1.使用whois查询目标域名的DNS服务器
2.nslookup
set type=all
domain
server ns server
set q=all
ls -d domain
涉及的工具包括:Google,Demon,webhosting.info,Apollo,Athena,GHDB.XML,netcraft,seologs 除此之外,我想特别提醒一下使用Googlebot/2.1绕过一些文件的获取限制。
Google hacking 中常用的一些语法描述
1.搜索指定站点关键字site。你可以搜索具体的站点如site:。使用site:nosec.org可以搜索该域名下的所有子域名的页面。甚至可以使用site:org.cn来搜索中国政府部门的网站。
2.搜索在URL网址中的关键字inurl。比如你想搜索带参数的站点,你可以尝试用inurl:asp?id=
3.搜索在网页标题中的关键字intitle。如果你想搜索一些登陆后台,你可以尝试使用intitle:"admin login"
目标系统信息收集:
通过上面一步,我们应当可以简单的描绘出目标系统的网络结构,如公司网络所在区域,子公司IP地址分布,VPN接入地址等。这里特别要注意一些比较偏门的HOST名称地址,如一些backup开头或者temp开关的域名很可能就是一台备份服务器,其安全性很可能做的不够。
从获取的地址列表中进行系统判断,了解其组织架构及操作系统使用情况。最常用的方法的是目标所有IP网段扫描。
端口/服务信息收集:
这一部分已经可以开始直接的扫描操作,涉及的工具包括:nmap,thc-amap
1.我最常使用的参数
nmap -sS -p1-10000 -n -P0 -oX filename.xml --open -T5 ip address
应用信息收集:httprint,SIPSCAN,smap
这里有必要将SNMP拿出来单独说一下,因为目前许多运营商、大型企业内部网络的维护台通过SNMP进行数据传输,大部分情况是使用了默认口令的,撑死改了private口令。这样,攻击者可以通过它收集到很多有效信息。snmp-gui,HiliSoft MIB Browser,mibsearch,net-snmp都是一些很好的资源。
2、漏洞扫描
这一步主要针对具体系统目标进行。如通过第一步的信息收集,已经得到了目标系统的IP地址分布及对应的域名,并且我们已经通过一些分析过滤出少许的几个攻击目标,这时,我们就可以针对它们进行有针对性的漏洞扫描。这里有几个方面可以进行:
针对系统层面的工具有:ISS, Nessus, SSS, Retina, 天镜, 极光
针对WEB应用层面的工具有:AppScan, Acunetix Web Vulnerability Scanner, WebInspect, Nstalker
针对数据库的工具有:ShadowDatabaseScanner, NGSSQuirreL
针对VOIP方面的工具有:PROTOS c07 sip(在测试中直接用这个工具轰等于找死)以及c07 h225, Sivus, sipsak等。
事实上,每个渗透测试团队或多或少都会有自己的测试工具包,在漏洞扫描这一块针对具体应用的工具也比较个性化。
3、漏洞利用
有时候,通过服务/应用扫描后,我们可以跳过漏洞扫描部分,直接到漏洞利用。因为很多情况下我们根据目标服务/应用的版本就可以到一些安全网站上获取针对该目标系统的漏洞利用代码,如milw0rm, securityfocus,packetstormsecurity等网站,上面都对应有搜索模块。实在没有,我们也可以尝试在GOOGLE上搜索“应用名称 exploit”、“应用名称 vulnerability”等关键字。
当然,大部分情况下你都可以不这么麻烦,网络中有一些工具可供我们使用,最著名的当属metasploit了,它是一个开源免费的漏洞利用攻击平台。其他的多说无益,您就看它从榜上无名到冲进前五(top 100)这一点来说,也能大概了解到它的威力了。除此之外,如果您(您们公司)有足够的moeny用于购买商用软件的话,CORE IMPACT是相当值得考虑的,虽然说价格很高,但是它却是被业界公认在渗透测试方面的泰山北斗,基本上测试全自动。如果您觉得还是接受不了,那么您可以去购买CANVAS,据说有不少0DAY,不过它跟metasploit一样,是需要手动进行测试的。最后还有一个需要提及一下的Exploitation_Framework,它相当于一个漏洞利用代码管理工具,方便进行不同语言,不同平台的利用代码收集,把它也放在这里是因为它本身也维护了一个exploit库,大家参考着也能使用。
上面提到的是针对系统进行的,在针对WEB方面,注入工具有NBSI, OWASP SQLiX, SQL Power Injector, sqlDumper, sqlninja, sqlmap, Sqlbftools, priamos, ISR-sqlget***等等。
在针对数据库方面的工具有:
数据库 工具列表 Oracle(1521端口): 目前主要存在以下方面的安全问题:
1、TNS监听程序攻击(sid信息泄露,停止服务等)
2、默认账号(default password list)
3、SQL INJECTION(这个与传统的意思还不太一样)
4、缓冲区溢出,现在比较少了。 thc-orakel, tnscmd, oscanner, Getsids, TNSLSNR, lsnrcheck, OAT, Checkpwd, orabf MS Sql Server(1433、1434端口) Mysql(3306端口) DB2(523、50000、50001、50002、50003端口) db2utils Informix(1526、1528端口)
在针对Web服务器方面的工具有:
WEB服务器 工具列表 IIS IISPUTSCANNER Tomcat 想起/admin和/manager管理目录了吗?另外,目录列表也是Tomcat服务器中最常见的问题。比如5.*版本中的;index.jsp
"../manager/html
;cookievalue=%5C%22FOO%3B+Expires%3DThu%2C+1+Jan+2009+00%3A00%3A01+UTC%3B+Path%3D%2F%3B
;cookievalue=%5C%22A%3D%27%3B+Expires%3DThu%2C+1+Jan+2009+00%3A00%3A01+UTC%3B+Path%3D%2Fservlets-examples%2Fservlet+%3B JBOSS jboss的漏洞很少,老版本中8083端口有%符号的漏洞:
GET %. HTTP/1.0可以获取物理路径信息,
GET %server.policy HTTP/1.0可以获取安全策略配置文档。
你也可以直接访问GET %org/xxx/lib.class来获取编译好的java程序,再使用一些反编译工具还原源代码。 Apache Resin
;servletpath=file=WEB-INF/web.xml
;servletpath=file=WEB-INF/classes/com/webapp/app/target.class
[path]/[device].[extension]
.."web-inf
[path]/%20.xtp WebLogic
Web安全测试主要围绕几块进行:
Information Gathering:也就是一般的信息泄漏,包括异常情况下的路径泄漏、文件归档查找等
Business logic testing:业务逻辑处理攻击,很多情况下用于进行业务绕过或者欺骗等等
Authentication Testing:有无验证码、有无次数限制等,总之就是看能不能暴力破解或者说容不容易通过认证,比较直接的就是“默认口令”或者弱口令了
Session Management Testing:会话管理攻击在COOKIE携带认证信息时最有效
Data Validation Testing:数据验证最好理解了,就是SQL Injection和Cross Site Script等等
目前网上能够找到许多能够用于进行Web测试的工具,根据不同的功能分主要有:
枚举(Enumeration): DirBuster, http-dir-enum, wget
基于代理测试类工具:paros, webscarab, Burp Suite
针对WebService测试的部分有一些尚不是很成熟的工具,如:wsbang,wschess,wsmap,wsdigger,wsfuzzer
这一部分值得一提的是,很多渗透测试团队都有着自己的测试工具甚至是0DAY代码,最常见的是SQL注入工具,现网开发的注入工具(如NBSI等)目前都是针对中小企业或者是个人站点/数据库进行的,针对大型目标系统使用的一些相对比较偏门的数据库系统(如INFORMIX,DB2)等,基本上还不涉及或者说还不够深入。这时各渗透测试团队就开发了满足自身使用习惯的测试工具。
在针对无线环境的攻击有:WifiZoo
4、权限提升
在前面的一些工作中,你或许已经得到了一些控制权限,但是对于进一步攻击来说却还是不够。例如:你可能很容易的能够获取Oracle数据库的访问权限,或者是得到了UNIX(AIX,HP-UX,SUNOS)的一个基本账号权限,但是当你想进行进一步的渗透测试的时候问题就来了。你发现你没有足够的权限打开一些密码存储文件、你没有办法安装一个SNIFFER、你甚至没有权限执行一些很基本的命令。这时候你自然而然的就会想到权限提升这个途径了。
目前一些企业对于补丁管理是存在很大一部分问题的,他们可能压根就没有想过对一些服务器或者应用进行补丁更新,或者是延时更新。这时候就是渗透测试人员的好机会了。经验之谈:有一般权限的Oracle账号或者AIX账号基本上等于root,因为这就是现实生活。
5、密码破解
有时候,目标系统任何方面的配置都是无懈可击的,但是并不是说就完全没办法进入。最简单的说,一个缺少密码完全策略的论证系统就等于你安装了一个不能关闭的防盗门。很多情况下,一些安全技术研究人员对此不屑一顾,但是无数次的安全事故结果证明,往往破坏力最大的攻击起源于最小的弱点,例如弱口令、目录列表、SQL注入绕过论证等等。所以说,对于一些专门的安全技术研究人员来说,这一块意义不大,但是对于一个ethical hacker来说,这一步骤是有必要而且绝大部分情况下是必须的。;)
目前比较好的网络密码暴力破解工具有:thc-hydra,brutus
hydra.exe -L users.txt -P passwords.txt -o test.txt -s 2121 ftp
目前网络中有一种资源被利用的很广泛,那就是rainbow table技术,说白了也就是一个HASH对应表,有一些网站提供了该种服务,对外宣称存储空间大于多少G,像rainbowcrack更是对外宣称其数据量已经大于1.3T。
针对此种方式对外提供在线服务的有:
网址 描述 rainbowcrack 里面对应了多种加密算法的HASH。 数据量全球第一,如果本站无法破解,那么你只能去拜春哥...
当然,有些单机破解软件还是必不可少的:Ophcrack,rainbowcrack(国人开发,赞一个),cain,L0phtCrack(破解Windows密码),John the Ripper(破解UNIX/LINUX)密码,当然,还少不了一个FindPass...
针对网络设备的一些默认帐号,你可以查询和
在渗透测试过程中,一旦有机会接触一些OFFICE文档,且被加了密的话,那么,rixler是您马上要去的地方,他们提供的OFFICE密码套件能在瞬间打开OFFICE文档(2007中我没有试过,大家有机会测试的话请给我发一份测试结果说明,谢谢)。看来微软有理由来个补丁什么的了。对于企业来说,您可以考虑使用铁卷或者RMS了。
6、日志清除
It is not necessary actually.
7、进一步渗透
攻入了DMZ区一般情况下我们也不会获取多少用价值的信息。为了进一步巩固战果,我们需要进行进一步的内网渗透。到这一步就真的算是无所不用其及。最常用且最有效的方式就是Sniff抓包(可以加上ARP欺骗)。当然,最简单的你可以翻翻已入侵机器上的一些文件,很可能就包含了你需要的一些连接帐号。比如说你入侵了一台Web服务器,那么绝大部分情况下你可以在页面的代码或者某个配置文件中找到连接数据库的帐号。你也可以打开一些日志文件看一看。
除此之外,你可以直接回到第二步漏洞扫描来进行。
四、生成报告
报告中应当包含:
薄弱点列表清单(按照严重等级排序)
薄弱点详细描述(利用方法)
解决方法建议
参与人员/测试时间/内网/外网
五、测试过程中的风险及规避
在测试过程中无可避免的可能会发生很多可预见和不可预见的风险,测试方必须提供规避措施以免对系统造成重大的影响。以下一些可供参考:
1. 不执行任何可能引起业务中断的攻击(包括资源耗竭型DoS,畸形报文攻击,数据破坏)。
2. 测试验证时间放在业务量最小的时间进行。
3. 测试执行前确保相关数据进行备份。
4. 所有测试在执行前和维护人员进行沟通确认。
5. 在测试过程中出现异常情况时立即停止测试并及时恢复系统。
6. 对原始业务系统进行一个完全的镜像环境,在镜像环境上进行渗透测试。
穿山甲还行吧
罗马利亚nbsi渗透工具的黑客用这个搞nbsi渗透工具了赛门铁克nbsi渗透工具的官网 .. 雷人
很多注入漏洞 都不是啊D 明小子 NBSI之类的能检测出来的 需要自己去测试和构造 这些工具只是在你找到nbsi渗透工具了注入点之后来代替手工猜表 字段 或者备份,列目录之类的 而不是用来寻找注入点的 关键是寻找和构造注入点 工具 不是关键
新建一个文本文件,更改扩展名为aabb.udl双击此文件,选数据库类型、设置ip、用户名、密码,数据库可进行连接测试 ,当然对方要开sql服务的测试成功后,点确定将这个文件以文本方式打开, 里面有连接字符串,装sql 查询分析器。
已有2位网友发表了看法:
访客 评论于 [2022-07-15 01:36:24] 回复
器,其安全性很可能做的不够。从获取的地址列表中进行系统判断,了解其组织架构及操作系统使用情况。最常用的方法的是目标所有IP网段扫描。端口/服务信息收集:这一部分已经可以开始直接的扫描操作,涉及的工具包括:n
访客 评论于 [2022-07-14 21:42:02] 回复
挡住许多菜鸟级的攻击者,至少那些既不懂ASP又不懂SQL、年纪小小的男性青年是没有办法啦! 文章写到这,已经够长了,本来还想对那些所谓的网站安全漏洞检测工具如NBSI之流的黑客工具进行一番理性的探讨的,看来还是放弃