nmap
用于网络探测和安全审核。
1、概述
nmap命令 是一款开放源代码的网络探测和安全审核工具,它的设计目标是快速地扫描大型网络。
2、语法
nmap [OPTIONS] {
ARGUMENTS}
2.1 OPTIONS
-O # 激活操作探测
-P0 # 只进行扫描,不ping主机
-PT # 是同TCP的ping
-sV # 探测服务版本信息
-sP # ping扫描,仅发现目标主机是否存活
-ps # 发送同步(SYN)报文
-PU # 发送udp ping
-PE # 强制执行直接的ICMPping
-PB # 默认模式,可以使用ICMPping和TCPping
-6 # 使用IPv6地址
-v # 得到更多选项信息
-d # 增加调试信息地输出
-oN # 以人们可阅读的格式输出
-oX # 以xml格式向指定文件输出信息
-oM # 以机器可阅读的格式输出
-A # 使用所有高级扫描选项
--resume # 继续上次执行完的扫描
-P # 指定要扫描的端口,可以是一个单独的端口,用逗号隔开多个端口,使用“-”表示端口范围
-e # 在多网络接口Linux系统中,指定扫描使用的网络接口
-g # 将指定的端口作为源端口进行扫描
--ttl # 指定发送的扫描报文的生存期
--packet-trace # 显示扫描过程中收发报文统计
--scanflags # 设置在扫描报文中的TCP标志
--send-eth/--send-ip # 使用原始以太网发送/构造指定IP发送
2.2 ARGUMENTS
参数一般为IP地址,需要探测的IP地址
3、使用示例
安装:
# yum install nmap
扫描网址 www.magedu.com的开放端口:
# nmap www.magedu.com
[root@neo ~]# nmap 220.172.107.204
Starting Nmap 6.40 ( http://nmap.org ) at 2019-09-10 02:04 EDT
Nmap scan report for 220.172.107.204
Host is up (0.061s latency).
Not shown: 989 closed ports
PORT STATE SERVICE
21/tcp filtered ftp
22/tcp open ssh
23/tcp filtered telnet
80/tcp filtered http
135/tcp filtered msrpc
139/tcp filtered netbios-ssn
443/tcp filtered https
445/tcp filtered microsoft-ds
4444/tcp filtered krb524
8080/tcp filtered http-proxy
8443/tcp filtered https-alt
Nmap done: 1 IP address (1 host up) scanned in 9.21 seconds
nc / ncat
1、概述
nc / ncat - Concatenate and redirect sockets(连接并重定向套接字)
nc / ncat 在CentOS 上是同一个命令工具,是一个功能丰富的网络实用程序,可通过命令行在网络上读写数据。 它旨在成为一种可靠的后端工具,可立即为其他应用程序和用户提供网络连接。
使用 ncat 时,尽量不要使用 nc,避免与 netcat 冲突。
2、语法
ncat [OPTIONS] {
ARGUMENTS} {
PORTS}
nc [-hlnruz]
[-g<网管>]
[-G<指向器数目>]
[-i<延迟秒数>]
[-o<输出文件>]
[-p<通信端口>]
[-s<来源地址>]
[-v…]
[-w<超时秒数>]
[主机名称] [通信端口…]
2.1 OPTIONS
-h 查看帮助信息
-g hop1[,hop2,...] # 松散源路由跳点(最多8个)
-G <n> # 指向器数目 (4,8,12,...)
-d, --delay <time> # 同时建立的最大连接数
-o, --output <filename> # 输出文件
-x, --hex-dump <filename> # 十六进制输出文件
-i, --idle-timeout <time> # 空闲读/写超时时间
-p, --source-port port # 指定特定的源端口
-s, --source addr # 指定特定的源ip
-l, --listen # 绑定并监听传入的连接
-k, --keep-open # 在监听模式下接受多个连接
-t, --telnet # 应答Telnet握手协议
-u, --udp # 使用udp代替默认的tcp
--sctp # 使用sctp代替默认的tcp
-w, --wait <time> # 连接超时时间
2.2 ARGUMENTS
参数一般为IP地址,需要探测的IP地址
2.3 PORTS
需要探测的端口
netcat
1、编译安装netcat
1.1 下载
http://sourceforge.net/projects/netcat/files/netcat/0.7.1/
1.2 解压至相关目录
[root@neo home]# ll netcat-0.7.1.tar.gz
-rw-r--r--. 1 root root 398872 Sep 10 02:22 netcat-0.7.1.tar.gz
[root@neo home]# tar -zxvf netcat-0.7.1.tar.gz -C /usr/local/
netcat-0.7.1/
netcat-0.7.1/m4/
netcat-0.7.1/m4/lib-link.m4
1.3 目录改名(改为 netcat)
[root@neo home]# cd /usr/local/netcat-0.7.1/
[root@neo netcat-0.7.1]# ls
ABOUT-NLS ChangeLog config.rpath configure.ac INSTALL m4 missing po TODO
aclocal.m4 config.guess config.sub COPYING install-sh Makefile.am mkinstalldirs README
AUTHORS config.h.in configure doc lib Makefile.in NEWS src
[root@neo netcat-0.7.1]# cd ..
[root@neo local]# pwd
/usr/local
[root@neo local]# mv netcat-0.7.1/ netcat
[root@neo local]# ll netcat/
total 676
-rw-r--r--. 1 100 users 24687 Aug 17 2002 ABOUT-NLS
-rw-r--r--. 1 100 users 109116 Jan 11 2004 aclocal.m4
... ...
drwxrwxrwx. 2 100 users 216 Jan 11 2004 src
-rw-r--r--. 1 100 users 2197 Aug 28 2003 TODO
[root@neo local]# cd netcat/
[root@neo netcat]# ll
total 676
-rw-r--r--. 1 100 users 24687 Aug 17 2002 ABOUT-NLS
-rw-r--r--. 1 100 users 109116 Jan 11 2004 aclocal.m4
-rw-r--r--. 1 100 users 473 Nov 4 2003 AUTHORS
... ...
-rw-r--r--. 1 100 users 2197 Aug 28 2003 TODO
1.4 安装
在目录(cd /usr/local/netcat)下进行编译安装,把文件存放在/opt/netcat下,删除时,卸载软件时,只要删除这个文件就行了。
./configure --prefix=/opt/netcat
make && make install
[root@neo netcat]# ./configure --prefix=/opt/netcat
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
... ...
[root@neo netcat]# make && make install
make all-recursive
... ...
1.5 修改配置文件
# vim /etc/profile
添加以下内容:
# set netcat path
export NETCAT_HOME=/opt/netcat
export PATH=$PATH:$NETCAT_HOME/bin
使配置文件生效:
# source /etc/profile
2、nc/netcat 和 ncat/nmap 的区别
nc与netcat是一个组件,ncat是nmap下的一个程序。两者是不一样的。
如果你使用 nc 时,无法使用,提示Ncat: Connection refused.
,可能是因为系统将nc/netcat默认指向了ncat,导致使用命令nc,其实使用的是ncat。
解决办法
[root@neo netcat]# whereis nc # 查找 nc
nc: /usr/bin/nc /opt/netcat/bin/nc /usr/share/man/man1/nc.1.gz
[root@neo netcat]# ll /usr/bin/nc # 查看 nc,应该是一个连接文件
lrwxrwxrwx. 1 root root 4 Sep 10 02:03 /usr/bin/nc -> ncat
[root@neo netcat]# rm /usr/bin/nc # 删除软链接
rm: remove symbolic link ‘/usr/bin/nc’? yes
[root@neo netcat]# ln -s /opt/netcat/bin/nc /usr/bin/nc # 新建软链接
[root@neo netcat]# nc --help # 查看帮助进行验证,已经是 netcat 了
GNU netcat 0.7.1, a rewrite of the famous networking tool.
Basic usages:
connect to somewhere: nc [options] hostname port [port] ...
listen for inbound: nc -l -p port [options] [hostname] [port] ...
tunnel to somewhere: nc -L hostname:port -p port [options]
示例进行验证
进行了 TCP 全链接端口扫描。
[root@neo ~]# nc -nv -w 1 -z 125.67.67.28 1-500
125.67.67.28 22 (ssh) open
125.67.67.28 53 (domain) open
3、示例
3.1 Port Scanning(端口扫描)
端口扫描经常被系统管理员和黑客用来发现在一些机器上开放的端口,帮助他们识别系统中的漏洞。
# nc -z -v -n 172.31.100.7 21-25
# 打印21到25所有开放的端口
# 可以运行在