nmap扫描端口命令tcp_nmapftp端口扫描

hacker|
93

如何在Linux上使用Nmap安全扫描工具

nmap(Network Mapper)是一款开放源代码的网络探测和安全审核工具。它用于快速扫描一个网络和一台主机开放的端口,还能使用TCP/IP协议栈特征探测远程主机的操作系统类型。nmap支持很多扫描技术,例如:UDP、TCP connect()、TCP SYN(半开扫描)、ftp代理(bounce攻击)、反向标志、ICMP、FIN、ACK扫描、圣诞树(Xmas Tree)、SYN扫描和null扫描。Nmap最初是用于unix系统的命令行应用程序。在2000年的时候,这个应用程序有了windows版本,可以直接安装使用。

Nmap命令的格式为:

Nmap [ 扫描类型 ... ] [ 通用选项 ] { 扫描目标说明 }

下面对Nmap命令的参数按分类进行说明:

1. 扫描类型

-sT TCP connect()扫描,这是最基本的TCP扫描方式。这种扫描很容易被检测到,在目标主机的日志中会记录大批的连接请求以及错误信息。

-sS TCP同步扫描(TCP SYN),因为不必全部打开一个TCP连接,所以这项技术通常称为半开扫描(half-open)。这项技术最大的好处是,很少有系统能够把这记入系统日志。不过,你需要root权限来定制SYN数据包。

-sF,-sX,-sN 秘密FIN数据包扫描、圣诞树(Xmas Tree)、空(Null)扫描模式。这些扫描方式的理论依据是:关闭的端口需要对你的探测包回应RST包,而打开的端口必需忽略有问题的包(参考RFC 793第64页)。

-sP ping扫描,用ping方式检查网络上哪些主机正在运行。当主机阻塞ICMP echo请求包是ping扫描是无效的。nmap在任何情况下都会进行ping扫描,只有目标主机处于运行状态,才会进行后续的扫描。

-sU 如果你想知道在某台主机上提供哪些UDP(用户数据报协议,RFC768)服务,可以使用此选项。

-sA ACK扫描,这项高级的扫描方法通常可以用来穿过防火墙。

-sW 滑动窗口扫描,非常类似于ACK的扫描。

-sR RPC扫描,和其它不同的端口扫描方法结合使用。

-b FTP反弹攻击(bounce attack),连接到防火墙后面的一台FTP服务器做代理,接着进行端口扫描。

2. 通用选项

-P0 在扫描之前,不ping主机。

-PT 扫描之前,使用TCP ping确定哪些主机正在运行。

-PS 对于root用户,这个选项让nmap使用SYN包而不是ACK包来对目标主机进行扫描。

-PI 设置这个选项,让nmap使用真正的ping(ICMP echo请求)来扫描目标主机是否正在运行。

-PB 这是默认的ping扫描选项。它使用ACK(-PT)和ICMP(-PI)两种扫描类型并行扫描。如果防火墙能够过滤其中一种包,使用这种方法,你就能够穿过防火墙。

-O 这个选项激活对TCP/IP指纹特征(fingerprinting)的扫描,获得远程主机的标志,也就是操作系统类型。

-I 打开nmap的反向标志扫描功能。

-f 使用碎片IP数据包发送SYN、FIN、XMAS、NULL。包增加包过滤、入侵检测系统的难度,使其无法知道你的企图。

-v 冗余模式。强烈推荐使用这个选项,它会给出扫描过程中的详细信息。

-S IP 在一些情况下,nmap可能无法确定你的源地址(nmap会告诉你)。在这种情况使用这个选项给出你的IP地址。

-g port 设置扫描的源端口。一些天真的防火墙和包过滤器的规则集允许源端口为DNS(53)或者FTP-DATA(20)的包通过和实现连接。显然,如果攻击者把源端口修改为20或者53,就可以摧毁防火墙的防护。

-oN 把扫描结果重定向到一个可读的文件logfilename中。

-oS 扫描结果输出到标准输出。

--host_timeout 设置扫描一台主机的时间,以毫秒为单位。默认的情况下,没有超时限制。

--max_rtt_timeout 设置对每次探测的等待时间,以毫秒为单位。如果超过这个时间限制就重传或者超时。默认值是大约9000毫秒。

--min_rtt_timeout 设置nmap对每次探测至少等待你指定的时间,以毫秒为单位。

-M count 置进行TCP connect()扫描时,最多使用多少个套接字进行并行的扫描。

3. 扫描目标

目标地址 可以为IP地址,CIRD地址等。如192.168.1.2,222.247.54.5/24

-iL filename 从filename文件中读取扫描的目标。

-iR 让nmap自己随机挑选主机进行扫描。

-p 端口 这个选项让你选择要进行扫描的端口号的范围。如:-p 20-30,139,60000。

-exclude 排除指定主机。

-excludefile 排除指定文件中的主机。

举例:

nmap -v nmap -sS -O 192.168.1.23/24

nmap -sX -p 22,53,110,143,4564 128.210.*.1-127

nmap -v --randomize_hosts -p 80 *.*.2.3-5

nmap扫描工具的使用二 网络探测

Nmap的6种端口状态:

            Open:开放状态

            Closed:关闭状态

            Filtered: 过滤状态(可能被过滤,可能网络阻塞)

            Unfiltered:未被过滤状态(可以访问,但未知端口处于开放还是关闭状态)

            Open|Filtered:开放还是过滤的

            Closed|Filtered:不能确定端口事关闭还是被过滤的

