选择皮肤
jiang
2023-03-24 16:55:55
jiang\n楼主

Linux端口扫描方法

jiang
2023-03-24 16:56:08
jiang\n楼主

在开发,调试,测试中,经常需要查看某台机子有没有开放指定的断口,这里列出了两种常用的查找Linux系统上哪些端口向外部开放的方法。当然,不止这两种方法,也可以自己写一个端口扫描工具。具体实现要根据TCP和UDP的协议原理来实现端口扫描。


jiang
2023-03-24 16:59:13
jiang\n楼主

使用nmap命令检查开放端口

nmap(Network exploration tool and security / port scanner)是功能强大的网络扫描工具,可以扫描单个主机和大型网络。它主要用于安全审核和渗透测试。是端口扫描的首选工具。

例如可使用如下命令进行端口扫描:`sudo nmap -sT -p- 192.168.8.51`。`-sT` 选项告诉nmap扫描TCP端口, `-p-`扫描所有端口(65535个)

例如可使用如下命令进行端口扫描:sudo nmap -sT -p- 192.168.8.51。-sT 选项告诉nmap扫描TCP端口, -p-扫描所有端口(65535个)

jiang@kali:~/Works/brochain/corsac$ sudo nmap -sT -p- 192.168.8.51

Starting Nmap 7.60 ( https://nmap.org ) at 2020-10-20 17:11 CST
Nmap scan report for 192.168.8.51
Host is up (0.00048s latency).
Not shown: 65528 closed ports
PORT      STATE SERVICE
22/tcp    open  ssh
4000/tcp  open  remoteanything
4369/tcp  open  epmd
4444/tcp  open  krb524
5672/tcp  open  amqp
25672/tcp open  unknown
40000/tcp open  safetynetp

Nmap done: 1 IP address (1 host up) scanned in 3.39 seconds
结果显示,有几个tcp端口对外开。可以访问。
其他详细用法,可直接查看命令帮助文档。

jiang
2023-09-06 09:08:18
jiang\n楼主
nmap 常用命令介绍:

扫描单个主机:

nmap 192.168.43.118

扫描单个子网主机:

nmap 192.168.43.0/24

扫描多个主机:

nmap 192.168.43.117 192.168.43.43.99

扫描一个范围内的主机:

nmap 192.168.43.1-254

若你有一个ip地址表,将ip地址存在ip.log文件中,命令如下:

nmap -iL ip.log

若你想查看扫描的所有主机列表命令如下:

nmap -sL 192.168.43.1/24

扫描一子网主机且排除某一个ip命令:

nmap 192.168.43.1/24 -exclude 192.168.43.118

扫描一子网主机且排除某一个ip地址表命令:

nmap 192.168.43.1/24 -exclude ip.log

扫描主机路由跟踪信息:

nmap --traceroute 192.168.43.118

扫描主机信息结果详细输出:

nmap -vv --traceroute 192.168.43.118

扫描某主机上指定的端口或协议,例如80,21,22

nmap -p U:53,T:80,21,22,S:9 192.168.43.118 (其中T代表TCP协议、U代表UDP协议、S代表SCTP协议)

快速扫描端口模式,扫描100个最有可能开放的端口 -v 获取扫描的信息

nmap -F -v 192.168.43.118

Tcp SYN Scan (sS) 隐蔽扫描

这是一个不完整的扫描方式,它被称为半开放扫描,Nmap发送SYN包到远程主机,但是它不会产生任何会话,在syn扫描中不需要通过完整3次的握手,因此不会在目标主机上产生任何日志记录,这个就是SYN扫描的优势,但是这种扫描是需要root权限(对于windows用户来说,是没有root权限这个概念的,root权限是linux的最高权限,对应windows的管理员权限)

nmap -sS 192.168.43.118

Tcp connect() scan(sT) 最常用

如果不选择SYN扫描,TCP connect()扫描就是默认的扫描模式,不同于Tcp SYN扫描,Tcp connect()扫描需要完成三次握手,并且要求调用系统的connect(),Tcp connect()扫描技术只适用于找出TCP和UDP端口,但是这种方式扫描的速度快,准确性高,对操作者没有权限上的要求,但是容易被防火墙和IDS(防入侵系统)发现。

nmap -sT 192.168.43.118

UDP scan(sU)

顾名思义,这种扫描技术用来寻找目标主机打开的UDP端口,它不需要发送任何的SYN包,因为这种技术是针对UDP端口的。UDP扫描发送UDP数据包到目标主机,并等待响应,如果返回ICMP不可达的错误消息,说明端口是关闭的,如果得到正确的适当的回应,说明端口是开放的。

nmap -sU 192.168.43.118

FIN scan (sF)

有时候Tcp SYN扫描不是最佳的扫描模式,因为有防火墙的存在,目标主机有时候可能有IDS和IPS系统的存在,防火墙会阻止掉SYN数据包。发送一个设置了FIN标志的数据包并不需要完成TCP的握手,收到RST回复说明该端口关闭,否则说明是open或filtered状态

nmap -sF 192.168.43.118

PING Scan (sP) 扫描在线主机

PING扫描它只用于找出主机是否是存在在网络中的,它不是用来发现是否开放端口的,PING扫描需要ROOT权限,如果用户没有ROOT权限,PING扫描将会使用connect()调用。

nmap -sP 192.168.43.118

版本检测(sV)

版本检测是用来扫描目标主机和端口上运行的软件的版本,它不同于其它的扫描技术,它不是用来扫描目标主机上开放的端口,不过它需要从开放的端口获取信息来判断软件的版本,使用版本检测扫描之前需要先用TCP SYN扫描开放了哪些端口。

nmap -sV 192.168.43.118

Idle scan (sL)

Idle scan是一种先进的匿名扫描技术,它不是用你真实的主机Ip发送数据包,而是使用另外一个目标网络的主机发送数据包,例如:通过目标网络中的192.168.43.118向主机192.168.43.4发送数据,来获取192.168.1.1开放的端口。

nmap -sL 192.168.43.118 192.168.43.4

有需要其它的扫描技术,如 FTP bounce(FTP反弹), fragmentation scan(碎片扫描),IP protocol scan(IP协议扫描),以上讨论的是几种最主要的扫描方式。

Nmap的OS检测(O)

Nmap最重要的特点之一是能够远程检测操作系统,Nmap的OS检测技术在渗透测试中用来了解远程主机的操作系统是非常有用的,通过获取的信息你可以知道已知的漏洞

nmap -O 192.168.43.17

ACK扫描:

利用ACK扫描判断端口是否被过滤。针对ACK探测包,为被过滤的端口(无论打开或关闭)会回复RST包

nmap -sA -T4 p1521,80 192.168.43.17

使用TCP ACK (PA)和TCP Syn (PS)扫描远程主机

nmap -pA -T4 p1521,80 192.168.43.17

nmap -pA -T4 p1521,80 192.168.43.17

扫描前不进行Ping扫描测试:

nmap -Pn p1521,80 192.168.43.17

通过tcp空扫描以绕过防火墙检测:

nmap -sN 192.168.43.17

打印主机接口和路由

nmap --iflist

按顺序扫描端口:

nmap -r 192.168.43.118

扫描主机检测是否有防火墙过滤:

nmap -PN -p 1521 192.168.43.17

扫描操作系统信息和路由跟踪

使用Nmap,你可以检测远程主机上运行的操作系统和版本。为了启用操作系统和版本检测,脚本扫描和路由跟踪功能,我们可以使用NMAP的“-A“选项。

nmap -A 192.168.43.17

扫描端口时状态介绍:

Open 端口开启,数据有到达主机,有程序在端口上监控

Closed 端口关闭,数据有到达主机,没有程序在端口上监控

Filtered 数据没有到达主机,返回的结果为空,数据被防火墙或者是IDS过滤

UnFiltered 数据有到达主机,但是不能识别端口的当前状态

Open|Filtered 端口没有返回值,主要发生在UDP、IP、FIN、NULL和Xmas扫描中

Closed|Filtered 只发生在IP ID idle扫描