服务器可能遭受攻击汇总

2024-06-05 12:18

本文主要是介绍服务器可能遭受攻击汇总,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


转自 : http://blog.csdn.net/fzq1988215/article/details/51016005

服务器可能遭受的攻击

1.短信消耗

  平台注册在不输入验证码的时候即可点击免费获取验证码,黑客如果通过动态IP反复输入大量手机号点击获取验证码。将导致短信短时间内大量消耗。

 

2.用户名输入的时候查询角色

  系统登入的时候输入用户名,系统会自动查询数据库来确认角色信息,当黑客通过大量用户名输入的时候会导致数据库资源被占满导致正常的访问无法进行。

 

3.ddos

  近几年由于宽带的普及,很多网站开始盈利,其中很多非法网站利润巨大,造成同行之间互相攻击,还有一部分人利用网络攻击来敲诈钱财。同时windows 平台的漏洞大量的被公布,流氓软件,病毒,木马大量充斥着网络,有些技术的人可以很容易非法入侵控制大量的个人计算机来发起DDOS攻击从中谋利。攻击已经成为互联网上的一种最直接的竞争方式,而且收入非常高,利益的驱使下,攻击已经演变成非常完善的产业链。通过在大流量网站的网页里注入病毒木马,木马可以通过windows平台的漏洞感染浏览网站的人,一旦中了木马,这台计算机就会被后台操作的人控制,这台计算机也就成了所谓的肉鸡,每天都有人专门收集肉鸡然后以几毛到几块的一只的价格出售,因为利益需要攻击的人就会购买,然后遥控这些肉鸡攻击服务器。

  一般在硬防上直接就down掉了,不可能给他攻击的余地。虽然黑客攻击的手法多种多样,但就目前来说,绝大多数中初级黑客们所采用的手法和工具仍具有许多共性。

 DDOS攻击的发现:

  假如说黑客攻击的是Web80端口,察看连接80端口的客户端IP和端口,命令如下:

 netstat -an -t  | grep":80" |sort -k 5 |awk '{print $5,$6}'

  输出:

 161.2.8.9:123 FIN_WAIT2

 161.2.8.9:124 FIN_WAIT2

 61.233.85.253:23656 FIN_WAIT2

  第一栏是客户机IP和端口,第二栏是连接状态

  如果来自同一IP的连接很多(超过50个),而且都是连续端口,就很可能是攻击。

  我们可以启用iptables屏蔽该ip的访问

  用iptables屏蔽IP

 iptables -I RH-Lokkit-0-50-INPUT 1 -p tcp -m tcp -s 213.8.166.227--dport 80 --syn -j REJECT


4.synflood

  了解SYN攻击前我们先了解下TCP握手协议,在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。

  第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;

  第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;

  第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。

  完成三次握手,客户端与服务器开始传送数据,在上述过程中,还有一些重要的概念:

  未连接队列:在三次握手协议中,服务器维护一个未连接队列,该队列为每个客户端的SYN包(syn=j)开设一个条目,该条目表明服务器已收到SYN包,并向客户发出确认,正在等待客户的确认包。这些条目所标识的连接在服务器处于Syn_RECV状态,当服务器收到客户的确认包时,删除该条目,服务器进入ESTABLISHED状态。

 Backlog参数:表示未连接队列的最大容纳数目。

 SYN-ACK 重传次数 服务器发送完SYN-ACK包,如果未收到客户确认包,服务器进行首次重传,等待一段时间仍未收到客户确认包,进行第二次重传,如果重传次数超过系统规定的最大重传次数,系统将该连接信息从半连接队列中删除。注意,每次重传等待的时间不一定相同。

  半连接存活时间:是指半连接队列的条目存活的最长时间,也即服务从收到SYN包到确认这个报文无效的最长时间,该时间值是所有重传请求包的最长等待时间总和。有时我们也称半连接存活时间为Timeout时间、SYN_RECV存活时间。

  然后我们了解下SYN攻击的原理,SYN攻击属于DOS攻击的一种,它利用TCP协议缺陷,通过发送大量的半连接请求,耗费CPU和内存资源。SYN攻击除了能影响主机外,还可以危害路由器、防火墙等网络系统,事实上SYN攻击并不管目标是什么系统,只要这些系统打开TCP服务就可以实施。从上图可看到,服务器接收到连接请求(syn=j),将此信息加入未连接队列,并发送请求包给客户(syn=k,ack=j+1),此时进入SYN_RECV状态。当服务器未收到客户端的确认包时,重发请求包,一直到超时,才将此条目从未连接队列删除。配合IP欺骗,SYN攻击能达到很好的效果,通常,客户端在短时间内伪造大量不存在的IP地址,向服务器不断地发送syn包,服务器回复确认包,并等待客户的确认,由于源地址是不存在的,服务器需要不断的重发直至超时,这些伪造的SYN包将长时间占用未连接队列,正常的SYN请求被丢弃,目标系统运行缓慢,严重者引起网络堵塞甚至系统瘫痪。

  抵御SYN

  SYN攻击是利用TCP/IP协议3次握手的原理,发送大量的建立连接的网络包,但不实际

  建立连接,最终导致被攻击服务器的网络队列被占满,无法被正常用户访问。

 Linux内核提供了若干SYN相关的配置,用命令:

 sysctl -a | grep syn

  看到:

 net.ipv4.tcp_max_syn_backlog = 1024

 net.ipv4.tcp_syncookies = 0

 net.ipv4.tcp_synack_retries = 5

 net.ipv4.tcp_syn_retries = 5

