前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >nmap +shell脚本实现内网端口巡检

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

作者头像
保持热爱奔赴山海
发布2019-09-18 15:11:30
1.2K0
发布2019-09-18 15:11:30
举报
文章被收录于专栏:饮水机管理员饮水机管理员

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

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

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

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

1、通过salt获得主机列表

代码语言:javascript
复制
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参数,但是发现扫描特别慢,慎重考虑。

代码语言:javascript
复制
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、每天执行一次下面的这个脚本,获取最新的开放的端口,并比对旧的数据,发现端口异动就自动报警。

代码语言:javascript
复制
#!/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、如果确定当前端口是正常流程修改的,可以更新端口列表模板

代码语言:javascript
复制
cp /tmp/list_$(date +%F) /tmp/list

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-10-02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档