Belajar dengan berlatih: Memulai Injeksi DLL dengan Windows 10×64 dan Visual Studio 2017

  • Whatsapp
Belajar dengan berlatih: Memulai Injeksi DLL dengan Windows 10x64 dan Visual Studio 2017
Belajar dengan berlatih Memulai Injeksi DLL dengan Windows x dan

[*]News.nextcloud.asia

Dalam dua posting sebelumnya, yang ini dan yang ini, pertama-tama kami membuat file kode DLL sampel kami dan kemudian file yang dapat dieksekusi. Namun, sementara itu semua baik, bagaimana kita tahu bahwa itu berhasil. Dalam posting ini kita melihat beberapa alat berbeda yang dapat membantu kita untuk memastikan itu berfungsi.

Pertama, setelah file dikompilasi dan executable diluncurkan, output berikut dicetak:
di layar:

DLLInjection-Basics.exe 7852
----\//---- DLL Injection Basics by Nik Alleyne | www.securitynik.com ----\//----
[*] My current process ID is:[15808]
[*] Enumerating all processes on the system ...
    -> [+] Successfully enumerated all processes
[*] Searching through [211] process looking for the process with PID:[7852] ...
...............................................................................................................................................................................................................
    -> [*] Process with PID:[7852] found
[*] Attempting to give myself [Debug] privileges ...
    -> [*] Successfully looked up current privileges
    -> [+] Successfully gained [SeDebugPrivilege] privileges!
[*] Attempting to attach to the remote process with PID:[7852] ...
    -> [+] Successfully attached to the remote process with PID:[7852]
    -> [+] The handle returned to the remote process is [00000000000001D8]
[*] Attempting to allocate space within the remote process with PID:[7852] ...
    -> [+] Successfully allocated space within the remote process
    -> [+] The base addressed returned for the remote process was [000002C426A40000]
[*] Attempting to write [SampleDLL.dll] into the memory of process with PID:[7852] at base address:[000002C426A40000] ...
    -> [+] Successfully wrote [260] bytes to the process with PID:[7852] memory
[*] Attempting to create a new thread in the remote process ...
    -> [+] Successfully created the new thread in the remote process
    -> [*] The handle received for the remote thread is [00000000000001DC]
    -> [*] I'm done my work. Let's now get out of here!
----------\//--- www.securitynik.com ---//\----------

Di atas menunjukkan bahwa semuanya berjalan dengan baik. Mari kita verifikasi dulu bahwa proses dengan PID 7852 sedang berjalan di sistem kita.

C:UsersSecurity Nik>tasklist /FI "PID eq 7852"

Image Name                     PID Session Name        Session#    Mem Usage
========================= ======== ================ =========== ============
notepad.exe                  7852 Console                    1     15,676 K

Dari atas akan aman untuk mengatakan PID 18296 milik notepad.exe.

Selanjutnya, di atas aplikasi mengatakan telah memperoleh hak “Debug”. Mari kita konfirmasi ini.

Jika Anda perhatikan di atas, PID berbeda dari yang saya miliki sebelumnya. Tidak perlu khawatir tentang itu, saya hanya perlu menjalankan kembali kode untuk mendapatkan informasi debug karena saya belum pernah menangkapnya sebelumnya. Namun, seperti yang dapat dilihat di atas, program telah memperoleh “SeDebugPrivilege” yang memungkinkannya untuk “Men-debug Program”.

Mari kita lihat sedikit lebih dalam Process Explorer dan lihat memori dari proses ini. Di bawah ini kita melihat “SampleDLL.dll” telah ditulis ke dalam memori proses ini.

Jika kita melihat tab modul, kita melihat modul SampleDLL.dll dimuat.

Sekarang mari kita gunakan WinDBG untuk melihat alamat basis memori “000002C426A40000” untuk melihat apa yang kita miliki di sini.

