黑客攻防教学_黑客攻防素材视频教程网

hacker|
131

《黑客免杀攻防》epub下载在线阅读全文,求百度网盘云资源

《黑客免杀攻防》(任晓珲)电子书网盘下载免费在线阅读

链接:

提取码:CNOX  

书名:黑客免杀攻防

豆瓣评分:8.0

作者: 任晓珲

出版社: 机械工业出版社

出版年: 2013-9-1

页数: 444

内容简介

《黑客免杀攻防》国内首部关于黑客免杀技术的专著,旨在为反病毒工程师剖析各种恶意软件和应对各种安全威胁提供全面指导。不仅从攻击者(黑客)的视角全方位揭示了黑客免杀技术的常用 *** 、常用技术和思想原理,还从防御者(反病毒工程师)的视角深入讲解了遏制免杀技术的具体 *** 策略。从纯技术的角度讲,本书不仅详细讲解了免杀技术的各种细节和 *** ,还详细讲解了PE文件、逆向工程、C++壳的编写、免杀壳的打造、脱壳、Rootkit等安全技术的细节。

作者简介

任晓珲,资深安全技术工程师,华章“信息安全技术丛书”专家顾问,致力于免杀技术和反病毒技术的实践。对软件安全、逆向工程、Rootkit、加壳与脱壳等技术有较深入的研究和理解,积累了丰富的经验。北京蓝森科技有限公司创始人,黑客反病毒论坛创始人,邪恶八进制团队成员,资深培训讲师,国内知名信息安全培训品牌15PB的创始人。目前专注于计算机安全的中高端培训。

哪有关于黑客攻击与防护措施及解决方案的 *** 书籍?

中华军威黑客基地 如果你要去学习 我可以免费送你个邀请码概括来说, *** 安全课程的主要内容包括:

l 安全基本知识

l 应用加密学

l 协议层安全

l Windows安全(攻击与防御)

l Unix/Linux安全(攻击与防御)

l 防火墙技术

l 入侵监测系统

l 审计和日志分析

下面分别对每部分知识介绍相应的具体内容和一些参考书(正像前面提到的那样,有时间、有条件的话,这些书都应该看至少一遍)。

一、安全基本知识

这部分的学习过程相对容易些,可以花相对较少的时间来完成。这部分的内容包括:安全的概念和定义、常见的安全标准等。

大部分关于 *** 安全基础的书籍都会有这部分内容的介绍。

下面推荐一些和这部分有关的参考书:

l 《CIW:安全专家全息教程》 魏巍 等译,电子工业出版社

l 《计算机系统安全》 曹天杰,高等教育出版社

l 《计算机 *** 安全导论》 龚俭,东南大学出版社

二、应用加密学

加密学是现代计算机( *** )安全的基础,没有加密技术,任何 *** 安全都是一纸空谈。

加密技术的应用决不简单地停留在对数据的加密、解密上。密码学除了可以实现数据保密性外、它还可以完成数据完整性校验、用户身份认证、数字签名等功能。

以加密学为基础的PKI(公钥基础设施)是信息安全基础设施的一个重要组成部分,是一种普遍适用的 *** 安全基础设施。授权管理基础设施、可信时间戳服务系统、安全保密管理系统、统一的安全电子政务平台等的构筑都离不开它的支持。

可以说,加密学的应用贯穿了整个 *** 安全的学习过程中。因为之前大多数人没有接触过在这方面的内容,这是个弱项、软肋,所以需要花费比其它部分更多的时间和精力来学习。也需要参考更多的参考书。

下面推荐一些和这部分有关的参考书:

l 《密码学》 宋震,万水出版社

l 《密码工程实践指南》 冯登国 等译,清华大学出版社

l 《秘密学导引》 吴世忠 等译,机械工业(这本书内容较深,不必完全阅读,可作为参考)

三、协议层安全

系统学习TCP/IP方面的知识有很多原因。要适当地实施防火墙过滤,安全管理员必须对于TCP/IP的IP层和TCP/UDP层有很深的理解、黑客经常使用TCP/IP堆栈中一部分区或来破坏 *** 安全等。所以你也必须清楚地了解这些内容。

