目录
1.原理
1.1特点
- 直接与目标系统交互通信。
- 会留下访问痕迹。
- 若使用受控的第三方电脑(如代理服务器或已被控制的机器)进行探测,请做好被封杀的准备。
- 扫描发送不同的探测,根据返回结果判断目标状态。
1.2发现目标主机的过程
- 识别存活主机,发现潜在的被攻击目标。
- 输出一个ip地址段或ip地址范围。
- 使用二、三、四层进行探测发现。
2.基于ping命令的探测
2.1ping、traceroute
ping命令用于判断主机之间网络是否畅通,也可以判断目标主机是否存活。
(此目标主机是CentOS)。
traceroute用于路由跟踪,探测主机到目标主机之间经过了哪些网络设备。
2.2arping
arping命令基于arp协议(其概述及工作原理不再赘述),可以用来查看局域网中的ip是否有冲突。
查看网关的ip是否与局域网中的ip是否有冲突:
可以看到,只有网关发来了arp响应报文,证明网关的ip与局域网中的ip没有冲突!
模拟ip冲突,将centos的ip改为192.168.240.100:
再次查看:
可以看到有两个一样的ip,证明局域网内有主机的ip与网关的ip相同。
区别于ARP欺骗:
ARP欺骗(ARP spoofing),又称ARP毒化(ARP poisoning,网络上多译为ARP病毒)或ARP攻击,是针对以太网地址解析协议(ARP)的一种攻击技术,通过欺骗局域网内访问者PC的网关MAC地址,使访问者PC错以为攻击者更改后的MAC地址是网关的MAC,导致网络不通。此种攻击可让攻击者获取局域网上的数据包甚至可篡改数据包,且可让网络上特定计算机或所有计算机无法正常连线。
2.3netdiscover


被动模式:

-p:passive,被动模式(嗅探)
2.4fping
fping命令可以对一个ip地址段或ip地址范围进行扫描,而ping命令不可以。
或:
-a:只显示存活主机。
-g:对ip地址段或ip地址范围进行扫描。
重定向的结果保留在fping.txt中,查看文本内容:
3.基于Nmap的扫描方式
3.1Nmap的基本扫描方式
Nmap是Network Mapper,最早是Linux下的网络扫描和嗅探工具包。
扫描192.168.240.0这个网段:
nmap -sn 192.168.240.0/24 或:nmap -sn 192.168.240.1-254
-sn参数:只ping扫描,不进行端口扫描。
3.2Nmap的半连接扫描
Nmap的扫描类型分为TCP的全连接扫描(留下记录)和半连接扫描(不会留下记录)。
在TCP层,有个FLAGS字段,这个字段有以下几个标识:
URG:Urget pointer is valid(紧急指针字段值有效)
SYN:表示建立连接
ACK:表示响应
FIN:表示关闭连接
PSH:表示有DATA数据传输
RST:表示连接重置
-sS参数:表示使用SYN进行半连接扫描
端口状态显示filtered,表示被防火墙过滤了。
高风险漏洞服务的端口
3.3使用nc扫描端口
作用:
- 作为server以TCP或UDP方式侦听指定端口。
- 作为client发起TCP或UDP连接,进行端口扫描。
- 机器之间传输文件。
- 机器之间网络测速。
-n:指定扫描的目标是ip地址
-v:详细输出
-w:超时时间
-z:将输入输出关掉(用于扫描时)
nc测试TCP的连接
启动8080端口的tcp监听服务:

客户端发送数据,服务器端成功收到数据:
nc测试UDP的连接
启动8080端口的udp监听服务:
重新开一个窗口,连接8080端口:
发送方发送数据,接收方成功收到数据:
-l:监听模式(默认是TCP模式)
-u:UDP模式
-p:本地端口号
4.DDOS攻击防御-SYN Flood
4.1DDOS攻击的原理
分布式拒绝服务攻击(英文意思是 Distributed Denial of Service,简称 DDoS)是指处于不同位置的多个攻击者同时向一个或数个目标发动攻击,或者一个攻击者控制了位于不同位置的多台机器并利用这些机器对受害者同时实施攻击。由于攻击的发出点是分布在不同地方的,这类攻击称为分布式拒绝服务攻击,其中的攻击者可以有多个。
4.2DDOS攻击的三种方式
直接攻击
反射攻击
放大攻击
DNS放大攻击
NTP放大攻击
网络时间协议,英文名称:Network Time Protocol(NTP)是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高精准度的时间校正(LAN上与标准间差小于1毫秒,WAN上几十毫秒),且可介由加密确认的方式来防止恶毒的协议攻击。NTP的目的是在无序的Internet环境中提供精确和健壮的时间服务。
4.3TCP三次握手
核心:SYN=1表示请求连接,ACK=1表示确认连接。
4.4tcpdump抓包查看三次握手过程
在centos(相当于客户端)上登录kali(相当于服务器端),抓取ssh远程登录kali时,产生的tcp三次握手包:
1.在centos上开启监听(抓包服务):
-n:ip地址以数字方式显示,否则显示主机名。
-c:指定要抓取的数据包数量。
port:指定端口。
-i:指定tcpdump需要监听的接口。默认会抓取第一个网络接口。 (这里指定网卡)
2.打开另一个窗口,开始建立tcp连接:
3.查看抓到的数据包:
我们发现最后一个数据包中的ack为1,而不是2968358562。
client主机返回ACK,包序号为ack=1,这是相对序号。如果需要看绝对序号,可以在tcpdump命令中加-S。
4.5Hping3进行SYN Flood洪水攻击

启动httpd服务:
浏览器访问http://192.168.240.136/
2.对http://192.168.240.136/进行压力测试:
-c:发送数据包的数量。
-d:发送每个数据包的大小(单位是字节)。
-S:只发送SYN数据包。
-w:TCP窗口大小。
-p:目的地端口(这里指定的是web80端口)。
--flood:尽可能快地发送数据包,不需要考虑显示入站回复。洪水攻击模式。
--rand-source:使用随机性的源ip地址(只是在局域中伪造。通过路由器后,会还原成真实的ip地址)。
可以看到,伪造了大量的源ip。
3.再次刷新网页发现加载速度变慢:
4.4DDOS攻击的防护
优化缓解DDOS攻击


修改httpd服务的队列长度:
1.显示监听的套接字:
ss命令用来显示处于活动状态的套接字信息。
2.修改httpd服务的队列长度:
3.重启httpd服务并再次显示监听的套接字:
通过iptables封禁攻击者ip缓解DDOS攻击


connlimit模块的功能:
限制每个客户端 IP 的并发连接数,即每个 IP 同时连接到一个服务器个数。
限制内网用户的网络使用,对服务器而言则可以限制每个 IP 发起的连接数。