0:002> db 000002C426A40000
000002c4`26a40000  45 3a 5c 43 6f 64 65 5c-53 61 6d 70 6c 65 44 4c  E:CodeSampleDL
000002c4`26a40010  4c 2e 64 6c 6c 00 00 00-00 00 00 00 00 00 00 00  L.dll...........
000002c4`26a40020  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
000002c4`26a40030  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
000002c4`26a40040  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
000002c4`26a40050  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
000002c4`26a40060  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
000002c4`26a40070  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................

Dari atas kita melihat jalur “E:CodeSampleDLL.dll” ke DLL kita dimuat di pangkalan yang dialamatkan kembali saat kita menjalankan program.

Mari kita lihat apakah kita dapat mempelajari hal lain tentang DLL ini. Pertama-tama mari kita lihat perintah “lm” yang berisi daftar modul. Mari kita lebih spesifik dengan pencarian kita.

0:002> lm m sample*
Browse full module list
start             end                 module name
00007ffb`82fe0000 00007ffb`82feb000   SampleDLL   (deferred)             

Mari kita lihat informasi apa lagi yang bisa kita dapatkan tentang DLL ini

0:002> lmDvm SampleDLL
Browse full module list
start             end                 module name
00007ffb`82fe0000 00007ffb`82feb000   SampleDLL   (deferred)             
    Image path: E:CodeSampleDLL.dll
    Image name: SampleDLL.dll
    Browse all global symbols  functions  data
    Timestamp:        Tue Jan  1 12:18:39 2019 (5C2BA0EF)
    CheckSum:         00000000
    ImageSize:        0000B000
    Translations:     0000.04b0 0000.04e4 0409.04b0 0409.04e4
    Information from resource tables:

Jika kita melihat di bawah alamat awal yang ditentukan oleh DLL ini, kita dapat melihat ini adalah file yang dapat dieksekusi berdasarkan keajaiban “MZ” (Signature) dan kita juga melihat rintisan MS-DOS.

