Konferensi HACKTIVITY 2012. Teori Big Bang: Evolusi Pentesting dalam Peningkatan Keamanan. Bagian 2

Konferensi HACKTIVITY 2012. Teori Big Bang: Evolusi Pentesting dalam Peningkatan Keamanan. Bagian 1

Sekarang kita akan mencoba cara lain untuk mengimplementasikan SQL. Mari kita lihat apakah database terus melempar pesan kesalahan. Metode ini disebut "menunggu penundaan", dan penundaan itu sendiri ditulis dalam bentuk ini: waitfor delay 00:00:01 '. Saya menyalin ini dari file kami dan menempelkannya ke bilah alamat browser.



Semua ini disebut "injeksi SQL blind sementara." Yang kami lakukan di sini hanyalah mengatakan: "tunggu selama 10 detik." Jika Anda perhatikan, di bagian kiri atas terdapat tulisan "sambung ...", yaitu, apa yang dilakukan halaman kami? Dia sedang menunggu koneksi, dan setelah 10 detik halaman yang benar muncul di monitor Anda. Dengan teknik ini, kita beralih ke database sehingga memungkinkan kita untuk mengajukan beberapa pertanyaan lagi, misalnya, jika pengguna adalah Joe, maka Anda perlu menunggu 10 detik. Apakah itu jelas? Jika pengguna dbo, tunggu 10 detik juga. Ini adalah metode injeksi SQL buta.

Saya pikir pengembang saat membuat tambalan tidak menghilangkan kerentanan ini. Ini adalah injeksi SQL, tetapi program IDS kami tidak melihatnya, juga metode injeksi SQL sebelumnya.
Mari kita coba sesuatu yang lebih menarik. Salin baris ini dengan alamat IP dan rekatkan ke browser. Berhasil! Strip TCP dalam program kami menjadi merah, program mencatat 2 ancaman keamanan.



Nah, lihat lebih jauh apa yang terjadi. Kami memiliki satu ancaman pada shell XP, dan ancaman lainnya adalah upaya untuk menyuntikkan SQL. Secara total, dua upaya untuk menyerang aplikasi web dicatat.



Ok, sekarang bantu aku dengan logikanya. Kami memiliki paket data intervensi di mana IDS mengatakan itu menanggapi berbagai intervensi di shell perintah XP.



Jika kita turun, kita akan melihat tabel kode HEX, di sebelah kanannya ada bendera dengan pesan xp_cmdshell + & 27ping, dan jelas ini buruk.



Mari kita lihat apa yang terjadi di sini. Apa yang dilakukan server SQL?



Server SQL berkata: "Anda dapat memiliki kata sandi dari basis data saya, Anda bisa mendapatkan semua catatan dari basis data saya, tetapi, man, saya tidak ingin Anda menjalankan perintah sama sekali, itu sama sekali tidak keren!"

Yang perlu kita lakukan adalah memastikan bahwa walaupun IDS melaporkan ancaman ke shell XP, ancaman ini diabaikan. Jika Anda menggunakan SQL Server 2005 atau SQL Server 2008, maka setelah deteksi upaya injeksi SQL, shell perintah dari sistem operasi akan diblokir, yang tidak akan memungkinkan Anda untuk melanjutkan bisnis Anda. Ini sangat menyebalkan. Jadi apa yang kita lakukan? Anda perlu mencoba meminta server dengan penuh kasih sayang. Saya harus mengatakan ini: "tolong, ayah, yah, bisakah saya memiliki kue-kue ini?" Itu yang saya lakukan, serius, saya meminta server dengan sangat sopan! Saya meminta Anda untuk menunjukkan opsi tambahan, meminta konfigurasi ulang dan meminta untuk mengubah pengaturan shell XP untuk membuat shell tersedia, karena saya membutuhkannya!



Kami melihat IDS mendeteksi ini - Anda tahu, 3 ancaman telah dicatat di sini.



Anda hanya melihat di sini - kami meledakkan log keamanan! Tampak seperti pohon Natal, begitu banyak hal digantung di sini! Sebanyak 27 ancaman keamanan! Hore guys, kami menangkap hacker ini, kami menangkapnya!



Kami tidak khawatir dia akan mencuri data kami, tetapi jika ia dapat menjalankan perintah sistem di "kotak" kami - ini serius! Anda dapat menggambar Telnet, rute FTP, Anda dapat mengambil alih data saya, ini keren, tetapi saya tidak khawatir tentang hal itu, saya hanya tidak ingin Anda mengendalikan cangkang "kotak" saya.

