第一章
1.网络安全定义
通用定义指网络信息系统的硬件、软件及其系统中的数据受到保护,不因偶然的或者恶意的破坏、更改、泄露,系统能连续、可靠、正常地运行,服务不中断。
简单的说是在网络环境下能够识别和消除不安全因素的能力。
2.CIA
保密性(Confidentiality):保密性是防止未授权的用户访问数据。
完整性(Integrity):完整性是防止未授权的修改数据。
可用性(Availability):保证经过授权的客户能及时准确的不间断的访问数据。
第二章
1.扫描器
扫描器是一种自动检测远程或本地主机安全性弱点的程序。
它集成了常用的各种扫描技术,能自动发送数据包去探测和攻击远端或本地的端口和服务,并自动收集和记录目标主机的反馈信息,从而发现目标主机是否存活、目标网络内所使用的设备类型与软件版本、服务器或主机上各TCP/UDP端口的分配、所开放的服务、所存在的可能被利用的安全漏洞。据此提供一份可靠的安全性分析报告,报告可能存在的脆弱性。
2.网络扫描器的功能
- 扫描目标主机识别其工作状态(开/关机)
- 识别目标主机端口的状态(监听/关闭)
- 识别目标主机操作系统的类型和版本
- 识别目标主机服务程序的类型和版本
- 分析目标主机、目标网络的漏洞(脆弱点)
- 生成扫描结果报告
3.扫描的三部曲
- 第一阶段:发现目标主机或网络
- 第二阶段:发现目标后进一步搜集目标信息,包括操作系统类型、运行的服务以及服务软件的版本等。如果目标是一个网络,还可以进一步发现该网络的拓扑结构、路由设备以及各主机的信息
- 第三阶段:根据收集到的信息判断或者进一步测试系统是否存在安全漏洞
网络安全扫描技术包括PING扫描、操作系统探测、穿透防火墙探测、端口扫描、漏洞扫描等
PING扫描用于扫描第一阶段,识别系统是否活动
OS探测、穿透防火墙探测、端口扫描用于扫描第二阶段
漏洞扫描用于安全扫描第三阶段,通常是在端口扫描的基础上,进而检测出目标系统存在的安全漏洞
4.端口扫描
21/tcp open ftp
23 telnet
25/tcp open smtp
42/tcp open nameserver
53/tcp open dns
80/tcp open http
1)全扫描
扫描主机尝试使用三次握手与目标主机的某个端口建立全TCP连接。
连接由系统调用connect()开始。如果端口开放,则连接将建立成功;否则,返回-1,则表示端口关闭。
过程:
开放
(1)Client端发送SYN;
(2)Server端返回SYN/ACK,表明端口开放;
(3)Client端返回ACK,表明连接已建立;
(4)Client端主动断开连接。
未开放
(1)Client端发送SYN;
(2)Server端返回RST/ACK,表明端口未开放。
优点:是实现简单,对操作者的权限没有严格要求,扫描速度快。
缺点:扫描方式不隐蔽,容易被检测出来,在日志文件中大量的记录并容易被防火墙发现和屏蔽
2)半扫描
扫描主机向目标主机的端口发送标记SYN的数据包。
如果应答是RST,那么,说明端口是关闭的,按照设定继续探听其他端口;
如果应答中包含SYN和ACK,说明目标端口处于监听状态。
(全连接尚未建立)
过程:
开放
(1)Client端发送SYN;
(2)Server端返回SYN/ACK,表明端口开放;
(3)Client端返回RST,中断连接;
未开放
(1)Client端发送SYN;
(2)Server端返回RST/ACK,表明端口未开放。
优点:日志记录比全扫描少很多,更安全。
缺点:是需要系统权限构造专用的数据包。
3)秘密扫描
使用含FIN标记的数据包探测目标端口
过程:
当一个FIN数据包到达一个关闭的端口,数据包会被丢掉,且返回一个RST数据包。
当一个FIN数据包到达一个打开的端口,数据包只是简单丢掉(不返回RST数据包)。
不包含标准的TCP三次握手协议的任何部分,所以无法被记录下来。
优点:秘密扫描能躲避IDS、防火墙、包过滤器和日志审计,从而获取目标端口的开放或关闭的信息。
缺点:需要系统权限构造专用的数据包。
第三章
1.网络监听
网络监听技术又叫做网络嗅探技术(Network Sniffing),是一种在他方未察觉的情况下捕获其通信报文或通信内容的技术。
局限性:目前只限于局域网。
第四章
1.词典攻击
词典,本质上是一个单词列表文件,但是这些单词是有特殊意义的,是根据人们设置自己账号口令的习惯总结出来的常用口令。
使用一个或多个词典文件,利用里面的单词列表进行口令猜测的过程,就是词典攻击。
穷举攻击没有这么一个频率词典。词典攻击检查系统安全性的好处是能针对特定的用户或者公司制定。
2.强行攻击
用速度足够快的计算机能尝试字母、数字、特殊字符所有的组合,将最终能破解所有的口令。这种攻击方式叫做强行攻击(也叫做暴力破解)。
结合一些其他条件,如系统规定口令长度。
3.组合攻击
在使用词典单词的基础上对单词进行了重组,在单词的后面串接几个字母和数字进行攻击的攻击方式。
4.比较特点
第五章
1.盲目分行攻击
攻击者使用假冒的IP地址向一台机器发送数据包,但没有收到任何返回的数据包,这被称之为盲目飞行攻击(flying blind attack),或者叫做单向攻击(one-way attack)。
只发不收
特点:
无法建立完整的TCP连接;
对于UDP这种面向无连接的传输协议就不会存在建立连接的问题,数据包都会被发送到受害者的系统中。
2.TCP会话劫持
会话劫持就是接管一个现存动态会话的过程,换句话说,攻击者通过会话劫持可以替代原来的合法用户,同时能够监视并掌握会话内容。
攻击者需要积极攻击使被冒充用户下线。(这是于一般欺骗的区别)
过程:
- step1:发现攻击目标
- 希望这个目标是一个准予TCP会话连接;在攻击的时候需要猜测序列号,所以要检测数据流。
- 嗅探和ARP欺骗
- step2:确认动态会话
- 高峰时会话选择多,发现几率小
- step3:猜测序列号
- step4:使客户主机下线
- 拒绝服务攻击
- step5:接管会话
特点:
(1)基于TCP协议漏洞,不依赖于操作系统,且可以用来积极攻击,危害大。
(2)越过了被攻击者对访问者的认证,让攻击者可以直接进入攻击的访问状态;
(3)由于需要嗅探数据包,往往受限于局域网范围;
序列号:
序列号是一个32位计数器,用来说明接收方下一步将要接收的数据包的顺序。TCP区分正确数据包和错误数据包仅通过它们的SEQ/ACK序列号。序列号是随着传输数据字节数递增的。
数据传输过程中序列号和应答号之间的关系:
- 第二个数据包(B->A)的SEQ = 第一个数据包(A-> B)的ACK;
- 第二个数据包(B->A)的ACK = 第一个数据包(A-> B)的SEQ +第一个数据包(A-> B)的传输数据长度。
法1:通过嗅探或者ARP欺骗,先发现目标机正在使用的序列号,再根据序列号机制,可以猜测出下一对SEQ/ACK序列号。
法2:攻击者若以某种方法扰乱客户主机的SEQ/ACK,服务器将不再相信客户主机正确的数据包,从而可以伪装为客户主机,这样就抢劫一个会话连接。
3.ARP欺骗
ARP(Address Resolution Protocol):地址解析协议,用于将计算机的网络地址(IP地址32位)转化为物理地址(MAC地址48位)。
ARP协议有两种数据包
- ARP请求包:我想与目的IP通信,arp who-has 192.168.1.1 tell 192.168.1.2
- ARP应答包:发现请求解析的IP地址与本机IP地址相同,就会返回一个ARP应答包。arp reply 192.168.1.1 is-at 00:00:0c:07:ac:00
原理:
ARP欺骗攻击是利用ARP协议本身的缺陷进行的一种非法攻击。
协议缺陷:
主机在实现ARP缓存表的机制时,当主机收到一个ARP应答包后,它并不会去验证自己是否发送过这个ARP请求,而是直接将应答包里的MAC地址与IP对应的关系替换掉原有的ARP缓存表里的相应信息。
利用:
第一种ARP欺骗的原理是——截获网关数据。使用应答包通知PCA自己是网关MAC地址,通知网关自己是PCA的MAC地址,就在网关和真实PC间插入了一个桥,获取流过的数据。
第二种ARP欺骗的原理是——伪造网关。它的原理是建立假网关,让被它欺骗的PC向假网关发数据,而不是通过正常的路由器途径上网。在PC看来,就是上不了网了,“网络掉线了”。
第六章
1.DOS定义
拒绝服务( Denial of Service,简称DoS),是利用传输协议中的漏洞、弱点,对目标系统发起大规模的进攻,耗尽可用带宽资源和服务器存储缓冲区资源,致使其无法处理合法用户的正常请求,无法提供正常服务。
DoS攻击可以分为:
- 滥用合理的服务请求
- 制造高流量无用数据
- 利用传输协议缺陷
- 利用服务程序的漏洞
分布式拒绝服务DDoS (Distributed Denial of Service)攻击指借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动DoS攻击,从而成倍地提高拒绝服务攻击的威力。
2.ping of death
早期操作系统在处理ICMP协议数据包存在漏洞。
ICMP协议的报文长度是固定64KB,早期很多操作系统在接收ICMP数据报文的时候,只开辟64KB的缓存区用于存放接收到的数据包。一旦发送过来的ICMP数据包的实际尺寸超过64KB,操作系统将收到的数据报文向缓存区填写,从而产生一个缓存溢出,结果将导致TCP/IP协议堆栈的崩溃,造成主机的重启动或是死机。
Ping -l 65540 192.168.1.140
3.泪滴
“泪滴”也被称为分片攻击,它是一种典型的利用TCP/IP协议的问题进行拒绝服务攻击的方式。
入侵者伪造数据报文,向服务器发送含有重叠偏移信息的分段包到目标主机,目的主机收到后,在堆栈中重组时,由于畸形分片的存在,会导致重组出错,由于协议重组算法,会导致内存错误,引起协议栈的崩溃。
分片:
传输的数据量较大,无法在一个数据报文中传输完成,就会将数据拆分成多个分片,为了能在到达目标主机后进行数据重组,IP包的TCP首部中包含有信息说明该分段是原数据的哪一段。
4.IP欺骗DoS攻击
假设现在有一个合法用户(61.61.61.61)已经同服务器建立了正常的连接,攻击者构造攻击的TCP数据,伪装自己的IP为61.61.61.61,并向服务器发送一个带有RST位的TCP数据段。服务器接收到这样的数据后,认为61.61.61.61发送的连接有错误,就会清空缓冲区中建立好的连接。
攻击者会伪造大量的IP地址,向目标发送RST数据,使服务器不对合法用户服务,从而实现了对受害服务器的拒绝服务攻击。
5.UDP洪水
UDP洪水(UDP flood)主要是利用主机能自动进行回复的服务来进行攻击。
使一方的输出成为另一方的输入,两台主机间会形成大量的UDP数据包。
例如:当我们向echo服务的端口发送一个数据时,echo服务会将同样的数据返回给发送方,而chargen服务则会随机返回字符。当两个或两个以上系统存在这样的服务时,攻击者伪造其中一台主机向另一台主机的echo或者chargen服务端口发送数据,echo和chargen服务会自动进行相互回复。
6.SYN洪水
利用TCP协议缺陷(TCP三次握手),伪造IP发送大量的SYN标记的TCP连接请求,并不做出ACK回应,使被攻击方资源耗尽(CPU满负荷或内存不足)的攻击方式。
协议缺陷:
一个客户端向服务器发送了SYN报文后突然死机或掉线,那么服务器在发出SYN/ACK应答报文后是无法收到客户端的ACK报文的,这种情况下服务器端一般会重试,并等待一段时间后丢弃这个未完成的连接。这段时间的长度我们称为SYN Timeout。一般来说这个时间是分钟的数量级。
7.Land攻击
向目标机发送大量的源地址和目标地址相同的包,造成目标机解析Land包时占用大量的系统资源,从而使网络功能完全瘫痪。
协议缺陷:
向目标主机发送一个特殊的SYN包,包中的源地址和目标地址都是目标主机的地址。目标主机收到这样的连接请求时会向自己发送SYN/ACK数据包,结果导致目标主机向自己发回ACK数据包并创建一个连接。
8.smurf
Smurf攻击是利用IP欺骗和ICMP回应包引起目标主机网络阻塞,实现DoS攻击。
Smurf攻击原理:在构造数据包时将源地址设置为被攻击主机的地址,而将目的地址设置为广播地址,于是,大量的ICMP echo回应包被发送给被攻击主机,使其因网络阻塞而无法提供服务。
第七章
1缓冲区溢出
缓冲区:它是包含相同数据类型实例的一个连续的计算机内存块。是程序运行期间在内存中分配的一个连续的区域,用于保存包括字符数组在内的各种数据类型。
溢出,其实就是所填充的数据超出了原有的缓冲区边界。
缓冲区溢出,就是向固定长度的缓冲区中写入超出其预分配长度的内容,造成缓冲区中数据的溢出,从而覆盖了缓冲区周围的内存空间。
原理:
当程序运行时,计算机会在内存区域中开辟一段连续的内存块,包括代码段、数据段和堆栈段三部分。
如果在堆栈中压入的数据超过预先给堆栈分配的容量时,就会出现堆栈溢出,从而使得程序运行失败;如果发生溢出的是大型程序还有可能会导致系统崩溃。
2.栈溢出
向栈的局部变量写入了超出限定长度的数据,溢出的数据会覆盖可能会覆盖掉EBP甚至RET(返回地址),从而影响程序的运行。
认识栈:
栈是先进后出(FILO), 随着函数调用层数的增加,函数栈帧是一块块地向内存低地址方向延伸的。 栈帧大小随着函数的性质的不同而不等,由函数的局部变量的数目决定。
引用栈帧需要借助两个寄存器:
一个是SP(ESP),即栈顶指针,它随着数据入栈出栈而发生变化。一个是BP(EBP),即基地址指针,它指向一个栈帧的栈底。
函数调用步骤:
(1)参数入栈:将参数从右向左依次压入系统栈中。
(2)返回地址入栈:将当前代码区调用指令的下一条指令地址压入栈中,供函数返回时继续执行。
(3)代码区跳转:处理器从当前代码区跳转到被调用函数的入口处。
(4)栈帧调整:具体包括。
- 保存当前栈帧状态值,已备后面恢复本栈帧时使用(EBP 入栈);
- 将当前栈帧切换到新栈帧(将 ESP值装入 EBP,更新栈帧底部);
- 给新栈帧分配空间(把 ESP 减去所需空间的大小,抬高栈顶);
(1)保存返回值:通常将函数的返回值保存在寄存器 EAX 中。
(2)弹出当前栈帧,恢复上一个栈帧。具体包括:
在堆栈平衡的基础上,给 ESP 加上栈帧的大小,降低栈顶,回收当前栈帧的空间。
将当前栈帧底部保存的前栈帧 EBP 值弹入 EBP 寄存器,恢复出上一个栈帧。
将函数返回地址弹给 EIP 寄存器。
(3)跳转:按照函数返回地址跳回母函数中继续执行。
图例说明:
在 main 函数调用 func_A 的时候,首先在自己的栈帧中压入函数返回地址,然后为func_A创建新栈帧并压入系统栈。
注意:这里面有一个错误,即:“保存的寄存器、局部变量和临时值”处应该是ebp-4。
在 func_A 返回时,func_A 的栈帧被弹出系统栈,main 栈帧中的返回地址被“露”在栈顶,此时处理器按照这个返回地址重新跳到 main代码区中执行。
push 参数 3 ;假设该函数有 3 个参数,将从右向左依次入栈
push 参数 2
push 参数 1
call 函数地址;call 指令将同时完成两项工作:a)向栈中压入当前指令在内存中的位置,即保存返回地址。b)跳转到所调用函数的入口处
push ebp ;保存旧栈帧的底部
mov ebp,esp ;设置新栈帧的底部(栈帧切换)
sub esp,xxx ;设置新栈帧的顶部(抬高栈顶,为新栈帧开辟空间)
3.PE文件格式
PE 文件格式把可执行文件分成若干个数据节( section ),不同的资源被存放在不同的节中。
DOS头是用来兼容MS-DOS操作系统的,包含MZ头和一个提示信息。
NT 头包含 windows PE 文件的主要信息,其中包括一个‘PE’字样的签名,PE 文件头(IMAGE_FILE_HEADER)和 PE 可选头(IMAGE_OPTIONAL_HEADER32)。
节(块)表是 PE 文件后续节的描述,Windows 根据节表的描述加载每个节。
每个节(块)实际上是一个容器,可以包含代码、数据等等。
.text由编译器产生,存放着二进制的机器代码,也是我们反汇编和调试的对象。
.data初始化的数据块,如宏定义、全局变量、静态变量等。
.idata可执行文件所使用 的动态链接库等外来函数与文件的信息。
.rsrc存放程序的资源,如图标、菜单 等。
在内存的位置:
( 1 ) PE 文件中的数据按照磁盘数据标准存放,以 0x200 字节为基本单位进行组织。当一个数据节( section )不足 0x200 字节时,不足的地方将被 0x00 填充;当一个数据节超过 0x200字节时,下一个 0x200 块将分配给这个节使用。因此 PE 数据节的大小永远是 0x200 的整数倍。
( 2 )当代码装入内存后,将按照内存数据标准存放,并以 0x1000 字节为基本单位进行组织。类似的,不足将被补全,若超出将分配下一个 0x1000 为其所用。因此,内存中的节总是0x1000 的整数倍。
( 1 )文件偏移地址( File Offset )
数据在PE文件中的地址叫文件偏移地址,这是文件在磁盘上存放时相对于文件开头的偏移。
( 2 )装载基址( Image Base )
PE装入内存时的基地址。默认情况下,EXE 文件在内存中的基地址是 0x00400000 , DLL文件是0x10000000 。
( 3 )虚拟内存地址( Virtual Address , VA )
PE文件中的指令被装入内存后的地址。
( 4 )相对虚拟地址( Relative Virtual Address , RVA )
相对虚拟地址是内存地址相对于映射基址的偏移量。
软件偏移是相对于文件开始处0字节的偏移,RVA(相对虚拟地址)则是相对于装载基址0x00400000处的偏移。
指令的虚拟内存地址-装载基址=相对虚拟地址
文件偏移 = 指令的虚拟内存地址-装载基址-节偏移=相对虚拟地址-节偏移
4.shellcode
所植入的代码一般由shellcode、返回地址、填充数据这三种元素按照一定的结构和构造类型组成。
shellcode是植入代码的核心组成部分,是一段能完成特殊任务的自包含的二进制代码。最初是用来生成一个高权限的shell。
构造类型:
-
- S代表shellcode,
- R代表返回地址,
- N代表填充数据,
NSR模式
在shellcode的后面安排一定数量的返回地址,在前面安排一定数量的填充数据。
原理是:只要全部的N和S都处于缓冲区内,并且不覆盖RET,而使R正好覆盖存放RET的栈空间,这样只要将R的值设置为指向N区中任一位置,就必然可以成功地跳转到我们预先编写的shellcode处执行。
非精确定位,适合于溢出缓冲区较大、足够放下我们的shellcode的情况。N元素越多成功率越大,其缺点是缓冲区必须足够大。
RNS
原理是:只要把整个缓冲区全部用大量的返回地址填满,并且保证会覆盖存放RET的栈空间,再在后面紧接N元素和shellcode,这样就可以很容易地确定返回地址R的值,并在植入代码中进行设置。
对大的和小的缓冲区都有效。而且RET地址较容易计算。
5.0 day
未被公布、未被修复的被攻击者找到的漏洞往往被称做0day。
0 day漏洞是危害最大的漏洞,当然对攻击者来说也是最有价值的漏洞。
GS
1)针对缓冲区溢出时覆盖函数返回地址这一特征,微软在编译程序时使用了安全编译选项——GS。
GS 编译选项为每个函数调用增加了一些额外的数据和操作,用以检测栈中的溢出:
在所有函数调用发生时,向栈帧内压入一个额外的随机DWORD,这个随机数被称做“canary”( IDA中是“Security Cookie”)。Security Cookie位于EBP之前,系统还将在.data的内存区域中存放一个 Security Cookie的副本。在使用返回地址时要校验cookie。
DEP
2)溢出攻击的根源在于现代计算机对数据和代码没有明确区分这一先天缺陷,DEP(数据执行保护,Data Execution Prevention)就是用来弥补计算机对数据和代码混淆这一天然缺陷的。
DEP的基本原理是将数据所在内存页标识为不可执行,当程序溢出成功转入 shellcode时,程序会尝试在数据页面上执行指令,此时 CPU 就会抛出异常,而不是去执行恶意指令。
第八章
1. SQL
攻击者可以提交一段精心构造的数据库查询代码,根据返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection。
存在与调用数据库的动态页面。
本质:把用户输入的数据当作代码执行。
2. XSS
XSS是跨站脚本攻击(Cross Site Script) 。它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该网页时,嵌入其中Web里面的html代码会被执行,从而达到恶意用户的特殊目的。
存储型:存储型XSS又被称为持久性XSS。存储于数据库中的。
反射型:反射型XSS也被称为非持久性XSS,触发在URL请求中,服务器端接收数据后处理,然后把带有XSS代码的数据发送到浏览器,浏览器解析这段带有XSS代码的数据后,最终造成XSS漏洞。这个过程就像一次恶意脚本,只会出现在游览器端。
DOM型:基于文档对象模型Document Objeet Model,DOM)的一种漏洞。基于DOM型的XSS是不需要与服务器端交互的,它只发生在客户端处理数据阶段。
这种类型的XSS并非按照“数据是否保存在服务器端”来划分,效果是反射型的,通过修改页面的DOM节点形成的XSS。
3. 文件上传
文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力。
服务端代码未对客户端上传的文件进行严格的验证和过滤。
4. 文件包含
PHP中提供了四个文件包含的函数,分别是include()、include_once()、 require()和require_ once()。这四个函数都可以进行文件包含。
使用这4个函数包含一个新的文件时,该文件将作为PHP代码执行,PHP内核并不会在意该被包含的文件是什么类型。所以如果被包含的是txt文件、图片文件、远程URL,也都将作为PHP代码执行。这一特性,在实施攻击时将非常有用。
5. 命令注入
用户可以随意执行系统命令。
命令连接符和管道符等。
命令执行只是针对系统命令,而远程代码执行针对的是编程代码,两者互不能替换。
6. CSRF
跨站请求伪造,也称XSRF,本质是攻击者盗用受害者的身份去发送恶意请求。
当我们打开或登录某个网站后,浏览器与网站所存放的服务器将会产生一个会话,在这个会话没有结束时,你就可以利用你的权限对网站进行某些操作。CSRF攻击是建立在会话之上的。
这里区分一下XSS:
CSRF是借助用户的权限完成攻击,攻击者从头到尾没有拿到用户的权限(获取cookie等),然后就可以在受害者不知情的情况下执行了恶意操作;
第九章
1. 木马定义
计算机系统中:“特洛伊木马”指系统中被植入的、人为设计的程序,目的包括通过网络远程控制其他用户的计算机系统,窃取信息资料,并可恶意致使计算机系统瘫痪。
大多数专家:特洛伊木马是一段能实现有用的或必需的功能的程序,但是同时还完成一些不为人知的功能。
2. 木马程序企图
试图访问未授权资源;
试图阻止访问;
试图更改或破坏数据和系统。
3. 木马的特点
有效性、隐蔽性、顽固性、易植入性
4. 木马植入类型
主动植入:攻击者主动将木马程序种到本地或者远程主机
被动植入:攻击者依据用户的可能操作进行被动等待,触发植入目标系统
5. 常见技术
钩子技术:
钩子(Hook) 是Windows消息处理机制的一个平台,实质是处理消息的程序段。当消息到达后,在目标窗口处理函数之前处理它,钩子机制允许应用程序截获处理Windows消息或特定事件。
Windows有两种钩子,一种是特定线程钩子(Thread Specific Hooks),另-种是全局系统钩子(SystemwideHooks)。
端口反弹:
常见的普通木马是驻留在用户计算机中的一段服务程序,而攻击者控制的则是相应的客户端程序。服务程序通过特定的端口,打开用户计算机的连接资源。一旦攻击者所掌握的客户端程序发出请求,木马便和他连接起来,将用户的信息窃取出去。
反弹式木马使用的是系统信任的端口,系统会认为木马是普通应用程序,而不对其连接进行检查。防火墙在处理内部发出的连接时,也就信任了反弹木马。
注册表技术