Securing SSH Services - Go Blue Team!! (SANS)

元記事URL: https://isc.sans.edu/forums/diary/Securing+SSH+Services+Go+Blue+Team/22992/

 

SANSのフォーラムでの投稿を意訳。

 

 

世界では攻撃者、攻撃手法は進化しているけど、そういえばSSHの推奨事項に関しては目立った変化がないのっておかしくね?ということで調べてみた。

 

まずNISTにSSH関連の推奨事項ガイドラインがあるけど、出版されたのは2015年だから2年遅れなんだ。

NISTIR7966 Security of Interactive and Automated Access Management Using Secure Shell (SSH)

http://nvlpubs.nist.gov/nistpubs/ir/2015/NIST.IR.7966.pdf

 

※SSHのしくみやSSHベースのアクセスにおける脆弱性、管理面における推奨事項など、45ページにわたって記載されているので「あらためてちゃんと勉強しよう」という時にとても良い文書かもしれない。今度読んでみよう。

 

mozilla.orgでもOPENSSHに関するgreatな推奨事項文書がある。

mozilla wiki - Security/Guidelines/OpenSSH

https://wiki.mozilla.org/Security/Guidelines/OpenSSH

 

でも、多くの機器においてOpenSSH設定ファイルにアクセスできるわけじゃない。そんなときはBettercrypto.org が公開しているこの文書が役に立ちそうだ。

https://bettercrypto.org/static/applied-crypto-hardening.pdf

 

例えばCisco IOSルータでは、設定がとてもシンプルだからなのか、セキュリティの観点ではとてもばかげた「ミス」を見かけることがある。多くのガイダンスではSSHv2の強制、access-listでアクセスを制御すること、ここまでしかない。設定は例えばこんなふうになるだろう。

crypto key gen rsa gen mod 2048        ! generate the SSH key
login on-failure log                   ! log failed login attempts
login on-success log                   ! log successful login attempts
 
ip ssh version 2                       ! force SSHv2 (SSHv1.x is easily decrypted)
ip access-list standard ACL-MGT        ! Create an ACL to limit access
  permit ip x.x.x.0 255.255.255.0      ! permit access from management VLAN
  permit ip host x.x.x.y               ! or permit access from specific management hosts
deny ip any log                        ! log all other accesses  (you can log the successful ones too of course)
 
line vty 0 15                          ! note that some newer platforms have more than 15 VTY lines !!
transport input ssh                    ! restrict to SSH only (no telnet)
access-class ACL-MGT                   !  apply the ACL

しかし、上記の文書のアドバイスをふまえると、鍵に名前をつけること、鍵のサイズを大きくすること、クライアントの最小値(DH)をセットすることなどが適用できる。すると以下のようになる。

crypto key generate rsa modulus 4096 label SSH-KEYS     ! 鍵に名前を付ける。これによりローテーション時の保護の空白期間がなくなる。
ip ssh rsa keypair-name SSH-KEYS
ip ssh version 2
ip ssh dh min size 2048                      ! ダウングレード攻撃を防ぐためDH鍵交換の最小モジュラスサイズを2048bitにする
ip access-list standard ACL-MGT
 permit ip x.x.x.0 255.255.255.0             ! permit access from management VLAN
 permit ip host x.x.x.y                      ! or permit access from specific management hosts
deny ip any log                              ! log all other accesses  (you can log the successful ones too of course)
 
line vty 0 15                                ! note that some newer platforms have more than 15 VTY lines !!
transport input ssh                          ! restrict to SSH only (no telnet)
access-class ACL-MGT                         ! apply the ACL

Cisco ASAの場合はさらに制御できることがあって、鍵交換グループをセットしたりもできる。

crypto key generate rsa modulus 4096
ssh version 2
ssh key-exchange group dh-group14-sha1  ! 鍵交換グループの設定
 
ssh x.x.x.y m.m.m.m inside            ! SSHアクセスを特定のホストまたはサブネットからのみ許可する

