vuls
VulsDay 6

cpeNamesをpseudoで検査しよう

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%29m315.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",
]

あとはいつもどおりスキャンするだけ。