协议层安全主要涉及和TCP/IP分层模型有关的内容,包括常见协议的工作原理和特点、缺陷、保护或替代措施等等。

下面推荐一些和这部分有关的参考书(经典书籍、不可不看):

l 《TCP/IP详解 卷1:协议》 范建华 等译,机械工业出版社

l 《用TCP/IP进行网际互联 之一卷原理、协议与结构》 林瑶 等译,电子工业出版社

四、Windows安全(攻击与防御)

因为微软的Windows NT操作系统已被广泛应用,所以它们更容易成为被攻击的目标。

对于Windows安全的学习,其实就是对Windows系统攻击与防御技术的学习。而Windows系统安全的学习内容将包括:用户和组、文件系统、策略、系统默认值、审计以及操作系统本身的漏洞的研究。

这部分的参考书较多,实际上任何一本和Windows攻防有关系的书均可。下面推荐一些和这部分有关的参考书:

l 《黑客攻防实战入门》 邓吉,电子工业出版社

l 《黑客大曝光》 杨继张 等译,清华大学出版社

l 《狙击黑客》 宋震 等译,电子工业出版社

五、Unix/Linux安全(攻击与防御)

随着Linux的市占率越来越高,Linux系统、服务器也被部署得越来越广泛。Unix/Linux系统的安全问题也越来越凸现出来。作为一个 *** 安全工作者,Linux安全绝对占有 *** 安全一半的重要性。但是相对Windows系统,普通用户接触到Linux系统的机会不多。Unix/Linux系统本身的学习也是他们必须饿补的一课!

下面是推荐的一套Linux系统管理的参考书。

l 《Red Hat Linux 9桌面应用》 梁如军,机械工业出版社(和 *** 安全关系不大,可作为参考)

l 《Red Hat Linux 9系统管理》 金洁珩,机械工业出版社

l 《Red Hat Linux 9 *** 服务》 梁如军,机械工业出版社

除了Unix/Linux系统管理相关的参考书外,这里还给出两本和安全相关的书籍。

l 《Red Hat Linux安全与优化》 邓少鹍,万水出版社

l 《Unix 黑客大曝光》 王一川 译,清华大学出版社

六、防火墙技术

防火墙技术是 *** 安全中的重要元素,是外网与内网进行通信时的一道屏障,一个哨岗。除了应该深刻理解防火墙技术的种类、工作原理之外,作为一个 *** 安全的管理人员还应该熟悉各种常见的防火墙的配置、维护。

至少应该了解以下防火墙的简单配置。

l 常见的各种个人防火墙软件的使用

l 基于ACL的包过滤防火墙配置(如基于Windows的IPSec配置、基于Cisco路由器的ACL配置等)

l 基于Linux操作系统的防火墙配置(Ipchains/Iptables)

l ISA配置

l Cisco PIX配置

l Check Point防火墙配置

l 基于Windows、Unix、Cisco路由器的VPN配置

下面推荐一些和这部分有关的参考书:

l 《

*** 安全与防火墙技术

》 楚狂,人民邮电出版社

l 《Linux防火墙》

余青霓

译,人民邮电出版社

l 《高级防火墙ISA Server 2000》 李静安,中国铁道出版社

l 《Cisco访问表配置指南》 前导工作室 译,机械工业出版社

l 《Check Point NG安全管理》

王东霞

译,机械工业出版社

l 《虚拟专用网(VPN)精解》 王达,清华大学出版社

七、入侵监测系统(IDS)

防火墙不能对所有应用层的数据包进行分析,会成为 *** 数据通讯的瓶颈。既便是 *** 型防火墙也不能检查所有应用层的数据包。

入侵检测是防火墙的合理补充,它通过收集、分析计算机系统、计算机 *** 介质上的各种有用信息帮助系统管理员发现攻击并进行响应。可以说入侵检测是防火墙之后的第二道安全闸门,在不影响 *** 性能的情况下能对 *** 进行监测,从而提供对内部攻击、外部攻击和误操作的实时保护。

IDS提供了主动的 *** 保护,它能够自动探测 *** 流量中可能涉及潜在入侵、攻击和滥用的模式。随着各种商业入侵检测系统的部署,IDS逐渐成为 *** 安全不可或缺的元素之一。