(SSHはパブリックなインタフェースで有効にしないように。VPNを使いましょう。できれば2要素認証もね。そして内部のインタフェースで接続するべきだ。)

 

ASA上ではtelnetを「無効化する」ではなく、「許可しない」ようにすればよい。このような行が設定に含まれていないように確認しよう。

telnet x.x.x.y m.m.m.m <interface name>

 

IOS、ASAともに、鍵を使った認証もサポートしている。鍵ベースの認証に対してはブルートフォース攻撃で容易には突破できないというとても良いメリットがあるけど、逆に管理者の端末が侵害されて攻撃者が「すべてのカギは手に入れた」状態になってしまう危険性があるし、もし鍵をファームフェアのイメージにハードコードしてしまっていたらまずいよね。

 

基本的なSSH設定について書いたけど、あとはこの設定をどうチェックするかだね。(乞うご期待!)

 

ここまで。

 

Ciscoはベストプラクティス文書出してないのかなあ。NISTやMozillaがこういうのを出しているのも初めて知りました。

 

結論:そこまで興味深い内容ではなかった・・・

Silence – a new Trojan attacking financial organizations (SECURELIST、Kaspersky)

元記事URL: https://securelist.com/the-silence/83009/

 

抄訳。

 

Silenceとは

Silenceという金融機関をターゲットにした標的型攻撃が観測された

ターゲットとなっている国はほとんどがロシアの銀行だがマレーシアやアルメニアの金融機関でも感染が見つかっている

 

手口

長期間銀行のネットワーク内部に居座り続け、行員のPC上での操作を動画で記録する

業務がどのように行われているか、どのようなソフトウェアが使われているかなどを把握し、どうすれば最もお金を窃取できるかを把握する

  • まず、口座開設を装うスピアフィッシング型メールで初期感染を狙う。メール送信元は既に感染した従業員のアドレスが使用されるため不審なメールには見えない。
  • ここで使われる感染を引き起こす添付ファイルはWindowsヘルプファイル(拡張子 .chm)
  • chmファイルの中身はHTMLで、そこに含まれるJavaScriptコードによってVBSファイルのダウンロードと実行が行われ、次のステージに進む
  • VBSスクリプトはドロッパー(マルウェアをダウンロードするためのモジュール)であるWin32実行ファイルをダウンロードする
  • ドロッパーはC&Cサーバー(制御用サーバー)に対してHTTP GETリクエストで端末のIDを知らせたのち、最終感染のためのペイロードをダウンロードし、実行する
  • ペイロードはスクリーンのロード(閲覧?)やデータアップロードなど複数のモジュールからなる
  • 当該ペイロードモジュール(監視&制御モジュール)は、Windowsサービスとして登録される

監視&制御モジュール

  • サービスとして登録される時の名前は"Default monitor"
  • 初回起動後、名前付きパイプ "\\.\pipe\{73F7975A-A4A2-4AB6-9121-AECAE68AABBB}" を作成する。この名前付きパイプは複数のモジュールのプロセス間通信でデータ共有のために使用される
  • "mss.exe"という名前のバイナリファイルを生成し、Windowsのテンポラリディレクトリに保存、後にCreateProcessAsUserA関数を使って起動する。このバイナリはリアルタイムの画面上の操作記録を行う

画面操作収集モジュール

  • Windows GDIとWindows APIを使用して画面操作を記録する
  • 関数はCreateCompatibleBitmapおよびGdipCreateBitmapFromHBITMAP
  • 元はbitmapデータだが名前付きパイプにデータを書き込んでいって疑似的な動画ストリームが作られる
  • C&C通信モジュールも他のモジュールと同様Windowsサービス
  • サービス初期化後、必要なWindows API関数名を復号し、LoadLibraryでロード、GetProcAddressを使用してどのアドレスあるか特定する
  • WinAPI関数のロードが成功したら、ハードコードされたIPアドレス"185.161.209.81"にバックコネクトする
  • C&Cサーバーに対して自分のIDを送信し、C&Cからの指示を含むレスポンスを待つ
  • 指示にはロシア語で再接続、再起動、タスクなし、等が含まれる
  • 追加で新しいモジュールを受信し、sc createコマンドで登録するのも容易に行われてしまう
  • Winexesvcツール(psexecと似ている)が見つかるケースもあった