-T 时序选项

        -p|-F|-r  常用扫描方式

        -sS   TCP SYN扫描:(需要root权限)

        -sT  TCP连接扫描:完整三次握手,最基础最稳定的扫描方式

        -sU   UDP扫描(速度非常慢,一般用-p指定端口范围以节约时间)

        -sN/sF/sX  隐蔽扫描

        -sA   TCP ACK扫描

        -sW  TCP窗口扫描

        -sM   TCP Maimon扫描

        –scanflags  自定义TCP扫描

        -sI   空闲扫描

        -sO  IP协议扫描

        -b *  FTP Bounce扫描

时序选项:

        -T0(偏执的):非常慢的扫描,用于IDS逃避

        -T1(鬼祟的):缓慢的扫描,用于IDS逃避

        -T2(文雅的):降低速度以降低对带宽的消耗,一般不同

        -T3(普通的):默认,根据目标的反应自动调整时间

        -T4(野蛮的):快速扫描,常用,需要在很好的网络环境下进行扫描,请求可能会淹没目标

        -T5(疯狂的):极速扫描,以牺牲准确度来提升扫描速度

例子:

(1)指定端口扫描:

nmap -p 80 192.168.20.16

    如图,直接输入nmap -p 80 192.168.20.16的时候提示Host seems down。我们可以通过ping命令来确定网络的连通性,此处使用的命令是ping 192.168.20.16,发现可以ping通,即网络是通的, 使用Ctrl+z停止执行ping命令。 再使用nmap -p 80 192.168.20.16命令的时候就可以出现正确的结果了。

ping 192.168.20.16(使用Ctrl+z停止执行ping命令)

nmap -p 80-1000 192.168.20.16

(2)TCP SYN扫描:

     ping 192.168.20.16(使用Ctrl+z停止执行ping命令)

     nmap -sS 192.168.20.16

     又称为半开放(需要root权限),常见扫描方式,扫描速度较快,由于未进行TCP连接,比较隐蔽,很难背防火墙或管理员发现

(3)隐蔽扫描

     ping 192.168.20.16(使用Ctrl+z停止执行ping命令)

     nmap -sN 192.168.20.16

     -sN是Null扫描

     ping 192.168.20.16(使用Ctrl+z停止执行ping命令)

     nmap -sF 192.168.20.16

     -sF是Fin扫描(发送FIN包)

     ping 192.168.20.16(使用Ctrl+z停止执行ping命令)

     nmap -sX 192.168.20.16    

           -sX是Xmas扫描(将数据包的FIN/PSH/URG都标记为1)

(4)TCP ACK扫描

         ping 192.168.20.16(使用Ctrl+z停止执行ping命令)

         nmap -sA 192.168.20.16

致命缺点:无法确定端口是否开放还是被过滤

FTP漏洞原理及利用 - 系统安全漏洞

文件传输协议(英文:File Transfer Protocol,缩写:FTP)是用于在网络上进行文件传输的一套标准协议,使用客户/服务器模式。它属于网络传输协议的应用层。FTP使用21号端口。

用户分类:1、Real用户 2、Administrator 3、匿名用户

FTP文件传输格式:1、ASCII 2、二进制格式

由于FTP没有禁止匿名用户,所以可以直接使用Anonymous用户直接登录FTP服务器。下面演示使用nc连接FTP。

1、使用nmap检查21端口,及扫描漏洞

2、使用匿名用户登录

vsftpd-2.3.4 手工触发漏洞:当进行FTP认证时,如果用户名USER中包含:),那么直接就触发监听6200端口的连接的shell。

1、使用nmap扫描FTP后门漏洞

2、使用nc触发vsftpd-2.3.4后面漏洞

另外打开一个终端利用该漏洞

1、修改配置文件,禁止匿名用户登录。

linux下修改/etc/vs:

anonymous_enable=NO

2、对特定漏洞进行打补丁,或者设置防火墙禁止连接后门端口。

查看medusa支持的破解模块

使用medusa暴力破解FTP

FTP协议中用于用户认证的过程中,客户端与服务器端是通过明文进行交互信息。验证FTP登录过程中明文传输用户名和密码。

1、利用arpspoof进行ARP嗅探,然后利用Wireshark进行流量嗅探。

利用metasploit创建反弹shell上传到FTP服务器。也可以利用setookit快速生成反弹shell。参考文章《 Metasploit实战:FTP漏洞利用 》

端口扫描原理及工具 - 安全工具篇

"端口"是英文port的意译,可以认为是设备与外界通讯交流的出口。端口可分为虚拟端口和物理端口,其中虚拟端口指计算机内部端口,不可见。例如计算机中的80端口、21端口、23端口等。

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

因此,一个开放的端口代表一个提供的服务,不同的服务具有不同的端口号, 因此要对服务进行测试,首先要确定是否开放对应端口号 。

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

1、周知端口

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

2、动态端口

动态端口的范围是从49152到65535。之所以称为动态端口,是因为它 一般不固定分配某种服务,而是动态分配。

3、注册端口

端口1024到49151,分配给用户进程或应用程序。这些进程主要是用户安装的程序。

1、使用Nmap工具查找ip的tcp端口

-O :获取操作系统版本信息

2、使用Nmap工具查找udp端口

-sU :表示udp scan , udp端口扫描

-Pn :不对目标进行ping探测(不判断主机是否在线)(直接扫描端口)

对于udp端口扫描比较慢,扫描完6万多个端口需要20分钟左右

3、使用Nmap工具获取端口Banner

只会返回有Banner信息的,没有则不会返回。

4、使用Nmap嗅探服务版本信息

如果没有返回banner信息的,也可以使用该方法尝试嗅探服务版本信息。

5、利用nmap对目标进行完整测试

在针对内容测试时,有授权的情况下,可以利用nmap对目标进行完整测试

0条大神的评论

发表评论