Saya ingin mengatakan tentang hal-hal yang benar-benar "membuat saya". Saya bekerja untuk organisasi, saya bekerja untuk mereka selama bertahun-tahun, dan saya memberi tahu Anda tentang hal itu karena pacar saya percaya bahwa saya menganggur. Dia percaya bahwa saya hanya melakukan apa yang saya lakukan di atas panggung dan mengobrol, ini tidak dapat dianggap berhasil. Tetapi saya berkata: "Tidak, sukacitaku, saya seorang konsultan!" Itulah bedanya - saya menyatakan pendapat saya, dan mereka membayar saya untuk itu.

Saya akan mengatakan ini - kita, seperti peretas, suka memecahkan cangkang, dan bagi kita tidak ada lagi kesenangan di dunia selain "menelan wastafel." Ketika analis IDS menulis aturan mereka, Anda melihat bahwa mereka menulisnya sedemikian rupa untuk melindungi diri dari kerusakan. Tetapi jika Anda berbicara dengan CIO tentang masalah ekstraksi data, dia akan menawarkan Anda untuk memikirkan dua opsi. Misalkan saya memiliki aplikasi yang menghasilkan 100 "lembar" per jam. Apa yang lebih penting bagi saya - untuk memastikan keamanan semua data dalam aplikasi ini atau keamanan shell "box"? Ini pertanyaan serius! Apa yang harus Anda khawatirkan?



Fakta bahwa Anda memiliki "kotak" shell yang rusak tidak selalu berarti bahwa seseorang telah mendapatkan akses ke operasi internal aplikasi. Ya, ini lebih dari kemungkinan, dan jika ini belum terjadi, maka itu bisa terjadi segera. Tetapi perhatikan bahwa banyak produk keamanan dibuat berdasarkan premis bahwa penyerang bergerak melalui jaringan Anda. Karena itu, mereka memperhatikan eksekusi perintah, pengenalan perintah, dan Anda harus mencatat bahwa ini adalah hal yang serius. Mereka memperhatikan kerentanan sepele, skrip lintas situs yang sangat sederhana, suntikan SQL yang sangat sederhana. Mereka tidak peduli tentang ancaman kompleks atau pesan terenkripsi, mereka tidak khawatir tentang hal-hal semacam ini. Kita dapat mengatakan bahwa semua produk keamanan mencari kebisingan, mereka mencari "ya", mereka ingin menghentikan apa yang menggigit pergelangan kaki Anda. Inilah yang saya mengerti ketika berhadapan dengan produk keamanan. Anda tidak perlu membeli produk keamanan, Anda tidak perlu mengendarai truk secara terbalik. Anda membutuhkan orang yang kompeten dan berkualifikasi yang memahami teknologi. Ya, Tuhanku, itu orang! Kami tidak ingin membuang jutaan dolar ke masalah ini, tetapi banyak dari Anda telah bekerja di bidang ini dan tahu bahwa begitu bos Anda menonton iklan, dia berlari ke toko dengan teriakan: "kita harus mendapatkan barang ini!" Namun pada kenyataannya, kita tidak membutuhkannya, kita hanya harus memperbaiki kekacauan yang ada di belakang kita. Itulah prasyarat untuk presentasi ini.

Lingkungan keamanan yang ditingkatkan adalah sesuatu yang saya habiskan banyak waktu untuk memahami aturan tentang bagaimana mekanisme keamanan bekerja. Setelah Anda memahami mekanisme perlindungan, berkeliling perlindungan itu mudah. Misalnya, saya punya aplikasi web yang dilindungi oleh firewallnya sendiri. Saya menyalin alamat panel pengaturan, menempelkannya ke bilah alamat browser dan masuk ke pengaturan dan mencoba menerapkan skrip lintas situs.



Akibatnya, saya mendapatkan pesan firewall tentang ancaman - mereka memblokir saya.



Saya pikir ini buruk, apakah Anda setuju? Anda telah menemukan produk keamanan. Tetapi bagaimana jika saya mencoba sesuatu seperti ini: Saya memasukkan parameter Joe '+ OR + 1 =' 1 pada baris



Seperti yang Anda lihat, itu berhasil. Perbaiki saya jika saya salah, tetapi kami telah menyaksikan bagaimana injeksi SQL mengalahkan firewall aplikasi. Sekarang mari kita berpura-pura bahwa kita ingin memulai sebuah perusahaan untuk menerapkan langkah-langkah keamanan, jadi mari kita coba pada topi produsen perangkat lunak. Sekarang kami mewujudkan kejahatan karena itu adalah topi hitam. Saya seorang konsultan, jadi saya bisa melakukan ini dengan pembuat perangkat lunak.