※ハードコードされた名前付きパイプやIPアドレスのほかにモジュールのMD5などのIOCも元記事にあり

 

EDR製品や資産管理系製品が入っていれば、検知、ブロック、調査は意外としっかりできるのではないでしょうか。

 

結論:SILENCE やってることは VIOLENCE

Security risk of vim swap files (seclists/oss-sec)

元スレッドURL http://seclists.org/oss-sec/2017/q4/145

※vimのdev listにも投げかけているらしい

 

まとめると

  • vimはファイルを編集開始すると同じファイル名に .swp とついたバックアップ用ファイルを作る
  • 正常終了すると削除されるが、クラッシュ時やKill時には削除されない(次に同ファイルを開こうとしたときに「前回クラッシュしなかったかい?」と出るやつ)
  • この.swpファイルについて、例えばWordpressのwp-config.phpを編集したときのファイル.wp-cnofig.php.swpができてそれが外部に公開されてしまうリスクがあるよ

という話。

 

なので、投稿者によるとvimの動きを変えて、.swpファイルは/tmpに保存すべき、パーミッションもセキュアにすべき、ファイル名も同ファイル名.swpでなくてもとファイル名がわからない名前にすべき、等といった提案をしている。しかし同スレッドではいまいち同意を得られていない様子。

 

いやそもそも/tmpじゃファイルが削除されちゃうこともあるからホームフォルダ ~/.vim 以下にすべきだとか、ドットから始まると気づかないで公開なりgitにアップロードしちゃったりすることがあるからドットつけないようにすればいいんじゃないのとか、色々な意見が出てきていて。でもWebサーバーがドットで始まるファイルを返さなければ良いっていうのが良いんじゃないかななんて思ったり。

あとは一般ユーザーでもlsは常に-aオプションがつけるようにしておく方が良いのかもね。見えすぎて困ることもそんなにないだろうし。簡単なのはaliasですね。

echo alias ls='"ls -a"' >> ~/.profile

しかし以下のようにGoogle検索してみるとけっこう出てくるので恐ろしい。自社ドメインくらいはチェックしておいたほうが良いかも。

filetype:swp inurl:wp-config

 

結論:Emacs最強

Google reCaptcha(「私はロボットではありません」のチェック)が自動解析・機械的に突破されましたという話。 (ThreatPost)


元記事: https://threatpost.com/googles-recaptcha-cracked-again/128690/

作者のサイト: http://uncaptcha.cs.umd.edu/
論文: http://uncaptcha.cs.umd.edu/papers/uncaptcha_woot17.pdf
ツール: https://github.com/ecthros/uncaptcha
プレゼンテーション資料: https://drive.google.com/file/d/0BwuogdPv-7DxMDA3N3l1X09nV1U/view
デモ動画(お薦め): https://www.youtube.com/watch?v=wXrTQzskJLE

  • アメリカにあるメリーランド大学の調査グループが自動でクラックする方法を考案
  • クラックは85%の正確性をもつ

ということは2回やれば170%1-(1-0.85)^2=97.75%の確立で成功するということになりますね。わ~い。

#2018/06/04 いただいたコメントに基づき修正しました。ありがとうございました。

 

  • ツールはunCaptchaという名前
  • 音声での確認を利用する

CAPTCHAの語源はCompletely Automated Public Turing test to tell Computers and Humans Apart の都合の良い頭文字をとってつけられたコンピューターと機械を分類するためのテストということ。GoogleがReCaptchaという名前で作り直し、無料サービスで提供。これマメな。

