Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ツール/GitHubGitHub/anvilsecure/dawgmon
防御ツール脆弱性分析構成監査インシデントレスポンス
GitHubanvilsecure/dawgmon

dawgmon

dawg the hallway monitor - オペレーティングシステムの変更を監視し、ソフトウェアインストール時に導入される攻撃対象領域を分析する

リポジトリを見るウェブサイト
558496年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

dawgmon - Dawg the Hallway Monitor

概要

このツールの名前は、サウスパークのエピソード(シーズン10、エピソード10)に基づいています。そのエピソードでは、カートマンが廊下監視員のDawgとして学校の廊下を巡回しています。このツールは、前回ツールを実行した時からLinuxベースのシステム上で発生した変更を監視するのに役立ちます。

使用方法の一つは、付属のサンプルcronjobのようなものを使用して、定期的にdawgmonを実行し、結果をシステム管理者にメールで送信することです。これは、悪質なことが行われているマシンを特定し、誰が何をどこにインストールしているかを監視するのに役立ちます。ただし、本格的なカーネルバックドアはこのツールから簡単に身を隠すことができるため、これはツールキットの一つとして追加されるだけであり、Linuxマシンの完全なセキュリティ監視に依存すべきではないことに注意してください。これはツールボックスの単なる追加オプションです。

もう一つの有用な使い方は、ソフトウェアをインストールする前にベースラインを生成することです。その後、ソフトウェアをインストールした後にツールを再度実行すると、システムにどのような変更が加えられたかが簡単にわかります。ベースラインを確立した後、マシンにvirtualboxをインストールした例は次のようになります:

root@kitploit:~
# ./dawgmon -gfA
1 change detected (0 warnings)            
+ systemd property NNames changed from 259 to 261
# apt install virtualbox-5.1
[...]
# ./dawgmon -gfA
33 changes detected (0 warnings)          
+ size of file /etc/group changed from 937 to 954
+ file /etc/group got modified on 2017-09-14 19:29:51.804811 +0200
+ size of file /etc/group- changed from 934 to 937
+ file /etc/group- got modified on 2017-09-14 19:29:14.000000 +0200
+ file /etc/gshadow got modified on 2017-09-14 19:29:51.812811 +0200
+ size of file /etc/gshadow- changed from 777 to 794
+ size of file /etc/mailcap changed from 40777 to 41063
+ file /etc/mailcap got modified on 2017-09-14 19:29:51.632812 +0200
+ file /etc/systemd/system/multi-user.target.wants/vboxautostart-service.service got created (owner=root, group=root, perm=lrwxrwxrwx, size=49)
+ file /etc/systemd/system/multi-user.target.wants/vboxballoonctrl-service.service got created (owner=root, group=root, perm=lrwxrwxrwx, size=51)
+ file /etc/systemd/system/multi-user.target.wants/vboxdrv.service got created (owner=root, group=root, perm=lrwxrwxrwx, size=35)
+ file /etc/systemd/system/multi-user.target.wants/vboxweb-service.service got created (owner=root, group=root, perm=lrwxrwxrwx, size=43)
+ file /etc/udev/rules.d/60-vboxdrv.rules got created (owner=root, group=root, perm=-rw-r--r--, size=747)
+ group vboxusers added
+ package virtualbox-5.1 is to be installed
+ suid binary /usr/lib/virtualbox/VBoxHeadless got created (owner=root, group=root, perm=-r-s--x--x, size=158304)
+ suid binary /usr/lib/virtualbox/VBoxNetAdpCtl got created (owner=root, group=root, perm=-r-s--x--x, size=23144)
+ suid binary /usr/lib/virtualbox/VBoxNetDHCP got created (owner=root, group=root, perm=-r-s--x--x, size=158304)
+ suid binary /usr/lib/virtualbox/VBoxNetNAT got created (owner=root, group=root, perm=-r-s--x--x, size=158304)
+ suid binary /usr/lib/virtualbox/VBoxSDL got created (owner=root, group=root, perm=-r-s--x--x, size=158296)
+ suid binary /usr/lib/virtualbox/VBoxVolInfo got created (owner=root, group=root, perm=-r-s--x--x, size=10472)
+ suid binary /usr/lib/virtualbox/VirtualBox got created (owner=root, group=root, perm=-r-s--x--x, size=158304)
+ i-node for listening UNIX socket /run/systemd/private changed from 3428734 to 3452848
+ systemd property NInstalledJobs changed from 8392199 to 3238035463
+ systemd property NNames changed from 261 to 263
+ systemd unit file vboxautostart-service.service added
+ systemd unit file vboxballoonctrl-service.service added
+ systemd unit file vboxdrv.service added
+ systemd unit file vboxweb-service.service added
+ systemd unit 'vboxautostart-service.service' added
+ systemd unit 'vboxballoonctrl-service.service' added
+ systemd unit 'vboxdrv.service' added
+ systemd unit 'vboxweb-service.service' added

上記は、virtualboxの徹底的なセキュリティレビューを行うのに役立ちます。インストールされたsuidバイナリは明らかなエントリポイントであり、実行中のサービスも興味深いです。

別の実行例では、TCPポートの開閉を正しく検出します:

