MySQL(安装程序这里找http://dev.mysql.com/downloads/mysql/3.23.html)
Apache2(http://httpd.apache.org/)这里找!
PHP4或PHP5在(http://www.php.net/downloads.php)这里找! 这里要的是PHP5的所有文件包,不是安装包。下载后直接解压到E: erver\php目录把Mysql和apache安装在E: erver\(方便移植,即使系统重新安装也不影响在新系统下的服务)这样Apache+PHP+Mysql都安装在了同一目录下。先可以检查一下Apache是否按好,修改Apache文件夹下的htdoc目录下的index.html.en为index.html,如果http://localhost/index.html可以访问的话,说明Apache安装好了
开始配置apache和php
(1) 把E: erver\apache2\php\下的php.ini-recommended拷贝成php.ini 放到E: erver\apache\bin\下,
(2)copy E: erver\apache2\php*\php5ts.dll到E: erver\apache2\bin\, *如果是php4的话,就是php4ts.dll。
(3)copy E: erver\apache2\php*\php5apache2.dll到E: erver\apache2\bin\和E: erver\moudle *如果是php4的话,就是php4apache2.dll。 *如果是apache1.3.*就copy php*apache.dll
(4)如果是php5的话,默认是不支持mysql的,所以还要比php4多做一步。 copy E: erver\apache2\php5\libmysql.dll 到 E: erver\apache2\bin\ *php4就省了 OK,文件也copy好了,然后我们来配置这些配置文件吧。
Apache的配置很容易的: OPEN E: erver\apache2\conf\httpd.conf 在文件末尾加上:
(1)LoadModule php5_module modules/php5apache2.dll
(2)AddType application/x-httpd-php .php
(3)ScriptAlias /php/ "e:/server/php/"OPEN E: erver\apache2\bin\php.ini 为了兼容性更好,所以对php.ini尽量做最少的改动.如果不太好找,用查找功能吧。如果是php5.0.0的话,不会显示错误信息。改成On会好一点。
1处 display_errors = Off;>>>display_errors = On ;
2处extension_dir = "./">>>extension_dir = "E: erver\Apache2\php5\ext\"
3处 upload_tmp_dir = "/tmp" >>>|upload_tmp_dir = "E: erver\Apache2\tmp" ;tmp这个目录自己在相应的位置上建一个就可以了。配置session时也用。
4处extension=php_mysql.dll >>>|extension=php_mysql.dll ;只是把前边的;去掉了,你要加载什么模块就把;去掉就可以了。
5处session.save_path="/tmp">>>session.save_path = E: erver\Apache2\tmp ;
6处 session.use_trans_sid = 0 >>>session.use_trans_sid = 1 ;做什么用? 就是在客户不支持cookie的时候,session_id可以附在QUERY_STRING后边,如:abcd.php?a=c&b=d&PHPSESSID=saadafsf24235346asdfsda OK,全配置完了。
1.扫描
这是入侵者在刚开始要做的第一步.比如搜索有漏洞的服务.
对应措施:端口限制
以下所有规则.都需要选择镜像,否则会导致无法连接
我们需要作的就是打开服务所需要的端口.而将其他的端口一律屏蔽
2.下载信息
这里主要是通过URL SCAN.来过滤一些非法请求
对应措施:过滤相应包
我们通过安全URL SCAN并且设置urlscan.ini中的DenyExtensions字段
来阻止特定结尾的文件的执行
3.上传文件
入侵者通过这步上传WEBSHELL,提权软件,运行cmd指令等等.
对应措施:取消相应服务和功能,设置ACL权限
如果有条件可以不使用FSO的.
通过 regsvr32 /u c:\windows\system32\scrrun.dll来注销掉相关的DLL.
如果需要使用.
那就为每个站点建立一个user用户
对每个站点相应的目录.只给这个用户读,写,执行权限,给administrators全部权限
安装杀毒软件.实时杀除上传上来的恶意代码.
个人推荐MCAFEE或者卡巴斯基
如果使用MCAFEE.对WINDOWS目录所有添加与修改文件的行为进行阻止.
4.WebShell
入侵者上传文件后.需要利用WebShell来执行可执行程序.或者利用WebShell进行更加方便的文件操作.
对应措施:取消相应服务和功能
一般WebShell用到以下组件
WScript.Network
WScript.Network.1
WScript.Shell
WScript.Shell.1
Shell.Application
Shell.Application.1
我们在注册表中将以上键值改名或删除
同时需要注意按照这些键值下的CLSID键的内容
从/HKEY_CLASSES_ROOT/CLSID下面对应的键值删除
5.执行SHELL
入侵者获得shell来执行更多指令
对应措施:设置ACL权限
windows的命令行控制台位于\WINDOWS\SYSTEM32\CMD.EXE
我们将此文件的ACL修改为
某个特定管理员帐户(比如administrator)拥有全部权限.
其他用户.包括system用户,administrators组等等.一律无权限访问此文件.
6.利用已有用户或添加用户
入侵者通过利用修改已有用户或者添加windows正式用户.向获取管理员权限迈进
对应措施:设置ACL权限.修改用户
将除管理员外所有用户的终端访问权限去掉.
限制CMD.EXE的访问权限.
限制SQL SERVER内的XP_CMDSHELL
7.登陆图形终端
入侵者登陆TERMINAL SERVER或者RADMIN等等图形终端,
获取许多图形程序的运行权限.由于WINDOWS系统下绝大部分应用程序都是GUI的.
所以这步是每个入侵WINDOWS的入侵者都希望获得的
对应措施:端口限制
入侵者可能利用3389或者其他的木马之类的获取对于图形界面的访问.
我们在第一步的端口限制中.对所有从内到外的访问一律屏蔽也就是为了防止反弹木马.
所以在端口限制中.由本地访问外部网络的端口越少越好.
如果不是作为MAIL SERVER.可以不用加任何由内向外的端口.
阻断所有的反弹木马.
8.擦除脚印
入侵者在获得了一台机器的完全管理员权限后
就是擦除脚印来隐藏自身.
对应措施:审计
首先我们要确定在windows日志中打开足够的审计项目.
如果审计项目不足.入侵者甚至都无需去删除windows事件.
其次我们可以用自己的cmd.exe以及net.exe来替换系统自带的.
将运行的指令保存下来.了解入侵者的行动.
对于windows日志
我们可以通过将日志发送到远程日志服务器的方式来保证记录的完整性.
evtsys工具(https://engineering.purdue.edu/ECN/Resources/Documents)
提供将windows日志转换成syslog格式并且发送到远程服务器上的功能.
使用此用具.并且在远程服务器上开放syslogd,如果远程服务器是windows系统.
推荐使用kiwi syslog deamon.
我们要达到的目的就是
不让入侵者扫描到主机弱点
即使扫描到了也不能上传文件
即使上传文件了不能操作其他目录的文件
即使操作了其他目录的文件也不能执行shell
即使执行了shell也不能添加用户
即使添加用户了也不能登陆图形终端
即使登陆了图形终端.拥有系统控制权.他的所作所为还是会被记录下来.
额外措施:
我们可以通过增加一些设备和措施来进一步加强系统安全性.
1.代理型防火墙.如ISA2004
代理型防火墙可以对进出的包进行内容过滤.
设置对HTTP REQUEST内的request string或者form内容进行过滤
将SELECT.DROP.DELETE.INSERT等都过滤掉.
因为这些关键词在客户提交的表单或者内容中是不可能出现的.
过滤了以后可以说从根本杜绝了SQL 注入
2.用SNORT建立IDS
用另一台服务器建立个SNORT.
对于所有进出服务器的包都进行分析和记录
特别是FTP上传的指令以及HTTP对ASP文件的请求
windows的命令行控制台位于\WINDOWS\SYSTEM32\CMD.EXE
我们将此文件的ACL修改为
某个特定管理员帐户(比如administrator)拥有全部权限.
其他用户.包括system用户,administrators组等等.一律无权限访问此文件.
6.利用已有用户或添加用户
入侵者通过利用修改已有用户或者添加windows正式用户.向获取管理员权限迈进
对应措施:设置ACL权限.修改用户
将除管理员外所有用户的终端访问权限去掉.
限制CMD.EXE的访问权限.
限制SQL SERVER内的XP_CMDSHELL
7.登陆图形终端
入侵者登陆TERMINAL SERVER或者RADMIN等等图形终端,
获取许多图形程序的运行权限.由于WINDOWS系统下绝大部分应用程序都是GUI的.
所以这步是每个入侵WINDOWS的入侵者都希望获得的
对应措施:端口限制
入侵者可能利用3389或者其他的木马之类的获取对于图形界面的访问.
我们在第一步的端口限制中.对所有从内到外的访问一律屏蔽也就是为了防止反弹木马.
所以在端口限制中.由本地访问外部网络的端口越少越好.
如果不是作为MAIL SERVER.可以不用加任何由内向外的端口.
阻断所有的反弹木马.
8.擦除脚印
入侵者在获得了一台机器的完全管理员权限后
就是擦除脚印来隐藏自身.
对应措施:审计
首先我们要确定在windows日志中打开足够的审计项目.
如果审计项目不足.入侵者甚至都无需去删除windows事件.
其次我们可以用自己的cmd.exe以及net.exe来替换系统自带的.
将运行的指令保存下来.了解入侵者的行动.
对于windows日志
我们可以通过将日志发送到远程日志服务器的方式来保证记录的完整性.
evtsys工具(https://engineering.purdue.edu/ECN/Resources/Documents)
提供将windows日志转换成syslog格式并且发送到远程服务器上的功能.
使用此用具.并且在远程服务器上开放syslogd,如果远程服务器是windows系统.
推荐使用kiwi syslog deamon.
我们要达到的目的就是
不让入侵者扫描到主机弱点
即使扫描到了也不能上传文件
即使上传文件了不能操作其他目录的文件
即使操作了其他目录的文件也不能执行shell
即使执行了shell也不能添加用户
即使添加用户了也不能登陆图形终端
即使登陆了图形终端.拥有系统控制权.他的所作所为还是会被记录下来.
额外措施:
我们可以通过增加一些设备和措施来进一步加强系统安全性.
1.代理型防火墙.如ISA2004
代理型防火墙可以对进出的包进行内容过滤.
设置对HTTP REQUEST内的request string或者form内容进行过滤
将SELECT.DROP.DELETE.INSERT等都过滤掉.
因为这些关键词在客户提交的表单或者内容中是不可能出现的.
过滤了以后可以说从根本杜绝了SQL 注入
2.用SNORT建立IDS
用另一台服务器建立个SNORT.
对于所有进出服务器的包都进行分析和记录
特别是FTP上传的指令以及HTTP对ASP文件的请求
可以特别关注一下.
报告为特定的应用程序池提供服务且当前正在运行 w3pwp.exe 进程的进程标识符 (PID)。
语法
iisapp [a/ AppPoolName | /p AppPoolID]
参数
/a AppPoolName
指定特定应用程序池的名称。(可选项)
/p AppPoolID
按 ID 号指定应用程序池。(可选项)
注释
如果未指定应用程序池名或 ID,则 iisapp 列出所有运行应用程序。
仅当使用 /s 时,才可使用 /u 和 /p 命令行选项。必须同时使用 /p 和 /u 才能提供用户密码。
Iisext.vbs 执行 IIS 管理器中可用的相同操作。可使用任何一种工具管理 IIS 网站。
发出命令的计算机必须正在运行 Windows XP 或 Windows Server 2003 操作系统。用户必须是命令所影响的计算机上的 Administrators 组成员。
命令所影响的计算机必须是运行带有 Internet 信息服务 (IIS) 6.0 的 Windows Server 2003 的服务器。
示例
下列示例显示在特定的情况下如何使用 iisapp。
查看所有运行应用程序
下列示例显示本地计算机上运行的所有应用程序池,按其进程 ID (PID) 和应用程序池 ID (AppPoolID) 标识。该命令忽略所有可选参数并接受默认值。
iisapp
Iisapp 发出如下响应信息:
正在连接到服务器 ...已完成。W3WP.exe PID:2232 AppPoolID:DefaultAppPool W3WP.exe PID:2608 AppPoolID:MyAppPool
按进程 ID 查看运行应用程序
如果知道特定应用程序的 PID,则可以使用下列命令检查其状态。
iisapp /p 2608
Iisapp 发出如下响应信息:
正在连接到服务器 ...已完成。W3WP.exe PID:2608 AppPoolID:MyAppPool
格式图例
格式 意义
斜体 用户必须提供的信息
粗体 用户必须完全按照显示的那样键入的元素
省略号 (...) 可以在命令行中重复多次使用的参数
在括号 ([]) 之间 可选项目
在大括号 ({}) 之间,将选项用竖线 (|) 隔开。例如:{even|odd} 用户必须从中只选择一个选项的选项集
Courier font 代码或程序输出
另外需要注意:
1、在任务管理器中增加显示pid字段。就可以看到占用内存或者cpu最高的进程pid
2、在命令提示符下运行iisapp -a。注意,第一次运行,会提示没有js支持,点击确定。然后再次运行就可以了。这样就可以看到pid对应的应用程序池
3、到iis中察看该应用程序池对应的网站,就ok了