概要
ペネトレーションテストなどで侵害したLinuxホストから内部のネットワークに対してポートスキャンを実施することがあります。Nmapが無いことはほとんどですが、そのような時はBashの簡単なスクリプトでtimeoutコマンドをかましながら実行していましたが、timeoutコマンドがないことがありましたのでURL(※1)を参考にスクリプトを書いてみました。
スクリプト
portscan.sh
#!/bin/bashhost=$1for port in{1..65535};do(bash -c"echo > /dev/tcp/$host/$port")&&echo"$port port is open"& sleep 0.1 ;kill-9$!> /dev/null 2>&1
done
echo"Done"使い方
$ bash ./portscan.sh 10.11.xx.xx > portscan.txt
実行するとオープンしているポートがあればportscan.txtファイルに
21 port is open
22 port is open
80 port is open
のように記載されます。