在各种著名的入侵检测系统中,Snort以其免费、公开源代码和高效运行的特点获得了广泛的应用。同时,也成为学习入侵检测系统的首选。

建议有条件的朋友更好能在Linux系统上部署、维护运行一段时间的Snort以期获得宝贵的实践经验。

下面推荐一些和这部分有关的参考书:

l 《入侵检测系统及实例剖析》 韩东海,清华大学出版社

l 《Snort 2.0入侵检测》 宋劲松 等译,国防工业出版社

l 《Snort 入侵检测实用解决方案》 吴溥峰 机械工业出版社

八、审计和日志分析 日志分析是审计的重要手段。在一个 *** 安全系统中存在着各种日志:操作系统(Windows、Unix)日志、服务器日志(IIS、BIND… …)、防火墙系统日志、入侵检测系统日志、拨号服务器日志等等。因此,对于如何维护日志系统的学习实际上是融入到操作系统以及防火墙、IDS的学习过程中的。

相关的参考资料也在前面已经列出,这里不再重复。

前面谈了 *** 安全领域的各个知识方面,有了这些具体的学习目标,接下来就是集中精力、个个击破了。

具体的学习 *** 是:读书+实践。

首先,看书是必须的。想要在 *** 安全实践的过程中知其然、知其所以然,就必须牢固掌握书本上的理论知识。尤其是对于加密学这样的比较抽象的章节更是如此。每个人的看书习惯都不相同,如果觉得自己看书的收效不高,可以试试采用下面的 *** :第1遍,略读(快速了解某个章节的内容);第2遍,细读(认真、仔细阅读某个章节的每段文字);第3遍,通读(完全阅读某个章节,并记下重点、难点,之后再重点看这些)。

其次,是动手实践(实验)。对于 *** 安全来说,不能只停留在理论(纸上谈兵),重点应该放在实践上。

对于实验内容可以分别针对上面的 *** 安全的每一部分的内容(PGP、SSL、SSH、IPSEC、IPTABLES、ACL、VPN、PIX、ISA、SNORT… …)来进行实验。对于实验环境,建议采用Windows 2000(2003)Server+Linux RedHat 9(FC3、4)(VMWare)这种实验环境模式。采用这种模式可以完全实现上述各种实验的需求。

同时需要指出,如果Linux的基础比较差,需要多进行和Linux相关的实验,至少应该有能力安装Linux、配置Linux上的各种服务。

最后,对于学习过程中遇到的问题。建议通过查阅书籍、搜索引擎,这样有利于锻炼自己独立实际解决问题的能力。而高效解决实际问题也是对 *** 安全管理人员能力的更大考验。

黑客攻防的过滤网关防护

这里,过滤网关主要指明防火墙,当然路由器也能成为过滤网关。防火墙部署在不同 *** 之间,防范外来非法攻击和防止保密信息外泄,它处于客户端和服务器之间,利用它来防护SYN攻击能起到很好的效果。过滤网关防护主要包括超时设置,SYN网关和SYN *** 三种。

·网关超时设置:

防火墙设置SYN转发超时参数(状态检测的防火墙可在状态表里面设置),该参数远小于服务器的timeout时间。当客户端发送完SYN包,服务端发送确认包后(SYN+ACK),防火墙如果在计数器到期时还未收到客户端的确认包(ACK),则往服务器发送RST包,以使服务器从队列中删去该半连接。值得注意的是,网关超时参数设置不宜过小也不宜过大,超时参数设置过小会影响正常的通讯,设置太大,又会影响防范SYN攻击的效果,必须根据所处的 *** 应用环境来设置此参数。

·SYN网关:

SYN网关收到客户端的SYN包时,直接转发给服务器;SYN网关收到服务器的SYN/ACK包后,将该包转发给客户端,同时以客户端的名义给服务器发ACK确认包。此时服务器由半连接状态进入连接状态。当客户端确认包到达时,如果有数据则转发,否则丢弃。事实上,服务器除了维持半连接队列外,还要有一个连接队列,如果发生SYN攻击时,将使连接队列数目增加,但一般服务器所能承受的连接数量比半连接数量大得多,所以这种 *** 能有效地减轻对服务器的攻击。