root@kitploit:~
# ./dawgmon -gfA
0 changes detected (0 warnings)           
# nc -l -p 4455 &
[1] 12489
# ./dawgmon -gfA
1 change detected (0 warnings)            
+ port 4455 tcp opened
# fg
nc -l -p 4455
^C
# ./dawgmon -gfA
1 change detected (0 warnings)            
+ port 4455 tcp closed
# 

このツールは完全な正確性を意図していません。通常、lsなどのGNU core-utilsの出力をツール入力として信頼しないようにという非常に重大な推奨事項があります。言い換えれば、この種の出力を解析して依存するツールを構築することはめったに行うべきではありません。なぜなら、それは常に変化する可能性があるからです。実際には、これらのツールの出力は比較的安定しています。なぜなら、多くの人々や自動ツールがすでにあらゆる目的でその出力に依存しているからです。

しかし、dawgmonのトレードオフは次のとおりです。ファイルシステム監視を自分たちで実装するために多くのロジックを実装し、ブロックデバイスやネットワークインターフェースなどの解析と監視を行うためのライブラリを含む複雑なバイナリを構築する必要があります。これによりツールはさらに複雑になり、保守性が低下します。現在のプロジェクトでは、メインのdawgmonツールがすでにキャッシュ、コマンドの実行、およびコマンド実装との比較実行時に前回と現在の出力を提供することを処理しているため、変更検出を含む新しいコマンドを非常に短時間で追加できます。つまり、時間に制約のあるプロジェクトでは、新しいコマンドを迅速に追加し、それらの新しいコマンドを含む分析を実行できるということです。

コマンドは、Commandクラスを継承するだけで追加できます。このクラスはcommands/__init__.pyで定義されています。そのファイルには、コマンドのマスターリスト(および完全な分析を実行する際の実行順序)も含まれています。次に、'name'、'shell'、'command'、'desc'などのプロパティを設定し、parse()およびcompare()の2つのメソッドを実装する必要があります。新しいコマンドの実装と追加方法を理解するのに十分なコマンドが含まれています。

使用方法

最良の結果を得るには、ツールをrootとして実行してください。ヘルプを表示するには-h/--help、バージョン情報を表示するには-v/--versionと入力します。

メインアクションは常に指定する必要があります。これらのアクションは次のとおりです:

  • -A: システムを分析する
  • -C: キャッシュエントリを比較する
  • -E: 利用可能なコマンドを一覧表示する
  • -L: キャッシュエントリを一覧表示する
root@kitploit:~
# 分析を実行
dawgmon -A

# いくつかのコマンドのみで分析を実行
dawgmon -A -e list_suids -e list_tcpudp_ports

# 利用可能なコマンドの一覧を表示
dawgmon -E

# 比較のための利用可能なキャッシュエントリを表示
dawgmon -L

# 古いキャッシュエントリ3と新しいキャッシュエントリ5を比較
dawgmon -C 3 5

分析に役立つ追加オプション:

  • -d: デバッグ出力を表示する
  • -e: 特定のコマンドを実行する(複数回使用可能)
  • -f: rootとして実行することの警告なしに強制的に実行する
  • -g: 出力を色付けする
  • -l: 使用するデータベースキャッシュの場所
  • -m: キャッシュに許可する最大キャッシュエントリ数(キャッシュにこの数より多くのエントリがある場合、データベースを切り詰めます)
  • -t: 検出された異常ごとのタイムスタンプ情報を出力しない

詳細な使用方法については、-hを付けてツールを実行してください。

制限事項

このツールはコマンドラインツールの出力を解析し、一部でGNU core-utils固有のオプションに依存しています。このツールとコマンド実装をBSDなどの他のオペレーティングシステムに迅速に移植できない特定の理由はありませんが、現在のところ、オペレーティングシステムの検出は行われておらず、オペレーティングシステムのサポートに基づくコマンドの分類も行われていません。それを最初に実装する必要があります。

パイプ、UNIXソケット、/boot、/etcなどのファイルの発見に関しては、findに渡される-xdevの使用により、開始ディレクトリの下にマウントされたすべてのファイルシステムがトラバースされるわけではないことに注意してください。つまり、/bootは適切にスキャンされますが、/boot/efiはスキャンされない可能性があります。将来的には、よりスマートなアプローチを使用する必要があります。

現在の分析を行う際のタイムスタンプは少し混乱するかもしれません。デフォルトでは、警告、通常、またはデバッグの異常メッセージのタイムスタンプは、その生成時刻になります(commands/__init__.pyで確認できます)。異常は完全なコマンドラインスキャンが行われた後に生成されます。したがって、この検出が機能する出力は以前に生成され、その後、個々の異常のタイムスタンプはスキャンの時間より後の時間を示します。キャッシュエントリを比較する場合、検出が発生した時間を出力するためにスキャンのタイムスタンプが使用されます。これは論理的により意味があるからです。

関連情報

All rights reserved. Copyright (C) 2017-2019 by Anvil Ventures Inc. ライセンス情報についてはLICENSEを参照してください。 詳細については、Vincent Berg [email protected]までお問い合わせください。

更新されたソースコードを見つけたり、パッチを提供するには、次のURLにアクセスしてください: https://github.com/anvilventures/dawgmon/

ツールをダウンロード