This blog talks about Computer, Security, Information technology, SEO, Video, etc. Now you can find all free things, Information Technology and Tips and Trick in this blog. JOIN ME KANG ASU

Breaking

Wednesday, 3 March 2021

CornerShot - Memperkuat Visibilitas Jaringan Dari Beberapa POV Host Lain

 Kang Asu

CornerShot - Memperkuat Visibilitas Jaringan Dari Beberapa POV Host Lain



Dalam peperangan, CornerShot adalah senjata yang memungkinkan seorang prajurit untuk melihat melewati sudut (dan mungkin mengambil tembakan), tanpa risiko terkena. Demikian pula, paket CornerShot memungkinkan seseorang untuk melihat akses jaringan host jarak jauh tanpa perlu memiliki hak khusus pada host itu.

Menggunakan CornerShot, sumber , dengan akses jaringan ke operator , dapat menentukan apakah ada akses jaringan antara operator dan target untuk port tertentu p .




Misalnya, anggaplah tim merah mencoba menyebarkan dari host sumber A yang "disusupi", ke host target X, yang aksesnya tidak dimiliki host A. Jika mereka menyebar melalui host B, baru kemudian mereka akan menemukan bahwa tidak ada akses jaringan antara host B dan X.

Dengan menggunakan CornerShot, tim dapat menemukan bahwa host C sebenarnya memiliki akses ke target X, jadi propagasi menuju target X harus melalui host C terlebih dahulu.

+-----+        +-----+          +-----+
| | | | filtered | |
| A +--------> B +----X--->(p) X |
| | | | | |
+-----+ +-----+ +-(p)-+
source carrier target
+ ^
| |
| +-----+ |
| | | open |
+---------->+ C +-------------+
| |
+-----+


Mirip dengan nmap , CornerShot membedakan antara status port berikut: terbuka , tertutup , difilter , dan tidak diketahui (jika tidak dapat ditentukan).

Demo berikut menunjukkan menjalankan CornerShot terhadap dua host operator 172.0.1.12 & 172.0.1.13, untuk menentukan apakah mereka memiliki akses jaringan ke 192.168.200.1:


 

Baca lebih lanjut di sini .


Gunakan Kasus

Penyebaran Tunggal untuk Visibilitas Jaringan Lengkap

Tugas yang tampaknya sederhana untuk mengidentifikasi jika beberapa host B dalam jaringan memiliki akses ke host C mungkin memerlukan penyebaran besar sensor jaringan, agen perangkat, atau kumpulan banyak aturan firewall, konfigurasi router, dan kebijakan host.

CornerShot dapat menyederhanakan proses ini dengan menggunakan satu (atau sangat sedikit) agen yang dapat menanyakan host lain di jaringan, untuk menentukan akses mereka ke host jarak jauh.


Validasi Jalur BloodHound

Tim keamanan yang memanfaatkan BloodHound untuk menemukan, dan mengurangi, jalur eskalasi hak istimewa di dalam jaringan mereka, seringkali berjuang dengan jutaan jalur logis yang ditemukan oleh BloodHound.

ShotHound adalah alat yang mengintegrasikan CornerShot dengan BloodHound, untuk menemukan jalur praktis yang didukung oleh akses jaringan.


Mulai

CornerShot dapat digunakan sebagai paket, atau sebagai modul mandiri. Satu-satunya persyaratan adalah Python 3 dan paket impacket.


Instalasi

pip install cornershot


Penggunaan Mandiri

Penggunaan dasar memerlukan kredensial dari pengguna domain yang valid, domain FQDN, IP operator, dan IP target.

python -m cornershot <user> <password> <domain> <carrier> <target>

Untuk memindai berbagai operator terhadap berbagai target, subnet atau rentang IP dapat digunakan dalam daftar yang dipisahkan koma:

python -m cornershot <user> <password> <domain> 192.168.1.10-192.168.1.20 192.168.5.0/24,192.168.6.0/24

Secara default, CornerShot akan mencoba memindai port berikut: 135, 445, 3389, 5985, 5986. Pengguna dapat memberikan daftar port dan rentang port yang dipisahkan koma:

python -m cornershot -tp 22,8080,45000-45005 <user> <password> <domain> <carrier> <target>


Sebagai Paket

