portscan实验报告
- 格式:wps
- 大小:306.00 KB
- 文档页数:14
网络程序设计实验报告实验名称winsock端口扫描试验实验类型验证型实验地点东六E402实验日期2017年4月1日指导教师贾浩学生班级信安1402学生姓名蒋字翔学生学号5120142362提交日期2017年4月1日实验成绩:__________________________一、实验目的了解端口扫描的基本概念和工作原理;二、实验设计(一)题目:编写一个利用全连接的端口扫描程序,能显示目标主机的端口开放情况。
要求能在命令行输入要扫描的目标主机和端口范围。
比如:scan *.*.*.* nnnn-mmmm。
(二)设计:1、字符串处理。
实验中需要对用户输入的字符串进行处理,从中获取到要扫面的IP地址和端口号范围。
可先用一个字符串保存整个命令语句,然后检测到其中的第一个空格和第二个空格,在两个空格之中的内容即是需要检测的IP地址,然后获取到第二个空格和第一个横线之间的内容,并将其转换为整型数据,此为需要扫描的端口的起始端口号,最后获取到横线之后的数据,将其转化为整型数据,即需要扫面端口的终止端口号。
2、设计主程序。
先创建一个TCP类型的套接字,将其绑定到本地地址,然后将要发送数据的IP地址设置为从用户命令中获取到的数据,紧接着在一个循环中,将在需要扫描的端口的范围内的数据依次赋值给要发送数据的端口号,然后调用connect函数,并等待对方响应连接,若得到响应则表示该端口正常开启,否则表示该端口关闭,并在控制台中打印其开关情况。
3、程序流程图如下:扫描端口程序流程图三、实验过程1.针对实验要求设计代码2.编写代码实现要求3.实验结果四、讨论与分析1. 阐述全连接扫描的原理。
答:全连接扫描是TCP端口扫描的基础,现有的全连接扫描有TCP connect()扫描和TCP 反向ident扫描等。
其中TCP connect()扫描的实现原理如下所述:扫描主机通过TCP/IP协议的三次握手与目标主机的指定端口建立一次完整的连接。
实验 端口扫描攻击检测实验【实验名称】端口扫描攻击检测实验【实验目的】RG-IDS 对端口扫描(port scan )攻击检测功能【背景描述】校园网中服务器被外网用户扫描和探测,扫描攻击不仅是攻击的前奏,而且消耗网络带宽,影响学校网络正常运行。
RG-IDS 部署在外网出口、DMZ 区、数据中心,检测外网和内网用户对DMZ 服务器、数据中心区应用层攻击,以及恶意扫描和探测行为的审计。
并将检测信息及时通知管理员,采取相应的防御措施。
【需求分析】需求 :外网用户的恶意扫描探测,内网用户遭受病毒攻击后,会自动向外发送扫描,传播蠕虫等病毒,危害内网安全分析 :通过RG-IDS 端口扫描攻击的检测,初步识别攻击的源和目的,进行及时防御,将威胁降到最低,更好的保护学校网络安全【实验拓扑】攻击机IP :172.16.5.127被攻击机IP :172.16.5.125网口1网口2网口3IDS 入侵检测控制台 IP :172.16.5.128IDS 入侵检测引擎IP :172.16.5.100图5-1端口扫描攻击检测实验拓扑图【实验设备】 PC 3台 RG-IDS 1台 直连线 5条交换机 1台(必须支持多对一的端口镜像)攻击工具 portscan12(端口扫描工具)【预备知识】交换机端口镜像配置、RG-IDS配置、portscan12攻击工具使用【实验原理】端口扫描向目标主机的TCP/IP服务端口发送探测数据包,并记录目标主机的响应。
通过分析响应来判断服务端口是打开还是关闭,就可以得知端口提供的服务或信息。
端口扫描也可以通过捕获本地主机或服务器的流入流出IP数据包来监视本地主机的运行情况,它仅能对接收到的数据进行分析,帮助我们发现目标主机的某些内在的弱点,而不会提供进入一个系统的详细步骤。
端口扫描技术行为作为恶意攻击的前奏,严重威胁用户的网络,RG-IDS通过扫描的行为特征准确的识别出恶意的扫描行为,并及时通知管理员。
杭州电子科技大学软件学院网络工程试验报告端口扫描报告09109146王子龙1.端口及端口扫描技术简介 (2)2.对现有端口扫描工具程序的理解 (2)主界面 (3)3.核心代码 (6)4.个人总结 (13)1.端口及端口扫描技术简介根据提供服务类型的不同,端口分为两种,一种是TCP端口,一种是UDP端口。
计算机之间相互通信的时候,分为两种方式:一种是发送信息以后,可以确认信息是否到达,也就是有应答的方式,这种方式大多采用TCP协议;一种是发送以后就不管了,不去确认信息是否到达,这种方式大多采用UDP协议。
对应这两种协议的服务提供的端口,也就分为TCP 端口和UDP端口。
一台拥有IP地址的主机可以提供许多服务,比如Web服务、FTP服务、SMTP服务等,这些服务完全可以通过1个IP地址来实现。
主机不只是靠IP地址来区分网络服务,因为IP 地址与网络服务的关系是一对多的关系。
实际上是通过“IP地址+端口号”来区分不同的服务的。
一个端口就是一个潜在的通信通道,也就是一个入侵通道。
对目标计算机进行端口扫描,能得到许多有用的信息。
进行扫描的方法很多,可以是手工进行扫描,也可以用端口扫描软件进行。
在手工进行扫描时,需要熟悉各种命令。
对命令执行后的输出进行分析。
用扫描软件进行扫描时,许多扫描器软件都有分析数据的功能。
通过端口扫描,可以得到许多有用的信息,从而发现系统的安全漏洞。
2. 对现有端口扫描工具程序的理解该程序是有C++编写的。
C++是一种使用非常广泛的计算机编程语言。
C++是一种静态数据类型检查的、支持多重编程范式的通用程序设计语言。
它支持过程化程序设计、数据抽象、面向对象程序设计、制作图标等等泛型程序设计等多种程序设计风格。
该程序能够扫描主机IP的某一个端口,或者是扫描该主机IP某一范围内的端口。
并且提供多次扫描功能。
如果要扫描的端口很多,在扫描过程中可以暂停扫描。
扫描结果在界面的下方显示。
主要显示内容有IP地址、端口号、端口状态、连接次数及备注。
实验5:端口扫描器的设计与实现姓名:学号:专业年级:(一)实验目的和内容:目的:加深对TCP的理解,学习端口扫描技术和原理,熟悉socket编程。
内容:实现一个扫描器,使用TCP connect进行端口扫描,并对扫描结果进行记录。
(二)课程设计要求:Windows或Linux环境下,程序在单机上运行;使用端口扫描器对一台主机进行扫描,并显示出结果;编程语言不限;提供友好的用户界面。
(三)端口扫描技术:“端口”是专门为计算机通信而设计的,它不是硬件,不同于计算机中的“插槽”,可以说是个“软插槽”。
“端口”是由计算机的通信协议TCP/IP协议定义的。
其中规定,用IP地址和端口作为套接字,它代表TCP连接的一个连接端,一般称为Socket。
具体来说,就是用[IP:端口]来定位一台主机中的进程。
计算机就像一座大楼,这个大楼有好多入口(端口),进到不同的入口中就可以找到不同的公司(进程)。
端口与进程是一一对应的,入侵者通过扫描端口,便可以判断出目标计算机有哪些通信进程正在等待连接。
(四)扫描端口的目的:端口扫描是入侵者搜集信息的几种常用手法之一,也正是这一过程最容易使入侵者暴露自己的身份和意图。
•判断目标主机上开放了哪些服务;•判断目标主机的操作系统。
如果入侵者掌握了目标主机开放了哪些服务,运行何种操作系统,他们就能够使用相应的手段实现入侵。
(五)端口的分类:端口是一个16 bit的地址,用端口号进行标识不同的作用。
端口一般分为两类。
•熟知端口号(公认端口号):由因特网指派名字和号码公司ICANN负责分配给一些常用的应用层程序固定使用的熟知端口,其数值一般为0~1023。
•一般端口号:用来随时分配给请求通信的客户进程。
(六)扫描原理的基础知识:TCP/IP模型四层结构TCP与UDP协议TCP报文结构TCP连接和释放过程(七)TCP/IP模型四层结构:(八)TCP与UDP协议:Internet的网络通信大多是建立在这两个协议之上的,各个主机遵循着TCP/IP协议封装数据包进行通信。
目录1需求分析 (3)1.1课程设计目的 (3)1.2课程设计内容 (3)1.3课程设计要求 (3)2概要设计 (3)2.1原理概述 (3)2.2运行环境 (3)2.3基本设计思路 (3)2.4功能模块设计 (3)3详细设计 (3)3.1程序流程 (3)3.2主要算法 (5)3.3主要数据结构 (6)3.4主要函数说明 (6)4用户使用手册 (7)5项目分析与总结 (7)5.1项目分析 (7)5.2总结与建议 (8)附录 A源程序代码文件说明 (8)附录 B参考文献 (20)1.需求分析1.1课程设计目的加深对 TCP/IP 的理解,熟悉 socket 编程。
课程设计内容实现一个扫描器,使用 TCPconnect 进行端口扫描,并把扫描到的结果记录下来。
课程设计要求(1) Windows 或 Linux 环境下,程序在单机上运行;(2)使用端口扫描对一台主机进行扫描,并显示出结果;对一个网段进行IP 扫描,显示出结果;(3)提供友好的用户界面。
2.概要设计2.1原理概述TCPconnect 扫描是最基本的扫描,操作系统提供的 connect ()系统调用,用来与每一个感兴趣的目标计算机的端口进行连接。
如果端口处于侦听状态,那么connect ()就能成功。
否则,这个端口是不能用的,即没有提供服务。
2.2 运行环境Windows xp,VC++6.02.3 基本设计思路创建一个 CSocket 套接字,通过 CSocket 的 Connect 函数测试该主机的某个端口是否能够连通,获得该端口的打开状态。
2.4 功能模块设计(1)测试主机某个端口是否打开;(2)“扫描结果”标题栏;(3)扫描单个或多个端口的单选按钮;(4)“扫描”,“停止”,“保存”按钮。
3.详细设计3.1程序流程开始扫描初始化T F扫描单个端口?m_bSinglePort=true;m_bSinglePort=false;m_cSinglePort.EnableWindow();m_cSinglePort.EnableWindow(false); m_cPortFrom.EnableWindow(false);m_cPortFrom.EnableWindow();m_cPortTo.EnableWindow(false);m_cPortTo.EnableWindow();m_cBtnStop.EnableWindow(false);m_cBtnStop.EnableWindow(false);设置端口开始侦听端口T有错误?F显示结果设置下一端口扫描结束3.2主要算法( 1)测试主机某个端口是否打开的函数TestConnection ():BOOL CMyDlg::TestConnection(CString IP,UINT nPort){ CSocket* pSocket;pSocket=new CSocket;ASSERT(pSocket);if (!pSocket->Create()){ delete pSocket;pSocket=NULL;return false;}while (!pSocket->Connect(IP,nPort)){ delete pSocket;pSocket=NULL;return false;}pSocket->Close();delete pSocket;return true;}( 2)响应单选按钮“扫描单个端口”和“扫描多个端口”的单击消息:void CMyDlg::OnRadio1Single(){m_bSinglePort=true;m_cSinglePort.EnableWindow();m_cPortFrom.EnableWindow(false);m_cPortTo.EnableWindow(false);m_cBtnStop.EnableWindow(false);}void CMyDlg::OnRadio2Range(){ m_bSinglePort=false;m_cSinglePort.EnableWindow(false);m_cPortFrom.EnableWindow();m_cPortTo.EnableWindow();m_cBtnStop.EnableWindow(false);}( 3)显示列表框标题栏的成员函数://增加列表框标题栏的某一列BOOLCMyDlg::AddColumn(LPCTSTR strItem,int nItem,int nSubItem,int nMask,int nFmt) {LV_COLUMN lvc;lvc.mask=nMask;lvc.fmt=nFmt;lvc.pszText=(LPTSTR) strItem;lvc.cx=m_cResult.GetStringWidth(lvc.pszText)+25;if(nMask&LVCF_SUBITEM){ if(nSubItem!=-1)lvc.iSubItem=nSubItem;elselvc.iSubItem=nItem;}return m_cResult.InsertColumn(nItem,&lvc);}//在列表框中加一条BOOL CMyDlg::AddItem(int nItem,int nSubItem,LPCTSTR strItem ,int nImageIndex){ LV_ITEM lvItem;lvItem.mask=LVIF_TEXT;lvItem.iItem=nItem;lvItem.iSubItem=nSubItem;lvItem.pszText=(LPTSTR)strItem;if(nImageIndex!=-1){ lvItem.mask|=LVIF_IMAGE;lvItem.iImage|=LVIF_IMAGE;}if(nSubItem==0)return m_cResult.InsertItem(&lvItem);return m_cResult.SetItem(&lvItem);}//加一列标题栏字符void CMyDlg::AddHeader(LPTSTR hdr){ if (m_pColumns)m_pColumns->AddTail(hdr);}//显示列表框标题栏void CMyDlg::ShowHeaders(){int nIndex=0;POSITION pos=m_pColumns->GetHeadPosition();while(pos){ CString hdr=(CString)m_pColumns->GetNext(pos);AddColumn(hdr,nIndex++);}}(4)“扫描”,“停止”,“保存”按钮,见附录程序。
本文档如对你有帮助,请帮忙下载支持!网络扫描软件Nmap的应用在网络攻击时,攻击者往往会使用网络和端口扫描软件对目标主机进行扫描,发现漏洞,为后续攻击做准备。
本实验使用网络扫描软件Nmap对北邮官网1.隐藏扫描(Stealth Scanning)-sS为TCP同步扫描,原理是源主机发送一个TCP同步包(SYN),然后等待目的主机的回应。
如果对方返回SYN|ACK包,就表示该目标端口打开。
Wireshark抓包可以看出在扫描过程中,源主机(10.8.70.224)向目标主机(10.3.9.254)最可能打开的1000个端口发送了TCP同步包,其中只有80端口和3306端口返回了SYN|ACK包,说明目标主机开放了这两个端口。
从Nmap扫描结果可以看出80端口提供的是http服务,3306提供的是mysql服务。
2.端口扫描(port scanning)-sT扫描是调用系统函数connect()用来打开一个链接,所以耗时要比-sS要多。
RTTVAR(往返延时变量)很大,应该网络拥塞引起的。
从wireshark抓包看出源主机与目的主机之间建立了完全的TCP链接,探测到端口开放后立即发送RST 断开链接。
3.UDP扫描(UDP Scanning)UDP扫描是向目标主机的每个端口发送一个0字节的UDP包,如果收到端口不可到达的ICMP消息,端口就是关闭的。
如wireshark抓包所示源主机向目标机的1031端口发送了一个0字节的UDP包。
端口1031收到了ICMP消息,说明端口是关闭的。
端口123开启的是ntp服务。
值得注意的是,此时发送的并不是0字节的UDP 包,而是内容为ntp的总长为224bit的UDP包。
4.Ping扫描(Ping Sweeping)对源主机所在网段(,Nmap是通过发送ARP包来询问IP地址上的主机是否活动的,如果收到ARP回复包,那么说明该主机在线。
如wireshark抓包所示源主机广播所扫描网段的ARP请求,没有回复的主机均视为没有在线。
北京理工大学珠海学院课程设计说明书2013—2014学年第1学期题目: 端口扫描器的设计与实现学院:计算机专业班级:计算机科学与技术4班学号: ************/019学生姓名:官广昌黄晨豪指导教师:***成绩:时间: 2013年12月28北京理工大学珠海学院课程设计任务书2013 ~2014 学年第1 学期学生姓名:官广昌黄晨豪专业班级: 11计算机科学与技术4班指导教师:刘玉仙工作部门:计算机学院一、课程设计题目端口扫描器的设计与实现二、课程设计内容对ip端口进行扫描,分析结果。
三、进度安排(1)1-4学时,选定题目、分析需求、理解需求;(2)5-8学时,制定设计方案;(3)9-16学时,编写程序、调试、测试;(4)17-20学时,编写设计报告;(5)21-24学时,答辩。
四、基本要求1.网络安全设计方案具有实用价值;2.根据指导教师给出的题目进行分配,每个题目最多不超过2个人完成。
3.题目可以相同,但参数要求不同,每人必须独立完成。
4、写出课程设计报告,应不少于3000字(不含附录),同一组学生只需提交1份,但必须在报告中列明分工。
课程负责人签名:年月日课程设计成绩评定表分工:端口扫描器的设计与实现摘要计算机信息网络的发展加速了信息化时代的进程,但是随着社会网络化程度的增加,对计算机网络的依赖也越来越大,网络安全问题也日益明显。
端口扫描技术是发现安全问题的重要手段之一。
本程序是在Windows系统中使用C语言完成的一个端口扫描程序。
此程序主要完成了ip端口的扫描功能。
扫描能对单个指定的主机进行扫描或对指定网段内的主机进行逐个扫描。
扫描结果以列表的形式直观地展现出来。
通过对扫描结果的分析知道了,有哪些端口是开放的。
关键词:端口扫描 ip端口网络安全 ip扫描目录第一章课程设计的目的 (2)1.1、课题的背景及意义 (2)1.2、端口扫描现状 (2)第二章功能模块与系统结构 (2)第三章相关知识 (3)3.1、端口的基本概念 (3)3.2、常见端口介绍 (4)第四章实验流程 (6)4.1、步骤 (6)4.2、流程图 (6)第五章结果 (7)第六章源程序 (10)参考文献 (19)心得体会 (19)附件 (20)第一章课程设计的目的1.1、课题的背景及意义网络中每台计算机犹如一座城堡,这些城堡中,有些是对外完全开放的,有些却是大门紧闭的。
端口扫描实验报告网络端口扫描实验报告姓名:刘俊峰学号:11054114班级:11052411课程:网络攻防技术老师:张旻一、网络端口扫描简介TCP/IP协议在网络层是无连接的,而“端口”,就已经到了传输层。
端口便是计算机与外部通信的途径。
一个端口就是一个潜在的通信通道,也就是一个入侵通道。
对目标计算机进行端口扫描,能得到许多有用的信息。
进行扫描的方法很多,可以是手工进行扫描,也可以用端口扫描软件进行。
在手工进行扫描时,需要熟悉各种命令,对命令执行后的输析出进行分,效率较低。
用扫描软件进行扫描时,许多扫描器软件都有分析数据的功能。
通过端口扫描,可以得到许多有用的信息,从而发现系统的安全漏洞。
扫描工具根据作用的环境不同可分为:网络漏洞扫描工具和主机漏洞扫描工具。
前者指通过网络检测远程目标网络和主机系统所存在漏洞的扫描工具。
后者指在本机运行的检测本地系统安全漏洞的扫描工具。
本实验主要针对前者。
端口是TCP协议中定义的,TCP协议通过套接字(socket)建立起两台计算机之间的网络连接。
它采用【IP地址:端口号】形式定义,通过套接字中不同的端口号来区别同一台计算机上开启的不同TCP和UDP连接进程。
端口号在0~~65535之间,低于1024的端口都有确切的定义,它们对应着因特网上常见的一些服务。
这些常见的服务可以划分为使用TCP端口(面向连接如打电话)和使用UDP端口(无连接如写信)两种。
端口与服务进程一一对应,通过扫描开放的端口就可以判断计算机中正在运行的服务进程。
二、实验目的1.了解熟悉MFC及的基本原理和方法。
2.加深对tcp的理解,学习端口扫描技术和,原理熟悉socket编程。
3.通过自己编程实现简单的IP端口扫描器模型。
4.通过端口扫描了解目标主机开放的端口和服务程序。
三、实验环境Windows操作系统VC++6.0开发环境四、实验设计实验原理通过调用socket函数connect()连接到目标计算机上,完成一次完整的三次握手过程,如果端口处于侦听状态,那么connect()就可以成功返回,否则这个端口不可用,即没有提供服务。
实验二网络端口扫描一、实验目的通过练习使用网络端口扫描器,了解目标主机开放的端口和服务程序,从而获得系统有用的信息,发现网络系统的安全漏洞。
本实验将在Windows操作系统下使用Superscan工具进行网络端口扫描实验,在Linux操作系统下将使用综合性扫描工具Nessus进行扫描练习(暂不进行)。
通过端口扫描实验,可以增强学生在网络安全方面的防护意识。
二、实验原理在Internet安全领域,扫描器是最有效的破解工具之一,扫描器是一种自动检测远程或本地主机安全性弱点的程序。
通过使用扫描器,可以发现远程服务器是否存活、它对外开放的各种TCP端口的分配及提供的服务、它所使用的软件版本(如OS和其它Software的版本)以及所存在可能被利用的系统漏洞。
根据这些信息,可以让使用它的用户了解到远程主机所存在的安全问题。
1、扫描的类型(1)地址扫描地址扫描是最简单、最常见的一种扫描方式。
可以通过Ping来判断某一主机是否在线。
也可以通过一些工具来获得某一网络中所有在线主机的地址。
但由于现在很多的路由器与防火墙对ICMP请求进行拦截,因此这种方式也不一定很可靠。
(2)端口扫描互联网上通信的双方不仅需要知道对方的地址,还需要知道通信程序的端口号。
目前使用的IPv4协议支持16位的端号,端口号可使用的范围为0~65535,其中0~1023为熟知端口,被指定给特定的服务使用,由IANA(Internet Assigned Numbers Authority,互联网数字分配机构)管理;1024~49151为注册端口,这些端口由IANA记录并追踪;49152~65535端口叫做动态端口或专门端口,提供给专用应用程序。
在进行入侵攻击之前,首先要了解目标系统的是什么OS,是否有保护措施,运行什么服务和服务的版本,存在漏洞等,而要判断服务的方法就通过端口扫描,这是因为常用的服务是使用标准的端口,因此只要知道了端口号,就能知道目标主机上运行着什么服务,然后才能针对这些服务进行攻击。