今回のreCaptchaを破る方法は、画像認識ではなく目の見えない人向けの音声による確認のオプションを利用する。


ツール内での手順

  • ブラウザオートメーションによりreCaptchaの音声認識オプションを選択する
    (これにより音声ファイルがダウンロードされる)
  • 複数の無料のオンライン音声スピーチサービスを使う
  • それぞれの結果から1つの文字列を作る("ensemble")
  • 1文字ずつ、ランダムな時間を空けながらフォームに入力し、Verifyボタンをクリックする(これもブラウザオートメーション)
 
 
ブラウザオートメーションという部分はselenium、音声ファイルの扱いはffmpeg、周波数解析はsoxモジュールなんかを使用しているようだ。音声認識(スピーチ?)サービスはGoogleやBing、IBMなど色々駆使している模様。コードを見るとかなり汚くて生々しくてニヤニヤしてしまう。やってる時、楽しかっただろうなぁ。。。
 

技術的にはそれほど難解なことをしているわけではない(面倒ではあるとは思う)。これより前にも破られたこともあったが同様に音声を利用したものだったらしい。
Blackhat 2016 "I'm not a human: Breaking the Google reCAPTCHA"
https://www.blackhat.com/docs/asia-16/materials/asia-16-Sivakorn-Im-Not-a-Human-Breaking-the-Google-reCAPTCHA-wp.pdf

 

そいうえばパズル認証とかあったなーと思い探してみたら余裕で突破されているというね。いまどうしてるんだろう・・・。
 

CAPYパズルキャプチャ

https://www.capy.me/jp/products/puzzle_captcha/

Vpassのパズル認証を突破する

http://ydkk.hateblo.jp/entry/2017/08/12/044838

IVSで優勝したというパズル型CAPTCHA Capyを突破してみた

http://ydkk.hateblo.jp/entry/2017/08/12/044838

並列処理でクソ早い(らしい)SQL Injection脆弱性スキャナー (KitPloit)

 

元URL: http://www.kitploit.com/2017/10/sqliv-massive-sql-injection.html

 

Bing、Google、Yahooでドメインサーチしてスキャンしたり、特定ドメインwクロールしてスキャンしたり、リバースドメインスキャンしたりできる。リバースドメインスキャン?逆引きした結果のドメインに対してスキャンするみたい。

まあコアバリューはSQL Injectionスキャン部分ということで。scanner.pyのこの部分を見ると。

    website = domain + "?" + ("&".join([param + "'" for param in queries]))
    result = html.getHTML(website)
    if result and sqlerrors.check(result):

シングルクオートをパラメータ全てに入れて、レスポンスデータに含まれるエラーメッセージが(あれば)どんなメッセージが入っているか、それによってDBの種類を識別しているだけですね。エラー誘発だけなので非破壊的だけどこれじゃちょっと網羅的なチェックは難しいし雑すぎるよねということで。このエントリー公開するほどでもないけどどうもこれは使えないツールっぽいですっていう情報のみってことで。

 

ちなみにUser-Agentだけは正規のUser-Agent文字列がランダムに使われるという仕様なので検知だけはし難いかもしれない面倒なやつ。 useragents.py)

def get():
    """return ramdomly chosen useragent"""

    return random.choice(useragents)


useragents = [
    {
        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36'
    },
    {
        'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.1 Safari/537.36'
    },
    {
        'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.0 Safari/537.36'
    },
    {
        'User-Agent': 'Mozilla/5.0 (Windows NT 6.4; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2225.0 Safari/537.36'
    },
    {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.246'
    },
    {
        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.1'
    },
    {
        'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; rv:36.0) Gecko/20100101 Firefox/36.0'
    },
    {
        'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10; rv:33.0) Gecko/20100101 Firefox/33.0'
    },
    {
        'User-Agent': 'Mozilla/5.0 (X11; Linux i586; rv:31.0) Gecko/20100101 Firefox/31.0'
    },
    {
        'User-Agent': 'Mozilla/5.0 (X11; OpenBSD amd64; rv:28.0) Gecko/20100101 Firefox/28.0'
    },
    {
        'User-Agent': 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/533.1 (KHTML, like Gecko) Maxthon/3.0.8.2 Safari/533.1'
    },
    {
        'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/7046A194A'
    },
    {
        'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/537.13+ (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2'
    }
]