Dalam kode, seseorang perlu membuat instance objek CornerShot dengan nama pengguna, kata sandi, dan nama domain dari pengguna domain yang valid. Menambahkan operator, target, dan port dicapai melalui metode add_shots . Setelah siap, metode open_fire dapat dipanggil, yang hanya melakukan panggilan RPC yang relevan berdasarkan port yang diperlukan.

from cornershot import CornerShot
cs = CornerShot("username", "password", "fqdn")
cs.add_shots(carriers=["192.168.1.1"],targets=["192.168.1.2","192.168.1.3"])
results = cs.open_fire()

Hasil dari open_fire adalah kamus dengan kunci operator, setiap operator memiliki sekumpulan kunci untuk target, dan akhirnya, setiap target memiliki kamus port dan statusnya masing-masing. Ini adalah contoh format hasil:

{'carrier_1': 
{'target_1':
{135: 'unknown', 445: 'filtered', 3389: 'filtered', 5986: 'filtered', 5985: 'filtered'},
'target_2':
{135: 'unknown', 445: 'open', 5985: 'unknown', 5986: 'filtered', 3389: 'open'}
},
'carrier_2':
{'target_1':
{3389: 'filtered', 135: 'filtered', 5985: 'filtered', 445: 'filtered', 5986: 'unknown'},
'target_2':
{5985: 'filtered', 5986: 'filtered', 445: 'filtered', 135: 'filtered', 3389: 'open'}
}
}


Bagaimana CornerShot Bekerja?

CornerShot mengandalkan berbagai metode Remote Procedure Call (RPC) standar yang terdokumentasi dengan baik yang digunakan oleh berbagai layanan Microsoft. Dengan menggunakan metode yang hanya memerlukan akun yang diautentikasi di domain, CornerShot dapat memicu lalu lintas jaringan dari host operator ke target.

CornerShot dapat menentukan status port jarak jauh dengan mengukur waktu yang dibutuhkan oleh panggilan RPC, dan menggunakan kode kesalahan yang berbeda untuk setiap metode RPC.


Metode RPC

Pembaca mungkin akrab dengan "bug printer" , yang ditemukan oleh Lee Christensen . Meskipun disebut bug, ini adalah perilaku layanan pencetakan yang terdokumentasi dengan baik, yang memungkinkan setiap pengguna yang diautentikasi memaksa server jarak jauh untuk mengautentikasi ke mesin mana pun, menggunakan metode RpcRemoteFindFirstPrinterChangeNotificationEx .

CornerShot menggunakan metode RPC berikut dari beberapa protokol Microsoft (ada banyak metode tambahan, yang akan diterapkan di versi mendatang):

Implementasi protokol itu sendiri dicapai melalui paket impacket yang luar biasa .


RpcOpenPrinter

Metode ini menerima printerName sebagai parameter. Nama printerName dapat menjadi jalur ke file lokal, file jarak jauh atau bahkan ke printer web. Dengan memberikan nama yang sesuai dengan format WEB_PRINT_SERVER, dimungkinkan untuk menanyakan port jarak jauh apa pun. Salah satu contoh nama server pencetakan web yang akan memicu lalu lintas HTTP ke host dan port jarak jauh adalah: "http: // <target_ip>: <target_port> /printers/ppp/.printer".


BaseRegSaveKey

Untuk menggunakan metode ini, kita memerlukan pendekatan dua langkah: pertama, buka kunci registri pada host jarak jauh - yang menghasilkan pegangan yang valid, dan kedua, coba dan simpan cadangan pegangan ini ke file jarak jauh. Metode BaseRegSaveKey menerima jalur file yang dapat menyimpan cadangan registri, yang memicu lalu lintas SMB melalui port 445 (dan 135 sebagai cadangan) ke target. Kunci registri yang dibuka CornerShot adalah HKEY_CURRENT_USER, yang terbuka untuk membaca secara default di sebagian besar host klien.


ElfrOpenBELW

Fungsi ini mencoba untuk membuat cadangan peristiwa Windows ke dalam jalur file, yang dapat dilakukan dari jarak jauh - dalam kasus seperti itu layanan akan mencoba dan mengakses host dan jalur jarak jauh.


EvtRpcOpenLogHandle

Mirip dengan metode EVEN, hanya metode ini yang menggunakan versi berbeda dari protokol Windows Events, yang dilakukan secara langsung melalui TCP - tidak perlu membuka port SMB.


