Linux下nmap扫描端口shell脚本

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux下nmap扫描端口shell脚本相关的知识,希望对你有一定的参考价值。

如扫描192.168.1.100-200之间所有开启80或22或8808端口的服务器,并把结果输出到test.log文件中。要求日志文件格式包括序列号1、2、3···,服务器IP,开启的端口号,扫描时间。求大神用shell脚本帮忙实现一下,多谢 可以是只扫描一个端口的脚本,比如只扫描80

参考技术A 安装nmap后(ubuntu通过apt-get
install
nmap安装),运行下列命令即可
nmap
-p0-65535
目标ip地址
常用的扫描类型:
1、-sP(ping的方式扫描,检查主机在线与否,不发送任何报文到目的主机,想知道目标主机是否运行,而不想进行其它扫描,这扫描方式很常用)
2、-sL(仅仅列网段内出主机的状态、端口等信息,查询端口的话用
-p
port,port1……)
3、
-PS/PA/PU
[portlist](根据给定的端口用TCP或UDP报文探测:对于root用户,这个选项让nmap使用SYN包而不是ACK包来对目标主机进行扫描。如果主机正在运行就返回一个RST包(或者一个SYNACK包))
4、-sS(TCP同步扫描(TCP
SYN):发出一个TCP同步包(SYN),然后等待回对方应)
5、
-sF
-sF
-sN(秘密FIN数据包扫描、圣诞树
(Xmas
Tree)、空(Null)扫描模式使用-sF、-sX或者-sN扫描显示所有的端口都是关闭的,而使用SYN扫
描显示有打开的端口,你可以确定目标主机可能运行的是Windwos系统)
6、-sU(UDP扫描:nmap首先向目标主机的每个端口发出一个0字节的UDP包,如果我们收到端口不可达的ICMP消息,端口就是关闭的,否则我们就假设它是打开的)
7、-P0
(No
ping)(这个选项跳过Nmap扫描)
8、-PE/PP/PM
扫描类型的控制
1、sW
(对滑动窗口的扫描)
2、-sR(RPC扫描)
3、
-PE;
-PP;
-PM
(ICMP
类型的ping)
4、-PR
(ARP
类型的ping-n
(无
DNS
解析)
5、-R
(为所有的目标做DNS解析)
6、-sV(对服务版本的检测)
常用的对主机的操作
1、-A或者-O(对操作系统的检测)
2、-v(增加信息的详尽程度)
3、-p(ports的范围)

想用nmap扫描主机开放端口的命令是啥

nmap命令

1.  各种代码举例。 扫描单一的一个主机:#nmap nxadmin.com#nmap 192.168.1.2,扫描整个子网:#nmap 192.168.1.1/24,扫描多个目标:#nmap 192.168.1.2 192.168.1.5, 扫描一个范围内的目标:#nmap 192.168.1.1-100 。

2有关IP的代码。扫描和namp在同一目录下的IP为txt的所有主机:#nmap -iL target.txt,关于你扫描的所有主机的列表:#nmap -sL 192.168.1.1/24,扫描除过某一个ip外的所有子网主机:#nmap192.168.1.1/24-exclude192.168.1.1,扫描特定主机上的80,21,23端口:#nmap-p80,21,23192.168.1.1,扫描除过某一个文件中的ip外的子网主机:#nmap192.168.1.1/24-excludefilexxx.txt。

资料拓展:

扫描模式分类:

1.  FINscan(sF)扫描有时不是最佳的扫描模式,因为有防火墙的存在.目标主机有时候可能有IDS和IPS系统的存在,防火墙会阻止掉SYN数据包。发送一个设置了FIN标志的数据包并不需要完成TCP的握手:

<a href="mailto:root@bt:~#nmap-sF192.168.1.8">root@bt:~#nmap-sF192.168.1.8</a></p> <p>StartingNmap5.51at2012-07-0819:21PKTNmapscanreportfor192.168.1.8Hostisup(0.000026slatency).Notshown:999closedportsPORTSTATESERVICE111/tcpopen|filteredrpcbind


版本检测(sV)版本检测是用来扫描目标主机和端口上运行的软件的版本.它不同于其它的扫描技术,它不是用来扫描目标主机上开放的端口,不过它需要从开放的端口获取信息来判断软件的版本.使用版本检测扫描之前需要先用TCPSYN扫描开放了哪些端口:#nmap-sV192.168.1.1。


Idlescan(sL)是一种先进的扫描技术,它不是用你真实的主机Ip发送数据包,而是使用另外一个目标网络的主机发送数据包:#nmap-sL192.168.1.6192.168.1.1。


Idlescan是一种理想的匿名扫描技术,它通过目标网络中的192.168.1.6向主机192.168.1.1发送数据,来获取192.168.1.1开放的端口有需要其它的扫描技术,这里就比如说FTPbounce(FTP反弹,fragmentationscan(碎片扫描),IPprotocolscan(IP协议扫描),以上讨论的是几种最主要的扫描方式。


Nmap的OS检测(O):Nmap最重要的特点之一是能够远程检测操作系统和软件,Nmap的OS检测技术在渗透测试中用来了解远程主机的操作系统和软件是非常有用的,通过获取的信息你可以知道已知的漏洞。Nmap有一个名为的nmap-OS-DB数据库,该数据库包含超过2600操作系统的信息。

Nmap把TCP和UDP数据包发送到目标机器上,然后检查结果和数据库对照:InitiatingSYNStealthScanat10:21Scanninglocalhost(127.0.0.1)[1000ports]Discoveredopenport111/tcpon127.0.0.1CompletedSYNStealthScanat10:21,0.08selapsed(1000totalports)InitiatingOSdetection(try#1)againstlocalhost(127.0.0.1)RetryingOSdetection(try#2)againstlocalhost(127.0.0.1)。

2.  Nmap的操作系统指纹识别技术:设备类型(路由器,工作组等)运行(运行的操作系统)操作系统的详细信息(操作系统的名称和版本)网络距离(目标和攻击者之间的距离跳)如果远程主机有防火墙,IDS和IPS系统,你可以使用-PN命令来确保不ping远程主机,因为有时候防火墙会组织掉ping请求.-PN命令告诉Nmap不用ping远程主机:#nmap-O-PN192.168.1.1/24Nmap检测的基础是有开放和关闭的端口,当OSscan无法检测至少一个开放或关闭的端口时:

Warning:OSScanresultsmaybeunreliablebecausewecouldnotfindatleast1openand1closedportOSScan的结果是不可靠的,因为没有发现至少一个开放或者关闭的端口,这种情况是非常不理想的,应该是远程主机做了针对操作系统检测的防范。

如果Nmap不能检测到远程操作系统类型,那么就没有必要使用-osscan_limit检测,想好通过Nmap准确的检测到远程操作系统是比较困难的,需要使用到Nmap的猜测功能选项,–osscan-guess猜测认为最接近目标的匹配操作系统类型:#nmap-O--osscan-guess192.168.1.1。

3.  Tcp SYN Scan (sS) 这是一个基本的扫描方式,它被称为半开放扫描:#nmap -sS 192.168.1.1,Tcp connect() scan(sT)如果不选择SYN扫描,这个扫描就是默认的扫描模式:#nmap -sT 192.168.1.1,Udp scan(sU)扫描技术用来寻找目标主机打开的UDP端口:#nmap -sU 192.168.PINGScan(sP),PING扫描需要ROOT权限,否则PING扫描将会使用connect()调用:#nmap-sP192.168.1.11.1。

参考技术A 安装nmap后(ubuntu通过apt-get install nmap安装),运行下列命令即可
nmap -p0-65535 目标ip地址
常用的扫描类型:
1、-sP(ping的方式扫描,检查主机在线与否,不发送任何报文到目的主机,想知道目标主机是否运行,而不想进行其它扫描,这扫描方式很常用)
2、-sL(仅仅列网段内出主机的状态、端口等信息,查询端口的话用 -p port,port1……)
3、 -PS/PA/PU [portlist](根据给定的端口用TCP或UDP报文探测:对于root用户,这个选项让nmap使用SYN包而不是ACK包来对目标主机进行扫描。如果主机正在运行就返回一个RST包(或者一个SYNACK包))
4、-sS(TCP同步扫描(TCP SYN):发出一个TCP同步包(SYN),然后等待回对方应)
5、 -sF -sF -sN(秘密FIN数据包扫描、圣诞树 (Xmas Tree)、空(Null)扫描模式使用-sF、-sX或者-sN扫描显示所有的端口都是关闭的,而使用SYN扫 描显示有打开的端口,你可以确定目标主机可能运行的是Windwos系统)
6、-sU(UDP扫描:nmap首先向目标主机的每个端口发出一个0字节的UDP包,如果我们收到端口不可达的ICMP消息,端口就是关闭的,否则我们就假设它是打开的)
7、-P0 (No ping)(这个选项跳过Nmap扫描)
8、-PE/PP/PM
扫描类型的控制
1、sW (对滑动窗口的扫描)
2、-sR(RPC扫描)
3、 -PE; -PP; -PM (ICMP 类型的ping)
4、-PR (ARP 类型的ping-n (无 DNS 解析)
5、-R (为所有的目标做DNS解析)
6、-sV(对服务版本的检测)
常用的对主机的操作
1、-A或者-O(对操作系统的检测)
2、-v(增加信息的详尽程度)
3、-p(ports的范围)本回答被提问者和网友采纳
参考技术B 楼主想要的命令是:
nmap -p 1-65534 主机IP

若跟参数-A会显示更详细的分析信息
nmap -A -p 1-65534 主机IP

以上是关于Linux下nmap扫描端口shell脚本的主要内容,如果未能解决你的问题,请参考以下文章

Linux下使用nmap扫描端口

linux shell脚本怎么写监控远程80端口是不是开启?

Linux下怎样查看某一端口是不是开放?

想用nmap扫描主机开放端口的命令是啥

linux下已经更改了ssh默认登陆端口22,如何扫描出来更改后的端口号呢。使用NMAP扫描不到,有其他方法么?

Linux下安装及简单使用nmap/zenmap