Kami ingin membuat dan menggunakan sistem deteksi intrusi baru, jadi kami akan memulai perusahaan deteksi intrusi. Sebagai produk open source, Snort mengandung ratusan ribu tanda tangan ancaman intrusi. Kami harus bertindak secara etis, jadi kami tidak akan mencuri tanda tangan ini dari aplikasi lain dan memasukkannya ke dalam sistem kami. Kami hanya duduk dan menulis ulang semuanya - hei, Bob, Tim, Joe, mari kita pergi ke sini, periksa cepat semua 100.000 tanda tangan ini!

Kita juga perlu membuat pemindai kerentanan. Anda tahu bahwa Nessus, sebuah program untuk mencari kerentanan secara otomatis, memiliki 80.000 tanda tangan dan skrip yang bagus untuk memeriksa kerentanan. Kami akan kembali bertindak secara etis dan secara pribadi menulis ulang semuanya ke dalam program kami.
Orang-orang bertanya kepada saya: "Joe, apakah Anda melakukan semua tes ini dengan perangkat lunak sumber terbuka seperti Mod Security, Snort dan sejenisnya, menjawab seberapa miripnya mereka dengan produk dari produsen lain?" Saya menjawab mereka: "Mereka sama sekali tidak mirip mereka!" Karena produsen tidak mencuri barang-barang dari produk keamanan open source, mereka duduk dan menulis semua aturan ini dengan tangan mereka sendiri.

Jika Anda dapat membuat tanda tangan Anda sendiri dan garis serangan berfungsi tanpa menggunakan produk-produk sumber terbuka, ini adalah peluang besar bagi Anda. Jika Anda tidak dapat menentang apa pun untuk produk komersial, bergerak ke arah yang benar, Anda harus menemukan konsep yang akan membantu Anda menjadi terkenal di bidang Anda.

Semua orang tahu apa yang saya minum. Biarkan saya tunjukkan mengapa saya minum. Jika Anda pernah mengaudit kode sumber dalam hidup Anda, Anda pasti akan meminumnya, percayalah, setelah itu Anda akan mulai minum.



Jadi, bahasa favorit kami adalah C ++. Mari kita lihat program ini - Web Knight, ini adalah aplikasi firewall untuk server web. Ini memiliki pengecualian secara default. Ini menarik - jika saya menggunakan firewall ini, itu tidak akan melindungi saya dari Outlook Web Access.



Hebat! Ini karena banyak vendor perangkat lunak menarik aturan dari aplikasi yang sama dan memasukkannya ke dalam produk mereka tanpa melakukan banyak mengandalkan penelitian. Oleh karena itu, ketika saya menggunakan aplikasi firewall jaringan, saya percaya bahwa semua yang berhubungan dengan webmail salah di dalamnya! Karena hampir semua webmail melanggar keamanan secara default. Anda memiliki kode web yang mengeksekusi perintah sistem dan kueri dari LDAP atau repositori basis data pengguna lain secara langsung di Internet.

Katakan padaku, di planet mana ini bisa dianggap aman? Coba pikirkan: Anda membuka Outlook Web Access, tekan b ctrl + K, cari pengguna dan semua itu, Anda mengelola Active Directory langsung dari Internet, Anda menjalankan perintah sistem di Linux jika Anda menggunakan "protein mail", atau Horde atau apa sesuatu yang lain. Anda menarik semua eval ini dan jenis fungsionalitas tidak aman lainnya. Oleh karena itu, banyak firewall mengecualikan mereka dari daftar risiko keamanan, coba tanyakan kepada produsen perangkat lunak Anda tentang hal ini.

Kembali ke aplikasi Web Knight. Ini telah mencuri banyak aturan keamanan dari pemindai URL yang memindai semua rentang alamat IP ini. Jadi, apakah semua rentang alamat ini dikecualikan dari produk saya?



Apakah ada di antara Anda yang ingin mengatur alamat ini di jaringan Anda? Apakah Anda ingin jaringan Anda berjalan di alamat-alamat ini? Ya, ini luar biasa. Nah, gulir ke bawah program ini dan lihat hal-hal lain yang tidak ingin dilakukan firewall ini.

Mereka dipanggil tahun 1999 dan ingin server web mereka ada di masa lalu! Apakah ada di antara Anda yang ingat sampah ini: / scripts, / iishelp, msads? Mungkin beberapa orang dengan nostalgia akan mengingat betapa menyenangkannya memecahkan hal-hal seperti itu. "Ingat, kawan, berapa lama kita" membunuh "server, itu keren!"