それにしても書き方が古いし汚い。

 

結論:いいか、これは悪い例だ。

Reaper Madness (Arbor networks)

原文URL https://www.arbornetworks.com/blog/asert/reaper-madness/

 

抄訳。

 

checkpointのリサーチャーによると、Reaper BotnetというIoT Botnetが広まっているらしい。
https://research.checkpoint.com/new-iot-botnet-storm-coming/


ASERT(Arborのセキュリティチーム)によると

  • 10000~20000のbotが既に存在する(数は常に変動している)
  • さらに追加で200万(!)のホストがbotnetスキャナーで識別されているがまだ合計に入っていない


なぜ数に入っていないのかスキャンツール側の誤認識なのかReaperのインフラの問題なのか、はたまたボットネット管理者が意図的にプロパゲーションメカニズムを抑制している(=わざと隠している)のかは、今のところ明確にはわからない。(合計に入っている、いないは、どうやって確認してるんだろう?)

中国国内のDDoSレンタル市場でのbooter/stresserサービスとして使われることが想定されているようである
中国のアンダーグラウンド犯罪組織の商品のようでありコードはMiraiをベースにしているがMiraiのクローンというわけではない
ReaperはSYN flood、ACK flood、http flood、DNSリフレクション/AMP攻撃ができるが、他の機能も持っているかもしれない

中国のインターネットセキュリティ企業QihooがReapderについての分析レポートを出している
http://blog.netlab.360.com/iot_reaper-a-rappid-spreading-new-iot-botnet-en/
http://blog.netlab.360.com/iot_reaper-a-few-updates-en/

一言:

本当にスキャナーで識別されている200万のBotが活動し、ターゲットが中国国内ではなく世界に向けられたとき(ビジネス市場が中国国内であるだけで既に中国国外に向けられているということなのか?)、本当に「Take down the internet」がわりとマジなのでしょう。

 

結論:会いたくて震える。

Windows Security blogでExploit Guardについての記事が出ていたので抄訳しました。すぐ日本語にも翻訳されるとは思いますが。翻訳内容は一切保障しません。


元記事: Windows Defender Exploit Guard: Reduce the attack surface against next-generation malware

概要

  • Windows Defender Exploit GuardはWindows 10 Fall Creators Updateで追加された一連の侵入防御機能
  • 様々な攻撃に対抗するためのデバイスのロックダウン方法、マルウェアの振る舞いのブロック機能を提供す る- バックエンドではMicrosoft Intelligent Security Graphを利用して最新の脅威に対応する
  • 4つのコンポーネントがある
    • Attack Surface Reduction (ASR) : Officeベース、スクリプトベース、メールベースの脅威からの保護
    • Network protection : Webベースの脅威からの保護。デバイスから信頼できないホスト、IPアドレスへのアウトバウンドプロセスをブロックする(=SmartScreen)
    • Controlled folder access : 信頼できないプロセスが保護されたフォルダにアクセスすることをブロックし、ランサムウェアから機密データを守る
    • Exploit protection : EMETだった部分。

