[转帖]如何使用nmap扫描工具

使用 nmap 套件:注意安全!

 

在本机上面观察 port 最好是使用 netstat 啦!因为他安全又可靠!但是,由于可能有某些 port 会寻找不到,或者不晓得那些 port 是干嘛用的,尤其是 /etc/services 里头没有提到的几个 port 对应的服务!这个时候怎么办?!没关系,不要紧,我们这个时候可以使用那个很流行的‘黑客指令’,就是 nmap 这个东西啦!nmap 的套件说明之名称为:‘Network exploration tool and security scanner’,顾名思义,这个东西是被系统管理员用来管理系统安全性查核的工具!他的具体描述当中也提到了, nmap 可以经由内部自行定义的几个 port 对应的指纹资料,来查出该 port 的服务为何,所以我们也可以藉此了解我们主机的 port 到底是干嘛用的!如果您是安装 Linux 是 Red Hat 版本的话,那么这个 nmap 套件应该已经安装妥当了,万一没有这个套件的话,也可以来到底下的网站下载: 

[root@test root]# nmap <扫瞄类型> <扫瞄参数> <Hosts 位址与范围>
参数说明:
<扫瞄类型>:主要的扫瞄类型有底下几种:
  -sT:扫瞄 TCP 封包已建立的连线 connect() !
  -sS:扫瞄 TCP 封包带有 SYN 标签的资料
  -sP:以 ping 的方式进行扫瞄
  -sU:以 UDP 的封包格式进行扫瞄
  -sO:以 IP 的协定 ( protocol ) 进行主机的扫瞄
<扫瞄参数>:主要的扫瞄参数有几种:
  -PT:使用 TCP 里头的 ping 的方式来进行扫瞄,可以获知目前有几部
     电脑存活(较常用)
  -PI:使用实际的 ping (带有 ICMP 封包的) 来进行扫瞄
  -p :这个是 port range ,例如 1024-, 80-1023, 30000-60000 等等的使用方式
<Hosts 位址与范围>:这个有趣多了,有几种类似的类型
  192.168.0.100  :直接写入 HOST IP 而已,仅检查一部;
  192.168.0.0/24 :为 C Class 的型态,
  192.168.*.*  :嘿嘿!则变为 B Class 的型态了!扫瞄的范围变广了!
  192.168.0.0-50,60-100,103,200 :这种是变形的主机范围啦!很好用吧!
范例:例题一:扫瞄单一部电脑!
[root@test root]# nmap localhost  
# 没有加上任何参数,由 nmap 的预设参数来进行扫瞄
Starting nmap V. 2.54BETA22 ( www.insecure.org/nmap/ )
Interesting ports on vbird.adsldns.org (127.0.0.1):
(The 1539 ports scanned but not shown below are in state: closed)
Port       State       Service
21/tcp     open        ftp
22/tcp     open        ssh
23/tcp     open        telnet
Nmap run completed — 1 IP address (1 host up) scanned in 1 second
# 由上面可以看出我的系统目前共有 21, 22, 23 这三个 port 开放!而且
# 各 port 对应的服务也被查出来了!例题二:扫瞄单一部电脑的较少数 port 号码!
[root@test root]# nmap -p 1024-65535 localhost
# 仅扫瞄较少数的 port 啦!
Starting nmap V. 2.54BETA22 ( www.insecure.org/nmap/ )
Interesting ports on pc510.ev.ncku.edu.tw (127.0.0.1):
(The 64511 ports scanned but not shown below are in state: closed)
Port       State       Service
3306/tcp   open        mysql <==只有这个 port 被找出来啰!
Nmap run completed — 1 IP address (1 host up) scanned in 11 seconds例题三:直接以 Ping 的方式扫瞄数个电脑!
[root @test /root]# nmap -PT 192.168.1.171-177 
# 看到了吧!扫瞄一个区段的活着的电脑!Starting nmap V. 2.54BETA22 ( www.insecure.org/nmap/ )
Interesting ports on linux172 (192.168.1.172):
(The 1536 ports scanned but not shown below are in state: closed)
Port       State       Service
110/tcp    open        pop-3
135/tcp    open        loc-srv
139/tcp    open        netbios-ssn
445/tcp    open        microsoft-ds
1025/tcp   open        listen
1110/tcp   open        nfsd-statusInteresting ports on linux174 (192.168.1.174):
(The 1537 ports scanned but not shown below are in state: closed)
Port       State       Service
110/tcp    open        pop-3
135/tcp    open        loc-srv
139/tcp    open        netbios-ssn
445/tcp    open        microsoft-ds
1025/tcp   open        listen