Menentukan Negara Pelabuhan

CornerShot memperkirakan status port jarak jauh berdasarkan faktor waktu dan pesan kesalahan yang diterima oleh metode RPC atau transportasi yang mendasarinya. Dengan bereksperimen dengan host Windows yang berbeda dan berbagai protokol RPC, kami menemukan 3 ambang waktu berbeda yang terbukti berfungsi di sebagian besar lingkungan jaringan. Ambang batas ini paling baik diilustrasikan dengan gambar berikut:

                +                           +                 +     
| | |
unknown | open / closed | filtered | open
/ | | |
open | | |
| | |
+-------------+------------------+-----------------+--------------+
0 0.5 20 40 Seconds
MIN FILTERED UPPER

Ambang MIN adalah 0,5 detik, tanggapan di bawah ambang batas ini berarti kesalahan dalam metode RPC yang mendasari atau pengangkutan yang mendasarinya, atau tanggapan mungkin telah diterima dari host target.

Balasan di bawah ambang FILTERED 20 detik dapat menunjukkan port terbuka atau tertutup, tergantung pada jenis pesan kesalahan yang diterima untuk metode tersebut.

Balasan antara ambang FILTERED dan UPPER 40 detik menunjukkan port yang difilter untuk semua metode yang diuji (sejauh ini ...). Dan permintaan yang mengambil lebih dari batas UPPER menunjukkan koneksi TCP terbuka yang berkepanjangan.


Dukungan OS

Menjalankan Corenershot terhadap versi dan konfigurasi OS yang berbeda akan menghasilkan hasil yang berbeda. Tidak semua versi Windows memiliki pipa bernama yang sama atau berperilaku sama saat ditanyai dengan metode RPC yang sama. Sebagian besar Windows OOTB tidak akan mengekspos SMB dan layanan RPC lainnya melalui jaringan, namun, pengalaman menunjukkan bahwa di lingkungan yang luas, port ini cenderung terbuka dan dapat diakses untuk sebagian besar aset.

Tabel berikut menunjukkan dukungan default untuk berbagai protokol RPC, mengingat bahwa port yang sesuai dapat diakses oleh host operator dan tidak ada perubahan konfigurasi yang dibuat ke host:

KAMUProtokol RPC yang DidukungDibutuhkan Open Carrier PortsPort Target yang Mungkin untuk Dipindai
Windows 7BAHKAN, BAHKAN6445/135 & even6 tcp port445 *
Windows 8BAHKAN, BAHKAN6445/135 & even6 tcp port445 *
Windows 10BAHKAN, BAHKAN6, RPRN445/135 & even6 tcp portAPA SAJA
Server 2008BAHKAN, BAHKAN6, RRP, RPRN **445/135 & even6 tcp port445
Server 2012BAHKAN, BAHKAN6, RRP, RPRN **445/135 & even6 tcp port445
Server 2016BAHKAN, BAHKAN6, RRP, RPRN **445/135 & even6 tcp port445
Server 2019BAHKAN, BAHKAN6, RRP, RPRN **445/135 & even6 tcp port445

* Jika layanan Webclient dijalankan pada mesin klien, port tambahan dapat dipindai. Saat ini CornerShot tidak mendukung opsi ini.

** Protokol RPRN didukung pada host server, namun membuka printer web jarak jauh tidak berfungsi (itulah sebabnya kami tidak dapat memindai port target APA PUN) - hingga kami menemukan solusi


Pengembang

Tembakan RPC tambahan, atau kontribusi lainnya diterima!

Semua metode RPC diimplementasikan di bawah / shot , dan diturunkan dari kelas abstrak bernama BaseRPCShot . The / contoh folder menunjukkan cara membuat tembakan RPC kustom dan menggunakannya dalam kode.


Hubungi kami

Kami senang mendengar pendapat Anda! Untuk bug, patch, saran tentang paket ini, silakan hubungi kami di support@zeronetworks.com




Reegards

Kang Asu

No comments:

Post a Comment

# Silahkan berkomentar, bertanya dan kritik dengan sopan
# Disini anda boleh menyisipkan Link di kolom komentar
# Tetapi akan saya moderasi atau Review terlebih dahulu tiap komentar
# Jangan sampai komentar anda mengandung SPAM.

# Terima Kasih - Regards Muhammad Sobri Maulana