Windows消息钩子一般都很熟悉了。它的用处很多,耳熟能详的就有——利用键盘钩子获取目标进程的键盘输入,从而获得各类密码以达到不可告人的目的。朋友想让他的软件不被别人的全局钩子监视,有没有办法实现呢?答案是肯定的,不过缺陷也是有的。
首先简单看看全局钩子如何注入别的进程。
消息钩子是由Win32子系统提供,其核心部分通过NtUserSetWindowsHookEx为用户提供了设置消息钩子的系统服务,用户通过它注册全局钩子。当系统获取某些事件,比如用户按键,键盘driver将扫描码等传入win32k的KeyEvent处理函数,处理函数判断有无相应hook,有则callhook。此时,系统取得Hook对象信息,若目标进程没有装载对应的Dll,则装载之(利用KeUserModeCallback“调用”用户例程,它与Apc调用不同,它是仿制中断返回环境,其调用是“立即”性质的)。
进入用户态的KiUserCallbackDispatcher后,KiUserCallbackDispatcher根据传递的数据获取所需调用的函数、参数等,随后调用。针对上面的例子,为装载hook dll,得到调用的是LoadLibraryExW,随后进入LdrLoadDll,装载完毕后返回,后面的步骤就不叙述了。
从上面的讨论我们可以得出一个最简单的防侵入方案:在加载hook dll之前hook相应api使得加载失败,不过有一个缺陷:系统并不会因为一次的失败而放弃,每次有消息产生欲call hook时系统都会试图在你的进程加载dll,这对于性能有些微影响,不过应该感觉不到。剩下一个问题就是不是所有的LoadLibraryExW都应拦截,这个容易解决,比如判断返回地址。下面给出一个例子片断,可以添加一些判断使得某些允许加载的hook dll被加载。
这里hook api使用了微软的detours库,可自行修改。
以下内容为程序代码:
typedef HMODULE (__stdcall *LOADLIB)(
LPCWSTR lpwLibFileName,
HANDLE hFile,
DWORD dwFlags);
extern "C" {
DETOUR_TRAMPOLINE(HMODULE __stdcall Real_LoadLibraryExW(
LPCWSTR lpwLibFileName,
HANDLE hFile,
DWORD dwFlags),
LoadLibraryExW);
}
ULONG user32 = 0;
HMODULE __stdcall Mine_LoadLibraryExW(
LPCWSTR lpwLibFileName,
HANDLE hFile,
DWORD dwFlags)
{
ULONG addr;
_asm mov eax, [ebp+4]
_asm mov addr, eax
if ((user32 & 0xFFFF0000) == (addr & 0xFFFF0000))
{
return 0;
}
HMODULE res = (LOADLIB(Real_LoadLibraryExW)) (
lpwLibFileName,
hFile,
dwFlags);
return res;
}
BOOL ProcessAttach()
{
DetourFunctionWithTrampoline((PBYTE)Real_LoadLibraryExW,
(PBYTE)Mine_LoadLibraryExW);
return TRUE;
}
BOOL ProcessDetach()
{
DetourRemove((PBYTE)Real_LoadLibraryExW,
(PBYTE)Mine_LoadLibraryExW);
return TRUE;
}
CAnti_HookApp::CAnti_HookApp() //在使用用户界面服务前调用ProcessAttach
{
user32 = (ULONG)GetModuleHandle("User32.dll");
ProcessAttach();
}
首先简单看看全局钩子如何注入别的进程。
消息钩子是由Win32子系统提供,其核心部分通过NtUserSetWindowsHookEx为用户提供了设置消息钩子的系统服务,用户通过它注册全局钩子。当系统获取某些事件,比如用户按键,键盘driver将扫描码等传入win32k的KeyEvent处理函数,处理函数判断有无相应hook,有则callhook。此时,系统取得Hook对象信息,若目标进程没有装载对应的Dll,则装载之(利用KeUserModeCallback“调用”用户例程,它与Apc调用不同,它是仿制中断返回环境,其调用是“立即”性质的)。
进入用户态的KiUserCallbackDispatcher后,KiUserCallbackDispatcher根据传递的数据获取所需调用的函数、参数等,随后调用。针对上面的例子,为装载hook dll,得到调用的是LoadLibraryExW,随后进入LdrLoadDll,装载完毕后返回,后面的步骤就不叙述了。
从上面的讨论我们可以得出一个最简单的防侵入方案:在加载hook dll之前hook相应api使得加载失败,不过有一个缺陷:系统并不会因为一次的失败而放弃,每次有消息产生欲call hook时系统都会试图在你的进程加载dll,这对于性能有些微影响,不过应该感觉不到。剩下一个问题就是不是所有的LoadLibraryExW都应拦截,这个容易解决,比如判断返回地址。下面给出一个例子片断,可以添加一些判断使得某些允许加载的hook dll被加载。
这里hook api使用了微软的detours库,可自行修改。
以下内容为程序代码:
typedef HMODULE (__stdcall *LOADLIB)(
LPCWSTR lpwLibFileName,
HANDLE hFile,
DWORD dwFlags);
extern "C" {
DETOUR_TRAMPOLINE(HMODULE __stdcall Real_LoadLibraryExW(
LPCWSTR lpwLibFileName,
HANDLE hFile,
DWORD dwFlags),
LoadLibraryExW);
}
ULONG user32 = 0;
HMODULE __stdcall Mine_LoadLibraryExW(
LPCWSTR lpwLibFileName,
HANDLE hFile,
DWORD dwFlags)
{
ULONG addr;
_asm mov eax, [ebp+4]
_asm mov addr, eax
if ((user32 & 0xFFFF0000) == (addr & 0xFFFF0000))
{
return 0;
}
HMODULE res = (LOADLIB(Real_LoadLibraryExW)) (
lpwLibFileName,
hFile,
dwFlags);
return res;
}
BOOL ProcessAttach()
{
DetourFunctionWithTrampoline((PBYTE)Real_LoadLibraryExW,
(PBYTE)Mine_LoadLibraryExW);
return TRUE;
}
BOOL ProcessDetach()
{
DetourRemove((PBYTE)Real_LoadLibraryExW,
(PBYTE)Mine_LoadLibraryExW);
return TRUE;
}
CAnti_HookApp::CAnti_HookApp() //在使用用户界面服务前调用ProcessAttach
{
user32 = (ULONG)GetModuleHandle("User32.dll");
ProcessAttach();
}
IDS入侵特征库创建实例解析
[ 2007-03-25 02:51:24 | 作者: sun ]
IDS要有效地捕捉入侵行为,必须拥有一个强大的入侵特征数据库,这就如同公安部门必须拥有健全的罪犯信息库一样。但是,IDS一般所带的特征数据库都比较死板,遇到“变脸”的入侵行为往往相逢不相识。因此,管理员有必要学会如何创建满足实际需要的特征数据样板,做到万变应万变!本文将对入侵特征的概念、种类以及如何创建特征进行介绍,希望能帮助读者尽快掌握对付“变脸”的方法。
一、特征(signature)的基本概念
IDS中的特征就是指用于判别通讯信息种类的样板数据,通常分为多种,以下是一些典型情况及识别方法:
来自保留IP地址的连接企图:可通过检查IP报头(IP header)的来源地址轻易地识别。
带有非法TCP 标志联合物的数据包:可通过对比TCP报头中的标志集与已知正确和错误标记联合物的不同点来识别。
含有特殊病毒信息的Email:可通过对比每封Email的主题信息和病态Email的主题信息来识别,或者,通过搜索特定名字的附近来识别。
查询负载中的DNS缓冲区溢出企图:可通过解析DNS域及检查每个域的长度来识别利用DNS域的缓冲区溢出企图。还有另外一个识别方法是:在负载中搜索“壳代码利用”(exploit shellcode)的序列代码组合。
通过对POP3服务器发出上千次同一命令而导致的DoS攻击:通过跟踪记录某个命令连续发出的次数,看看是否超过了预设上限,而发出报警信息。
未登录情况下使用文件和目录命令对FTP服务器的文件访问攻击:通过创建具备状态跟踪的特征样板以监视成功登录的FTP对话、发现未经验证却发命令的入侵企图。
从以上分类可以看出特征的涵盖范围很广,有简单的报头域数值、有高度复杂的连接状态跟踪、有扩展的协议分析。一叶即可知秋,本文将从最简单的特征入手,详细讨论其功能及开发、定制方法。
另外请注意:不同的IDS产品具有的特征功能也有所差异。例如:有些网络IDS系统只允许很少地定制存在的特征数据或者编写需要的特征数据,另外一些则允许在很宽的范围内定制或编写特征数据,甚至可以是任意一个特征;一些IDS系统只能检查确定的报头或负载数值,另外一些则可以获取任何信息包的任何位置的数据。
二、特征有什么作用?
这似乎是一个答案很明显的问题:特征是检测数据包中的可疑内容是否真正“不可就要”的样板,也就是“坏分子克隆”。IDS系统本身就带有这个重要的部分,为什么还需要定制或编写特征呢?是这样:也许你经常看到一些熟悉的通讯信息流在网络上游荡,由于IDS系统的特征数据库过期或者这些通讯信息本身就不是攻击或探测数据,IDS系统并没有对它们进行关注,而这时你的好奇心升起,想在这些可疑数据再次经由时发出报警,想捕捉它们、仔细看看它们到底来自何方、有何贵干,因此,唯一的办法就是对现有特征数据库进行一些定制配置或者编写新的特征数据了。
特征的定制或编写程度可粗可细,完全取决于实际需求。或者是只判断是否发生了异常行为而不确定具体是什么攻击名号,从而节省资源和时间;或者是判断出具体的攻击手段或漏洞利用方式,从而获取更多的信息。我感觉,前者适用于领导同志,后者需要具体做事者使用,宏观加微观,敌人别想遛进来!
三、首席特征代表:报头值(Header Values)
报头值的结构比较简单,而且可以很清楚地识别出异常报头信息,因此,特征数据的首席候选人就是它。一个经典的例子是:明显违背RFC793中规定的TCP标准、设置了SYN和FIN标记的TCP数据包。这种数据包被许多入侵软件采用,向防火墙、路由器以及IDS系统发起攻击。异常报头值的来源有以下几种:
因为大多数操作系统和应用软件都是在假定RFC被严格遵守的情况下编写的,没有添加针对异常数据的错误处理程序,所以许多包含报头值的漏洞利用都会故意违反RFC的标准定义,明目张胆地揭发被攻击对象的偷工减料行为。
许多包含错误代码的不完善软件也会产生违反RFC定义的报头值数据。
并非所有的操作系统和应用程序都能全面拥护RFC定义,至少会存在一个方面与RFC不协调。
随着时间推移,执行新功能的协议可能不被包含于现有RFC中。
由于以上几种情况,严格基于RFC的IDS特征数据就有可能产生漏报或误报效果。对此,RFC也随着新出现的违反信息而不断进行着更新,我们也有必要定期地回顾或更新存在的特征数据定义。
非法报头值是特征数据的一个非常基础的部分,合法但可疑的报头值也同等重要。例如,如果存在到端口31337或27374的可疑连接,就可报警说可能有特洛伊木马在活动;再附加上其他更详细地探测信息,就能够进一步地判断是真马还是假马。
四、确定特征“候选人”
为了更好地理解如何开发基于报头值的特殊数据,下面通过分析一个实例的整个过程进行详细阐述。
Synscan是一个流行的用于扫描和探测系统的工具,由于它的代码被用于创建蠕虫Ramen的开始片断而在2001年早期大出风头。Synscan的执行行为很具典型性,它发出的信息包具有多种可分辨的特性,包括:
不同的来源IP地址信息
TCP来源端口21,目标端口21
服务类型0
IP鉴定号码39426(IP identification number)
设置SYN和FIN标志位
不同的序列号集合(sequence numbers set)
不同的确认号码集合(acknowledgment numbers set)
TCP窗口尺寸1028
下面我们对以上这些数据进行筛选,看看哪个比较合适做特征数据。我们要寻找的是非法、异常或可疑数据,大多数情况下,这都反映出攻击者利用的漏洞或者他们使用的特殊技术。以下是特征数据的候选对象:
只具有SYN和FIN标志集的数据包,这是公认的恶意行为迹象。
没有设置ACK标志,但却具有不同确认号码数值的数据包,而正常情况应该是0。
来源端口和目标端口都被设置为21的数据包,经常与FTP服务器关联。这种端口相同的情况一般被称为“反身”(reflexive),除了个别时候如进行一些特别NetBIOS通讯外,正常情况下不应该出现这种现象。“反身”端口本身并不违反TCP标准,但大多数情况下它们并非预期数值。例如在一个正常的FTP对话中,目标端口一般是21,而来源端口通常都高于1023。
TCP窗口尺寸为1028,IP鉴定号码在所有数据包中为39426。根据IP RFC的定义,这2类数值应在数据包间有所不同,因此,如果持续不变,就表明可疑。
五、公布最佳特征“得主”
从以上4个候选对象中,我们可以单独选出一项作为基于报头的特征数据,也可以选出多项组合作为特征数据。
选择一项数据作为特征有很大的局限性。例如一个简单的特征可以是只具有SYN和FIN标志的数据包,虽然这可以很好地提示我们可能有一个可疑的行为发生,但却不能给出为什么会发生的更多信息。SYN和FIN通常联合在一起攻击防护墙和其他设备,只要有它们出现,就预示着扫描正在发生、信息正在收集、攻击将要开始。但仅仅这些而已,我们需要的是更多的细节资料。
选择以上4项数据联合作为特征也不现实,因为这显得有些太特殊了。尽管能够精确地提供行为信息,但是比仅仅使用一个数据作为特征而言,会显得远远缺乏效率。实际上,特征定义永远要在效率和精确度间取得折中。大多数情况下,简单特征比复杂特征更倾向于误报(false positives),因为前者很普遍;复杂特征比简单特征更倾向于漏报(false negatives),因为前者太过全面,攻击软件的某个特征会随着时间的推进而变化。
多也不行,少亦不可,完全应由实际情况决定。例如,我们想判断攻击可能采用的工具是什么,那么除了SYN和FIN标志以外,还需要什么其他属性?“反身”端口虽然可疑,但是许多工具都使用到它,而且一些正常通讯也有此现象,因此不适宜选为特征。TCP窗口尺寸1028尽管有一点可疑,但也会自然的发生。IP鉴定号码39426也一样。没有ACK标志的ACK数值很明显是非法的,因此非常适于选为特征数据。当然,根据环境的不同,及时地调整或组合特征数据,才是达到最优效果的不二法门。
接下来我们真正创建一个特征,用于寻找并确定synscan发出的每个TCP信息包中的以下属性:
只设置了SYN和FIN标志
IP鉴定号码为39426
TCP窗口尺寸为1028
第一个项目太普遍,第二个和第三个项目联合出现在同一数据包的情况不很多,因此,将这三个项目组合起来就可以定义一个详细的特征了。再加上其他的synscan属性不会显著地提高特征的精确度,只能增加资源的耗费。到此,判别synscan软件的特征如此就创建完毕了。
六、拓宽特征的“社会关系”,创建识别更多异常通讯的特征
以上创建的特征可以满足对标准synscan软件的探测了。但synscan可能存在多种“变脸”,而其它工具也可能是“变化多端”的,这样,上述建立的特征必然不能将它们一一识别。这时就需要结合使用特殊特征和通用特征,才能创建一个更好、更全面的解决方案。如果一个入侵检测特征既能揭示已知“坏蛋”,还能预测“潜在的罪犯”,那么它的魅力将大大提高。
首先看一个“变脸”synscan所发出的数据信息特征:
只设置了SYN标志,这纯属正常的TCP数据包“长相”。
TCP窗口尺寸总是40而不是1028。40是初始SYN信息包中一个罕见的小窗口尺寸,比正常的数值1028少见得多。
“反身”端口数值为53而不是21。老版本的BIND使用“反身”端口用于特殊操作,新版本BIND则不再使用它,因此,经常看到这个信息会让我们睁大怀疑的眼睛。
以上3种数据与标准synscan产生的数据有很多相似出,因此可以初步推断产生它的工具或者是synscan的不同版本,或者是其他基于synscan代码的工具。显然,前面定义的特征已经不能将这个“变脸”识别出来,因为3个特征子项已经面目全非。这时,我们可以采取三种方法:
再单独创建一个匹配这些内容的特殊特征。
调整我们的探测目标,只关注普通的异常行为,而不是特殊的异常行为,创建识别普通异常行为的通用特征。
1和2都创建,既全面撒网,也重点垂钓,真实的罪犯必抓,可疑的分子也别跑。
通用特征可以创建如下:
没有设置确认标志,但是确认数值却非0的TCP数据包。
只设置了SYN和FIN标志的TCP数据包。
初始TCP窗口尺寸低于一定数值的TCP数据包。
使用以上的通用特征,上面提到过的两种异常数据包都可以有效地识别出来。看来,网大好捞鱼啊。
当然,如果需要更加详细地探测,再在这些通用特征的基础上添加一些个性数据就可以创建出一个特殊特征来。还是那个观点,创建什么样的特征、创建哪些特征,取决于实际需求,实践是检测创建何种特征的唯一标准吗!
七、报头值关键元素小结,信息包种类检查分析
从上面讨论的例子中,我们看到了可用于创建IDS特征的多种报头值信息。通常,最有可能用于生成报头相关特征的元素为以下几种:
IP地址,特别保留地址、非路由地址、广播地址。
不应被使用的端口号,特别是众所周知的协议端口号和木马端口号。
异常信息包片断。
特殊TCP标志组合值。
不应该经常出现的ICMP字节或代码。
知道了如何使用基于报头的特征数据,接下来要确定的是检查何种信息包。确定的标准依然是根据实际需求而定。因为ICMP和UDP信息包是无状态的,所以大多数情况下,需要对它们的每一个“属下”都进行检查。而TCP信息包是有连接状态的,因此有时候可以只检查连接中的第一个信息包。例如,象IP地址和端口这样的特征将在连接的所有数据包中保持不变,只对它们检查一次就可放心。其他特征如TCP标志会在对话过程的不同数据包中有所不同,如果要查找特殊的标志组合值,就需要对每一个数据包进行检查。检查的数量越多,消耗的资源和时间也就越多。
另外我们还要了解一点:关注TCP、UDP或者ICMP的报头信息要比关注DNS报头信息更方便。因为TCP、UDP以及ICMP都属于IP协议,它们的报头信息和载荷信息都位于IP数据包的payload部分,比如要获取TCP报头数值,首先解析IP报头,然后就可以判断出这个载荷的“父亲”是TCP。而象DNS这样的协议,它又包含在UDP和TCP数据包的载荷中,如果要获取DNS的信息,就必须深入2层才能看到真面目。而且,解析此类协议还需要更多更复杂的编程代码,完全不如TCP等简单。实际上,这个解析操作也正是区分不同协议的关键所在,评价IDS系统的好坏也体现在是否能够很好地分析更多的协议。
八、结语
本文对如何定制IDS的关键部件特征数据库做了详细地介绍,相信你已经对此有了进一步的认识。入侵者总是狡猾多变的,我们不能让手中的钢刀有刃无光,要经常地磨砺它、改装它,才可能以万变应万变,让入侵者胆战心惊!
一、特征(signature)的基本概念
IDS中的特征就是指用于判别通讯信息种类的样板数据,通常分为多种,以下是一些典型情况及识别方法:
来自保留IP地址的连接企图:可通过检查IP报头(IP header)的来源地址轻易地识别。
带有非法TCP 标志联合物的数据包:可通过对比TCP报头中的标志集与已知正确和错误标记联合物的不同点来识别。
含有特殊病毒信息的Email:可通过对比每封Email的主题信息和病态Email的主题信息来识别,或者,通过搜索特定名字的附近来识别。
查询负载中的DNS缓冲区溢出企图:可通过解析DNS域及检查每个域的长度来识别利用DNS域的缓冲区溢出企图。还有另外一个识别方法是:在负载中搜索“壳代码利用”(exploit shellcode)的序列代码组合。
通过对POP3服务器发出上千次同一命令而导致的DoS攻击:通过跟踪记录某个命令连续发出的次数,看看是否超过了预设上限,而发出报警信息。
未登录情况下使用文件和目录命令对FTP服务器的文件访问攻击:通过创建具备状态跟踪的特征样板以监视成功登录的FTP对话、发现未经验证却发命令的入侵企图。
从以上分类可以看出特征的涵盖范围很广,有简单的报头域数值、有高度复杂的连接状态跟踪、有扩展的协议分析。一叶即可知秋,本文将从最简单的特征入手,详细讨论其功能及开发、定制方法。
另外请注意:不同的IDS产品具有的特征功能也有所差异。例如:有些网络IDS系统只允许很少地定制存在的特征数据或者编写需要的特征数据,另外一些则允许在很宽的范围内定制或编写特征数据,甚至可以是任意一个特征;一些IDS系统只能检查确定的报头或负载数值,另外一些则可以获取任何信息包的任何位置的数据。
二、特征有什么作用?
这似乎是一个答案很明显的问题:特征是检测数据包中的可疑内容是否真正“不可就要”的样板,也就是“坏分子克隆”。IDS系统本身就带有这个重要的部分,为什么还需要定制或编写特征呢?是这样:也许你经常看到一些熟悉的通讯信息流在网络上游荡,由于IDS系统的特征数据库过期或者这些通讯信息本身就不是攻击或探测数据,IDS系统并没有对它们进行关注,而这时你的好奇心升起,想在这些可疑数据再次经由时发出报警,想捕捉它们、仔细看看它们到底来自何方、有何贵干,因此,唯一的办法就是对现有特征数据库进行一些定制配置或者编写新的特征数据了。
特征的定制或编写程度可粗可细,完全取决于实际需求。或者是只判断是否发生了异常行为而不确定具体是什么攻击名号,从而节省资源和时间;或者是判断出具体的攻击手段或漏洞利用方式,从而获取更多的信息。我感觉,前者适用于领导同志,后者需要具体做事者使用,宏观加微观,敌人别想遛进来!
三、首席特征代表:报头值(Header Values)
报头值的结构比较简单,而且可以很清楚地识别出异常报头信息,因此,特征数据的首席候选人就是它。一个经典的例子是:明显违背RFC793中规定的TCP标准、设置了SYN和FIN标记的TCP数据包。这种数据包被许多入侵软件采用,向防火墙、路由器以及IDS系统发起攻击。异常报头值的来源有以下几种:
因为大多数操作系统和应用软件都是在假定RFC被严格遵守的情况下编写的,没有添加针对异常数据的错误处理程序,所以许多包含报头值的漏洞利用都会故意违反RFC的标准定义,明目张胆地揭发被攻击对象的偷工减料行为。
许多包含错误代码的不完善软件也会产生违反RFC定义的报头值数据。
并非所有的操作系统和应用程序都能全面拥护RFC定义,至少会存在一个方面与RFC不协调。
随着时间推移,执行新功能的协议可能不被包含于现有RFC中。
由于以上几种情况,严格基于RFC的IDS特征数据就有可能产生漏报或误报效果。对此,RFC也随着新出现的违反信息而不断进行着更新,我们也有必要定期地回顾或更新存在的特征数据定义。
非法报头值是特征数据的一个非常基础的部分,合法但可疑的报头值也同等重要。例如,如果存在到端口31337或27374的可疑连接,就可报警说可能有特洛伊木马在活动;再附加上其他更详细地探测信息,就能够进一步地判断是真马还是假马。
四、确定特征“候选人”
为了更好地理解如何开发基于报头值的特殊数据,下面通过分析一个实例的整个过程进行详细阐述。
Synscan是一个流行的用于扫描和探测系统的工具,由于它的代码被用于创建蠕虫Ramen的开始片断而在2001年早期大出风头。Synscan的执行行为很具典型性,它发出的信息包具有多种可分辨的特性,包括:
不同的来源IP地址信息
TCP来源端口21,目标端口21
服务类型0
IP鉴定号码39426(IP identification number)
设置SYN和FIN标志位
不同的序列号集合(sequence numbers set)
不同的确认号码集合(acknowledgment numbers set)
TCP窗口尺寸1028
下面我们对以上这些数据进行筛选,看看哪个比较合适做特征数据。我们要寻找的是非法、异常或可疑数据,大多数情况下,这都反映出攻击者利用的漏洞或者他们使用的特殊技术。以下是特征数据的候选对象:
只具有SYN和FIN标志集的数据包,这是公认的恶意行为迹象。
没有设置ACK标志,但却具有不同确认号码数值的数据包,而正常情况应该是0。
来源端口和目标端口都被设置为21的数据包,经常与FTP服务器关联。这种端口相同的情况一般被称为“反身”(reflexive),除了个别时候如进行一些特别NetBIOS通讯外,正常情况下不应该出现这种现象。“反身”端口本身并不违反TCP标准,但大多数情况下它们并非预期数值。例如在一个正常的FTP对话中,目标端口一般是21,而来源端口通常都高于1023。
TCP窗口尺寸为1028,IP鉴定号码在所有数据包中为39426。根据IP RFC的定义,这2类数值应在数据包间有所不同,因此,如果持续不变,就表明可疑。
五、公布最佳特征“得主”
从以上4个候选对象中,我们可以单独选出一项作为基于报头的特征数据,也可以选出多项组合作为特征数据。
选择一项数据作为特征有很大的局限性。例如一个简单的特征可以是只具有SYN和FIN标志的数据包,虽然这可以很好地提示我们可能有一个可疑的行为发生,但却不能给出为什么会发生的更多信息。SYN和FIN通常联合在一起攻击防护墙和其他设备,只要有它们出现,就预示着扫描正在发生、信息正在收集、攻击将要开始。但仅仅这些而已,我们需要的是更多的细节资料。
选择以上4项数据联合作为特征也不现实,因为这显得有些太特殊了。尽管能够精确地提供行为信息,但是比仅仅使用一个数据作为特征而言,会显得远远缺乏效率。实际上,特征定义永远要在效率和精确度间取得折中。大多数情况下,简单特征比复杂特征更倾向于误报(false positives),因为前者很普遍;复杂特征比简单特征更倾向于漏报(false negatives),因为前者太过全面,攻击软件的某个特征会随着时间的推进而变化。
多也不行,少亦不可,完全应由实际情况决定。例如,我们想判断攻击可能采用的工具是什么,那么除了SYN和FIN标志以外,还需要什么其他属性?“反身”端口虽然可疑,但是许多工具都使用到它,而且一些正常通讯也有此现象,因此不适宜选为特征。TCP窗口尺寸1028尽管有一点可疑,但也会自然的发生。IP鉴定号码39426也一样。没有ACK标志的ACK数值很明显是非法的,因此非常适于选为特征数据。当然,根据环境的不同,及时地调整或组合特征数据,才是达到最优效果的不二法门。
接下来我们真正创建一个特征,用于寻找并确定synscan发出的每个TCP信息包中的以下属性:
只设置了SYN和FIN标志
IP鉴定号码为39426
TCP窗口尺寸为1028
第一个项目太普遍,第二个和第三个项目联合出现在同一数据包的情况不很多,因此,将这三个项目组合起来就可以定义一个详细的特征了。再加上其他的synscan属性不会显著地提高特征的精确度,只能增加资源的耗费。到此,判别synscan软件的特征如此就创建完毕了。
六、拓宽特征的“社会关系”,创建识别更多异常通讯的特征
以上创建的特征可以满足对标准synscan软件的探测了。但synscan可能存在多种“变脸”,而其它工具也可能是“变化多端”的,这样,上述建立的特征必然不能将它们一一识别。这时就需要结合使用特殊特征和通用特征,才能创建一个更好、更全面的解决方案。如果一个入侵检测特征既能揭示已知“坏蛋”,还能预测“潜在的罪犯”,那么它的魅力将大大提高。
首先看一个“变脸”synscan所发出的数据信息特征:
只设置了SYN标志,这纯属正常的TCP数据包“长相”。
TCP窗口尺寸总是40而不是1028。40是初始SYN信息包中一个罕见的小窗口尺寸,比正常的数值1028少见得多。
“反身”端口数值为53而不是21。老版本的BIND使用“反身”端口用于特殊操作,新版本BIND则不再使用它,因此,经常看到这个信息会让我们睁大怀疑的眼睛。
以上3种数据与标准synscan产生的数据有很多相似出,因此可以初步推断产生它的工具或者是synscan的不同版本,或者是其他基于synscan代码的工具。显然,前面定义的特征已经不能将这个“变脸”识别出来,因为3个特征子项已经面目全非。这时,我们可以采取三种方法:
再单独创建一个匹配这些内容的特殊特征。
调整我们的探测目标,只关注普通的异常行为,而不是特殊的异常行为,创建识别普通异常行为的通用特征。
1和2都创建,既全面撒网,也重点垂钓,真实的罪犯必抓,可疑的分子也别跑。
通用特征可以创建如下:
没有设置确认标志,但是确认数值却非0的TCP数据包。
只设置了SYN和FIN标志的TCP数据包。
初始TCP窗口尺寸低于一定数值的TCP数据包。
使用以上的通用特征,上面提到过的两种异常数据包都可以有效地识别出来。看来,网大好捞鱼啊。
当然,如果需要更加详细地探测,再在这些通用特征的基础上添加一些个性数据就可以创建出一个特殊特征来。还是那个观点,创建什么样的特征、创建哪些特征,取决于实际需求,实践是检测创建何种特征的唯一标准吗!
七、报头值关键元素小结,信息包种类检查分析
从上面讨论的例子中,我们看到了可用于创建IDS特征的多种报头值信息。通常,最有可能用于生成报头相关特征的元素为以下几种:
IP地址,特别保留地址、非路由地址、广播地址。
不应被使用的端口号,特别是众所周知的协议端口号和木马端口号。
异常信息包片断。
特殊TCP标志组合值。
不应该经常出现的ICMP字节或代码。
知道了如何使用基于报头的特征数据,接下来要确定的是检查何种信息包。确定的标准依然是根据实际需求而定。因为ICMP和UDP信息包是无状态的,所以大多数情况下,需要对它们的每一个“属下”都进行检查。而TCP信息包是有连接状态的,因此有时候可以只检查连接中的第一个信息包。例如,象IP地址和端口这样的特征将在连接的所有数据包中保持不变,只对它们检查一次就可放心。其他特征如TCP标志会在对话过程的不同数据包中有所不同,如果要查找特殊的标志组合值,就需要对每一个数据包进行检查。检查的数量越多,消耗的资源和时间也就越多。
另外我们还要了解一点:关注TCP、UDP或者ICMP的报头信息要比关注DNS报头信息更方便。因为TCP、UDP以及ICMP都属于IP协议,它们的报头信息和载荷信息都位于IP数据包的payload部分,比如要获取TCP报头数值,首先解析IP报头,然后就可以判断出这个载荷的“父亲”是TCP。而象DNS这样的协议,它又包含在UDP和TCP数据包的载荷中,如果要获取DNS的信息,就必须深入2层才能看到真面目。而且,解析此类协议还需要更多更复杂的编程代码,完全不如TCP等简单。实际上,这个解析操作也正是区分不同协议的关键所在,评价IDS系统的好坏也体现在是否能够很好地分析更多的协议。
八、结语
本文对如何定制IDS的关键部件特征数据库做了详细地介绍,相信你已经对此有了进一步的认识。入侵者总是狡猾多变的,我们不能让手中的钢刀有刃无光,要经常地磨砺它、改装它,才可能以万变应万变,让入侵者胆战心惊!
网络欺诈有一个很好听的名字——网络钓鱼(Phishing),这是“Fishing”和“Phone”的综合体,由于黑客始祖起初是以电话作案,所以用“Ph”来取代“F”,创造了“Phishing”这个词。所谓“姜太公钓鱼,愿者上钩”,网络中的“欺诈者”,利用欺骗性的电子邮件和伪造的Web站点进行诈骗活动,或者布局诱惑网友安装黑客程序和木马病毒,以达到窃取重要数据的目的。据专家透露,“网络钓鱼”之所以猖狂,是因为在所有接触诈骗信息的用户中,总有5%的人会对骗局作出响应。
“钓鱼”招数一“发财邮件”坑你没商量
Yama很有经商头脑,几年前,她偶然看到美国一家购物网站上的二手摄像器材不错,比国内的价格便宜很多。于是,她让国外的姐姐开了个北美账号,通过美国这家购物网买了几台很新的二手摄像机,然后以小时计费租给影视公司,生意很快就做大了。
由于机器都是通过境外购物网站购买,Yama每天的工作就是泡在网上给买家写邮件,商量各种购买细节。有一天,她忽然收到一封电子邮件,发件人自称是纽约卖家Thomas,曾经卖给她镜头。
Thomas在邮件中说:“我们曾经有过很愉快的交易,现在我自己开了家网上摄像器材二手店,你只要过来登记会员,就能直接向我购买。也不用再交给购物网站交易佣金,能省很多钱哦!”
Yama点开邮件中的网页链接,发现里面的机器非常新,而且价钱比二手的还低30%。她心想:反正只是注册一下会员,不妨去看看。虽然在填写资料时涉及银行账号之类的信息,但她还是没有怀疑。
一场噩梦就这样开始了。几天后,当Yama再次用这个境外银行账号买东西时,发现卡里只剩下几美元!她再仔细翻看Thomas的信,忽然发现,这人根本没有和自己有过任何交易,完全就是骗子发来的垃圾邮件。她意识到自己被骗了。
见招拆招:请删除垃圾邮件不请自到的商业邮件或垃圾邮件,是网络诈骗中很常见的手段。过去,回复垃圾邮件最多就是招来更多邮件,而现在,一不小心就会让骗子获得可乘之机,在电脑上秘密安装跟踪软件,或者布局让人主动交出资料。
“钓鱼”招数二真假网上银行
现在通过网上银行转账消费已经不是新鲜事了,王丽见同事每月只要点点鼠标,就能轻松地用网上银行业务付手机费,也想申请一个网上银行。
一天,王丽收到一封自称为“工商银行”的邮件,说可以免费开通网上银行。她点开邮件中的网页链接,看到申请网上银行业务的界面出奇简单,心里忽然生出些疑问:好像听同事说申请网上银行业务手续挺麻烦的,这个怎么就像一般论坛登录界面呢?谨慎的她没有继续。
第二天上班,她在办公室聊起这事,网管GG立刻大呼:“这是典型的网络诈骗哦!你遇到克隆工行啦!”
“不信?!我给你看!”网管拉着王丽来到电脑前——“真正的工行网上银行地址是mybank.icbc.com.cn,而你这个是mybank.iclc.com.cn,把‘b’偷换成‘l’,地址很像,网页内容更像,还好你没继续申请,否则就中招喽!”
没过几天,这个工商银行的克隆网站就被曝光查封了,一起查封的,还有中国农业银行网址的克隆网站hnp://www.95569.cn。诈骗者利用一字之差这样的障眼法,蒙骗粗枝大叶的网民。
见招拆招:拨客服电话确认真假现在网络欺诈者建立的克隆网上银行系统和真正的网站极为相似,引诱用户输入账号、密码等信息,进而通过真正的网上银行、网上证券系统或者伪造银行储蓄卡、证券交易卡窃得资金。还会利用服务器上的漏洞,在站点中恶意插入代码和病毒插件,窃取用户重要信息。
既然是诈骗,当然少不了调包计。网络骗子们可以轻松仿造著名企业或知名银行的网站,神不知鬼不觉地把你引入“李鬼”网站,获取你所有的资料,继而大肆行骗。
据银行有关人员表示,目前正规的各家网上银行都有自己的一套安全措施,数字证书是辨别真假网站的有效工具,要放心使用网上银行,就别偷懒,多了解这些安全设施吧。
说到个人预防,其实和技术并没很大关系,只要有充分的警惕意识,看到来自网上银行的邮件通知,顺手拨一个客服电话,确认信息真假,就可以保证不被假银行蒙骗。
“钓鱼”招数一“发财邮件”坑你没商量
Yama很有经商头脑,几年前,她偶然看到美国一家购物网站上的二手摄像器材不错,比国内的价格便宜很多。于是,她让国外的姐姐开了个北美账号,通过美国这家购物网买了几台很新的二手摄像机,然后以小时计费租给影视公司,生意很快就做大了。
由于机器都是通过境外购物网站购买,Yama每天的工作就是泡在网上给买家写邮件,商量各种购买细节。有一天,她忽然收到一封电子邮件,发件人自称是纽约卖家Thomas,曾经卖给她镜头。
Thomas在邮件中说:“我们曾经有过很愉快的交易,现在我自己开了家网上摄像器材二手店,你只要过来登记会员,就能直接向我购买。也不用再交给购物网站交易佣金,能省很多钱哦!”
Yama点开邮件中的网页链接,发现里面的机器非常新,而且价钱比二手的还低30%。她心想:反正只是注册一下会员,不妨去看看。虽然在填写资料时涉及银行账号之类的信息,但她还是没有怀疑。
一场噩梦就这样开始了。几天后,当Yama再次用这个境外银行账号买东西时,发现卡里只剩下几美元!她再仔细翻看Thomas的信,忽然发现,这人根本没有和自己有过任何交易,完全就是骗子发来的垃圾邮件。她意识到自己被骗了。
见招拆招:请删除垃圾邮件不请自到的商业邮件或垃圾邮件,是网络诈骗中很常见的手段。过去,回复垃圾邮件最多就是招来更多邮件,而现在,一不小心就会让骗子获得可乘之机,在电脑上秘密安装跟踪软件,或者布局让人主动交出资料。
“钓鱼”招数二真假网上银行
现在通过网上银行转账消费已经不是新鲜事了,王丽见同事每月只要点点鼠标,就能轻松地用网上银行业务付手机费,也想申请一个网上银行。
一天,王丽收到一封自称为“工商银行”的邮件,说可以免费开通网上银行。她点开邮件中的网页链接,看到申请网上银行业务的界面出奇简单,心里忽然生出些疑问:好像听同事说申请网上银行业务手续挺麻烦的,这个怎么就像一般论坛登录界面呢?谨慎的她没有继续。
第二天上班,她在办公室聊起这事,网管GG立刻大呼:“这是典型的网络诈骗哦!你遇到克隆工行啦!”
“不信?!我给你看!”网管拉着王丽来到电脑前——“真正的工行网上银行地址是mybank.icbc.com.cn,而你这个是mybank.iclc.com.cn,把‘b’偷换成‘l’,地址很像,网页内容更像,还好你没继续申请,否则就中招喽!”
没过几天,这个工商银行的克隆网站就被曝光查封了,一起查封的,还有中国农业银行网址的克隆网站hnp://www.95569.cn。诈骗者利用一字之差这样的障眼法,蒙骗粗枝大叶的网民。
见招拆招:拨客服电话确认真假现在网络欺诈者建立的克隆网上银行系统和真正的网站极为相似,引诱用户输入账号、密码等信息,进而通过真正的网上银行、网上证券系统或者伪造银行储蓄卡、证券交易卡窃得资金。还会利用服务器上的漏洞,在站点中恶意插入代码和病毒插件,窃取用户重要信息。
既然是诈骗,当然少不了调包计。网络骗子们可以轻松仿造著名企业或知名银行的网站,神不知鬼不觉地把你引入“李鬼”网站,获取你所有的资料,继而大肆行骗。
据银行有关人员表示,目前正规的各家网上银行都有自己的一套安全措施,数字证书是辨别真假网站的有效工具,要放心使用网上银行,就别偷懒,多了解这些安全设施吧。
说到个人预防,其实和技术并没很大关系,只要有充分的警惕意识,看到来自网上银行的邮件通知,顺手拨一个客服电话,确认信息真假,就可以保证不被假银行蒙骗。
McAfee推免费版SiteAdvisor安全上网工具
[ 2007-03-25 02:50:50 | 作者: sun ]
McAfee近期宣布推出完全免费版McAfee SiteAdvisor上网工具。McAfee SiteAdvisor是业界第一款Web安全工具,能够主动地提醒用户在浏览、搜索和即时通信或收发电子邮件时所遇到的危险站点,避免遭到网络钓鱼、间谍软件等恶意程序的攻击。
McAfee SiteAdvisor是由数名美国麻省理工学院(MIT)的工程师于2005年4月创建的。创建之初,他们希望Web对其家人和朋友更安全,不再需要花很多休息时间来清理家人计算机上大量的垃圾邮件、广告软件和间谍软件。
另外,相对而言,传统的安全公司擅长处理技术威胁(如病毒),但却无法有效防止新的"社会工程"伎俩,如间谍软件感染、身份信息窃取诈骗和发送大量电子邮件的站点。
为了解决这项难题,MIT的工程师们建立了一个自动测试程序系统,它能持续巡视Web来浏览站点、下载文件和在注册表单中输入信息。这种用于IE和 Firefox浏览器的易用软件会对安全结果进行汇总,并通过直观的红色(危险)、黄色(可疑)和绿色(安全)评级表示出来,从而帮助Web用户在在线搜索、浏览和交易时保持安全状态,保证Web 安全,并让每位用户都可以更安全地使用互联网。
SiteAdvisor于2006年4月5日宣布由全球知名的安全厂商迈克菲收购。加入迈克菲之后,极大地提高了SiteAdvisor在全球范围的影响力,使用迈克菲提供的领先安全技术,从而加快为众多用户开发功能的速度。
目前,SiteAdvisor不仅可以阻止间谍软件、广告软件、浏览器攻击、垃圾邮件和其它网络欺诈,而且还可以防止网络钓鱼攻击,可以全面的帮助用户避免高风险的网上交易和感染恶意软件的机会。下载地址:http://www.siteadvisor.com/download/iemedia.html?cid=22940
McAfee SiteAdvisor是由数名美国麻省理工学院(MIT)的工程师于2005年4月创建的。创建之初,他们希望Web对其家人和朋友更安全,不再需要花很多休息时间来清理家人计算机上大量的垃圾邮件、广告软件和间谍软件。
另外,相对而言,传统的安全公司擅长处理技术威胁(如病毒),但却无法有效防止新的"社会工程"伎俩,如间谍软件感染、身份信息窃取诈骗和发送大量电子邮件的站点。
为了解决这项难题,MIT的工程师们建立了一个自动测试程序系统,它能持续巡视Web来浏览站点、下载文件和在注册表单中输入信息。这种用于IE和 Firefox浏览器的易用软件会对安全结果进行汇总,并通过直观的红色(危险)、黄色(可疑)和绿色(安全)评级表示出来,从而帮助Web用户在在线搜索、浏览和交易时保持安全状态,保证Web 安全,并让每位用户都可以更安全地使用互联网。
SiteAdvisor于2006年4月5日宣布由全球知名的安全厂商迈克菲收购。加入迈克菲之后,极大地提高了SiteAdvisor在全球范围的影响力,使用迈克菲提供的领先安全技术,从而加快为众多用户开发功能的速度。
目前,SiteAdvisor不仅可以阻止间谍软件、广告软件、浏览器攻击、垃圾邮件和其它网络欺诈,而且还可以防止网络钓鱼攻击,可以全面的帮助用户避免高风险的网上交易和感染恶意软件的机会。下载地址:http://www.siteadvisor.com/download/iemedia.html?cid=22940
黑客如何给你的系统种木马
[ 2007-03-25 02:50:21 | 作者: sun ]
相信很多朋友都听说过木马程序,总觉得它很神秘、很高难,但事实上随着木马软件的智能化,很多骇客都能轻松达到攻击的目的。今天,笔者就以最新的一款木马程序——黑洞2004,从种植、使用、隐藏、防范四个方面来为网络爱好者介绍一下木马的特性。需要提醒大家的是,在使用木马程序的时候,请先关闭系统中的病毒防火墙,因为杀毒软件会把木马作为病毒的一种进行查杀。
操作步骤:
一、种植木马
现在网络上流行的木马基本上都采用的是C/S 结构(客户端/服务端)。你要使用木马控制对方的电脑,首先需要在对方的的电脑中种植并运行服务端程序,然后运行本地电脑中的客户端程序对对方电脑进行连接进而控制对方电脑。
二、使用木马
成功的给别人植入木马服务端后,就需要耐心等待服务端上线。由于黑洞2004采用了反连接技术,所以服务端上线后会自动和客户端进行连接,这时,我们就可以操控客户端对服务端进行远程控制。在黑洞2004下面的列表中,随便选择一台已经上线的电脑,然后通过上面的命令按钮就可以对这台电脑进行控制。下面就简单的介绍一下这些命令的意义。
文件管理:服务端上线以后,你可以通过“文件管理”命令对服务端电脑中的文件进行下载、新建、重命名、删除等操作。可以通过鼠标直接把文件或文件夹拖放到目标文件夹,并且支持断点传输。简单吧?
进程管理:查看、刷新、关闭对方的进程,如果发现有杀毒软件或者防火墙,就可以关闭相应的进程,达到保护服务器端程序的目的。
窗口管理:管理服务端电脑的程序窗口,你可以使对方窗口中的程序最大化、最小化、正常关闭等操作,这样就比进程管理更灵活。你可以搞很多恶作剧,比如让对方的某个窗口不停的最大化和最小化。
视频监控和语音监听:如果远程服务端电脑安装有USB摄像头,那么可以通过它来获取图像,并可直接保存为Media Play可以直接播放的Mpeg文件;需要对方有麦克风的话,还可以听到他们的谈话,恐怖吧?
除了上面介绍的这些功能以外,还包括键盘记录、重启关机、远程卸载、抓屏查看密码等功能,操作都非常简单,明白了吧?做骇客其实很容易。
3 隐藏
随着杀毒软件病毒库的升级,木马会很快被杀毒软件查杀,所以为了使木马服务端辟开杀毒软件的查杀,长时间的隐藏在别人的电脑中,在木马为黑客提供几种可行的办法。
1.木马的自身保护
就像前面提到的,黑洞2004在生成服务端的时候,用户可以更换图标,并使用软件UPX对服务端自动进行压缩隐藏。
2.捆绑服务端
用户通过使用文件捆绑器把木马服务端和正常的文件捆绑在一起,达到欺骗对方的目的。文件捆绑器有广外文件捆绑器2002、万能文件捆绑器、exeBinder、Exe Bundle等。
3.制做自己的服务端
上面提到的这些方法虽然能一时瞒过杀毒软件,但最终还是不能逃脱杀毒软件的查杀,所以若能对现有的木马进行伪装,让杀毒软件无法辨别,则是个治本的方法。可以通过使用压缩EXE和DLL文件的压缩软件对服务端进行加壳保护。例如1中的UPX就是这样一款压缩软件,但默认该软件是按照自身的设置对服务端压缩的,因此得出的结果都相同,很难长时间躲过杀毒软件;而自己对服务端进行压缩,就可以选择不同的选项,压缩出与众不同的服务端来,使杀毒软件很难判断。下面我就以冰河为例,为大家简单的讲解一下脱壳(解压)、加壳(压缩)的过程。
如果我们用杀毒软件对冰河进行查杀,一定会发现2个病毒,一个是冰河的客户端,另一个是服务端。使用软件“PEiD”查看软件的服务端是否已经被作者加壳,可以看到服务端已经使用UPX进行了压缩。
现在,我们就需要对软件进行脱壳,也就是一种解压的过程。这里我使用了“UPXUnpack”,选择需要的文件后,点击“解压缩”就开始执行脱壳。
脱壳完成后,我们需要为服务端加一个新壳,加壳的软件很多,比如:ASPack、ASProtect、UPXShell、Petite等。这里以“ASPack”为例,点击“打开”按钮,选择刚刚脱壳的服务端程序,选择完成后ASPack会自动为服务端进行加壳。再次用杀毒软件对这个服务端进行查杀,发现其已经不能识别判断了。如果你的杀毒软件依旧可以查杀,你还可以使用多个软件对服务端进行多次加壳。笔者在使用Petite和ASPack对服务端进行2次加壳后,试用了多种杀毒软件都没有扫描出来。现在网络中流行的很多XX版冰河,就是网友通过对服务端进行修改并重新加壳后制做出来的。
为了避免不熟悉木马的用户误运行服务端,现在流行的木马都没有提供单独的服务端程序,而是通过用户自己设置来生成服务端,黑洞2004也是这样。首先运行黑洞2004,点击“功能/生成服务端”命令,弹出“服务端配置”界面。由于黑洞2004采用了反弹技术(请参加小知识),首先单击旁边的“查看”按钮,在弹出的窗口中设置新的域名,输入你事先申请空间的域名和密码,单击“域名注册”,在下面的窗口中会反映出注册的情况。域名注册成功以后,返回“服务端配置”界面,填入刚刚申请的域名,以及“上线显示名称”、“注册表启动名称”等项目。为了迷惑他人,可以点“更改服务端图标”按钮为服务端选择一个图标。所有的设置都完成后,点击“生成EXE型服务端”就生成了一个服务端。在生成服务端的同时,软件会自动使用UPX为服务端进行压缩,对服务端起到隐藏保护的作用。
服务端生成以后,下一步要做的是将服务端植入别人的电脑?常见的方法有,通过系统或者软件的漏洞入侵别人的电脑把木马的服务端植入其的电脑;或者通过Email夹带,把服务端作为附件寄给对方;以及把服务端进行伪装后放到自己的共享文件夹,通过P2P软件(比如PP点点通、百宝等),让网友在毫无防范中下载并运行服务端程序。
由于本文主要面对普通的网络爱好者,所以就使用较为简单的Email夹带,为大家进行讲解。我们使用大家经常会看到的Flash动画为例,建立一个文件夹命名为“好看的动画”,在该文件夹里边再建立文件夹“动画.files”,将木马服务端软件放到该文件夹中假设名称为“abc.exe”,再在该文件夹内建立flash文件,在flash文件的第1帧输入文字“您的播放插件不全,单击下边的按钮,再单击打开按钮安装插件”,新建一个按钮组件,将其拖到舞台中,打开动作面板,在里边输入“on (press) {getURL("动画.files/abc.exe");}”,表示当单击该按钮时执行abc这个文件。在文件夹“好看的动画”中新建一个网页文件命名为“动画.htm”,将刚才制作的动画放到该网页中。看出门道了吗?平常你下载的网站通常就是一个.html文件和一个结尾为.files的文件夹,我们这么构造的原因也是用来迷惑打开者,毕竟没有几个人会去翻.files文件夹。现在我们就可以撰写一封新邮件了,将文件夹“好看的动画”压缩成一个文件,放到邮件的附件中,再编写一个诱人的主题。只要对方深信不疑的运行它,并重新启动系统,服务端就种植成功了。
三、防范
防范重于治疗,在我们的电脑还没有中木马前,我们需要做很多必要的工作,比如:安装杀毒软件和网络防火墙;及时更新病毒库以及系统的安全补丁;定时备份硬盘上的文件;不要运行来路不明的软件和打开来路不明的邮件。
最后笔者要特别提醒大家,木马除了拥有强大的远程控制功能外,还包括极强的破坏性。我们学习它,只是为了了解它的技术与方法,而不是用于盗窃密码等破坏行为,希望大家好自为之。
小知识:
反弹技术,该技术解决了传统的远程控制软件不能访问装有防火墙和控制局域网内部的远程计算机的难题。反弹端口型软件的原理是,客户端首先登录到FTP服务器,编辑在木马软件中预先设置的主页空间上面的一个文件,并打开端口监听,等待服务端的连接,服务端定期用HTTP协议读取这个文件的内容,当发现是客户端让自己开始连接时,就主动连接,如此就可完成连接工作。
因此在互联网上可以访问到局域网里通过 NAT (透明代理)代理上网的电脑,并且可以穿过防火墙。与传统的远程控制软件相反,反弹端口型软件的服务端会主动连接客户端,客户端的监听端口一般开为80(即用于网页浏览的端口),这样,即使用户在命令提示符下使用“netstat -a”命令检查自己的端口,发现的也是类似“TCP UserIP:3015 ControllerIP:http ESTABLISHED”的情况,稍微疏忽一点你就会以为是自己在浏览网页,而防火墙也会同样这么认为的。于是,与一般的软件相反,反弹端口型软件的服务端主动连接客户端,这样就可以轻易的突破防火墙的限制
操作步骤:
一、种植木马
现在网络上流行的木马基本上都采用的是C/S 结构(客户端/服务端)。你要使用木马控制对方的电脑,首先需要在对方的的电脑中种植并运行服务端程序,然后运行本地电脑中的客户端程序对对方电脑进行连接进而控制对方电脑。
二、使用木马
成功的给别人植入木马服务端后,就需要耐心等待服务端上线。由于黑洞2004采用了反连接技术,所以服务端上线后会自动和客户端进行连接,这时,我们就可以操控客户端对服务端进行远程控制。在黑洞2004下面的列表中,随便选择一台已经上线的电脑,然后通过上面的命令按钮就可以对这台电脑进行控制。下面就简单的介绍一下这些命令的意义。
文件管理:服务端上线以后,你可以通过“文件管理”命令对服务端电脑中的文件进行下载、新建、重命名、删除等操作。可以通过鼠标直接把文件或文件夹拖放到目标文件夹,并且支持断点传输。简单吧?
进程管理:查看、刷新、关闭对方的进程,如果发现有杀毒软件或者防火墙,就可以关闭相应的进程,达到保护服务器端程序的目的。
窗口管理:管理服务端电脑的程序窗口,你可以使对方窗口中的程序最大化、最小化、正常关闭等操作,这样就比进程管理更灵活。你可以搞很多恶作剧,比如让对方的某个窗口不停的最大化和最小化。
视频监控和语音监听:如果远程服务端电脑安装有USB摄像头,那么可以通过它来获取图像,并可直接保存为Media Play可以直接播放的Mpeg文件;需要对方有麦克风的话,还可以听到他们的谈话,恐怖吧?
除了上面介绍的这些功能以外,还包括键盘记录、重启关机、远程卸载、抓屏查看密码等功能,操作都非常简单,明白了吧?做骇客其实很容易。
3 隐藏
随着杀毒软件病毒库的升级,木马会很快被杀毒软件查杀,所以为了使木马服务端辟开杀毒软件的查杀,长时间的隐藏在别人的电脑中,在木马为黑客提供几种可行的办法。
1.木马的自身保护
就像前面提到的,黑洞2004在生成服务端的时候,用户可以更换图标,并使用软件UPX对服务端自动进行压缩隐藏。
2.捆绑服务端
用户通过使用文件捆绑器把木马服务端和正常的文件捆绑在一起,达到欺骗对方的目的。文件捆绑器有广外文件捆绑器2002、万能文件捆绑器、exeBinder、Exe Bundle等。
3.制做自己的服务端
上面提到的这些方法虽然能一时瞒过杀毒软件,但最终还是不能逃脱杀毒软件的查杀,所以若能对现有的木马进行伪装,让杀毒软件无法辨别,则是个治本的方法。可以通过使用压缩EXE和DLL文件的压缩软件对服务端进行加壳保护。例如1中的UPX就是这样一款压缩软件,但默认该软件是按照自身的设置对服务端压缩的,因此得出的结果都相同,很难长时间躲过杀毒软件;而自己对服务端进行压缩,就可以选择不同的选项,压缩出与众不同的服务端来,使杀毒软件很难判断。下面我就以冰河为例,为大家简单的讲解一下脱壳(解压)、加壳(压缩)的过程。
如果我们用杀毒软件对冰河进行查杀,一定会发现2个病毒,一个是冰河的客户端,另一个是服务端。使用软件“PEiD”查看软件的服务端是否已经被作者加壳,可以看到服务端已经使用UPX进行了压缩。
现在,我们就需要对软件进行脱壳,也就是一种解压的过程。这里我使用了“UPXUnpack”,选择需要的文件后,点击“解压缩”就开始执行脱壳。
脱壳完成后,我们需要为服务端加一个新壳,加壳的软件很多,比如:ASPack、ASProtect、UPXShell、Petite等。这里以“ASPack”为例,点击“打开”按钮,选择刚刚脱壳的服务端程序,选择完成后ASPack会自动为服务端进行加壳。再次用杀毒软件对这个服务端进行查杀,发现其已经不能识别判断了。如果你的杀毒软件依旧可以查杀,你还可以使用多个软件对服务端进行多次加壳。笔者在使用Petite和ASPack对服务端进行2次加壳后,试用了多种杀毒软件都没有扫描出来。现在网络中流行的很多XX版冰河,就是网友通过对服务端进行修改并重新加壳后制做出来的。
为了避免不熟悉木马的用户误运行服务端,现在流行的木马都没有提供单独的服务端程序,而是通过用户自己设置来生成服务端,黑洞2004也是这样。首先运行黑洞2004,点击“功能/生成服务端”命令,弹出“服务端配置”界面。由于黑洞2004采用了反弹技术(请参加小知识),首先单击旁边的“查看”按钮,在弹出的窗口中设置新的域名,输入你事先申请空间的域名和密码,单击“域名注册”,在下面的窗口中会反映出注册的情况。域名注册成功以后,返回“服务端配置”界面,填入刚刚申请的域名,以及“上线显示名称”、“注册表启动名称”等项目。为了迷惑他人,可以点“更改服务端图标”按钮为服务端选择一个图标。所有的设置都完成后,点击“生成EXE型服务端”就生成了一个服务端。在生成服务端的同时,软件会自动使用UPX为服务端进行压缩,对服务端起到隐藏保护的作用。
服务端生成以后,下一步要做的是将服务端植入别人的电脑?常见的方法有,通过系统或者软件的漏洞入侵别人的电脑把木马的服务端植入其的电脑;或者通过Email夹带,把服务端作为附件寄给对方;以及把服务端进行伪装后放到自己的共享文件夹,通过P2P软件(比如PP点点通、百宝等),让网友在毫无防范中下载并运行服务端程序。
由于本文主要面对普通的网络爱好者,所以就使用较为简单的Email夹带,为大家进行讲解。我们使用大家经常会看到的Flash动画为例,建立一个文件夹命名为“好看的动画”,在该文件夹里边再建立文件夹“动画.files”,将木马服务端软件放到该文件夹中假设名称为“abc.exe”,再在该文件夹内建立flash文件,在flash文件的第1帧输入文字“您的播放插件不全,单击下边的按钮,再单击打开按钮安装插件”,新建一个按钮组件,将其拖到舞台中,打开动作面板,在里边输入“on (press) {getURL("动画.files/abc.exe");}”,表示当单击该按钮时执行abc这个文件。在文件夹“好看的动画”中新建一个网页文件命名为“动画.htm”,将刚才制作的动画放到该网页中。看出门道了吗?平常你下载的网站通常就是一个.html文件和一个结尾为.files的文件夹,我们这么构造的原因也是用来迷惑打开者,毕竟没有几个人会去翻.files文件夹。现在我们就可以撰写一封新邮件了,将文件夹“好看的动画”压缩成一个文件,放到邮件的附件中,再编写一个诱人的主题。只要对方深信不疑的运行它,并重新启动系统,服务端就种植成功了。
三、防范
防范重于治疗,在我们的电脑还没有中木马前,我们需要做很多必要的工作,比如:安装杀毒软件和网络防火墙;及时更新病毒库以及系统的安全补丁;定时备份硬盘上的文件;不要运行来路不明的软件和打开来路不明的邮件。
最后笔者要特别提醒大家,木马除了拥有强大的远程控制功能外,还包括极强的破坏性。我们学习它,只是为了了解它的技术与方法,而不是用于盗窃密码等破坏行为,希望大家好自为之。
小知识:
反弹技术,该技术解决了传统的远程控制软件不能访问装有防火墙和控制局域网内部的远程计算机的难题。反弹端口型软件的原理是,客户端首先登录到FTP服务器,编辑在木马软件中预先设置的主页空间上面的一个文件,并打开端口监听,等待服务端的连接,服务端定期用HTTP协议读取这个文件的内容,当发现是客户端让自己开始连接时,就主动连接,如此就可完成连接工作。
因此在互联网上可以访问到局域网里通过 NAT (透明代理)代理上网的电脑,并且可以穿过防火墙。与传统的远程控制软件相反,反弹端口型软件的服务端会主动连接客户端,客户端的监听端口一般开为80(即用于网页浏览的端口),这样,即使用户在命令提示符下使用“netstat -a”命令检查自己的端口,发现的也是类似“TCP UserIP:3015 ControllerIP:http ESTABLISHED”的情况,稍微疏忽一点你就会以为是自己在浏览网页,而防火墙也会同样这么认为的。于是,与一般的软件相反,反弹端口型软件的服务端主动连接客户端,这样就可以轻易的突破防火墙的限制
服务器维护中的反黑技巧
[ 2007-03-25 02:50:07 | 作者: sun ]
1.打补丁
微软的作风就是三天一小补,五天一大补,漏洞太多,补一点就好一点,使用“开始-Windows Update" 然后把所有的补丁都装进去吧
2.删除默认共享
2.1删除IPC$共享
Win2k的缺省安装很容易被攻击者取得帐号列表,即使安装了最新的Service ack也是如此。在Win2k中有一个缺省共享IPC$,并且还有诸如admin$ C$ D$等等,而IPC$允许匿名用户(即未经登录的用户)访问,利用这个缺省共享可以取得用户列表。如何防范这东东,很简单在"管理工具\本地安全策略\安全设置\本地策略\安全选项"中的"对匿名连接的额外限制"可修改为"不允许枚举SAM帐号和共享"。就可以防止大部分此类连接,但是还没完,如果使用NetHacker只要使用一个存在的帐号就又可以顺利取得所有的帐号名称。所以,我们还需要另一种方法做后盾,
(1):创建一个文件startup.cmd,内容就是以下的一行命令"net share ipc$ delete"(不包括引号)
(2):在Windows的计划任务中增加一项任务执行以上的startup.cmd,时间安排为"计算机启动时执行"。或者把这个文件放到"开始-程序-启动"中 让他一启动就删除ipc$共享
(3):重新启动服务器。
2.2删除admin$共享
修改注册表:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters增加AutoShareWks子键(REG_DWORD),键值为0
2.3清除默认磁盘共享(C$,D$等)
修改注册表:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters增加AutoShareServer子键(REG_DWORD),键值为0
3.修改默认用户名
"管理工具\本地安全策略\安全设置\本地策略\安全选项"中"重命名来宾帐户"就是把"guest"改个名字而已,改成abc或者其他名字,下面机器登陆名字也设为"abc"或其他的名字,然后再把"重命名系统管理员帐户"也改一下,有一次我闲着无聊,用小榕的流光随便扫了一下我的IP段,就发现有N家网吧服务器的管理员名称是默认的Administrator,并且是简单密码。如果有人想搞个肉机的话,实在是很简单。
至此下来,服务器已经可以很安全稳定的运行下去了,当然别忘了要一两天重启一下你的服务器。
SQL服务器安全设置
首先,关闭sql默认的1433(好象是这个吧) 就是把sql的TCP/IP协议删除就ok了,删掉后就不能是用远程了 那总归少点事情吧sa 设密码设的密码为数字加字母等, 不用我多说了吧administrator 别忘了设密码。
在tcp/ip协议里关掉所有的无用端口
本地连接状态 --属性--tcp/ip协议--高级--选项--tcp/ip筛选 --只允许 tcp端口
开80(网站端口)
开21(ftp端口--可开可不开)
55019(奇迹私服端口)
44405(奇迹私服端口)
以上是针对无路由的使用服务器直接对外的情况。
使用路由的情况见下
映射以下端口就OK了
开80(网站端口)
开21(ftp端口--可开可不开)
55019(奇迹私服端口)
44405(奇迹私服端口)
当然,上面的你也要设一设哦
再来就是asp的安全问题了
请使用fishserver这套工具
就不存在是用asp漏洞改你数据了
这套工具在 梦之奇迹1.05里有非常方便设置。
微软的作风就是三天一小补,五天一大补,漏洞太多,补一点就好一点,使用“开始-Windows Update" 然后把所有的补丁都装进去吧
2.删除默认共享
2.1删除IPC$共享
Win2k的缺省安装很容易被攻击者取得帐号列表,即使安装了最新的Service ack也是如此。在Win2k中有一个缺省共享IPC$,并且还有诸如admin$ C$ D$等等,而IPC$允许匿名用户(即未经登录的用户)访问,利用这个缺省共享可以取得用户列表。如何防范这东东,很简单在"管理工具\本地安全策略\安全设置\本地策略\安全选项"中的"对匿名连接的额外限制"可修改为"不允许枚举SAM帐号和共享"。就可以防止大部分此类连接,但是还没完,如果使用NetHacker只要使用一个存在的帐号就又可以顺利取得所有的帐号名称。所以,我们还需要另一种方法做后盾,
(1):创建一个文件startup.cmd,内容就是以下的一行命令"net share ipc$ delete"(不包括引号)
(2):在Windows的计划任务中增加一项任务执行以上的startup.cmd,时间安排为"计算机启动时执行"。或者把这个文件放到"开始-程序-启动"中 让他一启动就删除ipc$共享
(3):重新启动服务器。
2.2删除admin$共享
修改注册表:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters增加AutoShareWks子键(REG_DWORD),键值为0
2.3清除默认磁盘共享(C$,D$等)
修改注册表:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters增加AutoShareServer子键(REG_DWORD),键值为0
3.修改默认用户名
"管理工具\本地安全策略\安全设置\本地策略\安全选项"中"重命名来宾帐户"就是把"guest"改个名字而已,改成abc或者其他名字,下面机器登陆名字也设为"abc"或其他的名字,然后再把"重命名系统管理员帐户"也改一下,有一次我闲着无聊,用小榕的流光随便扫了一下我的IP段,就发现有N家网吧服务器的管理员名称是默认的Administrator,并且是简单密码。如果有人想搞个肉机的话,实在是很简单。
至此下来,服务器已经可以很安全稳定的运行下去了,当然别忘了要一两天重启一下你的服务器。
SQL服务器安全设置
首先,关闭sql默认的1433(好象是这个吧) 就是把sql的TCP/IP协议删除就ok了,删掉后就不能是用远程了 那总归少点事情吧sa 设密码设的密码为数字加字母等, 不用我多说了吧administrator 别忘了设密码。
在tcp/ip协议里关掉所有的无用端口
本地连接状态 --属性--tcp/ip协议--高级--选项--tcp/ip筛选 --只允许 tcp端口
开80(网站端口)
开21(ftp端口--可开可不开)
55019(奇迹私服端口)
44405(奇迹私服端口)
以上是针对无路由的使用服务器直接对外的情况。
使用路由的情况见下
映射以下端口就OK了
开80(网站端口)
开21(ftp端口--可开可不开)
55019(奇迹私服端口)
44405(奇迹私服端口)
当然,上面的你也要设一设哦
再来就是asp的安全问题了
请使用fishserver这套工具
就不存在是用asp漏洞改你数据了
这套工具在 梦之奇迹1.05里有非常方便设置。
Server2003防木马权限设置
[ 2007-03-25 02:49:55 | 作者: sun ]
参考了网络上很多关于WIN2003的安全设置以及自己动手做了一些实践,综合了这些安全设置文章整理而成,希望对大家有所帮助,另外里面有不足之处还请大家多多指点,然后给补上,谢谢!
一、系统的安装
1、按照Windows2003安装光盘的提示安装,默认情况下2003没有把IIS6.0安装在系统里面。
2、IIS6.0的安装
开始菜单—>控制面板—>添加或删除程序—>添加/删除Windows组件
应用程序 ———ASP.NET(可选)
|——启用网络 COM+ 访问(必选)
|——Internet 信息服务(IIS)———Internet 信息服务管理器(必选)
|——公用文件(必选)
|——万维网服务———Active Server pages(必选)
|——Internet 数据连接器(可选)
|——WebDAV 发布(可选)
|——万维网服务(必选)
|——在服务器端的包含文件(可选)
然后点击确定—>下一步安装。(具体见本文附件1)
3、系统补丁的更新
点击开始菜单—>所有程序—>Windows Update
按照提示进行补丁的安装。
4、备份系统
用GHOST备份系统。
5、安装常用的软件
例如:杀毒软件、解压缩软件等;安装完毕后,配置杀毒软件,扫描系统漏洞,安装之后用GHOST再次备份系统。
6、先关闭不需要的端口 开启防火墙 导入IPSEC策略
在”网络连接”里,把不需要的协议和服务都删掉,这里只安装了基本的Internet协议(TCP/IP),由于要控制带宽流量服务,额外安装了Qos数据包计划程序。在高级tcp/ip设置里--"NetBIOS"设置"禁用tcp/IP上的NetBIOS(S)"。在高级选项里,使用"Internet连接防火墙",这是windows 2003 自带的防火墙,在2000系统里没有的功能,虽然没什么功能,但可以屏蔽端口,这样已经基本达到了一个IPSec的功能。
修改3389远程连接端口
修改注册表.
开始--运行--regedit
依次展开 HKEY_LOCAL_MACHINE/SYSTEM/CURRENTCONTROLSET/CONTROL/
TERMINAL SERVER/WDS/RDPWD/TDS/TCP
右边键值中 PortNumber 改为你想用的端口号.注意使用十进制(例 10000 )
HKEY_LOCAL_MACHINE/SYSTEM/CURRENTCONTROLSET/CONTROL/TERMINAL SERVER/
WINSTATIONS/RDP-TCP/
右边键值中 PortNumber 改为你想用的端口号.注意使用十进制(例 10000 )
注意:别忘了在WINDOWS2003自带的防火墙给+上10000端口
修改完毕.重新启动服务器.设置生效.
二、用户安全设置
1、禁用Guest账号
在计算机管理的用户里面把Guest账号禁用。为了保险起见,最好给Guest加一个复杂的密码。你可以打开记事本,在里面输入一串包含特殊字符、数字、字母的长字符串,然后把它作为Guest用户的密码拷进去。
2、限制不必要的用户
去掉所有的Duplicate User用户、测试用户、共享用户等等。用户组策略设置相应权限,并且经常检查系统的用户,删除已经不再使用的用户。这些用户很多时候都是黑客们入侵系统的突破口。 3、把系统Administrator账号改名
大家都知道,Windows 2003 的Administrator用户是不能被停用的,这意味着别人可以一遍又一遍地尝试这个用户的密码。尽量把它伪装成普通用户,比如改成Guesycludx。
4、创建一个陷阱用户
什么是陷阱用户?即创建一个名为“Administrator”的本地用户,把它的权限设置成最低,什么事也干不了的那种,并且加上一个超过10位的超级复杂密码。这样可以让那些 Hacker们忙上一段时间,借此发现它们的入侵企图。
5、把共享文件的权限从Everyone组改成授权用户
任何时候都不要把共享文件的用户设置成“Everyone”组,包括打印共享,默认的属性就是“Everyone”组的,一定不要忘了改。
6、开启用户策略
使用用户策略,分别设置复位用户锁定计数器时间为20分钟,用户锁定时间为20分钟,用户锁定阈值为3次。 (该项为可选)
7、不让系统显示上次登录的用户名
默认情况下,登录对话框中会显示上次登录的用户名。这使得别人可以很容易地得到系统的一些用户名,进而做密码猜测。修改注册表可以不让对话框里显示上次登录的用户名。方法为:打开注册表编辑器并找到注册表“HKLM\Software\Microsoft\Windows T\CurrentVersion\Winlogon\Dont-DisplayLastUserName”,把REG_SZ的键值改成1。
密码安全设置
1、使用安全密码
一些公司的管理员创建账号的时候往往用公司名、计算机名做用户名,然后又把这些用户的密码设置得太简单,比如“welcome”等等。因此,要注意密码的复杂性,还要记住经常改密码。
2、设置屏幕保护密码
这是一个很简单也很有必要的操作。设置屏幕保护密码也是防止内部人员破坏服务器的一个屏障。
3、开启密码策略
注意应用密码策略,如启用密码复杂性要求,设置密码长度最小值为6位 ,设置强制密码历史为5次,时间为42天。
4、考虑使用智能卡来代替密码
对于密码,总是使安全管理员进退两难,密码设置简单容易受到黑客的攻击,密码设置复杂又容易忘记。如果条件允许,用智能卡来代替复杂的密码是一个很好的解决方法。
三、系统权限的设置
1、磁盘权限
系统盘及所有磁盘只给 Administrators 组和 SYSTEM 的完全控制权限
系统盘\Documents and Settings 目录只给 Administrators 组和 SYSTEM 的完全控制权限
系统盘\Documents and Settings\All Users 目录只给 Administrators 组和 SYSTEM 的完全控制权限
系统盘\Windows\System32\cacls.exe、cmd.exe、net.exe、net1.exe、ftp.exe、tftp.exe、telnet.exe 、 netstat.exe、regedit.exe、at.exe、attrib.exe、format.com、del文件只给 Administrators 组和SYSTEM 的完全 控制权限
另将\System32\cmd.exe、format.com、ftp.exe转移到其他目录或更名
Documents and Settings下所有些目录都设置只给adinistrators权限。并且要一个一个目录查看,包括下面的所有子目录。
删除c:\inetpub目录
2、本地安全策略设置
开始菜单—>管理工具—>本地安全策略
A、本地策略——>审核策略
审核策略更改 成功 失败
审核登录事件 成功 失败
审核对象访问 失败审核过程跟踪 无审核
审核目录服务访问 失败
审核特权使用 失败
审核系统事件 成功 失败
审核账户登录事件 成功 失败
审核账户管理 成功 失败
B、本地策略——>用户权限分配
关闭系统:只有Administrators组、其它全部删除。
通过终端服务允许登陆:只加入Administrators,Remote Desktop Users组,其他全部删除
C、本地策略——>安全选项
交互式登陆:不显示上次的用户名 启用
网络访问:不允许SAM帐户和共享的匿名枚举 启用
网络访问:不允许为网络身份验证储存凭证 启用
网络访问:可匿名访问的共享 全部删除
网络访问:可匿名访问的命 全部删除
网络访问:可远程访问的注册表路径 全部删除
网络访问:可远程访问的注册表路径和子路径 全部删除
帐户:重命名来宾帐户 重命名一个帐户
帐户:重命名系统管理员帐户 重命名一个帐户
3、禁用不必要的服务 开始-运行-services.msc
TCP/IPNetBIOS Helper提供 TCP/IP 服务上的 NetBIOS 和网络上客户端的 NetBIOS 名称解析的支持而使用户能够共享
文件、打印和登录到网络
Server支持此计算机通过网络的文件、打印、和命名管道共享
Computer Browser 维护网络上计算机的最新列表以及提供这个列表
Task scheduler 允许程序在指定时间运行
Messenger 传输客户端和服务器之间的 NET SEND 和 警报器服务消息
Distributed File System: 局域网管理共享文件,不需要可禁用
Distributed linktracking client:用于局域网更新连接信息,不需要可禁用
Error reporting service:禁止发送错误报告
Microsoft Serch:提供快速的单词搜索,不需要可禁用
NTLMSecuritysupportprovide:telnet服务和Microsoft Serch用的,不需要可禁用
PrintSpooler:如果没有打印机可禁用
Remote Registry:禁止远程修改注册表
Remote Desktop Help Session Manager:禁止远程协助
Workstation 关闭的话远程NET命令列不出用户组
以上是在Windows Server 2003 系统上面默认启动的服务中禁用的,默认禁用的服务如没特别需要的话不要启动。
4、修改注册表
修改注册表,让系统更强壮
1、隐藏重要文件/目录可以修改注册表实现完全隐藏
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\ Current-Version\Explorer\Advanced\Folder\Hi-dden\SHOWALL”,鼠标右击 “CheckedValue”,选择修改,把数值由1改为0
2、防止SYN洪水攻击
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
新建DWORD值,名为SynAttackProtect,值为2
新建EnablePMTUDiscovery REG_DWORD 0
新建NoNameReleaseOnDemand REG_DWORD 1
新建EnableDeadGWDetect REG_DWORD 0
新建KeepAliveTime REG_DWORD 300,000
新建PerformRouterDiscovery REG_DWORD 0
新建EnableICMPRedirects REG_DWORD 03. 禁止响应ICMP路由通告报文
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\interface
新建DWORD值,名为PerformRouterDiscovery 值为0
4. 防止ICMP重定向报文的攻击
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
将EnableICMPRedirects 值设为0
5. 不支持IGMP协议
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
新建DWORD值,名为IGMPLevel 值为0
6、禁止IPC空连接:
cracker可以利用net use命令建立空连接,进而入侵,还有net view,nbtstat这些都是基于空连接的,禁止空连接就好了。
Local_Machine\System\CurrentControlSet\Control\LSA-RestrictAnonymous 把这个值改成”1”即可。
7、更改TTL值
cracker可以根据ping回的TTL值来大致判断你的操作系统,如:
TTL=107(WINNT);
TTL=108(win2000);
TTL=127或128(win9x);
TTL=240或241(linux);
TTL=252(solaris);
TTL=240(Irix);
实际上你可以自己改的:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters:DefaultTTL REG_DWORD 0-0xff(0-255 十进制,默认值128)改成一个莫名其妙的数字如258,起码让那些小菜鸟晕上半天,就此放弃入侵你也不一定哦
8. 删除默认共享
有人问过我一开机就共享所有盘,改回来以后,重启又变成了共享是怎么回事,这是2K为管理而设置的默认共享,HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters:AutoShareServer类型是REG_DWORD把值改为0即可
9. 禁止建立空连接
默认情况下,任何用户通过通过空连接连上服务器,进而枚举出帐号,猜测密码。我们可以通过修改注册表来禁止建立空连接:
Local_Machine\System\CurrentControlSet\Control\LSA-RestrictAnonymous 的值改成”1”即可。
10、建立一个记事本,填上以下代码。保存为*.bat并加到启动项目中
net share c$Content$nbsp;/del
net share d$Content$nbsp;/del
net share e$Content$nbsp;/del
net share f$Content$nbsp;/del
net share ipc$Content$nbsp;/del
net share admin$Content$nbsp;/del
5、IIS站点设置:
1、将IIS目录&数据与系统磁盘分开,保存在专用磁盘空间内。
2、启用父级路径
3、在IIS管理器中删除必须之外的任何没有用到的映射(保留asp等必要映射即可)
4、在IIS中将HTTP404 Object Not Found出错页面通过URL重定向到一个定制HTM文件
5、Web站点权限设定(建议)
读 允许
写 不允许
脚本源访问 不允许
目录浏览 建议关闭
日志访问 建议关闭
索引资源 建议关闭
执行 推荐选择 “仅限于脚本”
6、建议使用W3C扩充日志文件格式,每天记录客户IP地址,用户名,服务器端口,方法,URI字根,HTTP状态,用户代理,而且每天均要审查日志。(最好不要使用缺省的目录,建议更换一个记日志的路径,同时设置日志的访问权限,只允许管理员和system为Full Control)。
7、程序安全:
1) 涉及用户名与口令的程序最好封装在服务器端,尽量少的在ASP文件里出现,涉及到与数据库连接地用户名与口令应给予最小的权限;
2) 需要经过验证的ASP页面,可跟踪上一个页面的文件名,只有从上一页面转进来的会话才能读取这个页面。3) 防止ASP主页.inc文件泄露问题;
4) 防止UE等编辑器生成some.asp.bak文件泄露问题。
6、IIS权限设置的思路
?要为每个独立的要保护的个体(比如一个网站或者一个虚拟目录)创建一个系统用户,让这个站点在系统中具有惟一的可以设置权限的身份。
?在IIS的【站点属性或者虚拟目录属性→目录安全性→匿名访问和验证控制→编辑→匿名访问→编辑】填写刚刚创建的那个用户名。
?设置所有的分区禁止这个用户访问,而刚才这个站点的主目录对应的那个文件夹设置允许这个用户访问(要去掉继承父权限,并且要加上超管组和SYSTEM组)。
7、卸载最不安全的组件
最简单的办法是直接卸载后删除相应的程序文件。将下面的代码保存为一个.BAT文件,( 以下均以 WIN2000 为例,如果使用2003,则系统文件夹应该是 C:\WINDOWS\ )
regsvr32/u C:\WINDOWS\System32\wshom.ocx
del C:\WINDOWS\System32\wshom.ocx
regsvr32/u C:\WINDOWS\system32\shell32.dll
del C:\WINNT\WINDOWS\shell32.dll
然后运行一下,WScript.Shell, Shell.application, WScript.Network就会被卸载了。可能会提示无法删除文件,不用管它,重启一下服务器,你会发现这三个都提示“×安全”了。
一、系统的安装
1、按照Windows2003安装光盘的提示安装,默认情况下2003没有把IIS6.0安装在系统里面。
2、IIS6.0的安装
开始菜单—>控制面板—>添加或删除程序—>添加/删除Windows组件
应用程序 ———ASP.NET(可选)
|——启用网络 COM+ 访问(必选)
|——Internet 信息服务(IIS)———Internet 信息服务管理器(必选)
|——公用文件(必选)
|——万维网服务———Active Server pages(必选)
|——Internet 数据连接器(可选)
|——WebDAV 发布(可选)
|——万维网服务(必选)
|——在服务器端的包含文件(可选)
然后点击确定—>下一步安装。(具体见本文附件1)
3、系统补丁的更新
点击开始菜单—>所有程序—>Windows Update
按照提示进行补丁的安装。
4、备份系统
用GHOST备份系统。
5、安装常用的软件
例如:杀毒软件、解压缩软件等;安装完毕后,配置杀毒软件,扫描系统漏洞,安装之后用GHOST再次备份系统。
6、先关闭不需要的端口 开启防火墙 导入IPSEC策略
在”网络连接”里,把不需要的协议和服务都删掉,这里只安装了基本的Internet协议(TCP/IP),由于要控制带宽流量服务,额外安装了Qos数据包计划程序。在高级tcp/ip设置里--"NetBIOS"设置"禁用tcp/IP上的NetBIOS(S)"。在高级选项里,使用"Internet连接防火墙",这是windows 2003 自带的防火墙,在2000系统里没有的功能,虽然没什么功能,但可以屏蔽端口,这样已经基本达到了一个IPSec的功能。
修改3389远程连接端口
修改注册表.
开始--运行--regedit
依次展开 HKEY_LOCAL_MACHINE/SYSTEM/CURRENTCONTROLSET/CONTROL/
TERMINAL SERVER/WDS/RDPWD/TDS/TCP
右边键值中 PortNumber 改为你想用的端口号.注意使用十进制(例 10000 )
HKEY_LOCAL_MACHINE/SYSTEM/CURRENTCONTROLSET/CONTROL/TERMINAL SERVER/
WINSTATIONS/RDP-TCP/
右边键值中 PortNumber 改为你想用的端口号.注意使用十进制(例 10000 )
注意:别忘了在WINDOWS2003自带的防火墙给+上10000端口
修改完毕.重新启动服务器.设置生效.
二、用户安全设置
1、禁用Guest账号
在计算机管理的用户里面把Guest账号禁用。为了保险起见,最好给Guest加一个复杂的密码。你可以打开记事本,在里面输入一串包含特殊字符、数字、字母的长字符串,然后把它作为Guest用户的密码拷进去。
2、限制不必要的用户
去掉所有的Duplicate User用户、测试用户、共享用户等等。用户组策略设置相应权限,并且经常检查系统的用户,删除已经不再使用的用户。这些用户很多时候都是黑客们入侵系统的突破口。 3、把系统Administrator账号改名
大家都知道,Windows 2003 的Administrator用户是不能被停用的,这意味着别人可以一遍又一遍地尝试这个用户的密码。尽量把它伪装成普通用户,比如改成Guesycludx。
4、创建一个陷阱用户
什么是陷阱用户?即创建一个名为“Administrator”的本地用户,把它的权限设置成最低,什么事也干不了的那种,并且加上一个超过10位的超级复杂密码。这样可以让那些 Hacker们忙上一段时间,借此发现它们的入侵企图。
5、把共享文件的权限从Everyone组改成授权用户
任何时候都不要把共享文件的用户设置成“Everyone”组,包括打印共享,默认的属性就是“Everyone”组的,一定不要忘了改。
6、开启用户策略
使用用户策略,分别设置复位用户锁定计数器时间为20分钟,用户锁定时间为20分钟,用户锁定阈值为3次。 (该项为可选)
7、不让系统显示上次登录的用户名
默认情况下,登录对话框中会显示上次登录的用户名。这使得别人可以很容易地得到系统的一些用户名,进而做密码猜测。修改注册表可以不让对话框里显示上次登录的用户名。方法为:打开注册表编辑器并找到注册表“HKLM\Software\Microsoft\Windows T\CurrentVersion\Winlogon\Dont-DisplayLastUserName”,把REG_SZ的键值改成1。
密码安全设置
1、使用安全密码
一些公司的管理员创建账号的时候往往用公司名、计算机名做用户名,然后又把这些用户的密码设置得太简单,比如“welcome”等等。因此,要注意密码的复杂性,还要记住经常改密码。
2、设置屏幕保护密码
这是一个很简单也很有必要的操作。设置屏幕保护密码也是防止内部人员破坏服务器的一个屏障。
3、开启密码策略
注意应用密码策略,如启用密码复杂性要求,设置密码长度最小值为6位 ,设置强制密码历史为5次,时间为42天。
4、考虑使用智能卡来代替密码
对于密码,总是使安全管理员进退两难,密码设置简单容易受到黑客的攻击,密码设置复杂又容易忘记。如果条件允许,用智能卡来代替复杂的密码是一个很好的解决方法。
三、系统权限的设置
1、磁盘权限
系统盘及所有磁盘只给 Administrators 组和 SYSTEM 的完全控制权限
系统盘\Documents and Settings 目录只给 Administrators 组和 SYSTEM 的完全控制权限
系统盘\Documents and Settings\All Users 目录只给 Administrators 组和 SYSTEM 的完全控制权限
系统盘\Windows\System32\cacls.exe、cmd.exe、net.exe、net1.exe、ftp.exe、tftp.exe、telnet.exe 、 netstat.exe、regedit.exe、at.exe、attrib.exe、format.com、del文件只给 Administrators 组和SYSTEM 的完全 控制权限
另将\System32\cmd.exe、format.com、ftp.exe转移到其他目录或更名
Documents and Settings下所有些目录都设置只给adinistrators权限。并且要一个一个目录查看,包括下面的所有子目录。
删除c:\inetpub目录
2、本地安全策略设置
开始菜单—>管理工具—>本地安全策略
A、本地策略——>审核策略
审核策略更改 成功 失败
审核登录事件 成功 失败
审核对象访问 失败审核过程跟踪 无审核
审核目录服务访问 失败
审核特权使用 失败
审核系统事件 成功 失败
审核账户登录事件 成功 失败
审核账户管理 成功 失败
B、本地策略——>用户权限分配
关闭系统:只有Administrators组、其它全部删除。
通过终端服务允许登陆:只加入Administrators,Remote Desktop Users组,其他全部删除
C、本地策略——>安全选项
交互式登陆:不显示上次的用户名 启用
网络访问:不允许SAM帐户和共享的匿名枚举 启用
网络访问:不允许为网络身份验证储存凭证 启用
网络访问:可匿名访问的共享 全部删除
网络访问:可匿名访问的命 全部删除
网络访问:可远程访问的注册表路径 全部删除
网络访问:可远程访问的注册表路径和子路径 全部删除
帐户:重命名来宾帐户 重命名一个帐户
帐户:重命名系统管理员帐户 重命名一个帐户
3、禁用不必要的服务 开始-运行-services.msc
TCP/IPNetBIOS Helper提供 TCP/IP 服务上的 NetBIOS 和网络上客户端的 NetBIOS 名称解析的支持而使用户能够共享
文件、打印和登录到网络
Server支持此计算机通过网络的文件、打印、和命名管道共享
Computer Browser 维护网络上计算机的最新列表以及提供这个列表
Task scheduler 允许程序在指定时间运行
Messenger 传输客户端和服务器之间的 NET SEND 和 警报器服务消息
Distributed File System: 局域网管理共享文件,不需要可禁用
Distributed linktracking client:用于局域网更新连接信息,不需要可禁用
Error reporting service:禁止发送错误报告
Microsoft Serch:提供快速的单词搜索,不需要可禁用
NTLMSecuritysupportprovide:telnet服务和Microsoft Serch用的,不需要可禁用
PrintSpooler:如果没有打印机可禁用
Remote Registry:禁止远程修改注册表
Remote Desktop Help Session Manager:禁止远程协助
Workstation 关闭的话远程NET命令列不出用户组
以上是在Windows Server 2003 系统上面默认启动的服务中禁用的,默认禁用的服务如没特别需要的话不要启动。
4、修改注册表
修改注册表,让系统更强壮
1、隐藏重要文件/目录可以修改注册表实现完全隐藏
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\ Current-Version\Explorer\Advanced\Folder\Hi-dden\SHOWALL”,鼠标右击 “CheckedValue”,选择修改,把数值由1改为0
2、防止SYN洪水攻击
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
新建DWORD值,名为SynAttackProtect,值为2
新建EnablePMTUDiscovery REG_DWORD 0
新建NoNameReleaseOnDemand REG_DWORD 1
新建EnableDeadGWDetect REG_DWORD 0
新建KeepAliveTime REG_DWORD 300,000
新建PerformRouterDiscovery REG_DWORD 0
新建EnableICMPRedirects REG_DWORD 03. 禁止响应ICMP路由通告报文
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\interface
新建DWORD值,名为PerformRouterDiscovery 值为0
4. 防止ICMP重定向报文的攻击
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
将EnableICMPRedirects 值设为0
5. 不支持IGMP协议
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
新建DWORD值,名为IGMPLevel 值为0
6、禁止IPC空连接:
cracker可以利用net use命令建立空连接,进而入侵,还有net view,nbtstat这些都是基于空连接的,禁止空连接就好了。
Local_Machine\System\CurrentControlSet\Control\LSA-RestrictAnonymous 把这个值改成”1”即可。
7、更改TTL值
cracker可以根据ping回的TTL值来大致判断你的操作系统,如:
TTL=107(WINNT);
TTL=108(win2000);
TTL=127或128(win9x);
TTL=240或241(linux);
TTL=252(solaris);
TTL=240(Irix);
实际上你可以自己改的:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters:DefaultTTL REG_DWORD 0-0xff(0-255 十进制,默认值128)改成一个莫名其妙的数字如258,起码让那些小菜鸟晕上半天,就此放弃入侵你也不一定哦
8. 删除默认共享
有人问过我一开机就共享所有盘,改回来以后,重启又变成了共享是怎么回事,这是2K为管理而设置的默认共享,HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters:AutoShareServer类型是REG_DWORD把值改为0即可
9. 禁止建立空连接
默认情况下,任何用户通过通过空连接连上服务器,进而枚举出帐号,猜测密码。我们可以通过修改注册表来禁止建立空连接:
Local_Machine\System\CurrentControlSet\Control\LSA-RestrictAnonymous 的值改成”1”即可。
10、建立一个记事本,填上以下代码。保存为*.bat并加到启动项目中
net share c$Content$nbsp;/del
net share d$Content$nbsp;/del
net share e$Content$nbsp;/del
net share f$Content$nbsp;/del
net share ipc$Content$nbsp;/del
net share admin$Content$nbsp;/del
5、IIS站点设置:
1、将IIS目录&数据与系统磁盘分开,保存在专用磁盘空间内。
2、启用父级路径
3、在IIS管理器中删除必须之外的任何没有用到的映射(保留asp等必要映射即可)
4、在IIS中将HTTP404 Object Not Found出错页面通过URL重定向到一个定制HTM文件
5、Web站点权限设定(建议)
读 允许
写 不允许
脚本源访问 不允许
目录浏览 建议关闭
日志访问 建议关闭
索引资源 建议关闭
执行 推荐选择 “仅限于脚本”
6、建议使用W3C扩充日志文件格式,每天记录客户IP地址,用户名,服务器端口,方法,URI字根,HTTP状态,用户代理,而且每天均要审查日志。(最好不要使用缺省的目录,建议更换一个记日志的路径,同时设置日志的访问权限,只允许管理员和system为Full Control)。
7、程序安全:
1) 涉及用户名与口令的程序最好封装在服务器端,尽量少的在ASP文件里出现,涉及到与数据库连接地用户名与口令应给予最小的权限;
2) 需要经过验证的ASP页面,可跟踪上一个页面的文件名,只有从上一页面转进来的会话才能读取这个页面。3) 防止ASP主页.inc文件泄露问题;
4) 防止UE等编辑器生成some.asp.bak文件泄露问题。
6、IIS权限设置的思路
?要为每个独立的要保护的个体(比如一个网站或者一个虚拟目录)创建一个系统用户,让这个站点在系统中具有惟一的可以设置权限的身份。
?在IIS的【站点属性或者虚拟目录属性→目录安全性→匿名访问和验证控制→编辑→匿名访问→编辑】填写刚刚创建的那个用户名。
?设置所有的分区禁止这个用户访问,而刚才这个站点的主目录对应的那个文件夹设置允许这个用户访问(要去掉继承父权限,并且要加上超管组和SYSTEM组)。
7、卸载最不安全的组件
最简单的办法是直接卸载后删除相应的程序文件。将下面的代码保存为一个.BAT文件,( 以下均以 WIN2000 为例,如果使用2003,则系统文件夹应该是 C:\WINDOWS\ )
regsvr32/u C:\WINDOWS\System32\wshom.ocx
del C:\WINDOWS\System32\wshom.ocx
regsvr32/u C:\WINDOWS\system32\shell32.dll
del C:\WINNT\WINDOWS\shell32.dll
然后运行一下,WScript.Shell, Shell.application, WScript.Network就会被卸载了。可能会提示无法删除文件,不用管它,重启一下服务器,你会发现这三个都提示“×安全”了。
Apache服务器配置安全规范及其缺陷
[ 2007-03-25 02:49:34 | 作者: sun ]
正如我们前言所说尽管Apache服务器应用最为广泛,设计上非常安全的程序。但是同其它应用程序一样,Apache也存在安全缺陷。毕竟它是完全源代码,Apache服务器的安全缺陷主要是使用HTTP协议进行的拒绝服务攻击(denial of service)、缓冲区溢出攻击以及被攻击者获得root权限三缺陷和最新的恶意的攻击者进行“拒绝服务”(DoS)攻击。合理的网络配置能够保护Apache服务器免遭多种攻击。我们来介绍一下主要的安全缺陷。
主要安全缺陷
(1)使用HTTP协议进行的拒绝服务攻击(denial of service)的安全缺陷
这种方法攻击者会通过某些手段使服务器拒绝对HTTP应答。这样会使Apache对系统资源(CPU时间和内存)需求的剧增,最终造成Apache系统变慢甚至完全瘫痪。
(2)缓冲区溢出的安全缺陷
该方法攻击者利用程序编写的一些缺陷,使程序偏离正常的流程。程序使用静态分配的内存保存请求数据,攻击者就可以发送一个超长请求使缓冲区溢出。
(3)被攻击者获得root权限的安全缺陷
该安全缺陷主要是因为Apache服务器一般以root权限运行(父进程),攻击者会通过它获得root权限,进而控制整个Apache系统。
(4)恶意的攻击者进行“拒绝服务”(DoS)攻击的安全缺陷
这个最新在6月17日发现的漏洞,它主要是存在于Apache的chunk encoding中,这是一个HTTP协议定义的用于接受web用户所提交数据的功能。 所有说使用最高和最新安全版本对于加强Apache Web服务器的安全是至关重要的。
正确维护和配置Apache服务器
虽然Apache服务器的开发者非常注重安全性,由于Apache服务器其庞大的项目, 难免会存在安全隐患。正确维护和配置Apache WEB服务器就很重要了。我们应注意的一些问题:
(1)Apache服务器配置文件
Apache Web服务器主要有三个配置文件,位于/usr/local/apache/conf目录下。 这三个文件是:
httpd.conf----->主配置文件
srm.conf------>填加资源文件
access.conf--->设置文件的访问权限
(2)Apache服务器的目录安全认证
在Apache Server中是允许使用 .htaccess做目录安全保护的,欲读取这保护的目录需要先键入正确用户帐号与密码。这样可做为专门管理网页存放的目录或做为会员区等。在保护的目录放置一个档案,档名为.htaccss。
AuthName "会员专区"
AuthType "Basic"
AuthUserFile "/var/tmp/xxx.pw" ----->把password放在网站外 require valid-user 到apache/bin目录,建password档 % ./htpasswd -c /var/tmp/xxx.pw username1 ----->第一次建档要用参数"-c" % /htpasswd /var/tmp/xxx.pw username2 这样就可以保护目录内的内容,进入要用合法的用户。
注:采用了Apache内附的模组。
也可以采用在httpd.conf中加入:
options indexes followsymlinks
allowoverride authconfig
order allow,deny
allow from all
(3)Apache服务器访问控制
我们就要看三个配置文件中的第三个文件了,即access.conf文件,它包含一些指令控制允许什么用户访问Apache目录。应该把deny from all设为初始化指令,再使用allow from指令打开访问权限。
order deny,allow
deny from all
allow from safechina.net
设置允许来自某个域、IP地址或者IP段的访问。
(4)Apache服务器的密码保护问题
我们再使用.htaccess文件把某个目录的访问权限赋予某个用户。系统管理员需要在httpd.conf或者rm.conf文件中使用 AccessFileName指令打开目录的访问控制。如:
AuthName PrivateFiles
AuthType Basic
AuthUserFile /path/to/httpd/users
require Phoenix
# htpasswd -c /path/to/httpd/users Phoenix
设置Apache服务器的WEB和文件服务器
我们在Apache服务器上存放WEB服务器的文件,供用户访问,并设置/home/ftp/pub目录为文件存放区域,用http://download.your.com/pub/来访问。在防火墙上设置apache反向代理技术,由防火墙代理访问。
(1)Apache服务器的设置
Apache服务器采用默认配置。主目录为/home/httpd/html,主机域名为Phoenix.your.com, 且别名到www.your.com中, 并且设置srm.conf加一行别名定义如下:
Alias /pub /home/ftp/pub/
更改默认应用程序类型定义如下:
DefaultType application/octet-stream
最后在/etc/httpd/conf/access.conf中增加一项定义
Options Indexes
AllowOverride AuthConfig
order allow,deny
allow from all
注:Options Indexes允许在找不到index.html文件的情况下允许列出目录/文件列表。AllowOverride AuthConfig允许做基本的用户名和口令验证。这样的话,需要在/home/ftp/pub目录下放入.htaccess,内容如下:
[root@ pub]# more .htaccess
AuthName Branch Office Public Software Download Area
AuthType Basic
AuthUserFile /etc/.usrpasswd
require valid-user
用# htpasswd -c /etc/.usrpasswd user1 分别创建不同的允许访问/pub下文件服务的外部用户名和口令。
(2)在防火墙上配置反向代理技术.
在/etc/httpd/conf/httpd.conf 中加入 NameVirtualHost xxx.xxx.xxx.xxx # xxx.xxx.xxx.xxx ----->是防火墙外部在互联网上永久IP地址:
servername www.your.com
errorlog /var/log/httpd/error_log
transferlog /var/log/httpd/access_log
rewriteengine on
proxyrequests off
usecanonicalname off
rewriterule ^/(.*)$ http://xxx.xxx.xx.x/$1 Apache服务器的IP地址。
servername http://download.your.com/pub/
errorlog /var/log/httpd/download/error_log
transferlog /var/log/httpd/download/access_log
rewriteengine on
proxyrequests off
usecanonicalname off
rewriterule ^/(.*)$ http://xxx.xxx.xx.x/$1 同上Apache服务器的IP地址。
设置防火墙上的DNS,让download.your.com和www.your.com 都指向防火墙的外部网地址xxx.xxx.xxx.xxx。
用http://www.your.com访问主页,用http://download.your.com/pub/访问公共文件的下载区。
注:还需要在apache服务器主机上建立目录/var/log/httpd/download/,否则会出错。另外,也可以设置防火墙主机上的/home/httpd/html/index.html的属性为750来阻止访问,这是防外部用户能访问到防火墙上的Apache服务器的http://www.your.com中。
总结:Apache Server是一个非常优秀,非常棒的服务器,只要你正确配置和维护好Apache服务器,你就会感受到Apache Server 所带来的好处,同样希望你能够通过阅读本文达到理论和实践双丰收的目的。
验证你的Apache来源途径
不要以为在Google上能够搜索到合适的Apache版本。如果你需要下载最新版本的Apache,那么你最好通过一个权威的镜像站点来下载。然而,即使这样也可能有问题,事实上,曾经就有黑客入侵过apache.org官方网站。所以,采用类似PGP的工具来验证Apache的数字签名就显得尤为重要。
保持更新Apache的补丁程序
如果你安装了Apache,你就必须及时更新安全补丁。如果没有及时的更新,那你的系统很容易受到网络上那些高危病毒的攻击。幸好,有几个简便方法可以更新Apache的补丁。参考我们关于保持更新Apache补丁的文章了解更多关于Apache服务器公告列表、Linux包管理系统和RedHat操作系统更新服务的信息。
避免使用.htaccess文件(分布式配置文件)
很多情况下需要几个管理员和内容管理者共同管理Apache服务器。一个常用的共享管理办法就是使用.htaccess文件,这样可以很灵活地对管理员以外的用户提供不同的配置控制权限。然而,这些文件也使得在集中安全管理之外还有相当多的安全控制权限——这些文件允许安全专业人士以外的其他用户改变服务器的访问控制许可配置。那些对粒度访问控制根本不熟悉的用户修改的配置可能在无意中会危害到你的系统安全。所以,除非必须使用,否则我们应该尽可能地避免使用这种访问控制系统。
监视系统日志
Apache为管理员提供了很全面的日志管理工具来对服务器的活动进行事后分析。Apache提供了多种不同的记录日志,但是对安全专业人士最重要的是访问日志。这个灵活的工具还具有了相当多的自定义功能,你可以按照你的需要很方便地记录尽可能多或者少的日志,以保证有效的分析。至少,你应该记录那些失败的认证企图和系统产生的错误。使用像AWStats一样的免费工具可以很轻松地完成分析任务。但是必须明确的一点是:监视日志只是一种事后分析手段。你可以利用它回顾和判断对服务器的攻击(和攻击企图),但是希望及时查看日志来对紧急情况做出快速反应是不可能的。如果需要进行预判反应,你应该考虑使用入侵预防系统如信息安全杂志评选的2003年度最新兴技术奖得主:Lucid Security公司的ipAngel系统。
管理文件系统
我们已经讨论了使用(或不使用).htaccess文件对管理文件访问权限的重要性。禁止通过文件系统许可对Apache服务器进行非授权修改也是很重要的。特别值得一提的是,你应该保证只有根用户才能修改存储在“/usr/local/apache ”目录的文件(或者你选择的任何Apache服务器的根目录)。确保只有根用户才能修改日志文件也很关键,这样可以防止用户掩盖他们的操作。
Apache 服务器日常配置
1、如何设 置请求等待时间
在httpd.conf里面设置:
TimeOut n
其中n为整数,单位是秒。
设置这个TimeOut适用于三种情况:
2、如何接收一个get请求的总时间
接收一个post和put请求的TCP包之间的时间
TCP包传输中的响应(ack)时间间隔
3、如何使得apache监听在特定的端口
修改httpd.conf里面关于Listen的选项,例如:
Listen 8000
是使apache监听在8000端口
而如果要同时指定监听端口和监听地址,可以使用:
Listen 192.170.2.1:80
Listen 192.170.2.5:8000
这样就使得apache同时监听在192.170.2.1的80端口和192.170.2.5的8000端口。
当然也可以在httpd.conf里面设置:
Port 80
这样来实现类似的效果。
4、如何设置apache的最大空闲进程数
修改httpd.conf,在里面设置:
MaxSpareServers n
其中n是一个整数。这样当空闲进程超过n的时候,apache主进程会杀掉多余的空闲进程而保持空闲进程在n,节省了系统资源。如果在一个apache非常繁忙的站点调节这个参数才是必要的,但是在任何时候把这个参数调到很大都不是一个好主意。
同时也可以设置:
MinSpareServers n
来限制最少空闲进程数目来加快反应速度。
5、apache如何设置启动时的子服务进程个数
在httpd.conf里面设置:
StartServers 5
这样启动apache后就有5个空闲子进程等待接受请求。
也可以参考MinSpareServers和MaxSpareServers设置。
6、如何在apache中设置每个连接的最大请求数
在httpd.conf里面设置:
MaxKeepAliveRequests 100
这样就能保证在一个连接中,如果同时请求数达到100就不再响应这个连接的新请求,保证了系统资源不会被某个连接大量占用。但是在实际配置中要求尽量把这个数值调高来获得较高的系统性能。
7、如何在apache中设置session的持续时间
在apache1.2以上的版本中,可以在httpd.conf里面设置:
KeepAlive on
KeepAliveTimeout 15
这样就能限制每个session的保持时间是15秒。session的使用可以使得很多请求都可以通过同一个tcp连接来发送,节约了网络资源和系统资源。
8、如何使得apache对客户端进行域名验证
可以在httpd.conf里面设置:
HostnameLookups on off double
如果是使用on,那么只有进行一次反查,如果用double,那么进行反查之后还要进行一次正向解析,只有两次的结果互相符合才行,而off就是不进行域名验证。
如果为了安全,建议使用double;为了加快访问速度,建议使用off。
9、如何使得apache只监听在特定的ip
修改httpd.conf,在里面使用
BindAddress 192.168.0.1
这样就能使得apache只监听外界对192.168.0.1的http请求。如果使用:
BindAddress *
就表明apache监听所有网络接口上的http请求。
当然用防火墙也可以实现。
10、apache中如何限制http请求的消息主体的大小
在httpd.conf里面设置:
LimitRequestBody n
n是整数,单位是byte。cgi脚本一般把表单里面内容作为消息的主体提交给服务器处理,所以现在消息主体的大小在使用cgi的时候很有用。比如使用cgi来上传文件,如果有设置:
LimitRequestBody 102400
那么上传文件超过100k的时候就会报错。
11、如何修改apache的文档根目录
修改httpd.conf里面的DocumentRoot选项到指定的目录,比如:
DocumentRoot /www/htdocs
这样http://localhost/index.html就是对应/www/htdocs/index.html
12、如何修改apache的最大连接数
在httpd.conf中设置:
MaxClients n
n是整数,表示最大连接数,取值范围在1和256之间,如果要让apache支持更多的连接数,那么需要修改源码中的httpd.h文件,把定义的HARD_SERVER_LIMIT值改大然后再编译。
13、如何使每个用户有独立的cgi-bin目录
有两种可选择的方法:
(1)在Apache配置文件里面关于public_html的设置后面加入下面的属性:
ScriptAliasMatch ^/~([^/]*)/cgi-bin/(.*) /home/$1/cgi-bin/$2
(2)在Apache配置文件里面关于public_html的设置里面加入下面的属性:
<CENTER><ccid_nobr>
<table width="400" border="1" cellspacing="0" cellpadding="2"
bordercolorlight = "black" bordercolordark = "#FFFFFF" align="center">
<tr>
<td bgcolor="e6e6e6" class="code" style="font-size:9pt">
<pre><ccid_code>
Options ExecCGI
SetHandler cgi-script
14、如何调整Apache的最大进程数
Apache允许为请求开的最大进程数是256,MaxClients的限制是256.如果用户多了,用户就只能看到Waiting for reply....然后等到下一个可用进程的出现。这个最大数,是Apache的程序决定的--它的NT版可以有1024,但Unix版只有256,你可以在src/include/httpd.h中看到:
#ifndef HARD_SERVER_LIMIT
#ifdef WIN32
#define HARD_SERVER_LIMIT 1024
#else
#define HARD_SERVER_LIMIT 256
#endif
#endif
你可以把它调到1024,然后再编译你的系统。
15、如何屏蔽来自某个Internet地址的用户访问Apache服务器
可以使用deny和allow来限制访问,比如要禁止202.202.202.xx网络的用户访问:
order deny,allow
deny from 202.202.202.0/24
16、如何在日志里面记录apache浏览器和引用信息
你需要把mod_log_config编译到你的Apache服务器中,然后使用下面类似的配置:
CustomLog logs/access_log "%h %l %u %t "%r" %s %b "%{Referer}i" "%{User-Agent}i""
17、如何修改Apache返回的头部信息
问题分析:当客户端连接到Apache服务器的时候,Apache一般会返回服务器版本、非缺省模块等信息,例如:
Server: Apache/1.3.26 (Unix) mod_perl/1.26
解决:
你可以在Apache的配置文件里面作如下设置让它返回的关于服务器的信息减少到最少:
ServerTokens Prod
注意:
这样设置以后Apache还会返回一定的服务器信息,比如:
Server: Apache
但是这个不会对服务器安全产生太多的影响,因为很多扫描软件是扫描的时候是不顾你服务器返回的头部信息的。你如果想把服务器返回的相关信息变成:
Server: It iS a nOnE-aPaCHe Server
那么你就要去修改源码了。
主要安全缺陷
(1)使用HTTP协议进行的拒绝服务攻击(denial of service)的安全缺陷
这种方法攻击者会通过某些手段使服务器拒绝对HTTP应答。这样会使Apache对系统资源(CPU时间和内存)需求的剧增,最终造成Apache系统变慢甚至完全瘫痪。
(2)缓冲区溢出的安全缺陷
该方法攻击者利用程序编写的一些缺陷,使程序偏离正常的流程。程序使用静态分配的内存保存请求数据,攻击者就可以发送一个超长请求使缓冲区溢出。
(3)被攻击者获得root权限的安全缺陷
该安全缺陷主要是因为Apache服务器一般以root权限运行(父进程),攻击者会通过它获得root权限,进而控制整个Apache系统。
(4)恶意的攻击者进行“拒绝服务”(DoS)攻击的安全缺陷
这个最新在6月17日发现的漏洞,它主要是存在于Apache的chunk encoding中,这是一个HTTP协议定义的用于接受web用户所提交数据的功能。 所有说使用最高和最新安全版本对于加强Apache Web服务器的安全是至关重要的。
正确维护和配置Apache服务器
虽然Apache服务器的开发者非常注重安全性,由于Apache服务器其庞大的项目, 难免会存在安全隐患。正确维护和配置Apache WEB服务器就很重要了。我们应注意的一些问题:
(1)Apache服务器配置文件
Apache Web服务器主要有三个配置文件,位于/usr/local/apache/conf目录下。 这三个文件是:
httpd.conf----->主配置文件
srm.conf------>填加资源文件
access.conf--->设置文件的访问权限
(2)Apache服务器的目录安全认证
在Apache Server中是允许使用 .htaccess做目录安全保护的,欲读取这保护的目录需要先键入正确用户帐号与密码。这样可做为专门管理网页存放的目录或做为会员区等。在保护的目录放置一个档案,档名为.htaccss。
AuthName "会员专区"
AuthType "Basic"
AuthUserFile "/var/tmp/xxx.pw" ----->把password放在网站外 require valid-user 到apache/bin目录,建password档 % ./htpasswd -c /var/tmp/xxx.pw username1 ----->第一次建档要用参数"-c" % /htpasswd /var/tmp/xxx.pw username2 这样就可以保护目录内的内容,进入要用合法的用户。
注:采用了Apache内附的模组。
也可以采用在httpd.conf中加入:
options indexes followsymlinks
allowoverride authconfig
order allow,deny
allow from all
(3)Apache服务器访问控制
我们就要看三个配置文件中的第三个文件了,即access.conf文件,它包含一些指令控制允许什么用户访问Apache目录。应该把deny from all设为初始化指令,再使用allow from指令打开访问权限。
order deny,allow
deny from all
allow from safechina.net
设置允许来自某个域、IP地址或者IP段的访问。
(4)Apache服务器的密码保护问题
我们再使用.htaccess文件把某个目录的访问权限赋予某个用户。系统管理员需要在httpd.conf或者rm.conf文件中使用 AccessFileName指令打开目录的访问控制。如:
AuthName PrivateFiles
AuthType Basic
AuthUserFile /path/to/httpd/users
require Phoenix
# htpasswd -c /path/to/httpd/users Phoenix
设置Apache服务器的WEB和文件服务器
我们在Apache服务器上存放WEB服务器的文件,供用户访问,并设置/home/ftp/pub目录为文件存放区域,用http://download.your.com/pub/来访问。在防火墙上设置apache反向代理技术,由防火墙代理访问。
(1)Apache服务器的设置
Apache服务器采用默认配置。主目录为/home/httpd/html,主机域名为Phoenix.your.com, 且别名到www.your.com中, 并且设置srm.conf加一行别名定义如下:
Alias /pub /home/ftp/pub/
更改默认应用程序类型定义如下:
DefaultType application/octet-stream
最后在/etc/httpd/conf/access.conf中增加一项定义
Options Indexes
AllowOverride AuthConfig
order allow,deny
allow from all
注:Options Indexes允许在找不到index.html文件的情况下允许列出目录/文件列表。AllowOverride AuthConfig允许做基本的用户名和口令验证。这样的话,需要在/home/ftp/pub目录下放入.htaccess,内容如下:
[root@ pub]# more .htaccess
AuthName Branch Office Public Software Download Area
AuthType Basic
AuthUserFile /etc/.usrpasswd
require valid-user
用# htpasswd -c /etc/.usrpasswd user1 分别创建不同的允许访问/pub下文件服务的外部用户名和口令。
(2)在防火墙上配置反向代理技术.
在/etc/httpd/conf/httpd.conf 中加入 NameVirtualHost xxx.xxx.xxx.xxx # xxx.xxx.xxx.xxx ----->是防火墙外部在互联网上永久IP地址:
servername www.your.com
errorlog /var/log/httpd/error_log
transferlog /var/log/httpd/access_log
rewriteengine on
proxyrequests off
usecanonicalname off
rewriterule ^/(.*)$ http://xxx.xxx.xx.x/$1 Apache服务器的IP地址。
servername http://download.your.com/pub/
errorlog /var/log/httpd/download/error_log
transferlog /var/log/httpd/download/access_log
rewriteengine on
proxyrequests off
usecanonicalname off
rewriterule ^/(.*)$ http://xxx.xxx.xx.x/$1 同上Apache服务器的IP地址。
设置防火墙上的DNS,让download.your.com和www.your.com 都指向防火墙的外部网地址xxx.xxx.xxx.xxx。
用http://www.your.com访问主页,用http://download.your.com/pub/访问公共文件的下载区。
注:还需要在apache服务器主机上建立目录/var/log/httpd/download/,否则会出错。另外,也可以设置防火墙主机上的/home/httpd/html/index.html的属性为750来阻止访问,这是防外部用户能访问到防火墙上的Apache服务器的http://www.your.com中。
总结:Apache Server是一个非常优秀,非常棒的服务器,只要你正确配置和维护好Apache服务器,你就会感受到Apache Server 所带来的好处,同样希望你能够通过阅读本文达到理论和实践双丰收的目的。
验证你的Apache来源途径
不要以为在Google上能够搜索到合适的Apache版本。如果你需要下载最新版本的Apache,那么你最好通过一个权威的镜像站点来下载。然而,即使这样也可能有问题,事实上,曾经就有黑客入侵过apache.org官方网站。所以,采用类似PGP的工具来验证Apache的数字签名就显得尤为重要。
保持更新Apache的补丁程序
如果你安装了Apache,你就必须及时更新安全补丁。如果没有及时的更新,那你的系统很容易受到网络上那些高危病毒的攻击。幸好,有几个简便方法可以更新Apache的补丁。参考我们关于保持更新Apache补丁的文章了解更多关于Apache服务器公告列表、Linux包管理系统和RedHat操作系统更新服务的信息。
避免使用.htaccess文件(分布式配置文件)
很多情况下需要几个管理员和内容管理者共同管理Apache服务器。一个常用的共享管理办法就是使用.htaccess文件,这样可以很灵活地对管理员以外的用户提供不同的配置控制权限。然而,这些文件也使得在集中安全管理之外还有相当多的安全控制权限——这些文件允许安全专业人士以外的其他用户改变服务器的访问控制许可配置。那些对粒度访问控制根本不熟悉的用户修改的配置可能在无意中会危害到你的系统安全。所以,除非必须使用,否则我们应该尽可能地避免使用这种访问控制系统。
监视系统日志
Apache为管理员提供了很全面的日志管理工具来对服务器的活动进行事后分析。Apache提供了多种不同的记录日志,但是对安全专业人士最重要的是访问日志。这个灵活的工具还具有了相当多的自定义功能,你可以按照你的需要很方便地记录尽可能多或者少的日志,以保证有效的分析。至少,你应该记录那些失败的认证企图和系统产生的错误。使用像AWStats一样的免费工具可以很轻松地完成分析任务。但是必须明确的一点是:监视日志只是一种事后分析手段。你可以利用它回顾和判断对服务器的攻击(和攻击企图),但是希望及时查看日志来对紧急情况做出快速反应是不可能的。如果需要进行预判反应,你应该考虑使用入侵预防系统如信息安全杂志评选的2003年度最新兴技术奖得主:Lucid Security公司的ipAngel系统。
管理文件系统
我们已经讨论了使用(或不使用).htaccess文件对管理文件访问权限的重要性。禁止通过文件系统许可对Apache服务器进行非授权修改也是很重要的。特别值得一提的是,你应该保证只有根用户才能修改存储在“/usr/local/apache ”目录的文件(或者你选择的任何Apache服务器的根目录)。确保只有根用户才能修改日志文件也很关键,这样可以防止用户掩盖他们的操作。
Apache 服务器日常配置
1、如何设 置请求等待时间
在httpd.conf里面设置:
TimeOut n
其中n为整数,单位是秒。
设置这个TimeOut适用于三种情况:
2、如何接收一个get请求的总时间
接收一个post和put请求的TCP包之间的时间
TCP包传输中的响应(ack)时间间隔
3、如何使得apache监听在特定的端口
修改httpd.conf里面关于Listen的选项,例如:
Listen 8000
是使apache监听在8000端口
而如果要同时指定监听端口和监听地址,可以使用:
Listen 192.170.2.1:80
Listen 192.170.2.5:8000
这样就使得apache同时监听在192.170.2.1的80端口和192.170.2.5的8000端口。
当然也可以在httpd.conf里面设置:
Port 80
这样来实现类似的效果。
4、如何设置apache的最大空闲进程数
修改httpd.conf,在里面设置:
MaxSpareServers n
其中n是一个整数。这样当空闲进程超过n的时候,apache主进程会杀掉多余的空闲进程而保持空闲进程在n,节省了系统资源。如果在一个apache非常繁忙的站点调节这个参数才是必要的,但是在任何时候把这个参数调到很大都不是一个好主意。
同时也可以设置:
MinSpareServers n
来限制最少空闲进程数目来加快反应速度。
5、apache如何设置启动时的子服务进程个数
在httpd.conf里面设置:
StartServers 5
这样启动apache后就有5个空闲子进程等待接受请求。
也可以参考MinSpareServers和MaxSpareServers设置。
6、如何在apache中设置每个连接的最大请求数
在httpd.conf里面设置:
MaxKeepAliveRequests 100
这样就能保证在一个连接中,如果同时请求数达到100就不再响应这个连接的新请求,保证了系统资源不会被某个连接大量占用。但是在实际配置中要求尽量把这个数值调高来获得较高的系统性能。
7、如何在apache中设置session的持续时间
在apache1.2以上的版本中,可以在httpd.conf里面设置:
KeepAlive on
KeepAliveTimeout 15
这样就能限制每个session的保持时间是15秒。session的使用可以使得很多请求都可以通过同一个tcp连接来发送,节约了网络资源和系统资源。
8、如何使得apache对客户端进行域名验证
可以在httpd.conf里面设置:
HostnameLookups on off double
如果是使用on,那么只有进行一次反查,如果用double,那么进行反查之后还要进行一次正向解析,只有两次的结果互相符合才行,而off就是不进行域名验证。
如果为了安全,建议使用double;为了加快访问速度,建议使用off。
9、如何使得apache只监听在特定的ip
修改httpd.conf,在里面使用
BindAddress 192.168.0.1
这样就能使得apache只监听外界对192.168.0.1的http请求。如果使用:
BindAddress *
就表明apache监听所有网络接口上的http请求。
当然用防火墙也可以实现。
10、apache中如何限制http请求的消息主体的大小
在httpd.conf里面设置:
LimitRequestBody n
n是整数,单位是byte。cgi脚本一般把表单里面内容作为消息的主体提交给服务器处理,所以现在消息主体的大小在使用cgi的时候很有用。比如使用cgi来上传文件,如果有设置:
LimitRequestBody 102400
那么上传文件超过100k的时候就会报错。
11、如何修改apache的文档根目录
修改httpd.conf里面的DocumentRoot选项到指定的目录,比如:
DocumentRoot /www/htdocs
这样http://localhost/index.html就是对应/www/htdocs/index.html
12、如何修改apache的最大连接数
在httpd.conf中设置:
MaxClients n
n是整数,表示最大连接数,取值范围在1和256之间,如果要让apache支持更多的连接数,那么需要修改源码中的httpd.h文件,把定义的HARD_SERVER_LIMIT值改大然后再编译。
13、如何使每个用户有独立的cgi-bin目录
有两种可选择的方法:
(1)在Apache配置文件里面关于public_html的设置后面加入下面的属性:
ScriptAliasMatch ^/~([^/]*)/cgi-bin/(.*) /home/$1/cgi-bin/$2
(2)在Apache配置文件里面关于public_html的设置里面加入下面的属性:
<CENTER><ccid_nobr>
<table width="400" border="1" cellspacing="0" cellpadding="2"
bordercolorlight = "black" bordercolordark = "#FFFFFF" align="center">
<tr>
<td bgcolor="e6e6e6" class="code" style="font-size:9pt">
<pre><ccid_code>
Options ExecCGI
SetHandler cgi-script
14、如何调整Apache的最大进程数
Apache允许为请求开的最大进程数是256,MaxClients的限制是256.如果用户多了,用户就只能看到Waiting for reply....然后等到下一个可用进程的出现。这个最大数,是Apache的程序决定的--它的NT版可以有1024,但Unix版只有256,你可以在src/include/httpd.h中看到:
#ifndef HARD_SERVER_LIMIT
#ifdef WIN32
#define HARD_SERVER_LIMIT 1024
#else
#define HARD_SERVER_LIMIT 256
#endif
#endif
你可以把它调到1024,然后再编译你的系统。
15、如何屏蔽来自某个Internet地址的用户访问Apache服务器
可以使用deny和allow来限制访问,比如要禁止202.202.202.xx网络的用户访问:
order deny,allow
deny from 202.202.202.0/24
16、如何在日志里面记录apache浏览器和引用信息
你需要把mod_log_config编译到你的Apache服务器中,然后使用下面类似的配置:
CustomLog logs/access_log "%h %l %u %t "%r" %s %b "%{Referer}i" "%{User-Agent}i""
17、如何修改Apache返回的头部信息
问题分析:当客户端连接到Apache服务器的时候,Apache一般会返回服务器版本、非缺省模块等信息,例如:
Server: Apache/1.3.26 (Unix) mod_perl/1.26
解决:
你可以在Apache的配置文件里面作如下设置让它返回的关于服务器的信息减少到最少:
ServerTokens Prod
注意:
这样设置以后Apache还会返回一定的服务器信息,比如:
Server: Apache
但是这个不会对服务器安全产生太多的影响,因为很多扫描软件是扫描的时候是不顾你服务器返回的头部信息的。你如果想把服务器返回的相关信息变成:
Server: It iS a nOnE-aPaCHe Server
那么你就要去修改源码了。
不用改文件名 防止IIS文件被下载方法
[ 2007-03-25 02:49:16 | 作者: sun ]
如何才能防止encry目录下的所有文件被非法下载呢?我们可以应用IIS中的应用程序映射结合ASP.NET中的IHttpHandler自定义权限,把IIS应用程序映射用于所有文件,并将控制权交给我们自己实现的IHttpHandler
首先添加应用程序映射:打开IIS管理器->右击我们要控制下载的站点->在属性对话框中“配置...”,将文件改为你自己.netFramework ASPnet_isapi.dll的路径。
然后修改web.config,在system.web下添加httpHandlers项,
<system.web>
...
<httpHandlers>
<add verb="*" path="encry/*.*" type="CustomHttpHandler.Class1,CustomHttpHandler"></add>
</httpHandlers>
...
</system.web>
下面来实现IHttpHandler
//------------------------file:Class1.cs---------
using System;
using System.Web;
namespace CustomHttpHandler
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
public class Class1 : System.Web.IHttpHandler
{
public Class1()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
#region IHttpHandler 成员
public void ProcessRequest(HttpContext context)
{
// TODO: 添加 Class1.ProcessRequest 实现
// string strRefUrl=context.Request.ServerVariables["HTTP_REFERER"];
/*插入您自己的代码,读文件内容并填充Response,该例仅简单返回一条错误信息*/
context.Response.Write("您无法访问该页");
}
public bool IsReusable
{
get
{
// TODO: 添加 Class1.IsReusable getter 实现
return false;
}
}
#endregion
}
}
首先添加应用程序映射:打开IIS管理器->右击我们要控制下载的站点->在属性对话框中“配置...”,将文件改为你自己.netFramework ASPnet_isapi.dll的路径。
然后修改web.config,在system.web下添加httpHandlers项,
<system.web>
...
<httpHandlers>
<add verb="*" path="encry/*.*" type="CustomHttpHandler.Class1,CustomHttpHandler"></add>
</httpHandlers>
...
</system.web>
下面来实现IHttpHandler
//------------------------file:Class1.cs---------
using System;
using System.Web;
namespace CustomHttpHandler
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
public class Class1 : System.Web.IHttpHandler
{
public Class1()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
#region IHttpHandler 成员
public void ProcessRequest(HttpContext context)
{
// TODO: 添加 Class1.ProcessRequest 实现
// string strRefUrl=context.Request.ServerVariables["HTTP_REFERER"];
/*插入您自己的代码,读文件内容并填充Response,该例仅简单返回一条错误信息*/
context.Response.Write("您无法访问该页");
}
public bool IsReusable
{
get
{
// TODO: 添加 Class1.IsReusable getter 实现
return false;
}
}
#endregion
}
}
识别文本文件型邮件附件欺骗方法
[ 2007-03-25 02:49:04 | 作者: sun ]
在众多媒体的宣传报道下,今天的我们都知道了不能轻易打开电子邮件里的可执行文件类的附件,但是显然那些破坏活动的制造者们也看了那些警告防范的文章,他们开始玩一些新的把戏,让您以为那些附件只不过是没有危险的文本文件或是图像文件等就是其手段之一。由于目前大多数人使用的是windows系列操作系统,windows的默认设置是隐藏已知文件扩展名的,而当你去点击那个看上去很友善的文件,那些破坏性的东西就跳出来了。您可能说这我早就知道了,那么下面讲述的.txt文件的新欺骗方法及原理您知道吗?
假如您收到的邮件附件中有一个看起来是这样的文件:QQ靓号放送.txt,您是不是认为它肯定是纯文本文件?我要告诉您,不一定!它的实际文件名可以是QQ靓号放送.txt.{3050F4D8-98B5-11CF-BB82-00AA00BDCE0B}。{3050F4D8-98B5-11CF-BB82-00AA00BDCE0B}在注册表里是HTML文件关联的意思。但是存成文件名的时候它并不会显现出来,您看到的就是个.txt文件,这个文件实际上等同于QQ靓号放送.txt.html。那么直接打开这个文件为什么有危险呢?请看如果这个文件的内容如下:
您可能以为它会调用记事本来运行,可是如果您双击它,结果它却调用了HTML来运行,并且自动在后台开始格式化d盘,同时显示“Windows is configuring the system。Plase do not interrupt this process。”这样一个对话框来欺骗您。您看随意打开附件中的.txt的危险够大了吧?
欺骗实现原理:当您双击这个伪装起来的.txt时候,由于真正文件扩展名是.{3050F4D8-98B5-11CF-BB82-00AA00BDCE0B},也就是.html文件,于是就会以html文件的形式运行,这是它能运行起来的先决条件。
文件内容中的第2和第3行是它能够产生破坏作用的关键所在。其中第3行是破坏行动的执行者,在其中可以加载带有破坏性质的命令。那么第2行又是干什么的呢?您可能已经注意到了第2行里的“WSCript”,对!就是它导演了全幕,它是实际行动总指挥。
WScript全称Windows Scripting Host,它是Win98新加进的功能, 是一种批次语言/自动执行工具——它所对应的程序“WScript.exe”是一个脚本语言解释器,位于c:WINDOWS下,正是它使得脚本可以被执行,就象执行批处理一样。在Windows Scripting Host脚本环境里,预定义了一些对象,通过它自带的几个内置对象,可以实现获取环境变量、创建快捷方式、加载程序、读写注册表等功能。
假如您收到的邮件附件中有一个看起来是这样的文件:QQ靓号放送.txt,您是不是认为它肯定是纯文本文件?我要告诉您,不一定!它的实际文件名可以是QQ靓号放送.txt.{3050F4D8-98B5-11CF-BB82-00AA00BDCE0B}。{3050F4D8-98B5-11CF-BB82-00AA00BDCE0B}在注册表里是HTML文件关联的意思。但是存成文件名的时候它并不会显现出来,您看到的就是个.txt文件,这个文件实际上等同于QQ靓号放送.txt.html。那么直接打开这个文件为什么有危险呢?请看如果这个文件的内容如下:
您可能以为它会调用记事本来运行,可是如果您双击它,结果它却调用了HTML来运行,并且自动在后台开始格式化d盘,同时显示“Windows is configuring the system。Plase do not interrupt this process。”这样一个对话框来欺骗您。您看随意打开附件中的.txt的危险够大了吧?
欺骗实现原理:当您双击这个伪装起来的.txt时候,由于真正文件扩展名是.{3050F4D8-98B5-11CF-BB82-00AA00BDCE0B},也就是.html文件,于是就会以html文件的形式运行,这是它能运行起来的先决条件。
文件内容中的第2和第3行是它能够产生破坏作用的关键所在。其中第3行是破坏行动的执行者,在其中可以加载带有破坏性质的命令。那么第2行又是干什么的呢?您可能已经注意到了第2行里的“WSCript”,对!就是它导演了全幕,它是实际行动总指挥。
WScript全称Windows Scripting Host,它是Win98新加进的功能, 是一种批次语言/自动执行工具——它所对应的程序“WScript.exe”是一个脚本语言解释器,位于c:WINDOWS下,正是它使得脚本可以被执行,就象执行批处理一样。在Windows Scripting Host脚本环境里,预定义了一些对象,通过它自带的几个内置对象,可以实现获取环境变量、创建快捷方式、加载程序、读写注册表等功能。