Interesting ports on linux176 (192.168.1.176):
(The 1537 ports scanned but not shown below are in state: closed)
Port       State       Service
110/tcp    open        pop-3
135/tcp    open        loc-srv
139/tcp    open        netbios-ssn
445/tcp    open        microsoft-ds
1025/tcp   open        listen

Nmap run completed — 7 IP addresses (3 hosts up) scanned in 1 second
瞧!我要侦测的只有七部电脑,所以这七部电脑只会回应给我啰!而其中只有三部有启动,所以当然就只会有三段回应啦!这个方式蛮适合一次扫瞄您的子网域内的所有电脑呢! ^_^”

 

 

 

进行ping扫描,打印出对扫描做出响应的主机,不做进一步测试(如端口扫描或者操作系统探测):
nmap -sP 192.168.1.0/24
仅列出指定网络上的每台主机,不发送任何报文到目标主机:
nmap -sL 192.168.1.0/24
探测目标主机开放的端口,可以指定一个以逗号分隔的端口列表(如-PS22,23,25,80):
nmap -PS 192.168.1.234
使用UDP ping探测主机:
nmap -PU 192.168.1.0/24
使用频率最高的扫描选项:SYN扫描,又称为半开放扫描,它不打开一个完全的TCP连接,执行得很快:
nmap -sS 192.168.1.0/24
当SYN扫描不能用时,TCP Connect()扫描就是默认的TCP扫描:
nmap -sT 192.168.1.0/24
UDP扫描用-sU选项,UDP扫描发送空的(没有数据)UDP报头到每个目标端口:
nmap -sU 192.168.1.0/24
确定目标机支持哪些IP协议 (TCP,ICMP,IGMP等):
nmap -sO 192.168.1.19
探测目标主机的操作系统:
nmap -O 192.168.1.19
nmap -A 192.168.1.19
另外,nmap官方文档中的例子:
nmap -v scanme.nmap.org
这个选项扫描主机scanme.nmap.org中 所有的保留TCP端口。选项-v启用细节模式。
nmap -sS -O scanme.nmap.org/24
进行秘密SYN扫描,对象为主机Saznme所在的“C类”网段 的255台主机。同时尝试确定每台工作主机的操作系统类型。因为进行SYN扫描 和操作系统检测,这个扫描需要有根权限。
nmap -sV -p 22,53,110,143,4564 198.116.0-255.1-127
进行主机列举和TCP扫描,对象为B类188.116网段中255个8位子网。这 个测试用于确定系统是否运行了sshd、DNS、imapd或4564端口。如果这些端口 打开,将使用版本检测来确定哪种应用在运行。
nmap -v -iR 100000 -P0 -p 80
随机选择100000台主机扫描是否运行Web服务器(80端口)。由起始阶段 发送探测报文来确定主机是否工作非常浪费时间,而且只需探测主机的一个端口,因 此使用-P0禁止对主机列表。
nmap -P0 -p80 -oX logs/pb-port80scan.xml -oG logs/pb-port80scan.gnmap 216.163.128.20/20
扫描4096个IP地址,查找Web服务器(不ping),将结果以Grep和XML格式保存。
host -l company.com | cut -d -f 4 | nmap -v -iL –
进行DNS区域传输,以发现company.com中的主机,然后将IP地址提供给 Nmap。上述命令用于GNU/Linux — 其它系统进行区域传输时有不同的命令。
其他选项:
-p <port ranges> (只扫描指定的端口)
单个端口和用连字符表示的端口范 围(如 1-1023)都可以。当既扫描TCP端口又扫描UDP端口时,可以通过在端口号前加上T: 或者U:指定协议。 协议限定符一直有效直到指定另一个。例如,参数 -p U:53,111,137,T:21-25,80,139,8080 将扫描UDP 端口53,111,和137,同时扫描列出的TCP端口。
-F (快速 (有限的端口) 扫描)

Comment

*

沪ICP备14014813号-2

沪公网安备 31010802001379号