·SYN *** :

当客户端SYN包到达过滤网关时,SYN *** 并不转发SYN包,而是以服务器的名义主动回复SYN/ACK包给客户,如果收到客户的ACK包,表明这是正常的访问,此时防火墙向服务器发送ACK包并完成三次握手。SYN *** 事实上代替了服务器去处理SYN攻击,此时要求过滤网关自身具有很强的防范SYN攻击能力。

2、加固tcp/ip协议栈防范SYN攻击的另一项主要技术是调整tcp/ip协议栈,修改tcp协议实现。主要 *** 有SynAttackProtect保护机制、SYN cookies技术、增加更大半连接和缩短超时时间等。tcp/ip协议栈的调整可能会引起某些功能的受限,管理员应该在进行充分了解和测试的前提下进行此项工作。otect机制

为防范SYN攻击,Windows2000系统的tcp/ip协议栈内嵌了SynAttackProtect机制,Win2003系统也采用此机制。SynAttackProtect机制是通过关闭某些socket选项,增加额外的连接指示和减少超时时间,使系统能处理更多的SYN连接,以达到防范SYN攻击的目的。默认情况下,Windows2000操作系统并不支持SynAttackProtect保护机制,需要在注册表以下位置增加SynAttackProtect键值:

HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

当SynAttackProtect值(如无特别说明,本文提到的注册表键值都为十六进制)为0或不设置时,系统不受SynAttackProtect保护。

当SynAttackProtect值为1时,系统通过减少重传次数和延迟未连接时路由缓冲项(route cache entry)防范SYN攻击。

当SynAttackProtect值为2时(Microsoft推荐使用此值),系统不仅使用backlog队列,还使用附加的半连接指示,以此来处理更多的SYN连接,使用此键值时,tcp/ip的TCPInitialRTT、window size和可滑动窗囗将被禁止。

我们应该知道,平时,系统是不启用SynAttackProtect机制的,仅在检测到SYN攻击时,才启用,并调整tcp/ip协议栈。那么系统是如何检测SYN攻击发生的呢?事实上,系统根据TcpMaxHalfOpen,TcpMaxHalfOpenRetried 和TcpMaxPortsExhausted三个参数判断是否遭受SYN攻击。

TcpMaxHalfOpen 表示能同时处理的更大半连接数,如果超过此值,系统认为正处于SYN攻击中。Windows2000 server默认值为100,Windows2000 Advanced server为500。

TcpMaxHalfOpenRetried定义了保存在backlog队列且重传过的半连接数,如果超过此值,系统自动启动SynAttackProtect机制。Windows2000 server默认值为80,Windows2000 Advanced server为400。

TcpMaxPortsExhausted 是指系统拒绝的SYN请求包的数量,默认是5。

如果想调整以上参数的默认值,可以在注册表里修改(位置与SynAttackProtect相同)

· SYN cookies技术

我们知道,TCP协议开辟了一个比较大的内存空间backlog队列来存储半连接条目,当SYN请求不断增加,并这个空间,致使系统丢弃SYN连接。为使半连接队列被塞满的情况下,服务器仍能处理新到的SYN请求,SYN cookies技术被设计出来。

SYN cookies应用于linux、FreeBSD等操作系统,当半连接队列满时,SYNcookies并不丢弃SYN请求,而是通过加密技术来标识半连接状态。

在TCP实现中,当收到客户端的SYN请求时,服务器需要回复SYN+ACK包给客户端,客户端也要发送确认包给服务器。通常,服务器的初始序列号由服务器按照一定的规律计算得到或采用随机数,但在SYN cookies中,服务器的初始序列号是通过对客户端IP地址、客户端端囗、服务器IP地址和服务器端囗以及其他一些安全数值等要素进行hash运算,加密得到的,称之为cookie。当服务器遭受SYN攻击使得backlog队列满时,服务器并不拒绝新的SYN请求,而是回复cookie(回复包的SYN序列号)给客户端, 如果收到客户端的ACK包,服务器将客户端的ACK序列号减去1得到cookie比较值,并将上述要素进行一次hash运算,看看是否等于此cookie。如果相等,直接完成三次握手(注意:此时并不用查看此连接是否属于backlog队列)。

