码迷,mamicode.com
首页 > 系统相关 > 详细

shell脚本实现网络扫描 自动抓包 协议分析 nmap

时间:2018-03-06 19:12:54      阅读:284      评论:0      收藏:0      [点我收藏+]

标签:shell脚本   nmap   网络抓包   协议分析   扫描   

此文章提供思想基础用法:关于自动检测功能,各个端口和抓包功能,项目中使用的为nmap软件,Linux操作系统,首先我们要安装nmap的软件 项目中使用的为nmap-6.40-7.el7.x86_64版本,

命令格式为:  #nmap  [扫描类型]  [选项]  <目标主机> 

    扫描类型:

                    -sS (TCP  SYN扫描半开)

                    -sT(TCP 连接扫描全开)

                    -sU  (UDP扫描)

                    -sP    (ICMP扫描)

                    -A     //对目标主机做全面分析

    选项       :

                    -n     //不对主机名解析

                    -p     //指定端口

选项

-c   数字             //指定抓包次数

-i    接口名称     //指定抓的网卡

-w  文件名        //将抓到的包存放到文件里

-A                    //转换为ACSII码显示,可读性稍强

-r   文件名       //将文件里面读出来

tcpdump -c 3  -i eth0 (默认)  -w  /a.txt  -A

[过滤条件]

类型: host   主机

           net     网络

           port    端口

           portrange   端口范围

方向 

      src  :  源地址

      dst :  目标地址

协议  : tcp  udp  ip   wlan  arp

条件可以由组合而成: and (并且)  or(或者)   not(取反)     

举例: nmap  -A  -i eth0  tcp  port 80  and host 172.40.50.123  or  host 172.40.50.148  

这里执行的为检测 主机172.40.50.123 的 80 端口    和 172.40.50.148 的tcp 协议 我们可以使用()来提升 or 的优先级来实现监听两台主机的80端口  ()不能被系统命令所认知,我们需要使用 \ 反斜线来取消其定义 

nmap  -A  -i eth0  tcp  port 80  and    \(host 172.40.50.123  or  host 172.40.50.148\)


下面是一个简单脚本,使用了位置变量,这里的shift 为跳过前一个定义,所以我们的port端口不会输入到定义IP 地址里,grep -q 意思为屏蔽此次输出若由open 字段  那么返回值  echo   $? =0   做了判断,大家可以根据自己要求编写脚本。


#!/bin/bash

port=$1

shift

for ip in $*

do

nmap -n -sS -p $port "172.40.58.$ip" | grep -q open

if [ $? -eq 0 ];then

   echo  "172.40.58.$ip  port $port is open"

else

    echo  "172.40.58.$ip  port $port is down"

fi

do


shell脚本实现网络扫描 自动抓包 协议分析 nmap

标签:shell脚本   nmap   网络抓包   协议分析   扫描   

原文地址:http://blog.51cto.com/13589092/2083572

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!