4つのコンポーネントの機能概要

  • Attack Surface Reductionの仕組み

    • 不正な文書ファイルの裏で実行あsれる振る舞いをブロックする
    • 振る舞いによるブロックなのでゼロデイに対しても効果がある
    • Office、script、email、それぞれ動作が異なる
      • Office
        • Officeアプリケーションが実行可能コンテンツを作成すること、子プロセスを起動すること、他プロセスへインジェクションすることをブロック
        • Office内のマクロコードからのWin32インポートをブロック
        • 難読化されたマクロコードをブロック
      • script
        • 不正な、難読化されたJavaScript、VBSript、PowerShellをブロック
        • JavaScript、VBScriptがインターネットからダウンロードしたペイロードを実行することをブロック
      • email
        • メールでダウンロードした実行可能コンテンツの実行をブロック(Webメール、メールクライアントともに)
  • Network protectionの仕組み

    • アウトバウンド通信をブロックする
    • Intelligent Security Graphで得られた各種Web脅威を保護する
    • MS Edge上でSmartScreenによって保護される
    • (Edge以外のブラウザは対象ではない)
    • カーネルに組み込まれた新しいネットワークフィルタリングドライバーにより、ISGのホスト名、IPアドレスベースのレピュテーション情報をベースにアウトバウンドネットワークトラフィックを評価・ブロックする
    • 脅威情報はクラウド検索とキャッシュが使われるのでパフォーマンス面も考慮されている
    • ブラウザであろうと、バックグラウンドプロセスであろうと、アウトバウンド通信をインターセプトし、遮断することが可能 (←こちらはSmartScreenとは別?)

    • 若干読み取れなかったが、(1)SmartScreenの仕組みによる保護、(2)カーネルに組み込まれたネットワークフィルタによる保護、の2つで構成されているということ?

  • Controlled folder accessの仕組み

    • 重要なフォルダは承認されたアプリケーションにしかアクセスできないようロックダウンする仕組み
    • これによりランサムウェアによるファイルの暗号化を防ぐ
    • 承認されていないアプリケーション、DLL、スクリプト等は、管理者権限であろうとアクセスが拒否される
    • 既定ではdocuments、desktop、picturesなど一般的な個人用フォルダが保護対象となるが柔軟に設定できる

    • 技術的にはどう実現しているのだろう?Application Controlと同じか?

  • Exploit Protectionの仕組み

    • EMETだったもの。Windows Defender Exploit Guard。
    • EMETと設定のフォーマットが異なるがEMETのXML設定ファイルをWindows10 Exploit Guardむけに変換するPowerShellモジュールがある

その他

  • Exploit Guardの管理方法

    • Exploit Guardはグループポリシー、SCCM、IntuneなどのMDM、で管理できる
    • すべてのモジュールは監査モードとブロックモードを備えている
    • リアルタイムイベントログはWindows Defender ATPコンソールで確認できる
  • Windows Defender ATPとの連携

    • Exploit Guardのイベントについて、プロセスツリー全体を確認できる(ATPのイベントソースの1つになるというイメージか?)
    • Windows Defender ATPのSecurity Analyticsダッシュボードで展開状況等も確認できる

Officeファイル系マルウェア対策、ランサムウェア対策、色々なサードパーティーマルウェア対策製品が「いらなくね?」状態になりそうである。是非Windows Defender ATPと合わせて使いたい機能ですね。

VolatilityでYaraルールを使う

