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
 
 
 
 

【Socket】linux网络扫描程序开发的更多相关文章

  1. Linux及Arm-Linux程序开发笔记(零基础入门篇)

    Linux及Arm-Linux程序开发笔记(零基础入门篇)  作者:一点一滴的Beer http://beer.cnblogs.com/ 本文地址:http://www.cnblogs.com/bee ...

  2. 【Linux开发】Linux及Arm-Linux程序开发笔记(零基础入门篇)

    Linux及Arm-Linux程序开发笔记(零基础入门篇) 作者:一点一滴的Beer http://beer.cnblogs.com/ 本文地址:http://www.cnblogs.com/beer ...

  3. Kali Linux 网络扫描秘籍 翻译完成!

    Kali Linux 网络扫描秘籍 翻译完成! 原书:Kali Linux Network Scanning Cookbook 译者:飞龙 在线阅读 PDF格式 EPUB格式 MOBI格式 代码仓库 ...

  4. 初识linux端c++程序开发

    关于linux端程序开发,我以前一直不知道是做些什么,只是感觉听高端的.最近接触了一些,有了一些初步的认识. 首先,linux是一个操作系统,跟windows一样:接通电源.按下电脑开机,电脑就会自动 ...

  5. 搭建Linux下Android程序开发环境

    从AndroidStudio中文社区下载SDK压缩包,http://dl.google.com/android/android-sdk_r24.2-linux.tgz. 解压到某个目录,比如我的~/p ...

  6. Linux/Windows 应用程序开发

    一.基础知识 虽然写的都是代码,但是代码运行在哪个级别什么位置,还是需要做好定位,这样才心中有数. 1.1 Linux [转载]讲述了中断.系统调用.Linux APIs和Shell的基本知识. 1 ...

  7. C# 异步通信 网络聊天程序开发 局域网聊天室开发

    Prepare 本文将使用一个NuGet公开的组件技术来实现一个局域网聊天程序,利用组件提供的高性能异步网络机制实现,免去了手动编写底层的困扰,易于二次开发,扩展自己的功能. 在Visual Stud ...

  8. Kali Linux 网络扫描秘籍

    第三章 端口扫描(二) 作者:Justin Hutchens 译者:飞龙 协议:CC BY-NC-SA 4.0 3.6 Scapy 隐秘扫描 执行 TCP 端口扫描的一种方式就是执行一部分.目标端口上 ...

  9. Linux网络编程:基于TCP的程序开发回顾篇《转》

    面向连接的TCP程序设计 基于TCP的程序开发分为服务器端和客户端两部分,常见的核心步骤和流程: 其实按照上面这个流程调用系统API确实可以完全实现应用层程序的开发,一点问题没有.可随着时间的推移,你 ...

随机推荐

  1. ios中二维码的用法

    网上的例子 zbar 下载地址 http://pan.baidu.com/share/link?shareid=2652605686&uk=9237761871.新建一个工程A:view-ba ...

  2. 使用tensorflow-serving部署tensorflow模型

    使用docker部署模型的好处在于,避免了与繁琐的环境配置打交道.使用docker,不需要手动安装Python,更不需要安装numpy.tensorflow各种包,直接一个docker就包含了全部.d ...

  3. android开发学习---开发一个简易的短信发送器

    一.需求: 开发一个简易的短信发送器,输入:对方手机号码,短信内容,点击发送按钮,短信发送成功,对方手机成功收到短信. 其中要求短信内容过长时可以自动拆分,长度英文是160个英文,中文是70个,中英混 ...

  4. JavaScript Window Location 当前页面的地址

    window.location 对象用于获得当前页面的地址 (URL),并把浏览器重定向到新的页面. Window Location window.location 对象在编写时可不使用 window ...

  5. memcached缓存基本概念

    Memcached是一套分布式内存对象缓存系统. 用于在动态应用系统中缓存数据库的数据,减少数据库的访问压力,达到提升网站系统性能的目的:memcached在企业应用场景中一般是用来作为数据库的cac ...

  6. VI 基本可视模式

    可视模式让你可以选择文件的一部分内容,以便作比如删除,复制等工作. 进入可视模式 v 用v命令进入可视模式.当光标移动时,就能看到有一些文本被高亮显示了,它们就是被选中的内容. 三种可视模式 v 一个 ...

  7. Digital Color Meter 颜色值提取工具

    1.Digital Color Meter 简介 Digital Color Meter 是一款 Mac 自带的颜色值提取工具. 其它下载地址 Digital Color Meter for Mac, ...

  8. angular之service、factory预provider区别

    昨晚项目组做了angular分享,刚好有讨论到这个问题.虽然许久不做前端开发,但是兴趣所致.就查阅了下资料,以便后续需要使用 自己的理解:service是new出来的,factory是直接使用就能获得 ...

  9. Debian下的crontab保存

    nano编译器 ctrl+x然后y,保存退出

  10. mark CodeGenerator

    基础权限开发框架 BMS = Spring boot + Mybatis plus + Shiro     BMS / bms-admin  / src  / main  / java  / com  ...