网络对抗:是指在信息网络环境中,以信息网络系统为载体,以计算机或计算机网络为目标,围绕信息侦察、信息干扰、信息欺骗、信息攻击,为争夺信息优势而进行的活动的总称。网络对抗的目的是获取和保持信息网络优势,掌握并确保网络空间的制信息权。
信息战:信息战是为夺取和保持制信息权而进行的斗争,亦指战场上敌对双方为争取信息的获取权、控制权和使用权,通过利用、破坏敌方和保护己方的信息系统而展开的一系列作战活动。
网络中心战:相对于传统的平台中心战而提出的一种新作战概念。网络中心战是通过各作战单元的网络化,把信息优势变为作战行动优势,使各分散配置的部队共同感知战场态势,从而自主地协调行动,发挥出最大整体作战效能的作战样式,它使作战重心由过去的平台转向网络。
APT攻击:即高级可持续威胁攻击,也称为定向威胁攻击,指某组织对特定对象展开的持续有效的攻击活动。这种攻击活动具有极强的隐蔽性和针对性,通常会运用受感染的各种介质、供应链和社会工程学等多种手段实施先进的、持久的且有效的威胁和攻击。
0DAY攻击:利用0DAY漏洞发起的攻击,安全意义上的0DAY漏洞是是指在系统商在知晓并发布相关补丁前就被掌握或者公开的漏洞信息
口令攻击:口令攻击是指黑客以口令为攻击目标,破解合法用户的口令,或避开口令验证过程,然后冒充合法用户潜入目标网络系统,夺取目标系统控制权的过程。
中间人攻击:中间人攻击(是一种“间接”的入侵攻击,这种攻击模式是通过各种技术手段将受入侵者控制的一台计算机虚拟放置在网络连接中的两台通信计算机之间,这台计算机就称为“中间人”。
协议栈指纹识别:常用的网络协议是标准的,因而从理论上讲各个操作系统的协议栈应该是相同的。但是,在实践中,各种操作系统的协议栈的实现存在细微的差异。这些差异称作网络协议栈的“指纹”。利用这些差异可作为协议栈指纹识别的依据。
MAC欺骗:使用MAC地址欺骗可对某个网络进行非授权访问。在进行MAC地址欺骗攻击中,首先要使用一个已知主机的MAC地址,以便使目标交换机将发往远程主机的数据帧转发给该网络中的攻击者。
主动扫描:一般是针对目标发送特制的数据包,然后根据目标的反应来获取一些信息,通常会使用专业的扫描工具。
被动扫描:指的是在目标无法察觉的情况下进行的信息收集,比如搜索引擎等方法
木马:木马病毒是指隐藏在正常程序中的一段具有特殊功能的恶意代码,是具备破坏和删除文件、发送密码、记录键盘和攻击Dos等特殊功能的后门程序。
蠕虫:蠕虫病毒是一种常见的计算机病毒,是无须计算机使用者干预即可运行的独立程序,它通过不停的获得网络中存在漏洞的计算机上的部分或全部控制权来进行传播。
病毒:计算机病毒(Computer Virus)是编制者在计算机程序中插入的破坏计算机功能或者数据的代码,能影响计算机使用,能自我复制的一组计算机指令或者程序代码。
熟知端口
端口号 | 描述 |
---|---|
21 | FTP 文件传输协议的端口号 |
22 | SSH安全外壳协议的端口号 |
23 | Telnet远程终端协议的端口号 |
25 | SMTP简单邮件传输协议的端口号 |
42 | 主机命名服务协议的端口号 |
53 | DNS域服务器所开放的端口 |
69 | TFTP简单文件传送协议的端口号 |
80 | HTTP超文本传输协议的端口号 |
110 | POP3邮局协议版本3的端口号 |
119 | 网络新闻传输协议的端口号 |
123 | NTP网络时间协议的端口号 |
137 | NETBIOS Name Service端口号 |
161 | SNMP简单网络管理协议 的端口号 |
520 | RIP路由信息协议的端口号 |
注册端口:注册端口号(registered port numbers)是公司和其他用户向互联网名称与数字地址分配机构(ICANN)登记的端口号,利用因特网的传输控制协议(TCP)和用户数据报协议(UDP)进行通信的应用软件需要使用这些端口。
广播域和广播地址:广播是一种信息的传播方式,指网络中的某一设备同时向网络中所有的其它设备发送数据,这个数据所能广播到的范围即为广播域(Broadcast Domain)。广播地址(Broadcast Address)是专门用于同时向网络中所有工作站进行发送的一个地址。在使用TCP/IP 协议的网络中,主机标识段host ID 为全1 的IP 地址为广播地址,广播的分组传送给host ID段所涉及的所有计算机。
ARP攻击:ARP攻击主要是通过伪造IP地址和MAC地址进行欺骗。使以太网数据包的源地址、目标地址和ARP通信数量剧增导致网络中断或中间人攻击。ARP攻击主要存在于局域网中。若其中一台计算机感染ARP病毒。就会试图通过ARP欺骗截获局域网内其他计算机的信息,造成局域网内的计算机通信故障。
LAND攻击:是拒绝服务攻击(DoS攻击)的一种,通过发送精心构造的、具有相同源地址和目标地址的欺骗数据包,致使缺乏相应防护机制的目标设备瘫痪。
Smurf攻击:Smurf攻击是一种病毒攻击,以最初发动这种攻击的程序“Smurf”来命名。这种攻击方法结合使用了IP欺骗和ICMP回复方法使大量网络传输充斥目标系统,引起目标系统拒绝为正常系统进行服务。
原理:攻击者向网络广播地址发送ICMP包,并将回复地址设置成受害网络的广播地址,通过使用ICMP应答请求数据包来淹没受害主机的方式进行,最终导致该网络的所有主机都对次ICMP应答请求作出答复,导致网络阻塞。更加复杂的Smurf攻击攻击将源地址改为第三方受害者,最终导致第三方崩溃。
补丁对比技术:就是对原始文件和补丁文件分别进行反汇编,然后对反汇编后的文件做比较,找出其中的差异,从而发现潜在的漏洞。
TCP/IP协议栈安全问题的主要根源是什么?
网络协议是计算机之间为了互联共同遵守的规则。目前的互联网络所采用的主流协议TCP/IP,由于在其设计初期人们过分强调其开发性和便利性,没有仔细考虑其安全性,因此很多的网络协议都存在严重的安全漏洞,给Internet留下了许多安全隐患。比如
- TCP/IP协议数据流采用明文传输
- TCP/IP协议以IP地址作为网络节点的唯一标识,此举并不能对节点上的用户进行有效的身份认证
- 协议本身的特点被利用实施网络攻击
等等
端口重定向和端口重用技术
端口重定向
重定向后门程序通过在某些端口上监听连接,把收到的原始分组转发到另外某个指定的目标主机及端口。攻击者一旦成功入侵网络上的某个主机后,一般可通过端口重定向技术把受害主机接收的网络信息转发到攻击者指定的机器上。重定向技术可以使攻击者访问防火墙后面的主机。常用的端口重定向程序有:
Datapipe、rinetd、Fpipe
端口重用
端口复用是指一个端口上建立了多个连接,而不是在一个端口上面开放了多个服务而互不干扰。假如在已经开放了wWW服务的主机上,在80端口再添加一项服务,一般来说只有2种可能:
- 1.添加服务失败
- 2.www服务出错。
常用的操作系统识别技术
主动扫描:使用TCP/IP协议栈探测OS、NMAP、数据包重传延时技术
被动扫描:通过监听工具收集数据包,再对数据包的不同特征(TCP Window-size、 lP TTL、IP TOS、DF位等参数)进行分析,来识别操作系统。
网络信息截获的主要方法及SNIFFER软件技术
交换网络监听
网络管理员:交换机+集线器,端口镜像
黑客:MAC洪,ARP欺骗,端口盗用
常用SNIFFER编程技术
基于Libpcap的网络编程技术
Winpcap编程技术
基于Linux Packet的编程技术
DPDK
网络信息截获技术主要是利用一种所谓的“Sniffing”技术,利用计算机网络接口截获目的地是其他计算机的报文,实现获取该网络当前传输的所有信息,即获取当前传输的数据包,并根据信息的源主机、目标主机、服务协议和端口等信息简单过滤掉不关心的数据,然后提交给上层应用程序进行进一步处理。
WINDOWS系统栈溢出攻击原理
WINDOWS栈溢出是由于程序没有内置检查机制来确保复制到缓冲区的数据不得大于缓冲区的大小,因此当这个数据足够大的时候,将会溢出缓冲区的范围,通过程序的缓冲区写超出其长度的内容,造成缓冲区的溢出,从而破坏程序的堆栈,使程序转而执行其它指令,以达到攻击的目的。
SHECODE编写技术
缓冲区溢出漏洞的利用。本质上来讲,就是使计算机跳转到我们的ShellCode中去执行,所以,ShellCode是缓冲区溢出利用的关键之一。但ShellCode本身的编写是大有学问的,可易可难。ShellCode其实是计算机能直接执行的机器代码,只要计算机的指令指针EIP指向ShellCode里面,就可以顺利执行,不需要编译。
首先调用Windows API实现代码功能
然后使用内联汇编,翻译Windows API的代码实现
接着查找关键API的地址,进一步修改内联汇编的代码
最后使用调试器将汇编代码翻译成字节码
调试字节码,验证功能,完成shellcode编写。
常用网络协议攻击技术
TCP/IP协议栈常见协议攻击技术
应用层:应用程序漏洞、DNS欺骗、缓存区溢出攻击、web应用的攻击,病毒和木马等
传输层:TCP欺骗、TCP拒绝服务攻击、UDP拒绝服务攻击、端口扫描等
网络层:IP欺骗、Smurf攻击、ICMP攻击、地址扫描等
数据链路层:MAC欺骗、MAC洪泛、ARP欺骗等
物理层:设备破坏、线路侦听等
常用的漏洞挖掘技术,FileFuzz的原理
代码审查(有可能涉及到代码的逆向工程分析)
代码审查是一种灰盒分析技术。针对被分析目标程序,手工构造特殊输入条件,观察输出、目标状态变化等,获得漏洞的分析技术。
黑盒测试(包括扫描器和模糊测试工具等软件)
Fuzzing技术是一种基于缺陷注入的自动软件测试技术,它利用黑盒分析技术方法,使用大量半有效的数据作为应用程序的输入,以程序是否出现异常为标志,来发现应用程序中可能存在的安全漏洞。
补丁比对技术
补丁比对技术技术又可称为二进制比对,它主要是被用以挖掘“已知”的漏洞。补丁比对技术主要用于黑客或竞争对手找出软件发布者已修正但未尚公开的漏洞,是黑客利用漏洞前经常使用的技术手段。
静态分析技术
静态分析技术是对被分析目标的源程序进行分析检测,发现程序中存在的安全漏洞或隐患,是一种典型的白盒分析技术。它的方法主要包括静态字符串搜索、上下文搜索。
动态分析技术
动态分析技术是一种动态的检测技术,动态分析需要在调试器中运行目标程序,通过观察执行过程中程序的运行状态、内存使用状况以及寄存器的值等以发现潜在问题,寻找漏洞。
FileFuzz采用字节替换法批量生成待测试文档文件,然后将这些待测试文档文件逐一调用相对应文件处理软件打开,同时监视打开过程中发生的错误,并将错误结果记录下来,让安全研究人员分析该错误是不是属于安全漏洞。
DLL注入攻击技术基本原理
DLL注入技术,一般来讲是向一个正在运行的进程插入/注入代码的过程。我们注入的代码以动态链接库(DLL)的形式存在。DLL文件在运行时将按需加载(类似于UNIX系统中的共享库)。
DLL注入共四个步骤:
1.附加到目标/远程进程
2.在目标/远程进程内分配内存
3.将DLL文件路径,或者DLL文件,复制到目标/远程进程的内存空间
4.控制进程运行DLL文件
攻击者可能将动态链接库(DLL)注入到进程中,以逃避基于进程的防御以及可能的特权提升。DLL注入是一种在单独的活动进程的地址空间中执行任意代码的方法。
典型的分布式拒绝服务攻击技术、DDOS攻击基本原理
典型的DDOs有
Ping of Death
泪滴( Teardrop)
IP欺骗
DoS攻击
UDP洪水
SYN洪水
Land攻击
Smurf攻击
Fraggle攻击
电子邮件炸弹
畸形消息攻击
Slashdot effect
WinNuke攻击
等等
分布式拒绝服务攻击(英文意思是Distributed Denial of Service,简称DDoS)是指处于不同位置的多个攻击者同时向一个或数个目标发动攻击,或者一个攻击者控制了位于不同位置的多台机器并利用这些机器对受害者同时实施攻击。
分布式拒绝服务攻击DDoS是一种基于DoS的特殊形式的拒绝服务攻击,是一种分布的、协同的大规模攻击方式。
布式拒绝服务攻击DDoS是借助数百、甚至数千台被入侵后安装了攻击进程的主机同时发起的集团行为,造成目标主机无法为用户提供正常服务。甚至导致系统崩溃。
HOOK技术
钩子(Hook),是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。当消息到达后,在目标窗口处理函数之前处理它。钩子机制允许应用程序截获处理windows消息或特定事件。
Hook 技术又叫做钩子函数,在系统没有调用该函数之前,钩子程序就先捕获该消息,钩子函数先得到控制权,这时钩子函数既可以加工处理(改变)该函数的执行行为,还可以强制结束消息的传递。简单来说,就是把系统的程序拉出来变成我们自己执行代码片段。
对于Windows系统,它是建立在事件驱动机制上的,说白了就是整个系统都是通过消息传递实现的。hook(钩子)是一种特殊的消息处理机制,它可以监视系统或者进程中的各种事件消息,截获发往目标窗口的消息并进行处理。所以说,我们可以在系统中自定义钩子,用来监视系统中特定事件的发生,完成特定功能,如屏幕取词,监视日志,截获键盘、鼠标输入等等。
WINDOWS API地址获取方法
定位API地址,首先需要定位Kerne132的地址。通过前几步的描述,这里给出总结性的过程。
- 通过FS:[ 0x30]得到PEB的地址;
- 通过PEB+0xc得到类型为PEB_LDR_DATA;
- 通过PEB_LDR_DATA+0xc得到InLoadOrderModuleList,该字段类型为LIST_ENTRY,其与_LDR_DATA_TABLE_ENTRY的InInitializationOrderLinks相链;
- 通过遍历InLoadorderModuleList,并比较
LDR_DATA_TABLE_ENTRY字段中ModuleName的长度或名称,即可找到Kernel32.dll模块基址.
格式化字符串攻击原理,如何利用格式化字符串显示堆栈内容、%n修改内存的值等
原理: print()、fprint()等*print()系列的函数可以按照一定的格式将数据进行输出,printf(“My Name is: %s”, “Zhangsan”)
执行该函数后将返回字符串:My Name is:Zhangsan
printf函数的第一个参数就是格式化字符串,它来告诉程序将数据以什么格式输出。
printf()函数参数是可控的,在控制了format参数之后结合printf()函数的特性就可以进行相应的攻击。
%n在格式化字符串中任何位置都可以得到输出字符的个数。%n用于把前面打印的字符数记录到一个变量中。也用于统计格式化的字节数,这需要一个空间来存储这个数字,因此程序需要为此分配内存。
Windows ADS文件攻击技术
NTFS交换数据流(Alternate DataStreams,简称ADS)是NTFS磁盘格式的一个特性,然后利用该技术可以实现
webshell后门
由于windows xp之后的系统对于ADS文件都没有执行权限,因此隐藏此类webshell需要用到文件包含来进行配合。
文件上传
这一块主要是用于Bypass上传黑名单验证,因为在我们上传数据流文件时,形如test.php::$DATA、test.php:a.txt这样的后缀,windows系统必定需要创建一个对应的宿主文件test.php
病毒免杀
前面提到过在windows xp 03之后的版本的数据流文件都被禁止了执行权限,因此可以使用wscript来运行vbs