【Linux技术】linux网络扫描程序开发
来源:互联网 发布:三明治面膜的危害知乎 编辑:程序博客网 时间:2024/06/05 04:14
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权限
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.程序测试
2)本机测试全连接扫描
3)远程主机测试全连接扫描
4)其它两种扫描方式类似,这里就不截图了,另外SYN扫描需要root权限
4.源代码
//scantool.c,见附件
本文出自 “成鹏致远” 博客,请务必保留此出处http://infohacker.blog.51cto.com/6751239/1155170
- 【Linux技术】linux网络扫描程序开发
- linux下nmap的使用-linux网络扫描技术
- Linux扫描技术笔记
- Linux系统扫描技术
- Kali Linux 网络扫描秘籍 第五章 漏洞扫描
- Kali Linux网络扫描教程(内部资料)
- Kali Linux 网络扫描秘籍 翻译完成!
- 【Linux技术】linux网络多路复用IO技术
- 网络扫描技术揭秘读书笔记2--嵌入外部程序
- 网络扫描技术
- 网络扫描技术
- 网络扫描技术揭秘
- 网络扫描技术总结
- Linux中实现一个目录扫描程序
- LINUX 网络小程序
- linux网络程序编程
- linux网络程序应用
- linux开发技术概述
- 【Linux技术】linux组播技术
- 【C/C++】feorda下gtk安装详解
- 【Linux技术】linux之configure,pkg-config和PKG_CONFIG_PATH
- 【Linux技术】linux驱动程序开发及环境搭建
- 【Linux技术】linux高性能网络服务程序
- 【Linux技术】linux网络扫描程序开发
- 【Linux技术】linux下http服务器开发
- 【Linux技术】总结·linux shell脚本攻略
- 【IT职场】如何成为T型甚至A型人物。
- 【IT职场】为什么有能力却得不到晋升?
- Ruby安装中遇到的问题 DevKit + Gem Sqlite3
- 【IT情感】心中无我,眼中无钱,念中无他,朝中无人,学无止境
- 【IT情感】久坐易死,IT人员您知道吗
- Simplify Path