GNU/Linux >> Belajar Linux >  >> Linux

Sysadmin Linux:Pahami kekuatan ncat untuk menghindari risiko keamanan yang tidak disengaja

ncat perintah adalah bagian dari nmap suite dan ditulis khusus untuk itu. Memang benar ncat memiliki banyak kegunaan seperti pisau Swiss Army yang terkenal, tetapi bisa sama berbahayanya jika digunakan secara tidak benar atau ketika digunakan oleh aktor jahat. Salah satu kelebihannya adalah ncat dapat menjadi klien dan server. Artikel ini berfokus pada satu aspek dari hubungan itu. Saya tunjukkan cara membuka shell bash mendengarkan dengan ncat yang dapat diakses siapa saja dengan ncat sebagai klien. Dalam artikel saya, pemecahan masalah Linux:Menyiapkan pendengar TCP dengan ncat, saya menjelaskan cara mengatur ncat sebagai pendengar atau server yang mendengarkan pada port tertentu. Contoh ini serupa, tetapi saya pikir Anda akan terkesan dengan kekuatan yang ncat Memberi anda. Itu juga akan membuatmu takut—sangat.

Instal ncat

Periksa sistem Anda di bawah /usr/bin pertama untuk melihat apakah Anda perlu menginstal ncat . Ini biasanya disertakan dalam distribusi berbasis Linux Red Hat Enterprise. Jika Anda merasa perlu menginstalnya, nama paketnya adalah nmap-ncat . Anda juga dapat menginstal ncat dengan sendirinya atau instal nmap dan nmap-ncat paket diinstal sebagai ketergantungan.

Gunakan ncat

Jangan keluarkan ncat perintah sebagai root, terutama untuk contoh dalam artikel ini. Melakukannya akan memungkinkan siapa pun untuk memiliki akses root ke sistem Anda tanpa otentikasi. Setiap pengguna dapat mengeluarkan ncat perintah, yang merupakan salah satu fitur dan juga salah satu bahayanya. Saya sarankan Anda membuat akun layanan dan bekerja dengan ncat menggunakan akun itu. Percayalah, saya telah mendengar setiap argumen yang mendukung dan menentang akun layanan, tetapi begitu Anda melihat ncat dalam tindakan, Anda akan ingin menggunakan akun layanan untuk berinteraksi dengannya.

Mengirimkan bash shell

Ini adalah bagian yang menyenangkan (dan berbahaya) dari menggunakan ncat . Alihkan pengguna ke akun layanan baru Anda. Saya menamai saya malu .

[ken@server1 ~] $ su - bashful
Password: 
[bashful@server1 ~] $

Sekarang setelah Anda mengganti akun pengguna, saatnya untuk membuka shell itu. Ini memberikan akses yang tidak diautentikasi ke sistem Anda melalui shell yang sebagian besar interaktif. Anda akan melihat apa yang saya maksud dengan "kebanyakan" interaktif setelah Anda terhubung. Perintah selanjutnya ini menggunakan ncat untuk mengeksekusi shell bash yang mendengarkan pada port TCP. Untuk contoh ini, saya menggunakan port 9922 di server1 (192.168.1.50). -l pilihan mengatur port mendengarkan. -k option adalah flag keepalive, yang memelihara soket. Jika Anda tidak mengeluarkan -k pilihan, maka soket mati setelah Anda memutuskan sesi, dan tidak ada koneksi lain yang dapat dibuat untuk itu.

[bashful@server1 ~] $ ncat -e "/bin/bash" -l 9922 -k &

-e option mengeksekusi perintah dalam tanda kutip, yang dalam kasus kami adalah bash shell (/bin/bash ). Saya menggunakan ampersand (& ) setelah perintah untuk melepaskan Prompt saya dan masukkan ncat pendengar ke mode latar belakang. Jika Anda tidak menggunakan & , maka terminal Anda akan "hang" dan tidak mengizinkan Anda untuk berinteraksi dengannya. Jika itu bukan masalah bagi Anda, biarkan apa adanya.

Mengeluarkan netstat perintah menunjukkan bahwa pendengar ada di tempatnya.

[bashful@server1 ~]$ netstat -an |grep 9922
tcp        0      0 0.0.0.0:9922            0.0.0.0:*               LISTEN     
tcp6       0      0 :::9922                 :::*                    LISTEN     
[bashful@server1 ~]$

Untuk menyambung ke port pendengar dari sistem jarak jauh, Anda juga harus membuka pengecualian di firewall berbasis host untuk port 9922.