Using Yara rules with Volatility (SANSの記事 元URL: https://isc.sans.edu/diary/rss/22950 )

 

Yaraはこちら。Virustotalの中で使われてる感じなんでしょうね。

http://virustotal.github.io/yara/

 

Volatilityはこちら。けっこうデカい。Windows10に対応している最新の2.6を使うと良いのでしょう。

http://www.volatilityfoundation.org/

 

ここから抄訳。

 

Yaraは、マルウェアリサーチャーがマルウェアサンプルを識別したり分類したりする時に使うツール。セキュリティリサーチャーにとってのパターンマッチングのスイスアーミーナイフであるといわれる。

 

Volatilityはメモリダンプを読み取り、プロセス、ネットワーク、設定等の調査を行うことができるツール。

 

なんとVolatilityにYaraルールを適用するためのプラグインがあるというのだ。こんなふうに使う。

 

vol.py -f memory.img yarascan --yara-file=stuxnet.yar

 

※stuxnet.yar にシグネチャが書いてある。

 

するとルール名、プロセス名、プロセスIDと当該メモリダンプが出力される(見つかれば)。

 

Rule: StuxNet_Malware_1
Owner: Process services.exe Pid 668
0x01439071  8b 45 08 35 dd 79 19 ae 33 c9 8b 55 08 89 02 89   .E.5.y..3..U....
0x01439081  4a 04 8b 45 08 c7 40 0c 58 bd 43 01 33 c0 5e c9   J..E..@.X.C.3.^.
0x01439091  c3 55 8b ec 83 ec 2c 83 65 e8 00 83 65 f4 00 83   .U....,.e...e...
0x014390a1  65 e4 00 8b 45 20 8b 4d 14 8d 84 01 98 00 00 00   e...E..M........
0x014390b1  89 45 f0 8d 45 f4 50 8d 45 e8 50 8d 45 d8 50 ff   .E..E.P.E.P.E.P.
0x014390c1  75 f0 ff 75 08 e8 14 fe ff ff 83 c4 14 89 45 fc   u..u..........E.
0x014390d1  83 7d fc 00 74 08 8b 45 fc e9 fd 00 00 00 8b 45   .}..t..E.......E
0x014390e1  e8 89 45 f8 8b 45 e8 05 98 00 00 00 89 45 e8 c7   ..E..E.......E..
0x014390f1  45 e4 98 00 00 00 ff 75 20 ff 75 1c 8b 45 f8 05   E......u..u..E..
0x01439101  84 00 00 00 50 8d 45 e4 50 ff 75 f4 8d 45 e8 50   ....P.E.P.u..E.P
0x01439111  e8 79 fe ff ff 83 c4 18 8b 45 e8 89 45 dc ff 75   .y.......E..E..u
0x01439121  14 ff 75 10 8b 45 f8 05 8c 00 00 00 50 8d 45 e4   ..u..E......P.E.
0x01439131  50 ff 75 f4 8d 45 e8 50 e8 51 fe ff ff 83 c4 18   P.u..E.P.Q......
0x01439141  8b 45 dc 89 45 ec 81 7d 14 00 10 00 00 72 47 8b   .E..E..}.....rG.
0x01439151  45 ec 0f b7 00 3d 4d 5a 00 00 75 3a 8b 45 ec 8b   E....=MZ..u:.E..
0x01439161  40 3c 05 f8 00 00 00 3b 45 14 73 2a 8b 45 ec 8b   @<.....;E.s*.E..

 

 

 

簡単なルール、たとえばhttps:で始まる文字列を探したい、というような時にはこんな風にも書ける

 

vol.py -f memory.img yarascan -Y "https:"

同様に以下のように出力される(みつかれば)。

 

