我是靠谱客的博主 简单胡萝卜,最近开发中收集的这篇文章主要介绍linux安全-使用shell脚本一键查找局域网内开启22端口的主机前言,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

前言

在linux下使用shell脚本来查找局域网内开启22端口的主机,可修改具体的参数以达到测试其他端口是否开放。
另:请勿用于非法途径,遵守法律法规

实现步骤

运行环境为:centos7

1. 初始化环境

脚本使用nc作为端口探测工具,所以需要确保nc已正常安装。

echo "检查初始化环境..."
rpm -qa | grep nmap-ncat
if [ $? -eq 0 ]; then
	echo "已安装NC"
else
	echo "未安装NC,现在开始安装..."
	yum install -y nc
	wait
fi

等待检测安装完成,为保证脚本正常运行再次确认nc是否安装成功,成功才向下执行。

pm -qa | grep nmap-ncat
if [ $? != 0 ]; then
        echo "初始化失败,请手动安装nc"
	exit
fi

2. 确认本机IP地址

通过awk进行过滤出本机掩码是24位的IP地址,可修改对应变量以达到支持兼容非24位的IP地址及IP段,这里默认检测掩码为24位的IP地址。

echo "开始查找本机IP地址与网关..."
ret_ip=`ip a | grep inet | awk -F ' ' '{print $2}'`
gateway=24

for ip in $ret_ip; do
	tmp_ip=`echo $ip | awk -F '/' '{print $1}'`
	tmp_gateway=`echo $ip | awk -F '/' '{print $2}'`
	if test $[tmp_gateway] -eq $[gateway] 
	then
		echo "localhost ip:$tmp_ip,gateway:$tmp_gateway"
		break
	fi
done

3. 查找局域网内主机

查找IP地址对应的的局域网内所有主机
echo “开始查找局域网内主机…”
lan_ip=echo $tmp_ip | awk -F '.' '{print $1 "." $2 "." $3 "." }'
for (( i = 1; i < 255; i++ )); do
{
nc -zw2 l a n i p {lan_ip} lanipi 22
if [ ? − e q 0 ] ; t h e n e c h o " f i n d h o s t : ? -eq 0 ]; then echo "find host: ?eq0];thenecho"findhost:{lan_ip}$i"
fi
} &
done
wait
echo “查找完毕…”

4. 拓展

可增加参数和建立文件保存标记来确认是否需要保存查找结果为文件。

5. 完整实现代码

#!/bin/bash
# author:cc
# date:2020.8.24
# 发现局域网内22端口开启主机
# 端口检测使用nc

echo "检查初始化环境..."
rpm -qa | grep nmap-ncat
if [ $? -eq 0 ]; then
	echo "已安装NC"
else
	echo "未安装NC,现在开始安装..."
	yum install -y nc
	wait
fi

rpm -qa | grep nmap-ncat
if [ $? != 0 ]; then
        echo "初始化失败,请手动安装nc"
	exit
fi

case $1 in
	-w )
		echo $2
		;;
esac

echo "开始查找本机IP地址与网关..."
ret_ip=`ip a | grep inet | awk -F ' ' '{print $2}'`
gateway=24

for ip in $ret_ip; do
	tmp_ip=`echo $ip | awk -F '/' '{print $1}'`
	tmp_gateway=`echo $ip | awk -F '/' '{print $2}'`
	if test $[tmp_gateway] -eq $[gateway] 
	then
		echo "localhost ip:$tmp_ip,gateway:$tmp_gateway"
		break
	fi
done
echo "开始查找局域网内主机..."
lan_ip=`echo $tmp_ip | awk -F '.' '{print $1 "." $2 "." $3 "." }'`
for (( i = 1; i < 255; i++ )); do
	{
	nc -zw2 ${lan_ip}$i 22
	if [ $? -eq 0 ]; then
		echo "find host:${lan_ip}$i"
	fi
	} &
done
wait
echo "查找完毕..."

最后

以上就是简单胡萝卜为你收集整理的linux安全-使用shell脚本一键查找局域网内开启22端口的主机前言的全部内容,希望文章能够帮你解决linux安全-使用shell脚本一键查找局域网内开启22端口的主机前言所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部