linux shell編寫埠掃瞄指令碼
需求:掃瞄特定主機
掃瞄特定主機的特定埠
掃瞄特定網段
掃瞄特定網段中哪些主機開放了特定的埠
原始碼如下:
#/bin/bash1.測試,掃瞄特定主機(沒有給出埠,掃瞄預設埠檔案)#該指令碼用於對特定目標主機進行常見埠掃瞄(載入埠字典)或者指定埠掃瞄,判斷目標主機開放來哪些埠
#用telnet方式
#部落格:https:
ip=$1
#獲得ip的前三位
threeip=$(echo $ip |awk -f. '')
#獲得ip的第四位
endip=$(echo $ip | awk -f. '')
if [ $1
]then
if [ $2
]
then
#ip的第四位為0表明是乙個網段,對整個網段進行特定埠的掃瞄,發現哪個主機開放特定埠
if [ $endip -eq 0
]
then
for ((i=128;i<=140;i++))
do(sleep
1;)|telnet $threeip$i $2
2>&1 |grep
"connected to $threeip$i
">/dev/null
if [ $? -eq 0
]
then
echo
"主機$threeip$i開放$2埠!
"else
echo
"主機$threeip$i的$2埠關閉!"fi
done
else
#ip的第四位不為0,說明是單個ip,對單個ip進行特定埠掃瞄
(sleep
1;)|telnet $1 $2
2>&1 |grep
"connected to $1
">/dev/null
if [ $? -eq 0
]
then
echo
"主機$1開放$2埠!
"else
echo
"主機$1的$2埠關閉!"fi
fielse
#指令碼只有乙個ip引數,根據ip的第四位是否為0來判斷是否為網段,因為沒有埠引數,掃瞄預設埠
if [ $endip -eq 0
]
then
for ((i=128;i<=130;i++))
dofor port in $(cat
defaultport.txt)
do(sleep
1;)|telnet $threeip$i $port 2>&1 |grep
"connected to $threeip$i
">/dev/null
if [ $? -eq 0
]
then
echo
"主機$threeip$i開放$port埠!
"else
echo
"主機$threeip$i的$port埠關閉!"fi
done
done
else
#指令碼只有ip乙個引數,沒有埠引數,載入埠字典掃瞄預設埠
for i in $(cat
defaultport.txt)
do#與目標主機的特定埠只通訊1秒,根據返回的資料來判斷目標是否開放特定埠
(sleep
1;)|telnet $1 $i 2>&1 |grep
"connected to $1
">/dev/null
if [ $? -eq 0
]
then
echo
"主機$1開放$i埠!
"else
echo
"主機$1的$i埠關閉!"fi
done
fifi
else
echo
"*******************************************
該指令碼的用法示例:
$0192.168.1.1
(掃瞄預設埠)
$0192.168.1.1
portx(掃瞄指定ip指定埠portx)
$0192.168.1.0
(掃瞄指定網段,掃瞄預設埠)
$0192.168.1.0
portx(掃瞄指定網段指定埠portx)
******************************************** "
fi
![](https://pic.w3help.cc/c8f/39ec61f908d8dc14d0a7ac043b913.jpeg)
2. 測試,掃瞄特定主機的特定埠
3. 測試,掃瞄特定網段(沒給埠引數,掃瞄預設埠檔案) #實驗為例減少測試時間只掃瞄了很小的網段
4.測試,掃瞄特定網段中哪些主機開放了特定的埠
Linux shell 指令碼 編寫
let 整數運算 let x x 1 或let x 邏輯卷標 表示意思 1 關於檔案與目錄的偵測邏輯卷標!f常用!偵測 檔案 是否存在 eg if f filename d常用!偵測 目錄 是否存在 b偵測是否為乙個 block 檔案 c偵測是否為乙個 character 檔案 s偵測是否為乙個 s...
如何在python中編寫乙個簡單的埠掃瞄?
如何在python中編寫乙個簡單的埠掃瞄?import sys import socket import threading 先導入我們本次編寫指令碼所需要的模組 portlen 定義乙個列表好來存放掃瞄到的ip defportmap ip,port 首先寫乙個函式來對掃瞄器的功能進行構造 d so...
編寫LinuxShell程式1
bash 井號是起注釋作用的 rm f f是強制刪除的意思 ps 是顯示當前前台程序狀態 ps e 是顯示當前所有程序狀態 前台和後台全部都在 ls l 是顯示當前目錄下所有檔案的讀寫許可權 剛剛創立的shell指令碼是不能執行的,有兩種方式可以執行,1.使用shell工具進行解析 2.修改指令碼的...