Rule: r1
Owner: Process csrss.exe Pid 636
0x008105df  68 74 74 70 73 3a 2f 2f 77 77 77 2e 76 65 72 69   https://www.veri
0x008105ef  73 69 67 6e 2e 63 6f 6d 2f 72 70 61 20 28 63 29   sign.com/rpa.(c)
0x008105ff  30 31 31 27 30 25 06 03 55 04 03 13 1e 56 65 72   011'0%..U....Ver
0x0081060f  69 53 69 67 6e 20 54 69 6d 65 20 53 74 61 6d 70   iSign.Time.Stamp
0x0081061f  69 6e 67 20 53 65 72 76 69 63 65 30 82 01 22 30   ing.Service0.."0
0x0081062f  0d 06 09 2a 86 48 86 f7 0d 01 01 01 05 00 03 82   ...*.H..........
0x0081063f  01 0f 00 30 82 01 0a 02 82 01 01 00 c0 7a 61 87   ...0.........za.
0x0081064f  eb b2 a7 03 63 1b 2b 1a 61 de 80 b7 15 1d a0 8b   ....c.+.a.......
0x0081065f  90 3d bb 27 92 84 14 39 eb 85 ce 29 92 06 66 48   .=.'...9...)..fH
0x0081066f  a4 03 4f 8d e8 4f a7 f0 af 5e d1 2f 19 c7 91 f1   ..O..O...^./....
0x0081067f  b5 9e 7b 91 21 ce e9 ff e3 4e f0 fc af 95 58 b8   ..{.!....N....X.
0x0081068f  63 2d e6 8e f6 29 18 cd 70 8e 50 c3 ed 96 bb 40   c-...)..p.P....@
0x0081069f  db be 25 e8 42 55 d6 f6 85 f2 06 e7 8b 99 1c 31   ..%.BU.........1
0x008106af  f3 03 0f d4 4c 9c 24 2a dc 1b 1b 8f 82 f3 b0 ef   ....L.$*........
0x008106bf  a7 4d e3 14 a7 e0 8f d6 c7 68 c2 61 58 a9 72 d4   .M.......h.aX.r.
0x008106cf  f8 30 48 4f d9 2f 6f 63 20 d9 89 ca 82 7b c2 4b   .0HO./oc.....{.K

プロセスIDを指定して探したい時はこんな風に-pオプションをつけて書く。

 

vol.py -f memory.img yarascan -p 796 -Y "http:"

同様に以下のように出力される。

 

Rule: r1
Owner: Process iexplore.exe Pid 796
0x001ac058  68 74 74 70 3a 2f 2f 32 31 38 2e 38 35 2e 31 33   http://218.85.13
0x001ac068  33 2e 32 33 3a 38 39 2f 69 6e 64 65 78 2e 61 73   3.23:89/index.as
0x001ac078  70 3f 35 30 33 30 30 30 30 31 30 30 30 30 00 00   p?503000010000..
0x001ac088  0b 00 07 00 16 01 0e 00 50 2b 1a 00 63 00 75 00   ........P+..c.u.
0x001ac098  72 00 69 00 74 00 79 00 3d 00 49 00 6d 00 70 00   r.i.t.y.=.I.m.p.
0x001ac0a8  65 00 72 00 73 00 6f 00 6e 00 61 00 74 00 69 00   e.r.s.o.n.a.t.i.
0x001ac0b8  6f 00 6e 00 20 00 44 00 79 00 6e 00 61 00 6d 00   o.n...D.y.n.a.m.
0x001ac0c8  69 00 63 00 20 00 46 00 61 00 6c 00 73 00 65 00   i.c...F.a.l.s.e.
0x001ac0d8  00 00 00 00 00 00 00 00 05 00 0b 00 1b 01 08 00   ................
0x001ac0e8  00 00 00 00 30 ca 1a 00 40 c9 1a 00 10 c0 1a 00   ....0...@.......
0x001ac0f8  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0x001ac108  05 00 05 00 26 01 08 00 00 00 00 00 f8 cd 1a 00   ....&...........
0x001ac118  18 fb 1a 00 40 c1 1a 00 00 00 00 00 00 00 00 00   ....@...........
0x001ac128  00 00 00 00 00 00 00 00 05 00 05 00 21 01 08 00   ............!...
0x001ac138  00 00 00 00 84 ce 1a 00 18 c1 1a 00 38 c0 1a 00   ............8...
0x001ac148  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ...............

例えば、このフォルダに置いたらファイル書き込みを検知して規定のルールを一通りかけてレポート出力する、など。すると調査内容を標準化できて人に依存しないようにすることができる。GUIだとそのあたりがなかなか難しいので。

Struts2の

 

脆弱性

 

怖いよね

 

 

スキャン

 

したいとき

 

 

あるよね。

 

 

これ

 

https://github.com/Lucifer1993/struts-scan

 

快速检测struts命令执行漏洞,可批量。

 

 

インタラクティブシェルまで

 

とれちゃうのか。

 

 

・・・

 

 

 

Pen-testでも

 

使える。

 

 

今度

 

実際に

 

 

 

試してみよう。