Sekarang, jika Anda melihat pengecualian ini, Anda akan melihat bahwa Anda dapat melakukan semua hal ini - msads, printer, iisadmpwd - semua hal ini yang tidak dibutuhkan siapa pun saat ini. Bagaimana dengan perintah yang tidak boleh Anda lakukan?



Ini arp, at, cacls, chkdsk, cipher, cmd, com. Saat mendaftarkannya, Anda dipenuhi dengan kenangan masa lalu, "kawan, ingat bagaimana kami menangkap server itu, ingat hari-hari itu"?

Tapi yang benar-benar menarik adalah - apakah ada yang melihat WMIC di sini atau mungkin PowerShell? Bayangkan Anda memiliki aplikasi baru yang berfungsi dengan menjalankan skrip pada sistem lokal, dan ini adalah skrip modern, karena Anda ingin menjalankan Windows Server 2008, dan saya akan melakukan pekerjaan yang hebat, melindunginya dengan aturan yang dirancang untuk Windows 2000. Jadi bahwa saat berikutnya penyedia datang kepada Anda dengan aplikasi web Anda, tanyakan padanya: "hei, dan Anda memberikan hal-hal seperti bit admin, atau menjalankan perintah powershell, apakah Anda memeriksa semua hal lain, karena kita akan tingkatkan dan gunakan ve baru UIS dotnet »? Tetapi semua hal ini harus ada dalam produk keamanan secara default!



Hal berikutnya yang ingin saya bicarakan dengan Anda adalah kesalahan logis. Mari kita pergi ke alamat 192.168.2.6. Ini tentang aplikasi yang sama dengan yang sebelumnya.



Anda mungkin melihat sesuatu yang menarik jika Anda menggulir ke bawah halaman dan mengklik tautan Hubungi Kami.



Jika Anda melihat kode sumber dari tab Contact Us, ini adalah salah satu metode pentesting, maka apa yang saya terus lakukan adalah perhatikan baris ini.



Pikirkan itu! Saya mendengar bahwa banyak orang saat melihat ini berkata: "Wow!" Suatu kali saya melakukan pengujian penetrasi untuk, katakanlah, satu bank miliarder, dan melihat sesuatu yang serupa di sana. Jadi, kita tidak perlu injeksi SQL atau skrip lintas situs - kita memiliki hal utama, bilah alamat ini.



Jadi, tanpa berlebihan - bank memberi tahu kami bahwa mereka memiliki keduanya - spesialis jaringan, dan inspektur web, dan mereka tidak memberikan komentar. Artinya, mereka menganggap itu normal bahwa melalui browser Anda dapat membuka dan membaca file teks.

Artinya, Anda cukup membaca file langsung dari sistem file. Kepala dinas keamanan mereka mengatakan kepada saya: "Ya, salah satu pemindai menemukan kerentanan ini, tetapi menganggapnya kecil." Yang saya jawab, yah, beri saya waktu sebentar. Saya mengetik di address bar nama file = .. / .. / .. / .. / boot.ini dan dapat membaca file boot sistem file!



Mereka mengatakan ini kepada saya: "tidak, tidak, tidak, ini bukan file kritis!" Saya menjawab - tetapi ini adalah Server 2008? Mereka berkata ya, itu dia. Saya katakan - tetapi server ini memiliki file konfigurasi yang terletak di direktori root server, kan? "Benar," jawab mereka. "Luar biasa," kataku, "bagaimana jika penyerang melakukan ini," dan aku mengetikkan filename = web.config di bilah alamat. Kata mereka - jadi apa, Anda tidak melihat apa pun di monitor?



Saya katakan - bagaimana jika saya klik kanan pada monitor dan pilih opsi "Tampilkan Halaman Kode"? Dan apa yang akan saya temukan di sini? Tidak ada yang kritis? Saya akan melihat kata sandi admin server!



Dan Anda mengatakan bahwa tidak ada masalah?

Tetapi bagian favorit saya adalah sebagai berikut. Anda tidak mengizinkan saya untuk mengeksekusi perintah di "kotak", tetapi saya bisa mencuri kata sandi dan database administrator server web, melihat seluruh database, mengeluarkan semua materi tentang kegagalan sistem database dan dari sana, dan pergi dengan semua ini. Ini adalah kasus ketika seorang pria jahat berkata, "hai teman, hari ini adalah hari yang menyenangkan!"



Jangan biarkan produk keamanan menjadi penyakit Anda! Jangan biarkan produk keamanan membuat Anda sakit! Temukan beberapa "kutu buku", beri mereka semua Star Trek tzatskis yang mengesankan ini, menarik mereka, dorong mereka untuk tinggal bersama Anda, karena orang-orang busuk yang membosankan ini yang tidak mandi setiap hari adalah mereka yang membuat jaringan Anda berfungsi seperti harus! Inilah orang-orang yang akan membantu produk keamanan Anda bekerja dengan baik.

