Linux shell編寫埠掃瞄指令碼

2022-07-03 21:27:19 字數 2698 閱讀 1086

linux shell編寫埠掃瞄指令碼

需求:掃瞄特定主機

掃瞄特定主機的特定埠

掃瞄特定網段

掃瞄特定網段中哪些主機開放了特定的埠

原始碼如下:

#/bin/bash

#該指令碼用於對特定目標主機進行常見埠掃瞄(載入埠字典)或者指定埠掃瞄,判斷目標主機開放來哪些埠

#用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

1.測試,掃瞄特定主機(沒有給出埠,掃瞄預設埠檔案)

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.修改指令碼的...