[百晓生]-linux网络扫描程序开发

 
[百晓生]-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
 
 
    由于加上源代码超过八万字,所以需要的请QQ联系我
 
 

你可能感兴趣的:(linux,linux,开发,百晓生,百晓生,成鹏致远,mystery,网络扫描程序,网络扫描程序)