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,是否有保护措施,运行什么服务和服务的版本,存在漏洞等,而要判断服务的方法就通过端口扫描,这是因为常用的服务是使用标准的端口,因此只要知道了端口号,就能知道目标主机上运行着什么服务,然后才能针对这些服务进行攻击。
半打开端口扫描技术的实现摘要随着互联网的飞速发展,网络入侵行为日益严重,网络安全日益成为人们关注的焦点。
端口扫描技术是网络安全扫描技术的重要技术之一。
对目标系统进行端口扫描,是网络系统入侵者进入目标系统的第一步。
本文对端口扫描技术的原理和应用进行了阐述,并设计了一个简单的基于windows平台上的端口扫描系统。
在论文中介绍了半打开扫描中的SYN探测技术,分析了这种扫描技术实现的原理和特点。
实际设计中采用了扫描安全性和可行性较好的SYN探测技术来实现端口扫描,并实现了端口列表自定义,扫描结果存储等几大模块化功能。
最后结合当前的实际情况对端口扫描的未来发展方向提出了一点个人的看法。
关键词:网络安全;端口扫描;SYN探测The Implementation of a Port-scanning ProgramBased on Semi-opened Port TechnologyAbstractWith the quick development of the internet, network intrusion behavior becomes more and more serious; Network security becomes the focus which people pay attention to. Port-Scanning Technology is one of the most important technologies of the safe scanning on internet. The first step that network system intruders enter the target system is the port scanning of the system. This essay explains the principle and application of the port scanning technology, and then designs a simple port-scan system which bases on the Windows platform. The paper introduces the SYN probe technology of the semi-open scan technologies, analyzes its implementing principle, approach and characters. In the real design it use the SYN probe technology which has a better scanning security and feasibility to achieve the Port Scanning, then realize user-defined port list function, recording of the scanning result, and some other functional modules. At last, combined with the nowadays actual situation, the paper brings a few personal minds for the future direction of the development of the Port-Scanning.Key words: Network security;Port scanning;SYN probe目录论文总页数:22页1 引言 (1)1.1端口扫描概述 (1)1.2端口扫描技术的国内外研究现状 (1)1.3端口扫描原理 (1)1.4端口扫描技术概要 (2)1.5SYN技术详解 (3)1.5.1TCP包探测原理 (3)1.5.2SYN包探测 (4)1.5.3分组时延 (4)1.6端口扫描实现方法 (4)2 需求分析 (4)2.1端口扫描器的总体要求 (4)2.1.1设计背景 (4)2.1.2用户特点 (4)2.1.3软件开发及运行环境 (5)2.2端口扫描器的需求分析 (5)3 端口扫描器的实现 (5)3.1功能模块简介 (5)3.2程序实现流程 (5)3.3SYN探测的实现 (5)3.4端口扫描功能模块 (8)3.4.1端口选择模块 (8)3.4.2目标IP选取模块 (9)3.4.3终止扫描 (10)3.4.4扫描结果存储模块 (10)4 测试环境及结果 (12)4.1硬件环境 (12)4.2软件环境 (12)4.3测试结果 (12)5 端口扫描技术的发展方向和趋势 (12)结论 (13)参考文献 (13)1引言1.1端口扫描概述网络安全探测在网络安全中起着主动防御的作用,占有非常重要的地位。
实习报告实训项目:端口扫描软件实习实习时间:2023年2月24日实习地点:XX公司网络实验室一、实习目的通过本次实习,了解端口扫描软件的作用和原理,掌握端口扫描软件的使用方法,提高对网络安全的认识,为公司的网络安全保驾护航。
二、实习内容1. 学习端口扫描软件的基本概念、作用和原理。
2. 学习端口扫描软件的使用方法,包括安装、配置和操作。
3. 进行实际操作,对公司的网络进行端口扫描,分析扫描结果。
4. 根据扫描结果,提出改进网络安全的建议。
三、实习过程1. 学习端口扫描软件的基本概念、作用和原理端口扫描软件是一种网络安全工具,用于扫描目标计算机上的开放端口,以发现可能存在的网络安全风险。
端口是计算机网络通信中,用于区分不同服务或应用程序的逻辑概念。
每个端口都对应着一种服务或应用程序,当端口处于开放状态时,表示相应的服务或应用程序正在运行。
通过端口扫描,可以了解目标计算机上运行的服务,发现可能的安全漏洞,从而采取措施进行防护。
2. 学习端口扫描软件的使用方法在实习过程中,我们使用了XX公司提供的端口扫描软件。
首先,我们需要安装软件,然后根据提示进行配置。
配置包括选择扫描的目标IP地址、端口范围、扫描方式等。
最后,开始扫描,等待扫描完成。
3. 进行实际操作,分析扫描结果根据配置,我们对公司的网络进行了端口扫描。
扫描结果显示,公司网络中存在一些开放端口,其中一些端口对应的服务是已知的安全风险。
我们对扫描结果进行了分析,发现以下问题:(1)部分服务器端的端口安全配置不当,存在被攻击的风险。
(2)部分员工计算机的端口开放,可能存在非法外联的情况。
(3)部分设备的端口处于关闭状态,但未进行安全防护,可能存在潜在风险。
4. 提出改进网络安全的建议针对扫描结果,我们提出了以下建议:(1)加强服务器端口的安全配置,关闭不必要的端口,对于必须开放的端口,采用安全策略进行防护。
(2)对员工计算机进行安全检查,关闭不必要的端口,防止非法外联。
《计算机网络安全实验》实验报告实验名称:网络端口扫描年级: 2010级专业:网络工程专业班级:网络工程二班姓名:陈绪群学号: 1025111017成绩:指导教师: 卢正添提交报告时间:2013年5月10日一、实验目的掌握使用端口扫描器的技术,了解端口扫描器的原理。
二、实验环境局域网环境,Nmap扫描系统,主机系统为windows XP,被扫描主机为windows 2000(VMware workstation中)。
拓扑图:三、实验步骤与实验结果(1)各种扫描模式与参数①nmap 10.8.12.115②TCP 同步(SYN)端口扫描,(-sS参数) 命令: nmap –sS 10.8.12.115③UDP端口扫描(-sU参数) 命令:nmap –sU 10.8.12.115④Ping扫描(-sP参数) 命令:nmap –sP 10.8.12.115(2)操作系统扫描命令:nmap –O 10.8.12.115(3)更进一步的应用①随机主机扫描:nmap –iR 20②扫描特定的端口范围:nmap –p0-65535 10.8.12.115③长数据显示:nmap -vv 10.8.12.115④nmap –sT –O –oN "E:\\cxq\\test.txt" 10.8.12.115-118(4)图形用户界面操作: nmap -sS 10.8.12.115四、分析与讨论1.描述使用Nmap对系统进行网络端口扫描的过程。
答:Nmap对系统进行网络端口扫描有两种基本的方式:一种是目标端口扫描,扫描特定的端口,另一种是端口扫除,即对所有的可能端口进行扫描。
扫描过程相似,就是向目标主机的端口发送请求数据包,希望建立“连接”,根据目标主机的回应判断其端口是否开放。
2.使用实验验证Nmap实验参数,并分析各自的技术原理和优缺点。
答:-sTTCP connect()扫描:这是最基本的TCP扫描方式。
实验三、端口扫描1、实验目的与要求◆掌握网络编程模式。
◆理解并能应用socket来扫描端口号2、实验设备与环境连网PC机(至少一台)。
计算机硬件要求:英特尔酷睿i5 3代系列处理器、256MB以上内存,Ethernet网卡,网线若干。
计算机软件要求: Windows 7操作系统,Visual c++6.0/.net系统。
3、实验要求能够以可视化的形式显示主机面能够实现TCP端口的扫描能够实现UDP端口的扫描4、实验内容与步骤:步骤1:使用VC++的应用程序生成向导(MFC AppWizard[exe])创建一个基于对话框的工程,该工程的名称为201200824302PortScan设计主界面:同时在类向导里面添加需要的变量:步骤3:添加事件3.1添加响应“TCP扫描”按钮的事件:void CMy201200824302PortScanDlg::OnTcp(){UpdateData(true);WSADATA WSAData;CString str;if(WSAStartup(0x0202,&WSAData)!=0){MessageBox("初始化Winsock失败!");}soc=socket(AF_INET,SOCK_STREAM,0);if(soc==INVALID_SOCKET){MessageBox("创建socket失败!");WSACleanup();return;}int IpAddress;int i=0;CString s;m_ip.GetWindowText(s);IpAddress=inet_addr(s);if(IpAddress==INADDR_NONE){hostent * pHostent=gethostbyname(str);if(pHostent)IpAddress=(*(in_addr*)pHostent->h_addr).s_addr;}if(m_port1>m_port2){MessageBox("请确保起始端口号不大于终止端口号!");WSACleanup();return;}struct sockaddr_in desthost;memset(&desthost,0,sizeof(desthost));desthost.sin_family=AF_INET;desthost.sin_addr.s_addr=IpAddress;for(unsigned int a=m_port1;a<m_port2;a++){desthost.sin_port=htons(a);char * SendBuf;SendBuf=new char[2];memset(SendBuf,0,2);int nConnect=connect(soc,(sockaddr*)&desthost,sizeof(desthost));if(nConnect==SOCKET_ERROR){str.Format("%d",a);m_static+="TCP Port ";m_static+=str;m_static+=":Close\r";m_static+="\n";}else{ str.Format("%d",a);m_static+="TCP Port ";m_static+=str;m_static+=":Open\r\n";m_static+="\n";}}UpdateData(false);closesocket(soc);WSACleanup();}3.2添加响应“UDP扫描”按钮的事件:void CMy201200824302PortScanDlg::OnUdp(){UpdateData(true);WSADATA WSAData;CString str;if(WSAStartup(0x0202,&WSAData)!=0){MessageBox("初始化Winsock失败!");}soc=socket(AF_INET,SOCK_STREAM,0);if(soc==INVALID_SOCKET){MessageBox("创建socket失败!");WSACleanup();return;}int nIotr1;//设置阻塞模式unsigned long flag=1;nIotr1=ioctlsocket(soc,FIONBIO,&flag);if(nIotr1==SOCKET_ERROR){MessageBox("创建socketM模式失败!");closesocket(soc);WSACleanup();return;}int IpAddress;//判断域名或IP地址int i=0;CString s;m_ip.GetWindowText(s);IpAddress=inet_addr(s);if(IpAddress==INADDR_NONE){hostent * pHostent=gethostbyname(str);if(pHostent)IpAddress=(*(in_addr*)pHostent->h_addr).s_addr;}struct sockaddr_in desthost;memset(&desthost,0,sizeof(desthost));desthost.sin_family=AF_INET;desthost.sin_addr.s_addr=IpAddress;for(unsigned int a=m_port1;a<m_port2;a++){desthost.sin_port=htons(a);char * SendBuf;SendBuf=new char[2];memset(SendBuf,0,2);int nsend=sendto(soc,SendBuf,1,0,(struct sockaddr*)&desthost,sizeof(desthost));if(nsend==SOCKET_ERROR){MessageBox("UDP包发送失败!");closesocket(soc);WSACleanup();return;}Sleep(500);sockaddr_in SourceHost;//定义源主机地址int SourceSize;SourceSize=sizeof(SourceHost);memset(&SourceHost,0,SourceSize);char * RecvBuf;RecvBuf=new char[2];memset(RecvBuf,0,2);int nRecv;nRecv=recvfrom(soc,RecvBuf,1,0,(struct sockaddr*)&SourceHost,&SourceSize);if(nRecv==SOCKET_ERROR){int ErrorCode=GetLastError();if(ErrorCode==10054){str.Format("%d",a);m_static+="UDP Port";m_static+="str";m_static+=":Close\r\n";}else{m_static+="UDP Port";m_static+=a;m_static+=":Open\r\n";}}}UpdateData(false);closesocket(soc);WSACleanup();}5、实验结果主界面显示:测试1:验证起始端口不可以大于终止端口测试2:TCP端口扫描测试3:UDP端口扫描失败测试3:UDP端口扫描验证运行结果:6、实验总结通过本次试验我了解了使用Socket套接字对端口进行的扫描。
综合实验报告( 2010 -- 2011 年度第二学期)名称:网络综合实验题目端口扫描程序院系:信息工程系班级:网络08K2学号:学生姓名:指导教师:鲁斌李莉王晓霞张铭泉设计周数: 2 周成绩:日期:2011 年7 月1 日一、综合实验的目的与要求1.任务:设计并实现一个端口扫描程序,检测某个IP或某段IP的计算机的端口工作情况。
2.目的:加深对课堂讲授知识的理解,熟练掌握基本的网络编程技术和方法,建立网络编程整体概念,使得学生初步具有研究、设计、编制和调试网络程序的能力。
3.要求:熟悉有关定义、概念和实现算法,设计出程序流程框图和数据结构,编写出完整的源程序,基本功能完善,方便易用,操作无误。
4.学生要求人数:1人。
二、综合实验正文1.端口扫描器功能简介:服务器上所开放的端口就是潜在的通信通道,也就是一个入侵通道。
对目标计算机进行端口扫描,能得到许多有用的信息,进行端口扫描的方法很多,可以是手工进行扫描、也可以用端口扫描软件进行。
扫描器通过选用远程TCP/IP不同的端口的服务,并记录目标给予的回答,通过这种方法可以搜集到很多关于目标主机的各种有用的信息,例如远程系统是否支持匿名登陆、是否存在可写的FTP目录、是否开放TELNET 服务和HTTPD服务等。
2.实验所用的端口扫描技术:端口扫描技术有TCP connect()扫描、TCP SYN扫描、TCP FIN 扫描、IP段扫描等等。
本次实验所用的技术是TCP connect()扫描,这是最基本的TCP 扫描,操作系统提供的connect()系统调用可以用来与每一个感兴趣的目标计算机的端口进行连接。
如果端口处于侦听状态,那么connect()就能成功。
否则,这个端口是不能用的,即没有提供服务。
这个技术的一个最大的优点是,你不需要任何权限。
系统中的任何用户都有权利使用这个调用。
3.实验具体实现方案:编写一个端口扫描程序,能够显示某个IP或某段IP的计算机的某一个或某些端口是否正在工作。
《网络端口扫描》实验指导一、实验目的1、学习端口扫描技术的基本原理,理解端口扫描技术在网络攻防中的应用;2、通过上机实验,熟练掌握目前最为常用的网络扫描工具Nmap的使用,并能利用工具扫描漏洞,更好地弥补安全不足。
二、实验预习提示1、网络扫描概述扫描是通过向目标主机发送数据报文,然后根据响应获得目标主机的情况。
根据扫描对象的不同,可以分为基于主机的扫描和基于网络的扫描2种,其中基于主机的扫描器又称本地扫描器,它与待检查系统运行于同一节点,执行对自身的检查。
通常在目标系统上安装了一个代理(Agent)或者是服务(Services),以便能够访问所有的文件与进程,它的主要功能为分析各种系统文件内容,查找可能存在的对系统安全造成威胁的漏洞或配置错误;而基于网络的扫描器又称远程扫描器,一般它和待检查系统运行于不同的节点上,通过网络来扫描远程计算机。
根据扫描方式的不同,主要分为地址扫描、漏洞扫描和端口扫描3类。
(1)地址扫描地址扫描是最简单、最常见的一种扫描方式,最简单的方法是利用Ping程序来判断某个IP地址是否有活动的主机,或者某个主机是否在线。
其原理是向目标系统发送ICMP回显请求报文,并等待返回的ICMP回显应答。
传统的Ping扫描工具一次只能对一台主机进行测试,效率较低,现在如Fping(Fast ping)等工具能以并发的形式向大量的地址发出Ping请求,从而很快获得一个网络中所有在线主机地址的列表。
但随着安全防范意识的提供,很多路由器和防火墙都会进行限制,只要加入丢弃ICMP回显请求信息的相关规则,或者在主机中通过一定的设置禁止对这样的请求信息应答,即可对ICMP回显请求不予响应,(2)漏洞扫描漏洞扫描是使用漏洞扫描器对目标系统进行信息查询,检查目标系统中可能包含的已知漏洞,从而发现系统中存在的不安全地方。
其原理是采用基于规则的匹配技术,即根据安全专家对网络系统安全漏洞、黑客攻击案例的分析和系统管理员对网络系统安全配置的实际经验,形成一套标准的网络系统漏洞库,然后在此基础上构成相应的匹配规则,通过漏洞库匹配的方法来检查目标设备是否存在漏洞。