tcp_max_syn_backlog是SYN队列的长度,tcp_syncookies是一个开关,是否打开SYN Cookie

  功能,该功能可以防止部分SYN攻击。tcp_synack_retries和tcp_syn_retries定义SYN

  的重试次数。

  加大SYN队列长度可以容纳更多等待连接的网络连接数,打开SYN Cookie功能可以阻止部分,SYN Cookie的作用是缓解服务器资源压力

  SYN攻击,降低重试次数也有一定效果。

  调整上述设置的方法是:

  增加SYN队列长度到2048:

 sysctl -w net.ipv4.tcp_max_syn_backlog=2048

  打开SYN COOKIE功能:

 sysctl -w net.ipv4.tcp_syncookies=1

  降低重试次数:

 sysctl -w net.ipv4.tcp_synack_retries=3

 sysctl -w net.ipv4.tcp_syn_retries=3

  为了系统重启动时保持上述配置,可将上述命令加入到/etc/rc.d/rc.local文件中。

 

5. Land 攻击

  Land 攻击是利用向目标主机发送大量的源地址与目标地址相同的数据包,造成目标主机解析 Land包时占用大量系统资源,从而使网络功能完全瘫痪的攻击手段。其方法是将一个特别设计的SYN包中的源地址和目标地址都设置成某个被攻击服务器的地址,这样服务器接收到该数据包后会向自己发送一个SYN—ACK 回应包,SYN—ACK又引起一个发送给自己的ACK包,并创建一个空连接。每个这样的空连接到将暂存在服务器中,当队列足够长时,正常的连接请求将被丢弃,造成服务器拒绝服务的现象。

 

6.Smurf攻击

 Smurf攻击是一种放大效果的ICMP攻击方式,其方法是攻击者伪装成被攻击者向某个网络上的广播设备发送请求,该广播设备会将这个请求转发到该网络的其他广播设备,导致这些设备都向被攻击者发出回应,从而达到以较小代价引发大量攻击的目的。例如,攻击者冒充被攻击者的IP使用PING来对一个C类网络的广播地址发送ICMP包,该网络上的254台主机就会对被攻击者的IP发送ICMP回应包,这样攻击者的攻击行为就被放大了 254倍。

 

7.UDP攻击 

  UDP攻击是指通过发送UDP数据包来发动攻击的方式。在UDPFlood攻击中,攻击者发送大量虚假源IP的UDP数据包或畸形UDP数据包,从而使被攻击者不能提供正常的服务,甚至造成系统资源耗尽、系统死机。由于UDP协议是一种无连接的服务,只要被攻击者开放有一个UDP服务端口,即可针对该服务发动攻击。

 

