2
0

Pythonで簡易的な脆弱性ツールを書いてみた話

Posted at

はじめに

Chatgptやネットで調べた情報をもとに作成しました!!!
使用環境はVScodeです!!

実際のコード

import subprocess
import re

def check_connected_devices():
    # LAN上のデバイスを取得するコマンド
    cmd = "arp -a"
    try:
        # コマンドを実行して結果を取得
        output = subprocess.check_output(cmd, shell=True)
        # 出力をデコードして文字列に変換
        output_str = output.decode('utf-8')
        # 改行で分割してデバイス情報を取得
        devices = output_str.split('\n')
        # 最初と最後の行は不要なので除外
        devices = devices[1:-1]
        # 各デバイス情報を表示
        for device in devices:
            print(device)
        # 脆弱性診断を実行
        perform_vulnerability_scan(devices)
    except subprocess.CalledProcessError as e:
        print("Error executing command:", e)

def perform_vulnerability_scan(devices):
    for device in devices:
        # デバイスからIPアドレスを抽出
        ip_address = re.findall(r'\d+\.\d+\.\d+\.\d+', device)
        if ip_address:
            # 各デバイスのIPアドレスに対して脆弱性スキャンを実行
            scan_result = run_scan_tool(ip_address[0])
            print("IP Address:", ip_address[0])
            print("Scan Result:", scan_result)
            print()

def run_scan_tool(ip_address):
    # 実際の脆弱性スキャンツールのコマンドを実行する部分
    # ここではダミーの結果を返す
    return "Vulnerability scan result for " + ip_address

if __name__ == "__main__":
    check_connected_devices()

このコードでは、perform_vulnerability_scan関数が追加されています。この関数は、LAN上のデバイスからIPアドレスを抽出し、それぞれに対して脆弱性スキャンを実行します。
run_scan_tool関数は、実際の脆弱性スキャンツールを実行する部分で、ここではダミーの結果を返すようにしています。

まとめ

まだまだ簡易的ではありますが、これからこのコードを元にいろんなカスタムをしていきたいですね!
見ずらい部分などあるかと思いますが、何卒ご容赦ください!

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0