在RedHat linux中,启用SYN cookies是通过在启动环境中设置以下命令来完成:

# echo 1 ?? /proc/sys/net/ipv4/tcp_syncookies

· 增加更大半连接数

大量的SYN请求导致未连接队列被塞满,使正常的TCP连接无法顺利完成三次握手,通过增大未连接队列空间可以缓解这种压力。当然backlog队列需要占用大量的内存资源,不能被无限的扩大。

Windows2000:除了上面介绍的TcpMaxHalfOpen, TcpMaxHalfOpenRetried参数外,Windows2000操作系统可以通过设置动态backlog(dynamic backlog)来增大系统所能容纳的更大半连接数,配置动态backlog由AFD.SYS驱动完成,AFD.SYS是一种内核级的驱动,用于支持基于window socket的应用程序,比如ftp、telnet等。AFD.SYS在注册表的位置:

HKLM\System\CurrentControlSet\Services\AFD\Parameters\EnableDynamicBacklog值为1时,表示启用动态backlog,可以修改更大半连接数。

MinimumDynamicBacklog表示半连接队列为单个TCP端囗分配的最小空闲连接数,当该TCP端囗在backlog队列的空闲连接小于此临界值时,系统为此端囗自动启用扩展的空闲连接(DynamicBacklogGrowthDelta),Microsoft推荐该值为20。

MaximumDynamicBacklog是当前活动的半连接和空闲连接的和,当此和超过某个临界值时,系统拒绝SYN包,Microsoft推荐MaximumDynamicBacklog值不得超过2000。

DynamicBacklogGrowthDelta值是指扩展的空闲连接数,此连接数并不计算在MaximumDynamicBacklog内,当半连接队列为某个TCP端囗分配的空闲连接小于MinimumDynamicBacklog时,系统自动分配DynamicBacklogGrowthDelta所定义的空闲连接空间,以使该TCP端囗能处理更多的半连接。Microsoft推荐该值为10。

LINUX:Linux用变量tcp_max_syn_backlog定义backlog队列容纳的更大半连接数。在Redhat 7.3中,该变量的值默认为256,这个值是远远不够的,一次强度不大的SYN攻击就能使半连接队列占满。我们可以通过以下命令修改此变量的值:

# sysctl -w net.ipv4.tcp_max_syn_backlog=`2048`

Sun Solaris Sun Solaris用变量tcp_conn_req_max_q0来定义更大半连接数,在Sun Solaris 8中,该值默认为1024,可以通过add命令改变这个值:

# ndd -set /dev/tcp tcp_conn_req_max_q0 2048

HP-UX:HP-UX用变量tcp_syn_rcvd_max来定义更大半连接数,在HP-UX 11.00中,该值默认为500,可以通过ndd命令改变默认值:

#ndd -set /dev/tcp tcp_syn_rcvd_max 2048

·缩短超时时间

上文提到,通过增大backlog队列能防范SYN攻击;另外减少超时时间也使系统能处理更多的SYN请求。我们知道,timeout超时时间,也即半连接存活时间,是系统所有重传次数等待的超时时间总和,这个值越大,半连接数占用backlog队列的时间就越长,系统能处理的SYN请求就越少。为缩短超时时间,可以通过缩短重传超时时间(一般是之一次重传超时时间)和减少重传次数来实现。

Windows2000之一次重传之前等待时间默认为3秒,为改变此默认值,可以通过修改 *** 接囗在注册表里的TcpInitialRtt注册值来完成。重传次数由TcpMaxConnectResponseRetran *** issions 来定义,注册表的位置是:

HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters registry key

当然我们也可以把重传次数设置为0次,这样服务器如果在3秒内还未收到ack确认包就自动从backlog队列中删除该连接条目。

LINUX:Redhat使用变量tcp_synack_retries定义重传次数,其默认值是5次,总超时时间需要3分钟。

Sun Solaris Solaris 默认的重传次数是3次,总超时时间为3分钟,可以通过ndd命令修改这些默认值。

0条大神的评论

发表评论