0:002> db 00007ffb`82fe0000
00007ffb`82fe0000  4d 5a 90 00 03 00 00 00-04 00 00 00 ff ff 00 00  MZ..............
00007ffb`82fe0010  b8 00 00 00 00 00 00 00-40 00 00 00 00 00 00 00  [email protected]
00007ffb`82fe0020  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
00007ffb`82fe0030  00 00 00 00 00 00 00 00-00 00 00 00 f8 00 00 00  ................
00007ffb`82fe0040  0e 1f ba 0e 00 b4 09 cd-21 b8 01 4c cd 21 54 68  ........!..L.!Th
00007ffb`82fe0050  69 73 20 70 72 6f 67 72-61 6d 20 63 61 6e 6e 6f  is program canno
00007ffb`82fe0060  74 20 62 65 20 72 75 6e-20 69 6e 20 44 4f 53 20  t be run in DOS 
00007ffb`82fe0070  6d 6f 64 65 2e 0d 0d 0a-24 00 00 00 00 00 00 00  mode....$.......

Jika kita melihat sedikit ke dalam memori proses, kita dapat melihat beberapa string

0:002> db 00007ffb`82fe4470 L170
00007ffb`82fe4470  67 20 53 61 6d 70 6c 65-44 4c 4c 2e 64 6c 6c 20  g SampleDLL.dll 
00007ffb`82fe4480  0a 00 00 00 00 00 00 00-50 72 6f 63 65 73 73 20  ........Process 
00007ffb`82fe4490  77 69 74 68 20 50 49 44-3d 5b 00 00 00 00 00 00  with PID=[......
00007ffb`82fe44a0  5b 2a 5d 20 50 72 6f 63-65 73 73 20 73 74 61 72  [*] Process star
00007ffb`82fe44b0  74 65 64 20 6f 6e 3a 20-00 00 00 00 00 00 00 00  ted on: ........
00007ffb`82fe44c0  2d 2d 2d 2d 2d 2d 2d 2d-2d 2d 2d 2d 2d 3d 3d 3d  -------------===
00007ffb`82fe44d0  3d 3d 3d 2d 2d 2d 2d 2d-2d 2d 2d 2d 2d 2d 2d 2d  ===-------------
00007ffb`82fe44e0  7c 7c 2d 2d 2d 2d 2d 2d-2d 2d 2d 2d 2d 2d 2d 2d  ||--------------
00007ffb`82fe44f0  3d 3d 3d 3d 3d 3d 2d 2d-2d 2d 2d 2d 2d 2d 2d 2d  ======----------
00007ffb`82fe4500  2d 2d 2d 0a 00 00 00 00-20 20 20 20 20 20 20 20  ---.....        
00007ffb`82fe4510  20 20 20 20 20 20 57 65-6c 63 6f 6d 65 20 74 6f        Welcome to
00007ffb`82fe4520  20 53 65 63 75 72 69 74-79 4e 69 6b 27 73 20 57   SecurityNik's W
00007ffb`82fe4530  6f 72 6c 64 20 0a 00 00-00 00 00 00 00 00 00 00  orld ...........
00007ffb`82fe4540  20 20 20 20 20 20 20 54-68 69 73 20 44 4c 4c 20         This DLL 
00007ffb`82fe4550  77 61 73 20 69 6e 6a 65-63 74 65 64 20 62 79 20  was injected by 
00007ffb`82fe4560  74 68 65 20 74 6f 6f 6c-20 27 44 4c 4c 49 6e 6a  the tool 'DLLInj
00007ffb`82fe4570  65 63 74 69 6f 6e 2d 42-61 73 69 63 73 2e 65 78  ection-Basics.ex
00007ffb`82fe4580  65 27 0a 20 00 00 00 00-00 00 00 00 00 00 00 00  e'. ............
00007ffb`82fe4590  20 20 20 20 20 20 20 20-20 20 20 20 20 20 20 20                  
00007ffb`82fe45a0  20 20 20 20 4e 69 6b 20-41 6c 6c 65 79 6e 65 20      Nik Alleyne 
00007ffb`82fe45b0  7c 7c 20 77 77 77 2e 73-65 63 75 72 69 74 79 6e  || www.securityn
00007ffb`82fe45c0  69 6b 2e 63 6f 6d 20 20-20 20 20 20 20 20 20 20  ik.com          
00007ffb`82fe45d0  20 20 0a 20 00 00 00 00-00 00 00 00 00 00 00 00    . ............

Sekarang mari kita lihat beberapa keluaran Process Monitor.

Dari atas kita melihat Monitor Proses menangkap aktivitas “Buat Thread” dan kemudian segera, kita melihat ada aktivitas untuk file “SampleDLL.dll”. Jika dilihat lebih dekat kita akan melihat “Load Image” untuk SampleDLL.dll dan kemudian kita melihat aktivitas untuk file kita “C:UsersSecurity NikSecurityNik.txt” sedang ditulis dan ditutup.

Last but not least, file teks kami dibuat dan memiliki konten berikut:

c:UsersSecurity Nik type c:homeSecurityNikSecurityNik.txt
Process with PID=[10512loading Sample DLL
[*] Process started execution on current local time:Tue Jan  1 11:38:36 2019
-------------======-------------||--------------======-------------
              Welcome to SecurityNik's World
       This DLL was injected by the tool 'DLLInjection-Basics.exe'
                     Nik Alleyne || www.securitynik.com
 -------------======-------------||----------------======-----------

Sekali lagi, jangan terlalu terpaku pada kenyataan bahwa PID mungkin tidak cocok secara keseluruhan, konsepnya tetap sama hanya saja saya tidak menyiapkan semua informasi pada satu waktu.

Semoga Anda menikmati bacaannya.

Referensi:
https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/lm–list-loaded-modules-

Pos terkait

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan.