• 【Socket】linux网络扫描程序开发


     
    1.mystery引入
       1)系统入侵步骤:系统发现->漏洞探测->漏洞利用->痕迹清除
       2)扫描器分类:主机与网络扫描器;端口服务扫描器;服务漏洞扫描器
       3)TCP端口扫描技术分为三种:全连接扫描;SYN扫描以及FIN扫描
       4)UDP端口扫描技术一般采用ICMP报文端口不可达的信息来识别UDP端口是否开放
       5)全连接扫描利用connect()函数的返回值来判断端口是否开放
       6)SYN构造并发送一个SYN数据包,就是TCP三次握手建立连接的第一步
          若返回一个SYN|ACK的数据包,则端口表示处于监听状态
          若返回一个RST数据包,则表示端口没有处于侦听状态
       7)FIN扫描和SYN扫描类似,构造相应的数据包
          原理:关闭的端口会用RST数据包来回应FIN数据包,而开放的端口则会忽略这种报文


    2.程序构造
       1)功能:实现一个可用的端口扫描程序,在扫描方式上,实现全连接扫描、SYN半连接扫描、多线程全连接扫描等方式
       2)使用方式:采用交互式命令,在配置待扫描的目标主机IP地址、端口范围等信息后,启动扫描
       3)交互式模块是整个系统的调试核心,也是控制系统运转的一条主线
       4)交互式模块通过命令驱动,要调用3个扫描模块。扫描模块要求的心要参数信息为:IP地址、端口的下限及端口的上限;
         针对多线程扫描全连接扫描,还要增加线程数这一参数信息
       5)半连接扫描的基本原理是采用原始套接字技术,构造相应格式的SYN数据包,发送目标主机
           然后根据目标主机的响应信息,判断扫描端口的状态
    因为是采用原始套接字,所以需要root权限


    3.程序测试

      1)程序功能清单


      2)本机测试全连接扫描


      3)远程主机测试全连接扫描


      4)其它两种扫描方式类似,这里就不截图了,另外SYN扫描需要root权限


    4.源代码
    //scantool.c,见原博客附件http://infohacker.blog.51cto.com/6751239/1155170
     
     
     
     
  • 相关阅读:
    Gentle.Net学习笔记一:配置文件设置
    啥时候咱能用上NExcelApi?
    ibus no input window
    QT && GDAL
    安装 purcell 的emacs.d 配置文件
    进程
    C++的cout高阶格式化操作
    C++ 虚函数表解析
    [转]C程序内存区域分配(5个段作用)
    如何写Makefile文件
  • 原文地址:https://www.cnblogs.com/lcw/p/3159503.html
Copyright © 2020-2023  润新知