如何扫描某一计算机开放的所有端口?
扫描某一计算机开放的所有端口可在windows系统输入-netstat -an即可。
一、打开端口的步骤:
1、首先,打开电脑的控制面板,然后在控制面板中找到防火墙。
2、在防火墙设置左边选择点击高级设置。
3、高级安全设置中,我们点击选择左边的入站规则。
4、在右侧栏选择点击新建规则。
5、规则类型选择端口类型。
6、选择tcp协议,特定端口,端口自己规定,比如4444。
7、何时应用规则,默认全选。
8、退出之后,我们就看到创建的入站规则,该端口允许。
二、端口分类:
1、硬件端口
CPU通过接口寄存器或特定电路与外设进行数据传送,这些寄存器或特定电路称之为端口。
其中硬件领域的端口又称接口,如:并行端口、串行端口等。
2、网络端口
在网络技术中,端口(Port)有好几种意思。集线器、交换机、路由器的端口指的是连接其他网络设备的接口,如RJ-45端口、Serial端口等。我们 这里所指的端口不是指物理意义上的端口,而是特指TCP/IP协议中的端口,是逻辑意义上的端口。
3、软件端口
缓冲区。
1安装Telnet组件。转到程序控制面板,然后转到打开或关闭窗口功能,Telnet客户端和Telnet服务器勾选,从而安装Telnet组件。
2测试端口是否打开。它是由机器打开的虚拟机的地址,192168106128,端口22。在CMD下输入Telnet后,将出现一个窗口,提示您输入帮助以查看选项。
3接下来,o型19216810612822表明端口连接失败,表明港口可能占领或不开放(我这次连接失败,因为Ubuntu就安装在虚拟机没有SSH服务,所以我成功地连接到SSH服务后使用命令sudoapt-get安装SSH)。
如果打开另外一个窗口,说明连接成功。
4你可以用自己的机器做实验。在CMD下输入netstat-anpTCP,查看当前主机TCP打开了哪些端口。
端口扫描:端口对应网络服务及应用端程序
服务端程序的漏洞通过端口攻入
发现开放的端口
更具体的攻击面
UDP端口扫描:
如果收到ICMP端口不可达,表示端口关闭
如果没有收到回包,则证明端口是开放的
和三层扫描IP刚好相反
Scapy端口开发扫描
命令:sr1(IP(dst="19216845129")/UDP(dport=53),timeout=1,verbose=1)
nmap -sU 19216845129
TCP扫描:基于连接的协议
三次握手:基于正常的三次握手发现目标是否在线
隐蔽扫描:发送不完整的数据包,不建立完整的连接,如ACK包,SYN包,不会在应用层访问,
僵尸扫描:不和目标系统产生交互,极为隐蔽
全连接扫描:建立完整的三次握手
所有的TCP扫描方式都是基于三次握手的变化来判断目标系统端口状态
隐蔽扫描:发送SYN数据包,如果收到对方发来的ACK数据包,证明其在线,不与其建立完整的三次握手连接,在应用层日志内不记录扫描行为,十分隐蔽,网络层审计会被发现迹象
僵尸扫描:是一种极其隐蔽的扫描方式,实施条件苛刻,对于扫描发起方和被扫描方之间,必须是需要实现地址伪造,必须是僵尸机(指的是闲置系统,并且系统使用递增的IPID)早期的win xp,win 2000都是递增的IPID,如今的LINUX,WINDOWS都是随机产生的IPID
1,扫描者向僵尸机发送SYN+ACY,僵尸机判断未进行三次握手,所以返回RST包,在RST数据包内有一个IPID,值记为X,那么扫描者就会知道被扫描者的IPID
2,扫描者向目标服务器发送SYN数据包,并且伪装源地址为僵尸机,如果目标服务器端口开放,那么就会向僵尸机发送SYN+ACK数据包,那么僵尸机也会发送RST数据包,那么其IPID就是X+1(因为僵尸机足够空闲,这个就为其收到的第二个数据包)
3,扫描者再向僵尸机发送SYN+ACK,那么僵尸机再次发送RST数据包,IPID为X+2,如果扫描者收到僵尸机的IPID为X+2,那么就可以判断目标服务器端口开放
使用scapy发送数据包:首先开启三台虚拟机,
kali虚拟机:19216845128
Linux虚拟机:19216845129
windows虚拟机:19216845132
发送SYN数据包:
通过抓包可以查看kali给linux发送syn数据包
linux虚拟机返回Kali虚拟机SYN+ACK数据包
kali系统并不知道使用者发送了SYN包,而其莫名其妙收到了SYN+ACK数据包,便会发RST包断开连接
也可以使用下列该命令查看收到的数据包的信息,收到对方相应的SYN+ACK数据包,scapy默认从本机的80端口往目标系统的20号端口发送,当然也可以修改
如果向目标系统发送一个 随机端口:
通过抓包的获得:1,kali向linux发送SYN数据包,目标端口23456,
2,Linux系统由自己的23456端口向kali系统的20号端口返回RST+ACK数据包,表示系统端口未开放会话结束
使用python脚本去进行scapy扫描
nmap做隐蔽端口扫描:
nmap -sS 19216845129 -p 80,21,110,443 #扫描固定的端口
nmap -sS 19216845129 -p 1-65535 --open #扫描该IP地址下1-65535端口扫描,并只显示开放的端口
nmap -sS 19216845129 -p --open #参数--open表示只显示开放的端口
nmap -sS -iL iplisttxt -p 80
由抓包可知,nmap默认使用-sS扫描,发送SYN数据包,即nmap=nmap -sS
hping3做隐蔽端口扫描:
hping3 19216845129 --scan 80 -S #参数--scan后面接单个端口或者多个端口-S表示进行SYN扫描
hping3 19216845129 --scan 80,21,25,443 -S
hping3 19216845129 --scan 1-65535 -S
由抓包可得:
hping3 -c 100 -S --spoof 19216845200 -p ++1 19216845129
参数-c表示发送数据包的数量
参数-S表示发送SYN数据包
--spoof:伪造源地址,后面接伪造的地址,
参数-p表示扫描的端口,++1表示每次端口号加1,那么就是发送SYN从端口1到端口100
最后面跟的是目标IP
通过抓包可以得知地址已伪造,但对于linux系统(19216845129)来说,它收到了19216845200的SYN数据包,那么就会给19216845200回复SYN+ACK数据包,但该地址却是kali伪造的地址,那么要查看目标系统哪些端口开放,必须登陆地址为kali伪造的地址即(19216845200)进行抓包
hping3和nmap扫描端口的区别:1,hping3结果清晰明了
2,nmap首先对IP进行DNS反向解析,如果没成功,那么便会对其端口发送数据包,默认发送SYN数据包
hping3直接向目标系统的端口发送SYN数据包,并不进行DNS反向解析
全连接端口扫描:如果单独发送SYN数据包被被过滤,那么就使用全连接端口扫描,与目标建立三次握手连接,结果是最准确的,但容易被入侵检测系统发现
response=sr1(IP(dst="19216845129")/TCP(dport=80,flags="S"))
reply=sr1(IP(dst="19216845129")/TCP(dport=80,flags="A",ack=(response[TCP]seq+1)))
抓包情况:首先kali向Linux发送SYN,Linux回复SYN+ACK给kali,但kali的系统内核不清楚kali曾给linux发送给SYN数据包,那么kali内核莫名其妙收到SYN+ACK包,那么便会返回RST请求断开数据包给Linux,三次握手中断,如今kali再给Linux发ACK确认数据包,Linux莫名其妙收到了ACK数据包,当然也会返回RST请求断开数据包,具体抓包如下:
那么只要kali内核在收到SYN+ACK数据包之后,不发RST数据包,那么就可以建立完整的TCP三次握手,判断目标主机端口是否开放
因为iptables存在于Linux内核中,通过iptables禁用内核发送RST数据包,那么就可以实现
使用nmap进行全连接端口扫描:(如果不指定端口,那么nmap默认会扫描1000个常用的端口,并不是1-1000号端口)
使用dmitry进行全连接端口扫描:
dmitry:功能简单,但功能简便
默认扫描150个最常用的端口
dmitry -p 19216845129 #参数-p表示执行TCP端口扫描
dmitry -p 19216845129 -o output #参数-o表示把结果保存到一个文本文档中去
使用nc进行全连接端口扫描:
nc -nv -w 1 -z 19216845129 1-100: 1-100表示扫描1-100号端口
参数-n表示不对Ip地址进行域名解析,只把其当IP来处理
参数-v表示显示详细信息
参数-w表示超时时间
-z表示打开用于扫描的模式
在未经授权的情况下夺取计算机系统控制权的行为是 违法行为, 此篇文章仅作为学习交流和探讨,若要测试成果,请在自己虚拟机上测试,或者被允许渗透的计算机系统上演练, 请勿做出违法之骚操作,操作者做出的一切违法操作均与本人和此文无关
本文使用Nmap进行扫描,其他扫描手段本文不进行探讨
Nmap是端口扫描方面的业内标准,网上的资料让人眼花缭乱,时至今日,各式各样的防火墙已经普遍采用了入侵检测和入侵防御技术,他们能够有效地拦截常见的端口扫描,所以,即使使用Nmap程序扫描结果一无所获也不是什么意外的事。换句话说, 如果你在公网上对指定网段进行主机扫描时没检测出一台在线主机,那么就应当认为扫描行动多半是被防火墙系统拦截下来了,反之则是另一种极端情况:每台主机都在线,每个端口都处于开放状态
SYN扫描
所谓的SYN扫苗实际上是一种模拟TCP握手的端口扫描技术。TCP握手分为3个阶段:SYN、SYN-ACK、ACK。在进行SYN扫描时,Nmap程序向远程主机发送SYN数据包并等待对方的SYN-ACK数据。 如果在最初发送SYN数据包之后没有收到SYN-ACK响应,那么既定端口就不会是开放端口,在此情况下,既定端口不是关闭就是被过滤了
在使用Nmap扫描之前,可以先使用maltego之类的信息搜集工具分析出有用的信息。我使用一个非法网站的IP来作为演示
需要注意的是,某个端口是开放端口不代表这个端口背后的程序存在安全缺陷,我们仅能够通过开放端口初步了解计算机运行的应用程序,进而判断这个程序是否存在安全缺陷
版本扫描
虽然SYN扫描具有某种隐蔽性,但它不能告诉我们打开这些端口的程序到底是什么版本,如果说我们想要知道这台主机的某个端口在运行着什么程序以及它运行的版本,这在我们后期威胁建模阶段有极大的用处, 使用-sT或者-sV 即可查看
运气很好,看来这个网站运行的程序有安全漏洞,这个名为OpenSSH 53的软件存在着一个CVE-2016-10009漏洞,攻击者可以通过远程攻击openssh来获得服务器权限。我们在这里不做攻击操作,毕竟这是别人的网站,虽然是个违法网站。如果有机会后期笔者将会根据情况写一些关于漏洞利用的文章
UPD扫描
Nmap的SYN扫描和完整的TCP扫描都不能扫描UDP,因为UDP的程序采用无连接的方式传输。在进行UDP扫描时,Nmap将向既定端口发送UPD数据包,不过UDP协议的应用程序有着各自不同的数据传输协议,因此在远程主机正常回复该数据的情况下,能够确定既定端口处于开放状态。 如果既定端口处于关闭状态,那么Nmap程序应当收到ICMP协议的端口不可达信息。 如果没有从远程主机收到任何数据那么情况就比较复杂了,比如说:端口可能处于发放状态,但是响应的应用程序没有回复Nmap发送的查询数据,或者远程主机的回复信息被过滤了,由此可见 在开放端口和被防火墙过滤的端口方面,Nmap存在相应的短板
扫描指定端口
指定端口的扫描可能造成服务器崩溃,最好还是踏踏实实的彻底扫描全部端口 。就不拿别人的服务器来测试了,毕竟我也怕被报复,在这里我把渗透目标设置为我自己的xp靶机,步骤跟前面一样,扫描出端口查看是否有可利用程序,然后对想扫描的端口进行扫描
在渗透测试中,我们都不希望致使任何服务器崩溃,但是我们的确可能会遇到那些无法正确受理非预期输入的应用程序,在这种情况下,Nmap的扫描数据就可能引发程序崩溃
1、安装telnet。我的win7下就没有telnet,在cmd下输入telnet提示没有该命令。于是我们进入控制面板---->程序---->打开或关闭windows功能。然后等一段时间,在出来的对话框把telnet客户端和telnet服务器勾选上,其他的不用管,然后点击确定。这样就安装好了telnet组件了。
2、 下面开始测试某个端口是否开启,比如我测的是192168342的2121这个端口。在cmd下输入
start /min telnet 192168342 2121
之后会出现一个窗口,是最小化的,你等一会,如果窗口自动关闭了,说明端口是关闭的或主机ping不通,反之端口开放
比如这个2121端口是开放的,就出现如图所以的窗口,否则窗口关闭。
3、你可以用自己的机子做实验在CMD下输入netstat -anp tcp可以查看当前主机tcp开放了哪些端口
最后 ping命令是不能检测端口,只能检测你和相应IP是否能连通
补充: Linux下检测本机的端口是否被占用:
netstat –apn | grep 8080
又或者在,windows下
在cmd里面使用netstat -an命令来查看 开放的TCP和UDP端口。
在cmd里面使用start /min telnet 127001 某端口,之后会出现一个窗口,是最小化的,你等一会,如果窗口自动关闭了,说明端口是关闭,反之端口开放。
Linux下
如windows下使用telnet的方法
使用nc命令
nc检测端口的用法:
nc -z -w 10 %ip% %PORT%
-z表示检测或者扫描端口
-w表示超时时间
-u表示使用UDP协议
例如:
# nc -z -w 10 -u 127001 53
Connection to 127001 53 port [udp/domain] succeeded!
# nc -z -w 10127001 53
Connection to 127001 53 port [tcp/domain] succeeded!
# echo $
0
# nc -z -w 10 8887 53
# echo $
1
#
端口成功联通返回值是0,提示succeeded;否则返回1,不提示任何数据。linux下未作测试,自行测试。
工具/原料
nc
telnet
方法/步骤
1、首先端口分tcp、udp之分,所以同一个端口号还有tcp协议和udp协议之分。
2、最常见的工具是telnet,但是telnet使用的是tcp协议,换句话说telnet只能检测tcp的这个端口打开了没。
3、假设要看192192193211这个IP的tcp 22端口是否打开,则运行telnet 192192193211 22 来查看,如果出现下列信息,则表示该端口已打开。
4、如果出现下面信息,表是该端口未打开。
5、除了telnet以外,还有一个命令nc也可查看端口是否打开。
6、同样查看tcp 22端口是否打开,可以运行nc -z 192192193211 22,打开着就会出现下列信息:
7、那如果想要查看udp 22 端口是否打开,运行 nc –uz 192192193211 22, 打开这就会出现这些信息:
8、如果查询的端口没有打开,会出现以下输出:
8、nc 还可以一次性查看多了端口,例如:
在工作中处理服务器故障问题的时候,经常需要检测一下Windows的服务器业务端口是否开放,是否能正常在外面通讯。下面小编与大家分享一下如何在windows环境下检测服务器端口是否开放。
1我们在工作中经常接触的都是TCP,UDP的端口都是很少用的。检测TCP端口能否在外面访问的方法很简单,telnet可以测试出来结果
例如 telnet wwwbaiducom 80
2像上面这样子测试百度服务器的80端口,这个可以看到是有反应的,是开放通的。如果没有开放就像下面这样的显示
例如 telnet wwwbaiducom 81
3或者可以去微软的网站那里下载psping ,这个软件好用,可以测试TCP或者UDP都行,十分实用。
4可以看一下这个命令的使用方法
5使用它来测试TCP端口是否开放以及通讯情况
6如果Windows系统里边telnet和psping都没有我们可以在网页上打开测试一下端口是否开放通讯
7在Windows下面测试UDP确实是有点比较麻烦的事,我一般都选择 在Linux上面进行测试,如果非要在Windows上面测试UDP可以选择安装nmap进行测试。
问题一:如何查看自己的网络端口 开始/程序/附件/命令提示符/NETSTAT -NA /回车,查看你机器现在开放使用的端口,然后根据下面端口介绍:
有些是系统服务必须开放的端口,不是你说关就可以关的,你有可能是中止了进程,但它会重新建立。你对照一下以下的端口知识,如果不是危险的端口被开放,可以不用理会它。
常用计算机端口解释
我们常常会在各类的技术文章中见到诸如135、137、139、443之类的“端口”,可是这些端口究竟有什么用呢?它会不会给我们的计算机带来潜在的威胁呢?究竟有多少端口是有用的?想要了解的话,就跟我来吧
端口:0
服务:Reserved
说明:通常用于分析操作系统。这一方法能够工作是因为在一些系统中“0”是无效端口,当你试图使用通常的闭合端口连接它时将产生不同的结果。一种典型的扫描,使用IP地址为0000,设置ACK位并在以太网层广播。
端口:1
服务:tcpmux
说明:这显示有人在寻找SGI Irix机器。Irix是实现tcpmux的主要提供者,默认情况下tcpmux在这种系统中被打开。Irix机器在发布是含有几个默认的无密码的帐户,如:IP、GUEST UUCP、NUUCP、DEMOS 、TUTOR、DIAG、OUTOFBOX等。许多管理员在安装后忘记删除这些帐户。因此HACKER在INTERNET上搜索tcpmux并利用这些帐户。
端口:7
服务:Echo
说明:能看到许多人搜索Fraggle放大器时,发送到XXX0和XXX255的信息。
端口:19
服务:Character Generator
说明:这是一种仅仅发送字符的服务。UDP版本将会在收到UDP包后回应含有垃圾字符的包。TCP连接时会发送含有垃圾字符的数据流直到连接关闭。HACKER利用IP欺骗可以发动DoS攻击。伪造两个chargen服务器之间的UDP包。同样Fraggle DoS攻击向目标地址的这个端口广播一个带有伪造受害者IP的数据包,受害者为了回应这些数据而过载。
端口: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都开放这个端口。
端口:31
服务:MSG Authentication
说明:木马Master Paradise、Hackers Paradise开放此端口。
端口:42
>>
问题二:[网络配置] 怎么查看自己的端口号 设置代理服务器的时候需要填写端口,这个端口号在服务器端是自由填写的,一般大于1024,小于65535就可以了。客户端在使用这个代理服务器上网的时候,端口号必须和代理服务器上自己设置的端口号一样。
tomcat 在默认情况下用 8080 端口,可以自己更改。
服务器端软件的端口号,一般可以自定义,只要处于1024 -- 65535 之间,不重复就行。每个软件设置端口号的方法都不一样。一般都在“设置”界面。
客户端的软件如果要设置端口号的话,就必须要和服务器端的一样。
问题三:怎么查看自己在用什么端口上网 下个相关的检测软件,推荐Windows进程管理器,直接在狗狗上搜,用迅雷下就可以用
问题四:怎么查主机IP和网络端口? 查主机IP和网络端口方法如下:
1、点击电脑开始-运行;
2、输入cmd回车,进入dos界面;
3、输入ipconfig /all回车,即可查看主机ip;
工 4、输入netstat回车,即可查看网络端口。
问题五:怎样查到电脑的网络端口? 在电脑“开始”菜单里找到“运行”,点击“运行”,然后输入“cmd ”,在跳出的黑框里面输入“ping all ”就可以看到你的计算机各端口的网络连接情况了
Netstat :用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。
如果计算机有时候接受到的数据报会导致出错数据删除或故障,这是TCP/IP允许容错,并能够自动重发数据报。但如果累计的出错情况数目占到所接收的IP数据报相当大的百分比,或者它的数目正迅速增加,可以使用Netstat查一查为什么会出现这些情况。
Netstat s
本选项能够按照各个协议分别显示其统计数据。如果应用程序(如Web浏览器)运行速度比较慢,或叮不能显示Web页之类的数据,那么你就可以用本选项来查看一下所显示的信息。你需要仔细查看统计数据的各行,找到出错的关键字,进而确定问题所在。
netstat r
显示关于路由表的信息,类似于后面所讲使用route print命令时看到的信息。除了显示有效路由外,还显示当前有效的连接。
netstat n
显示所有已建立的有效连接。
问题六:如何查看本机开放的网络端口 依次点击“开始→运行”,键入“cmd”并回车,打开命令提示符窗口。在命令提示符状态下键入“netstat -a -n”,按下回车键后就可以看到以数字形式显示的TCP和UDP连接的端口号及状态。
Netstat -a -e -n -o -s-an
-a 表示显示所有活动的TCP连接以及计算机监听的TCP和UDP端口。
-e 表示显示以太网发送和接收的字节数、数据包数等。
-n 表示只以数字形式显示所有活动的TCP连接的地址和端口号。
-o 表示显示活动的TCP连接并包括每个连接的进程ID(PID)。
-s 表示按协议显示各种连接的统计信息,包括端口号。
-an 查看所有开放的端口
问题七:如何查看自己电脑IP和端口 开始,运行,输入cmd,回车,然后输入“ipconfig -all”即可
问题八:如何查看自己的电脑都开启了哪些网络端口 netstat -a 可以的是不是这个打错了 ―
--------------------------
C:\Documents and Settings\Administrator>netstat /
显示协议统计信息和当前 TCP/IP 网络连接。
NETSTAT [-a] [-b] [-e] [-n] [-o] [-p proto] [-r] [-s] [-v] [interval]
-a 显示所有连接和监听端口。
-b 显示包含于创建每个连接或监听端口的
可执行组件。在某些情况下已知可执行组件
拥有多个独立组件,并且在这些情况下
包含于创建连接或监听端口的组件序列
被显示。这种情况下,可执行组件名
在底部的 [] 中,顶部是其调用的组件,
等等,直到 TCP/IP 部分。注意此选项
可能需要很长时间,如果没有足够权限
可能失败。
-e 显示以太网统计信息。此选项可以与 -s
选项组合使用。
-n 以数字形式显示地址和端口号。
-o 显示与每个连接相关的所属进程 ID。
-p proto 显示 proto 指定的协议的连接;proto 可以是下列协议之
一: TCP、UDP、TCPv6 或 UDPv6。
如果与 -s 选项一起使用以显示按协议统计信息,proto 可以
是下列协议之一:
IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 或 UDPv6。
-r 显示路由表。
-s 显示按协议统计信息。默认地,显示 IP、
IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 和 UDPv6 的统计信息;
-p 选项用于指定默认情况的子集。
-v 与 -b 选项一起使用时将显示包含于
为所有可执行组件创建连接或监听端口的
组件。
interval 重新显示选定统计信息,每次显示之间
暂停时间间隔(以秒计)。按 CTRL+C 停止重新
显示统计信息。如果省略,netstat 显示当前
配置信息(只显示一次)
问题九:怎么查看计算机网络端口被占用情况,哪些是可用的??? 20分 运行――输入“cmd”――输入“netstat -ano”命令,查看列表中“PID”的一列即为端口号,数字为零的没有被占用
问题十:怎样查询某个软件用的是哪个网络端口 简单点的话就 开始=运行-cmd-输入netstat -naobv
当然工具最好。
基本上的优化工具都有。
个人建议360安全卫士直接查。
0条评论