cpeNamesをvulsに登録することで、パッケージ以外のミドルウェア等を検査する。
; 既に出ているネタですが、エントリ水増し復習として。
cpeNameを特定する
go-cpe-dictionaryのデータべエースを利用して、cpeNameを特定する。
$ sqlite3 ./cpe.db 'select name from cpes' | grep cisco | grep ios:15.6
cpe:/o:cisco:ios:15.6%280.17%29t
cpe:/o:cisco:ios:15.6%281%29t0a
cpe:/o:cisco:ios:15.6%282%29sn
cpe:/o:cisco:ios:15.6%282%29sp
cpe:/o:cisco:ios:15.6%282%29sp1
cpe:/o:cisco:ios:15.6%283%29m
cpe:/o:cisco:ios:15.6%283%29m1b
cpe:/o:cisco:ios:15.6%283%29m2
cpe:/o:cisco:ios:15.6%283%29m2a
cpe:/o:cisco:ios:15.6%283%29m3
$
15.6%283%29m3
は15.6(3)m3
のような感じなので、適当に正しそうなものを選択する。
- 該当しそうなベンダ名で探してみる。
- ルータ等であれば、ベンダと型番で調べてみる
-
cpe:o:yamaha:rtx1200:バージョン
とか
-
- 脆弱性更新ではないものは、バージョンとして登録されていな場合がある
- そもそもNVDのCVEほど高頻度の更新ではないかもしれない
多分、他の方がcpeNamesの見つけ方等を書いてくれるはず。
config.tomlに登録して、スキャンする
こんな感じでconfig.tomlに登録する
[servers.network]
type="pseudo"
cpeNames = [
"cpe:/o:cisco:ios:15.5t",
"cpe:/o:yamaha:rtx1200:10.01.22",
"cpe:/o:yamaha:rtx1100:8.03.83",
]
あとはいつもどおりスキャンするだけ。