Saya memutuskan untuk diri sendiri dan bagi mereka yang akan merasa berguna, untuk mengumpulkan semua yang saya tahu, tetapi saya tidak ingat tentang topiknya, dalam artikel ini. Bagikan kiat. Sumber utama artikel
ini adalah
ini .
Saya dengan bebas menerjemahkan dan menambahkan sedikit dari diri saya, apa yang saya kumpulkan dan pelajari dari sumber lain.
Secara umum, berikut adalah cara untuk membantu kami mencapai tujuan peningkatan hak istimewa kami.
Titik awal untuk artikel singkat ini adalah shell (akun) yang tidak terjangkau. Mungkin kita menggunakan exploit atau melakukan serangan dan mendapatkan shell ini.
Pada dasarnya, pada saat awal, kami tidak memahami mesin: apa fungsinya, terhubung ke apa, tingkat keistimewaan apa yang kami miliki, atau bahkan sistem operasi apa itu.
Pertama, kita perlu mendapatkan informasi yang kita butuhkan untuk memahami di mana kita berada dan apa yang kita miliki:
systeminfo | findstr /B /C:" " /C:" "
Perintah ini memungkinkan Anda untuk menentukan, seperti yang Anda lihat, nama dan versi OS. Anda dapat menjalankannya tanpa parameter, maka output dari perintah akan lebih lengkap, tetapi ini sudah cukup bagi kami.
Selanjutnya, penting untuk mengetahui nama mesin dan nama pengguna di mana kita terhubung.
- hostname adalah nama pengguna.
- gema% nama pengguna% - nama pengguna.
Selanjutnya, mari kita lihat apa yang masih ada pada host ini dan dapatkan informasi lebih detail tentang pengguna mereka.
- pengguna net - pengguna lain
- net user user1 - informasi terperinci tentang pengguna, di mana user1 adalah nama pengguna Anda.
Setelah menerima informasi tentang akun, kami akan melihat informasi tentang interaksi jaringan host ini.
Pertama, lihatlah interface yang tersedia dan tabel routing.
- ipconfig / all - informasi tentang antarmuka yang tersedia.
- cetak rute - tabel routing
- arp -A - tabel entri arp
Selanjutnya, kita akan melihat koneksi jaringan aktif dan aturan firewall.
- netstat -ano - koneksi jaringan aktif.
-a - meluncurkan dengan parameter ini menampilkan semua koneksi TCP aktif, serta port TCP dan UDP yang didengarkan oleh sistem;
-n - parameter ini memungkinkan Anda untuk menunjukkan koneksi TCP aktif dengan alamat dan nomor port;
-o - sama seperti kunci sebelumnya, menampilkan koneksi TCP aktif, tetapi kode proses ditambahkan ke statistik, sudah mungkin untuk menentukan aplikasi mana yang menggunakan koneksi.
- netsh firewall show state - status firewall
- netsh firewall show config - konfigurasi firewall
Akhirnya, kami secara singkat memeriksa apa yang berfungsi pada host yang dikompromikan: tugas yang dijadwalkan, proses yang berjalan, layanan yang berjalan, dan driver yang diinstal.
schtasks /query /fo LIST /v
dimana
/ query - Menampilkan data tentang semua tugas yang dijadwalkan,
/ fo LIST - Daftar keluaran.
/ v - Detail pekerjaan cetak.
Perintah berikut ini mengaitkan proses yang berjalan dengan layanan yang berjalan.
tasklist /SVC
dimana
/ SVC - Layanan pemetaan untuk setiap proses.
Lihat juga daftar menjalankan layanan Windows.
net start
Juga berguna untuk melihat informasi tentang driver dari sistem yang dikompromikan.
DRIVERQUERY
Selanjutnya, saya ingin menyebutkan tentang mungkin perintah Windows yang paling berguna - wmic. Perintah WMIC (Windows Management Instrumentation Command) digunakan untuk memperoleh informasi tentang perangkat keras dan sistem, mengelola proses dan komponennya, dan mengubah pengaturan menggunakan kemampuan Instrumentasi Manajemen Windows (Instrumentasi Manajemen Windows atau WMI).
Deskripsi yang bagus .
Sayangnya, beberapa konfigurasi Windows tidak mengizinkan akses ke WMIC secara default jika pengguna bukan anggota grup Administrator (yang merupakan ide yang sangat bagus). Versi XP apa pun tidak mengizinkan akses ke WMIC dari akun yang tidak memiliki hak.
Sebaliknya, Windows 7 Professional dan Windows 8 Enterprise memungkinkan pengguna dengan hak istimewa rendah untuk menggunakan WMIC secara default.
Seperti biasa - parameter program:
wmic /?
Sebuah skrip yang bagus untuk mengumpulkan informasi melalui wmic.Sebelum melanjutkan, ada baiknya menjalankan informasi yang dikumpulkan. Penting juga untuk memperhatikan tambalan yang dipasang dalam sistem, karena setiap informasi tentang lubang dalam sistem akan memberi kami dukungan tambahan untuk meningkatkan hak istimewa kami. HotFix dapat mencari kerentanan eskalasi hak istimewa.
Selanjutnya, kami akan mempertimbangkan instalasi tanpa pengawasan. Jika ada kebutuhan untuk menginstal dan mengkonfigurasi armada mesin yang besar, maka sebagai aturan, tenaga teknis tidak akan berpindah dari mesin ke mesin untuk mengonfigurasikan masing-masing pribadi. Ada beberapa solusi untuk instalasi tanpa pengawasan. Tidak begitu penting bagi kami apa metode ini dan bagaimana cara kerjanya, tetapi yang penting adalah mereka meninggalkan file konfigurasi yang digunakan untuk proses instalasi yang berisi banyak informasi rahasia, seperti kunci produk sistem operasi dan kata sandi administrator. Yang paling menarik bagi kami adalah kata sandi administrator, yang dapat kami gunakan untuk meningkatkan hak istimewa kami.
Sebagai aturan, ini adalah direktori berikut:
- c: \ sysprep.inf
- c: \ sysprep \ sysprep.xml
- % WINDIR% \ Panther \ Unattend \ Unattended.xml
- % WINDIR% \ Panther \ Unattended.xml
Tetapi perlu memeriksa keseluruhan sistem.
File-file ini berisi kata sandi dalam teks yang jelas atau BASE64 disandikan.
Contoh:
Sysprep.inf - kata sandi dalam teks yang jelas.