8.arp局域网攻击

  ARP攻击就是通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞,攻击者只要持续不断的发出伪造的ARP响应包就能更改目标主机ARP缓存中的IP-MAC条目,造成网络中断或中间人攻击。

  ARP攻击主要是存在于局域网网络中,局域网中若有一台计算机感染ARP木马,则感染该ARP木马的系统将会试图通过“ARP欺骗”手段截获所在网络内其它计算机的通信信息,并因此造成网内其它计算机的通信故障。

  一般服务器被人黑了或是中了病毒了,总是容易发一些ARP包出来,让同网段内其他的机器访问起来极不正常,而且硬防上一般都看不出来,总是需要跑到交换机上查ARP表,还好现在有了ARP防火墙了,直接能找到攻击源。

 

9.cc攻击

  CC攻击的原理就是攻击者控制某些主机不停地发大量数据包给对方服务器造成服务器资源耗尽,一直到宕机崩溃。CC主要是用来攻击页面的,每个人都有这样的体验:当一个网页访问的人数特别多的时候,打开网页就慢了,CC就是模拟多个用户(多少线程就是多少用户)不停地进行访问那些需要大量数据操作(就是需要大量CPU时间)的页面,造成服务器资源的浪费,CPU长时间处于100%,永远都有处理不完的连接直至就网络拥塞,正常的访问被中止。

  CC攻击也称为为HTTPFlood

 HTTPFlood攻击者并不需要控制大批的傀儡机,取而代之的是通过端口扫描程序在互联网上寻找匿名的HTTP代理或者SOCKS代理,攻击者通过匿名代理对攻击目标发起HTTP请求。匿名代理是一种比较丰富的资源,花几天时间获取代理并不是难事,因此攻击容易发起而且可以长期高强度的持续。

  另一方面,HTTPFlood攻击在HTTP层发起,极力模仿正常用户的网页请求行为,与网站业务紧密相关,安全厂商很难提供一套通用的且不影响用户体验的方案。在一个地方工作得很好的规则,换一个场景可能带来大量的误杀。

 HTTP Flood攻击防御主要通过缓存的方式进行,尽量由设备的缓存直接返回结果来保护后端业务。大型的互联网企业,会有庞大的CDN节点缓存内容。

  当高级攻击者穿透缓存时,清洗设备会截获HTTP请求做特殊处理。最简单的方法就是对源IP的HTTP请求频率做统计,高于一定频率的IP地址加入黑名单。这种方法过于简单,容易带来误杀,并且无法屏蔽来自代理服务器的攻击,因此逐渐废止,取而代之的是JavaScript跳转人机识别方案。

 HTTPFlood是由程序模拟HTTP请求,一般来说不会解析服务端返回数据,更不会解析JS之类代码。因此当清洗设备截获到HTTP请求时,返回一段特殊JavaScript代码,正常用户的浏览器会处理并正常跳转不影响使用,而攻击程序会攻击到空处。

 

10.sql注入

  SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令。在某些表单中,用户输入的内容直接用来构造(或者影响)动态SQL命令,或作为存储过程的

  输入参数,这类表单特别容易受到SQL注入式攻击。

  例如:登录的sql语句

 SELECT COUNT(*) FROM Login WHERE UserName='{0}' AND Password='{1}'

  当输入正常的账号密码  admin 123456

 SELECT COUNT(*) FROM Login WHERE UserName='admin' ANDPassword='123456'  正常登入

  如果输入admin’ --  随便输入密码

 SELECT COUNT(*) FROM Login WHERE UserName='admin'-- Password='123'   由于--后面的语句被注释忽略而登录成功

 

 

11.上传文件限制

  通过图片上传上传木马程序。攻击者可将木马程序改名为**.jsp文件上传。

  有的网站,其后台管理中可以恢复/备份数据库,这会被黑客用来进行图片木马入侵。

  图片木马入侵过程如下:首先将本地木马(例如F:\labxw\xiaomm.asp)扩展名改为.gif,然后打开上传页面,上传这个木马(例如F:\labxw\xiaomm.gif);再通过注入法拿到  后台管理员的账号密码,溜进网站后台管理中,使用备份数据库功能将.gif木马备份成.asp木马(例如xiaomm.asp),即在“备份数据库路径(相对)”输入刚才图片上传后得到  的路径,在“目标数据库路径”输入:xiaomm.asp,提示恢复数据库成功;现在打开IE,输入刚才恢复数据库的asp路径,木马就能运行了。

这篇关于服务器可能遭受攻击汇总的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1033034

相关文章

SQL 注入攻击(SQL Injection)原理、利用方式与防御策略深度解析

《SQL注入攻击(SQLInjection)原理、利用方式与防御策略深度解析》本文将从SQL注入的基本原理、攻击方式、常见利用手法,到企业级防御方案进行全面讲解,以帮助开发者和安全人员更系统地理解... 目录一、前言二、SQL 注入攻击的基本概念三、SQL 注入常见类型分析1. 基于错误回显的注入(Erro

MySQL基本表查询操作汇总之单表查询+多表操作大全

《MySQL基本表查询操作汇总之单表查询+多表操作大全》本文全面介绍了MySQL单表查询与多表操作的关键技术,包括基本语法、高级查询、表别名使用、多表连接及子查询等,并提供了丰富的实例,感兴趣的朋友跟... 目录一、单表查询整合(一)通用模版展示(二)举例说明(三)注意事项(四)Mapper简单举例简单查询

Linux服务器数据盘移除并重新挂载的全过程

《Linux服务器数据盘移除并重新挂载的全过程》:本文主要介绍在Linux服务器上移除并重新挂载数据盘的整个过程,分为三大步:卸载文件系统、分离磁盘和重新挂载,每一步都有详细的步骤和注意事项,确保... 目录引言第一步:卸载文件系统第二步:分离磁盘第三步:重新挂载引言在 linux 服务器上移除并重新挂p

Apache服务器IP自动跳转域名的问题及解决方案

《Apache服务器IP自动跳转域名的问题及解决方案》本教程将详细介绍如何通过Apache虚拟主机配置实现这一功能,并解决常见问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,... 目录​​问题背景​​解决方案​​方法 1:修改 httpd-vhosts.conf(推荐)​​步骤

交换机救命命令手册! 思科交换机排障命令汇总指南

《交换机救命命令手册!思科交换机排障命令汇总指南》在交换机配置与故障排查过程中,总会遇到那些“关键时刻靠得住的命令”,今天我们就来分享一份思科双实战命令手册... 目录1. 基础系统诊断2. 接口与链路诊断3. L2切换排障4. L3路由与转发5. 高级调试与日志6. 性能与QoS7. 安全与DHCP8.

故障定位快人一步! 华为交换机排障命令汇总

《故障定位快人一步!华为交换机排障命令汇总》在使用华为交换机进行故障排查时,首先需要了解交换机的当前状态,通过执行基础命令,可以迅速获取到交换机的系统信息、接口状态以及配置情况等关键数据,为后续的故... 目录基础系统诊断接口与链路诊断L2切换排障L3路由与转发高级调试与日志性能、安全与扩展IT人无数次实战

Linux云服务器手动配置DNS的方法步骤

《Linux云服务器手动配置DNS的方法步骤》在Linux云服务器上手动配置DNS(域名系统)是确保服务器能够正常解析域名的重要步骤,以下是详细的配置方法,包括系统文件的修改和常见问题的解决方案,需要... 目录1. 为什么需要手动配置 DNS?2. 手动配置 DNS 的方法方法 1:修改 /etc/res

Pandas处理缺失数据的方式汇总

《Pandas处理缺失数据的方式汇总》许多教程中的数据与现实世界中的数据有很大不同,现实世界中的数据很少是干净且同质的,本文我们将讨论处理缺失数据的一些常规注意事项,了解Pandas如何表示缺失数据,... 目录缺失数据约定的权衡Pandas 中的缺失数据None 作为哨兵值NaN:缺失的数值数据Panda

Nginx屏蔽服务器名称与版本信息方式(源码级修改)

《Nginx屏蔽服务器名称与版本信息方式(源码级修改)》本文详解如何通过源码修改Nginx1.25.4,移除Server响应头中的服务类型和版本信息,以增强安全性,需重新配置、编译、安装,升级时需重复... 目录一、背景与目的二、适用版本三、操作步骤修改源码文件四、后续操作提示五、注意事项六、总结一、背景与

Web服务器-Nginx-高并发问题

《Web服务器-Nginx-高并发问题》Nginx通过事件驱动、I/O多路复用和异步非阻塞技术高效处理高并发,结合动静分离和限流策略,提升性能与稳定性... 目录前言一、架构1. 原生多进程架构2. 事件驱动模型3. IO多路复用4. 异步非阻塞 I/O5. Nginx高并发配置实战二、动静分离1. 职责2