Katakan, siapa di antara Anda yang bisa tinggal di ruangan yang sama untuk waktu yang lama dengan orang yang terus-menerus berkata: "Oh, saya perlu segera mencetak naskah ini!", Dan siapa yang sibuk dengan itu sepanjang waktu? Tetapi Anda membutuhkan orang yang membuat produk keamanan Anda berfungsi.

Saya ulangi sekali lagi - produk keamanan bodoh, karena lampu selalu salah, terus-menerus melakukan hal-hal yang ceroboh, mereka hanya tidak memberikan keamanan. Saya belum pernah melihat produk keamanan yang baik yang tidak akan membutuhkan seseorang dengan obeng, bisa mengencangkan jika perlu, sehingga semuanya bekerja lebih atau kurang normal. Ini hanya daftar besar peraturan yang mengatakan bahwa ini buruk, dan hanya itu!

Oleh karena itu, teman-teman, saya ingin Anda memperhatikan pendidikan, untuk hal-hal seperti keamanan, pelatihan politeknik, karena ada banyak kursus online gratis tentang masalah keamanan. Pelajari Python, pelajari Majelis rakitan, pelajari pengujian aplikasi web.



Inilah yang benar-benar membantu Anda melindungi jaringan Anda. Orang pintar melindungi jaringan, produk jaringan tidak melindungi! Kembali bekerja dan beri tahu atasan Anda bahwa Anda membutuhkan lebih banyak anggaran untuk lebih banyak orang pintar, saya tahu ada krisis, tetapi tetap beri tahu dia - kami membutuhkan lebih banyak uang untuk melatih orang-orang. Jika kita membeli suatu produk, tetapi tidak membeli kursus tentang penanganannya, karena harganya mahal, lalu mengapa kita membelinya sama sekali jika kita tidak akan mengajari orang bagaimana cara menggunakannya?

Saya bekerja untuk banyak produsen produk keamanan, menghabiskan hampir seluruh hidup saya untuk mengimplementasikan produk-produk ini, dan saya sudah muak dengan semua kontrol akses jaringan ini dan hal-hal lain, karena saya menginstal dan meluncurkan semua produk omong kosong ini. Entah bagaimana saya datang ke klien, mereka ingin menerapkan standar 802.1x untuk protokol EAP, sehingga mereka memiliki alamat MAC dan alamat sekunder untuk setiap port. Saya datang, melihat bahwa itu buruk, berbalik dan mulai menekan tombol pada printer. Anda tahu, printer dapat mencetak halaman uji peralatan jaringan dengan semua alamat MAC dan alamat IP. Tetapi ternyata printer tidak mendukung standar 802.1x, jadi harus dikecualikan.

Kemudian saya memutus printer dari jaringan dan mengubah alamat MAC laptop saya ke alamat MAC printer dan menghubungkan laptop saya, sehingga melewati solusi MAC yang mahal ini, pikirkanlah! Jadi apa gunanya solusi MAC ini untuk saya jika seseorang dapat dengan mudah meninggalkan peralatan apa pun sebagai printer atau telepon VoIP?

Jadi bagi saya hari ini, pentesting adalah saya menghabiskan waktu mencoba memahami dan memahami produk keamanan yang dibeli oleh klien saya.Sekarang, setiap bank tempat saya melakukan tes penetrasi memiliki semua HIPS, NIPS, LAUGTHS, MACS, dan sejumlah singkatan lainnya, yang merupakan omong kosong. Tetapi saya mencoba untuk mencari tahu apa yang coba dilakukan produk-produk ini dan bagaimana mereka mencoba melakukannya. Kemudian, begitu saya mengetahui metodologi dan logika apa yang mereka gunakan untuk memberikan perlindungan, menyiasatinya sama sekali tidak sulit.

, , MS 1103. , «» HIPS, Host Intrusion Prevention Signature, . HIPS. , , , , , .
, , .


:)


, . ? ? , , VPS $4.99 , entry-level , : VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps $19 ? ( RAID1 RAID10, 24 40GB DDR4).

Dell R730xd 2 - Equinix Tier IV ? 2 Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 $199 ! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - mulai dari $ 99! Baca tentang Cara Membangun Infrastruktur Bldg. kelas menggunakan server Dell R730xd E5-2650 v4 seharga 9.000 euro untuk satu sen?

Source: https://habr.com/ru/post/id480392/


All Articles