攻撃ツールのまとめ。
やっほー。今回は攻撃ツールのまとめをします。
攻撃ツールといっても大体は管理用ツールだったりします。悪用すれば攻撃ツールになるっていう表裏一体のツールです。
◎ポートスキャナ
ネットワークを介して他のコンピュータのportのopen状態も調べることができる。
★ポートスキャナの種類
- TCP Scan:TCPの3way handshakeの手順に従いスキャンする。
- SYN Scan:TCPportに対する一般的なスキャンの方法。open中のportはACK+SYNフラッグを立てて応答する。close中のportは基本的にACK+RSTフラッグを立てて応答する。
- FIN Scan:TCPのFINフラッグを立てたパケットを送信。open中のportは応答せず。
- Null Scan:TCPのフラッグを立てず、全て0のパケットを送信する。open中のportは応答せず。
- Xmas Tree Scan:TCPのURG、PSH、FINフラッグを立ててパケットを送信する。open中のportは応答せず。
- UDP Scan:open中又はフィルターされたUDPportから応答はほとんどしない。close中のportはICMP error(Destination Unreachable)を返す仕様であるが、一般に応答はほとんどない。
★port scannerのツール
- nmap:ポートスキャナ向けの代表的なツール。Stack Fingerprint機能は、スキャンしたホストのOSの種類をTCP/IP protocolStackの実装から推測する。TCP ISN(Initial Sequence Number) Sampling,TCP opition Support/順序の調査,PID sampling,TCP初期window-size調査などを行い、OS fingerprint DB:nmap-OS-fingerprintと照合し一致したときはOSの種類、バージョン、ターゲットデバイスの種類などを返す。
★実行方法(nmapの場合)
- TCP SYN Scan:nmap-sS HOST/Network
多くのプラットフォームでportのopen/close/filteringを明確に区別可能。ハーフopen接続後にresetを実行する。
- TCP Connect Scan:nmap-sT Host/Network
SYN Scanと異なるのは、ハーフopen接続をresetせずにターゲットのopen中のportとコネクションを確立する。特定のシステムからの接続試行のログが短時間に多数観測された場合はConnect Scanの標的となっている可能性が高いと考えられる。
- Xmas Tree Scan:nmap-sX Host/Network
- UDP Scan:nmap-sU Host/Network
応答がないportではタイムアウトにより時間がかかり得る。
- Stack Finger Scan:nmap Host -O(OSの種類推測)/nmap Host -O -A(サービスの種類推測)
◎Protocol Analyzer
同一ネットワーク上のパケットを捕捉して解析するツール。ハードウェアのスニファ、ソフトウェアのWire Sharkなどが代表的なツールである。
◎Network Command
ping,tracert,setstatなど。
◎Metasploit
open source projectとして開発されているpenetration test用のツール。
◎Kari Linux
有名ですね。脆弱性検査やpenetration testのためのツールとしてvulnerability-check(nmap),penetration test(Metasploit Framework)などを提供する。
◎C&C serverとRAT作成ツール
C&C serverとは、botネットなどに命令を送るserverのことを言います。RAT作成ツールにはZeus Administration BotNetなどのGUIタイプの作成ツールがあり、GUIタイプゆえに容易に作成できるようになっている。
◎CaaS(Crimeware as a Service)
読んで字のごとくです。クラウドで提供される攻撃者向けの攻撃代行サービスのことです。これにより、知識のない人間であっても標的への攻撃が可能になります。
★攻撃のタイプ
過去のエントリにも攻撃の種類のまとめをしましたので、ここではこれまでに書いていないものに限定して書きます。
過去のエントリはここら辺を参照してください。
syuchinikuring.hatenablog.com
(思ったより書いていなかった…)
◎Dos攻撃
- Xmas Tree Attack
Dos攻撃の一つ。大量のXmas treeパケットを投げるというもの。Xmas treeパケットはルータなどに多くの処理を要求する。Xmas tree Scan同様、URG,PSH,FIN Flagを立てたTCPパケットで任意の上位protocolを使うことができる。ファイアウォールやIDS(Intrusion Detection System)はこのようなパケットを検出することができる。
- 権限のエスカレーションとクリープ
権限のエスカレーション(Privilege Escalation)はOSやapplicationなどのバグを足掛かりに脆弱性を突きuser accountの権限を拡大して、管理者特権を奪取するという攻撃。
権限のクリープ(Privilege Creep)はすでに不要又は持つべきではない権限を持ち続けているというもの。ex.部署移動により不要になった全部署のアクセス権限を未だに持っているなど
ここからは代表的なDos攻撃について紹介します。
- Land
送信元/宛先のIP addressとportを同じ設定にしたIPパケットを投げてダウンさせる攻撃。
- Ping of Death jolt
IPデータグラムの最大長を超えるICMPパケットを投げてシステムの破壊を狙う攻撃。joltによりIPデータグラムの最大長を超えるICMPパケットを作り出すことができる。
- SYN flood
TCPコネクション確立時の3 way handshakeを途中で止めてSYNフラッグが立ったパケットをserver側に投げつけてパケットのあふれを引き起こす攻撃。
- Winnuke
NetBIOSのTCP139番portにOOB(Out Of bounds)パケットを投げてダウンさせる攻撃。
- TearDrop/NewTear/Syndrop
最大量を超えたIPパケットを細分化して投げ、ターゲットがパケットを再度組み立てる際にバッファオーバーフローを引き起こさせてダウンさせる攻撃。
- Targa
bonk,jolt,land, nestea,newtear,syndrop,teardrop,winnukeなどを組み合わせたマルチ攻撃。
次にDDos攻撃を2つまとめます。
ICMP echo requestの発信元addressをターゲットhostのIP addressに、宛先IP addressをブロードキャストaddressにして送信する。これを受信したhostに一斉にICMP echo replyを投げる攻撃。
- fraggle
◎パスワードクラッキング
そのままです。パスワードを盗み取ります。ツールさえあれば比較的簡単にできます。
- 辞書攻撃
ツールとして、john the ripper,Cain & Abelなどがあります。Cain & AbelなんかはMicrosoftのパスワード回復ツールだったりします。要は使い方次第で毒にも薬にもなるということです。
Cain and Abel (software) - Wikipedia
辞書攻撃にはレインボーテーブルという、事前にパスワードとそのハッシュ値を一覧化したものを使います。これを使って照合することで探索時間を短縮しようとしています。Rainbow Crackは有名です。
◎通信傍受・改竄・なりすまし
これらの攻撃は、正当な通信に割り込んで、正規の応答より早く不正な応答を返し、相手側にはあたかも正当な通信が行われているかのように偽装します。中間者攻撃などはこのタイプの攻撃手法です。
- ARP Poisonig
ターゲットのコンピュータのARP requestに攻撃者から不正なARP replyを先に返す攻撃。
- Replay
盗んだ情報を使って後から同じように攻撃すること。
- session hijack
通信sessionに介入して乗っ取る。TCP/UDP session hijackなど。
- DNS Poisoning
DNS serverがDNSclientからの再帰クエリを処理する際にそのserverが管理するドメイン情報とは異なる別ドメインの情報であっても受け取ることを利用し、DNS serverがメモリ内に保持するドメイン管理情報を汚染する攻撃。
【原因】
- 設定の脆弱性
反復クエリ用の送受信portが固定設定であれば容易に偽装した応答を通すport番号を入手されます。
- プログラムの脆弱性
古いDNS serverは修正済みのものにアップデート/アップグレードすべきです。
- protocolの脆弱性
DNSのIDは16bitなので、比較的短時間で一致するペアを発見されます。
cf.カミンスキー攻撃
効率的なDNS攻撃です。攻撃手順は次の通りです。
- 攻撃者は存在しないFQDNをセットして再帰クエリをDNS serverに投げる。
- DNS server内に問い合わせに該当する情報がないのでRootDNSに問い合わせる。
- 問い合わせへの応答が返される前に攻撃者が介入して偽装応答を返し、DNS serverに偽装情報としてキャッシュされる。
【対策】
- 設定の脆弱性
再帰クエリ処理に介入されないようにDNSキャッシュserverを独立させて安全な場所に設置する。また、再帰クエリrequestは送信元からのドメイン名やネットワークaddressなどの限定されたもののみを受け付ける。また、反復クエリ送信元portはランダム化する。
- プログラムの脆弱性
update/upgradeを行う。
- protocolの脆弱性
DNSSEC(DNS Security Extensions )を用いる。つまり、chain of trustを構築する。
※chain of trust
権威serverが自身の応答にdigital signatureをし、応答を受けたserverはそのdigital signatureを検証する。権威serverのprivate keyでゾーン内の各リソースレコードのhash値を暗号化し、digital signatureを生成する。public keyのhash値をそのゾーンの親ゾーンDNS serverに送り、親ゾーンDNS serverにdigital signatureをさせて登録する。
- DNS Spoofing
DNS poisoning などでキャッシュ汚染後、DNSへの特定クエリを捕捉した時に偽装したDNS情報を返すようにする。
- Pharming
DNS Spoofing/client側のhost fileの書き換え/DNS serverのaddress書き換え/client側のscript利用などをする攻撃。
【対策】
- キャッシュ書き換え→DNS Poisoning対策
- server addressの書き換え→security patchの適用など。
- DNS amp
DNSserverを介したDDos。
【攻撃手順】
- 攻撃者がDNSserverにレコード情報を登録
- 再帰クエリをどこからでも受け付けてキャッシュするDNSserverにレコード情報を問い合わせてキャッシュさせる。
- 送信元IPaddressをターゲットのものにしてbotネットを使って、レコード情報キャッシュ済みのserverにDNSクエリを一斉に投げさせる。
→問い合わせ元がvictimのIPaddressにされているので、クエリの応答は全てvictimに返されます。こうして膨大なトラフィックを送り付けダウンさせます。
今回はここまで。疲れた…