"
Sysprep.xml - password disandikan base64.

"
Unattended.xml - kata sandi yang disandikan base64.

Juga, untuk host yang terhubung ke domain, Anda dapat mencari file Group.xml, yang berisi kata sandi terenkripsi AES256, tetapi yang dapat didekripsi, karena kuncinya diposting di msdn (https://msdn.microsoft.com/en-us/library/cc422924.aspx) dan sumber lainnya. Tapi ini masalahnya jika kebijakan membuat pengguna lokal di host atau, misalnya, menetapkan kata sandi untuk Administrator lokal digunakan.
Sebagai contoh, saya miliki di sini:

Setelah membukanya, kami mencari parameter "sandi sandi".

Selanjutnya, Anda perlu mendekripsi urutan ini. Kami menggunakan, misalnya,
CrypTool . Pertama, dekode Base64.
Fitur Base64 adalah bahwa panjangnya haruslah kelipatan 4. Karena itu, kami mempertimbangkan blok 4, dan jika tidak ada cukup karakter di blok terakhir, kami menambahkan karakter yang hilang dengan "=".
Saya mendapat 2 "=".

Selanjutnya kita mendekripsi. Menggunakan tombol di atas.

Kami menghapus poin ekstra yang memisahkan karakter dan mendapatkan kata sandi.
Selain Group.xml, berikut adalah beberapa file preferensi kebijakan lain yang mungkin memiliki set atribut cPassword tambahan:
- Services \ Services.xml
- ScheduledTasks \ ScheduledTasks.xml
- Printers \ Printers.xml
- Drives \ Drives.xml
- DataSources \ DataSources.xml
Namun, kami semua menyukai solusi otomatis, sehingga kami dapat mencapai garis finish secepat mungkin. Ada dua opsi utama di sini, tergantung pada jenis shell / akses yang kita miliki. Ada modul metasploit yang dapat dieksekusi melalui sesi yang ditetapkan (https://www.rapid7.com/db/modules/post/windows/gather/credentials/gpp) atau Anda dapat menggunakan Get-GPPPassword, yang merupakan bagian dari
PowerSploit .
Oke selanjutnya. Kami akan mencari parameter registri aneh "AlwaysInstallElevated". Opsi ini memungkinkan pengguna yang tidak memiliki hak istimewa untuk menginstal file .msi dari NT AUTHORITY \ SYSTEM.
Agar dapat menggunakan ini, kita harus memverifikasi bahwa kedua kunci registri diinstal, dan jika demikian, kita bisa mendapatkan shell SYSTEM. Periksa:
reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer\AlwaysInstallElevated
reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer\AlwaysInstallElevated
Metasploit menyertakan exploit modul khusus / windows / local / always_install_elevated, yang membuat file MSI dengan file executable khusus yang dibangun di dalamnya, yang diekstraksi dan dieksekusi oleh installer dengan hak istimewa sistem. Setelah eksekusi, file msi menghentikan instalasi untuk mencegah pendaftaran tindakan dalam sistem. Selain itu, jika Anda memulai instalasi dengan tombol / quiet, maka Anda bahkan tidak akan mendapatkan kesalahan.
Nah, beberapa perintah pencarian yang berguna pada sistem:
Perintah di bawah ini akan mencari sistem file untuk nama file yang mengandung kata kunci tertentu. Anda dapat menentukan jumlah kata kunci apa saja.
dir /s *pass* == *cred* == *vnc* == *.config*
Mencari jenis file tertentu dengan kata kunci, perintah ini dapat menghasilkan banyak output.
findstr /si password *.xml *.ini *.txt
Demikian pula, dua perintah di bawah ini dapat digunakan untuk menangkap registri untuk kata kunci, dalam hal ini, "kata sandi".
reg query HKLM /f password /t REG_SZ /s
reg query HKCU /f password /t REG_SZ /s
Saat ini, kami sudah memiliki cukup untuk menjalankan sistem. Tetapi ada beberapa serangan yang lebih bertarget untuk mendapatkan hasil yang diinginkan: kita akan melihat layanan Windows dan izin untuk file dan folder. Tujuan kami di sini adalah menggunakan izin yang lemah untuk meningkatkan hak istimewa sesi.
Kami akan memeriksa banyak hak akses, accesschk.exe, yang merupakan alat dari Microsoft Sysinternals Suite, akan membantu kami dalam hal ini. Microsoft Sysinternals berisi banyak alat hebat. Paket ini dapat diunduh dari situs web Microsoft technet (https://docs.microsoft.com/ru-ru/sysinternals/downloads/sysinternals-suite).
Kami dapat memeriksa tingkat hak istimewa yang diperlukan untuk setiap layanan menggunakan accesschk.
Kita dapat melihat izin yang dimiliki setiap level pengguna.

Accesschk dapat secara otomatis memeriksa apakah kita memiliki akses tulis ke layanan Windows dengan tingkat pengguna tertentu. Sebagai aturan, sebagai pengguna dengan hak istimewa rendah, kami ingin memeriksa "Pengguna". Pastikan untuk memeriksa grup pengguna yang Anda ikuti.
-c Namanya adalah layanan Windows, misalnya ssdpsrv (sebutkan "*" untuk menampilkan semua layanan)
-d Hanya memproses direktori
-e Hanya menampilkan tingkat integritas yang ditentukan secara eksplisit (hanya Windows Vista)
-k Namanya adalah kunci registri, misalnya, hklm \ software
-n Tampilkan hanya objek yang tidak memiliki aturan akses
-p Nama atau pengidentifikasi proses (PID) ditentukan sebagai nama, misalnya cmd.exe (sebutkan "*" sebagai nama untuk menampilkan semua proses)
-q Abaikan header
-r Cetak hanya objek yang memiliki akses baca
-S Pemrosesan rekursif
-v Cetak informasi terperinci
-w Mendaftar hanya objek yang memiliki akses tulis

Ada juga perintah menarik lainnya:
autorunsc.exe -a | findstr /n /R "File\ not\ found"
Memungkinkan Anda menemukan entri registri tentang file yang diluncurkan secara otomatis, tetapi sudah hilang dari sistem. Catatan dapat tetap ada jika, misalnya, layanan dihapus dengan tidak benar. Pada setiap awal, sistem gagal mencoba menjalankan file ini. Anda juga dapat memanfaatkan situasi ini untuk memperluas wewenang Anda. Cukup gantikan file ini dengan kami.
Berikutnya, kami mempertimbangkan dua kerentanan:
Pertama: meniru hasil pos yang ditulis oleh Parvez dari GreyHatHacker; “Meninggikan hak istimewa dengan mengeksploitasi izin folder lemah” (http://www.greyhathacker.net/?p=738).
Contoh ini adalah kasus khusus pembajakan dll. Program biasanya tidak dapat berfungsi sendiri, mereka memiliki banyak sumber daya yang mereka butuhkan untuk terhubung (terutama dll, tetapi juga file mereka sendiri). Jika suatu program atau layanan mengunduh file dari direktori tempat kami memiliki akses tulis, kami dapat menyalahgunakannya untuk meluncurkan shell dengan hak istimewa di mana program berjalan.
Biasanya, aplikasi Windows akan menggunakan jalur pencarian yang telah ditentukan untuk menemukan dll, dan itu akan memeriksa jalur ini dalam urutan tertentu. Pembajakan Dll biasanya terjadi dengan menempatkan dll berbahaya di salah satu jalur ini. Masalah ini dapat diperbaiki dengan menunjukkan jalur absolut aplikasi ke dll yang diperlukan.
Urutan pencarian Dll:
- Direktori tempat aplikasi berjalan
- Direktori Sistem 32-bit (C: \ Windows \ System32)
- Direktori Sistem 16-bit (C: \ Windows \ System)
- Direktori Windows (C: \ Windows)
- Direktori kerja saat ini (CWD)
- Direktori dalam variabel lingkungan PATH (sistem lalu pengguna)
Terkadang aplikasi mencoba mengunduh file dll yang hilang pada mesin. Ini dapat terjadi karena beberapa alasan, misalnya, jika perpustakaan dll hanya diperlukan untuk plug-in atau komponen tertentu yang tidak diinstal. Dalam kasus ini, Parvez menemukan bahwa beberapa layanan Windows mencoba memuat pustaka dll yang tidak ada dalam pengaturan default.
Karena dll tidak ada, kami akhirnya melalui semua jalur pencarian. Sebagai pengguna dengan tingkat privilege rendah, kami memiliki sedikit peluang untuk menempatkan dll berbahaya dalam item 1-4, 5. Tetapi jika kami memiliki akses tulis ke direktori mana pun, maka peluang kami untuk menang sangat besar.
Mari kita lihat bagaimana cara kerjanya, sebagai contoh kita akan menggunakan layanan IKEEXT (IPSec IKE dan modul kunci AuthIP) yang mencoba mengunduh wlbsctrl.dll.
Direktori apa pun di "C: \" akan menyediakan akses tulis untuk pengguna yang diautentikasi, ini memberi kami peluang.
C:\Users\user1\Desktop> accesschk.exe -dqv "C:\Python27"
C:\Python27 Medium Mandatory Level (Default) [No-Write-Up] RW BUILTIN\Administrators FILE_ALL_ACCESS RW NT AUTHORITY\SYSTEM FILE_ALL_ACCESS R BUILTIN\Users FILE_LIST_DIRECTORY FILE_READ_ATTRIBUTES FILE_READ_EA FILE_TRAVERSE SYNCHRONIZE READ_CONTROL RW NT AUTHORITY\Authenticated Users FILE_ADD_FILE FILE_ADD_SUBDIRECTORY FILE_LIST_DIRECTORY FILE_READ_ATTRIBUTES FILE_READ_EA FILE_TRAVERSE FILE_WRITE_ATTRIBUTES FILE_WRITE_EA DELETE SYNCHRONIZE READ_CONTROL
C:\Users\user1\Desktop> icacls "C:\Python27"
C:\Python27 BUILTIN\Administrators:(ID)F BUILTIN\Administrators:(OI)(CI)(IO)(ID)F NT AUTHORITY\SYSTEM:(ID)F NT AUTHORITY\SYSTEM:(OI)(CI)(IO)(ID)F BUILTIN\Users:(OI)(CI)(ID)R NT AUTHORITY\Authenticated Users:(ID)C NT AUTHORITY\Authenticated Users:(OI)(CI)(IO)(ID)C
F - akses penuh.
(OI) - pewarisan benda.
(CI) - warisan dengan wadah.
(IO) - hanya warisan.
(NP) - larangan distribusi warisan.
(I) - mewarisi izin dari wadah induk.
Sebelum melanjutkan tindakan, Anda harus memeriksa status layanan IKEEXT. Dalam hal ini, kita dapat melihat bahwa ini disetel ke "AUTO_START"!
sc qc IKEEXT
[SC] QueryServiceConfig SUCCESS SERVICE_NAME: IKEEXT TYPE : 20 WIN32_SHARE_PROCESS START_TYPE : 2 AUTO_START ERROR_CONTROL : 1 NORMAL BINARY_PATH_NAME : C:\Windows\system32\svchost.exe -k netsvcs LOAD_ORDER_GROUP : TAG : 0 DISPLAY_NAME : IKE and AuthIP IPsec Keying Modules DEPENDENCIES : BFE SERVICE_START_NAME : LocalSystem
Sekarang kita tahu bahwa kita memiliki kondisi yang diperlukan, dan kita dapat membuat dll jahat dan mencegat shell!
Kami menggunakan Metasploit -> msfvenom, misalnya.

Setelah mentransfer evil.dll ke komputer target kami, yang perlu kita lakukan adalah mengganti nama ke wlbsctrl.dll dan memindahkannya ke "C: \ Python27". Setelah ini selesai, kita harus sabar menunggu mesin untuk restart (atau kita dapat mencoba untuk memaksa reboot), dan kita akan mendapatkan shell sistem.
copy evil.dll C:\Python27\wlbsctrl.dll
Setelah itu, tinggal menunggu sistem untuk reboot.
Untuk contoh terakhir kami, kami akan mempertimbangkan tugas yang direncanakan. Saya akan menjelaskan prinsipnya, karena semua mungkin memiliki kasus berbeda.
Kami menemukan proses, layanan, aplikasi yang diluncurkan oleh penjadwal tugas dari SYSTEM.
Kami memeriksa hak akses ke folder tempat target kami berada.
accesschk.exe -dqv "__"
Jelas bahwa ini adalah masalah konfigurasi serius, tetapi yang lebih buruk adalah kenyataan bahwa setiap Pengguna yang diotentikasi (pengguna yang diautentikasi) memiliki akses tulis ke folder ini. Dalam contoh ini, kita bisa menimpa biner yang dapat dieksekusi dengan file yang dihasilkan oleh metasploit.
Dapat dikodekan secara opsional.

Sekarang yang tersisa adalah mengunduh file executable berbahaya dan menimpanya di folder file yang dapat dieksekusi. Setelah ini selesai, kita dapat dengan aman pergi tidur dan berjalan sistemik di pagi hari.
Dua contoh ini harus memberi kita gambaran tentang kerentanan yang harus dicari ketika mempertimbangkan izin untuk file dan folder. Diperlukan waktu untuk mempelajari semua jalur binpath untuk layanan windows, tugas terjadwal, dan tugas autorun.
Akhirnya, beberapa tips untuk menggunakan accesschk.exe.
Temukan semua izin yang lemah untuk folder pada disk.
accesschk.exe -uwdqs Users c:\ accesschk.exe -uwdqs "Authenticated Users" c:\
Temukan semua izin yang lemah untuk file pada disk.
accesschk.exe -uwqs Users c:\*.* accesschk.exe -uwqs "Authenticated Users" c:\*.*
Suka semuanya.