nmap +shell脚本实现内网端口巡检

简介:

nmap的命令很多,这里就不介绍了,想了解的话,网上很多的文章可以参考。


#############################################################

通过nmap端口扫描获取开放的端口,以达到内网体检的目的

#############################################################


1、通过salt获得主机列表

1
salt  '*'  cmd.run  'ifconfig|grep addr|sed -n "4p"|cut -d ":" -f 2|cut -d " " -f 1'  /root/hosts_list

获得的文件内容大致如下:

node1:

192.168.2.11

node2:

192.168.2.12

node3:

192.168.2.13

注意:

主机地址一定要是上面这种结构的,不然下面的sed后的结果不是纯IP列表,发给nmap扫描会报错的。



2、nmap对这个主机列表进行端口扫描

# 注意:刚开始没显式指定端口范围,发现例如27017这些端口都没扫描出来,后来就加了-p 1-65535参数,但是发现扫描特别慢,慎重考虑。

1
sed  -n  'n;p'  /root/hosts_list | xargs  -p 1-65535 nmap -sS >  /tmp/port_list  &&  egrep  "Nmap scan report|open"  /tmp/port_list  /tmp/list  &&  rm  -f  /tmp/port_list

获得的文件内容大致如下:

Nmap scan report for node1 (192.168.2.11)

22/tcp open  ssh

Nmap scan report for node2 (192.168.2.12)

22/tcp open  ssh

Nmap scan report for node3 (192.168.2.13)

22/tcp open  ssh


3、每天执行一次下面的这个脚本,获取最新的开放的端口,并比对旧的数据,发现端口异动就自动报警。

1
2
3
4
5
6
7
8
9
10
11
12
13
#!/bin/bash
# Description: nmap扫描线上服务器的开放端口
# Author: lirl
# Date: 2016/10/02
sed  -n  'n;p'  /root/hosts_list | xargs  nmap -p 1-65535 -sS >  /tmp/port_list  &&  egrep  "Nmap scan report|open"  /tmp/port_list  /tmp/list_ $( date  +%F)
if  [ $? - eq  0 ]; then 
if  diff  /tmp/list  /tmp/list_ "$(date +%F)"  -y -W 100 >  /tmp/port_change_list  2>  /dev/null  ; then
echo  -e  "[+] some port changed $(date +%F) , Please check file /tmp/port_change_list.\n"   >>  /tmp/openports_stats
# mail -s "Port stats Changed,Please login salt to check." xxxx@126.com < /tmp/port_change_list
else
echo  -e  "[-] none port changed $(date +%F).\n"  >>  /tmp/openports_stats
fi
fi

获得的/tmp/port_change_list 文件内容大致如下:

Nmap scan report for node1 (192.168.2.11)Nmap scan report for node1 (192.168.2.11)

22/tcp open  ssh22/tcp open  ssh

Nmap scan report for node2 (192.168.2.12)Nmap scan report for node2 (192.168.2.12)

22/tcp open  ssh22/tcp open  ssh

Nmap scan report for node3 (192.168.2.13)Nmap scan report for node3 (192.168.2.13)

22/tcp open  ssh22/tcp open  ssh

80/tcp   open  http      <

3306/tcp open  mysql      <

很明显,我们能看出哪些端口是增加的或者减少的。




4、如果确定当前端口是正常流程修改的,可以更新端口列表模板

1
cp  /tmp/list_ $( date  +%F)  /tmp/list



基本上完成这几步骤,就差不多了,还有很多不完善的地方,等想到了在补充进来。










本文转自 lirulei90 51CTO博客,原文链接:http://blog.51cto.com/lee90/1858381,如需转载请自行联系原作者
目录
相关文章
|
23天前
|
Shell
一个用于添加/删除定时任务的shell脚本
一个用于添加/删除定时任务的shell脚本
66 1
|
9天前
|
Shell Linux 测试技术
6种方法打造出色的Shell脚本
6种方法打造出色的Shell脚本
31 2
6种方法打造出色的Shell脚本
|
13天前
|
监控 网络协议 Shell
ip和ip网段攻击拦截系统-绿叶结界防火墙系统shell脚本
这是一个名为“小绿叶技术博客扫段攻击拦截系统”的Bash脚本,用于监控和拦截TCP攻击。通过抓取网络数据包监控可疑IP,并利用iptables和firewalld防火墙规则对这些IP进行拦截。同时,该系统能够查询数据库中的白名单,确保合法IP不受影响。此外,它还具备日志记录功能,以便于后续分析和审计。
38 6
|
10天前
|
运维 监控 Shell
深入理解Linux系统下的Shell脚本编程
【10月更文挑战第24天】本文将深入浅出地介绍Linux系统中Shell脚本的基础知识和实用技巧,帮助读者从零开始学习编写Shell脚本。通过本文的学习,你将能够掌握Shell脚本的基本语法、变量使用、流程控制以及函数定义等核心概念,并学会如何将这些知识应用于实际问题解决中。文章还将展示几个实用的Shell脚本例子,以加深对知识点的理解和应用。无论你是运维人员还是软件开发者,这篇文章都将为你提供强大的Linux自动化工具。
|
1月前
|
监控 Unix Shell
shell脚本编程学习
【10月更文挑战第1天】shell脚本编程
60 12
|
1月前
|
Python
Python编程--使用NMAP端口扫描
Python编程--使用NMAP端口扫描
|
1月前
|
存储 运维 监控
自动化运维:使用Shell脚本简化日常任务
【9月更文挑战第35天】在IT运维的日常工作中,重复性的任务往往消耗大量的时间。本文将介绍如何通过编写简单的Shell脚本来自动化这些日常任务,从而提升效率。我们将一起探索Shell脚本的基础语法,并通过实际案例展示如何应用这些知识来创建有用的自动化工具。无论你是新手还是有一定经验的运维人员,这篇文章都会为你提供新的视角和技巧,让你的工作更加轻松。
41 2
|
2月前
|
Shell
shell脚本变量 $name ${name}啥区别
shell脚本变量 $name ${name}啥区别
|
1月前
|
存储 Shell Linux
【Linux】shell基础,shell脚本
Shell脚本是Linux系统管理和自动化任务的重要工具,掌握其基础及进阶用法能显著提升工作效率。从简单的命令序列到复杂的逻辑控制和功能封装,Shell脚本展现了强大的灵活性和实用性。不断实践和探索,将使您更加熟练地运用Shell脚本解决各种实际问题
20 0
|
1月前
|
网络协议
Nmap 中的各种端口扫描技术
Nmap 中的各种端口扫描技术