[ken@server1 ~]$ sudo firewall-cmd --add-port=9922/tcp
success

Apakah Anda melihat failsafe di sini? Ini adalah pengecualian firewall yang harus saya buat menggunakan akun saya dan sudo . Jika Anda menjalankan firewall berbasis host atau IPTables (dan sebaiknya Anda melakukannya), maka layanan ini tidak akan berfungsi sampai Anda mengizinkan port tersebut, yang berarti bahwa tidak ada pengguna biasa yang dapat menjalankannya tanpa akses administratif. Jika tidak, pengguna berpendidikan ncat akan membuka port di semua tempat dan membuat Anda gila dalam prosesnya. Belum lagi masalah keamanan yang Anda alami. Saya ngelantur.

Mengakses shell dari sistem jarak jauh

Sekarang Anda dapat mengakses bash shell dari sistem jarak jauh pada port 9922.

[ken@server2 ~]$ ncat 192.168.1.50 9922

Dari server2 , keluarkan ncat perintah dengan alamat IP target server1 dan port mendengarkan 9922. Setelah Anda terhubung, tidak ada yang terjadi, atau begitulah yang mungkin Anda percayai karena terminal tampaknya seperti hang. Tapi apa yang sebenarnya terjadi adalah Anda berkomunikasi dengan soket mentah dan karena itu, tidak akan melihat prompt. Buktikan dengan mengeluarkan who perintah.

[ken@server2 ~]$ ncat 192.168.1.50 9922
who
ken    pts/0        2020-08-26 13:39 (server2)

Anda dapat mengeluarkan perintah apa pun yang Anda inginkan agar pengguna malu memiliki akses ke. Jika Anda mengeluarkan perintah yang memerlukan akses root, Anda mungkin tidak akan melihat respons. Terminal akan tampak tetap dalam status "digantung". Tanggapan Anda akan benar-benar muncul di terminal server1 . Misalnya, jika Anda mengeluarkan perintah berikut:

firewall-cmd --list-all

Anda tidak melihat apa pun di server2 layar. Di server1 's, berikut ini muncul:

[bashful@server1 ~]$ Authorization failed.
    Make sure polkit agent is running or run the application as superuser.

Untuk memutuskan sambungan dari server2 shell klandestin, keluarkan Ctrl+C kombinasi dan prompt lokal Anda kembali.

Jangan coba ini di tempat kerja

Hanya untuk bersenang-senang, atau jika Anda tidak percaya, bunuh ncat saat ini proses menggunakan akun layanan Anda atau sebagai root. Kemudian keluarkan kembali perintah yang sama dengan pengguna root untuk menjalankan bash shell sebagai root. Hubungkan lagi dari sistem jarak jauh dan keluarkan kembali perintah firewall itu. Kali ini Anda akan melihat hasilnya. Anda dapat mengeluarkan perintah apa pun sebagai root, itulah sebabnya Anda tidak pernah ingin mengatur jenis layanan ini sebagai pengguna root.

Dan sekarang Anda melihat bahaya nyata menggunakan ncat sebagai akar. Pelaku jahat akan memasang cangkang seperti itu di port rahasia yang terlewatkan oleh pemindaian port dan memiliki akses root penuh tanpa autentikasi.

Menutup

ncat yang sangat berguna dan berpotensi sangat berbahaya perintah adalah teman terbaik Anda dan musuh terburuk Anda. Seperti setiap alat lain di gudang, tidak ada maksud lain selain apa yang Anda berikan. Anda harus mempelajari ncat perintah, kegunaannya, dan batasannya di lingkungan Anda. Ingatlah untuk membunuh ncat proses yang tidak ingin Anda jalankan terus menerus setelah Anda selesai melakukannya dan hapus pengecualian firewall yang mengizinkan aksesnya. Juga, ingatlah bahwa dengan kekuatan yang besar muncul kemampuan untuk benar-benar mengacaukan segalanya.

[ Ingin menguji kemampuan sysadmin Anda? Ikuti penilaian keterampilan hari ini. ]


Linux
  1. Menyiapkan pengalihan port di Linux dengan ncat

  2. Sysadmin Linux:Pahami kekuatan ncat untuk menghindari risiko keamanan yang tidak disengaja

  3. Perintah Ncat Linux

  1. Cara Mengubah Port SSH Di Linux

  2. Linux – Mengerti Login di Linux?

  3. Linux USB:menyalakan dan mematikan daya?

  1. 13 tutorial keamanan Linux

  2. Linux – Port Serial Raspberrypi?

  3. Periksa penggunaan port di Linux