Konferensi DEFCON 18. Anda telah menghabiskan semua uang ini, tetapi mereka terus memiliki Anda. Bagian 1

Seperti biasa, seperti tahun lalu, saya tidak percaya bahwa orang benar-benar datang ke presentasi saya untuk mendengarkan apa yang saya katakan. Tahun lalu pada hari Minggu, jam 10 pagi, saya dalam keadaan mabuk dan berpikir bahwa tidak ada yang akan datang untuk melihat saya.



Hari ini adalah hari Minggu lagi, jam 4 sore, hari ini saya ingin terbang pulang, tetapi meskipun demikian, saya berterima kasih dan sangat menghargai perhatian Anda, seperti tahun lalu, dan saya sangat mencintai orang-orang seperti itu dan DefCon.

Topik presentasi adalah Anda menghabiskan semua uang ini, tetapi mereka tetap memiliki Anda. Saya melakukan banyak tes penetrasi, saya berada di banyak negara di mana saya terlibat dalam pentesting, dan di mana-mana saya berjuang dengan berbagai alat perlindungan seperti firewall, AWS dan sistem deteksi intrusi IDS dan MAC. Kami masih memberi mereka meronta-ronta, dan ini sangat buruk. Seringkali, ketika saya uji, laporan saya berubah menjadi pesan tentang insiden, dan saya ingin mengatakan: "hei Bung, tetapi Anda adalah pemilik semua ini, bagaimana Anda bisa menggunakan endapan seperti itu"? Seluruh topik didedikasikan untuk ini, tetapi izinkan saya memberi tahu Anda siapa saya.

Saya seorang pentester aplikasi jaringan dan saya mengajari orang-orang tentang hal itu, dan saya adalah orang “hitam” di konferensi keamanan, ya, ini saya! Jadi, saya retak, saya menjadi ganas dan saya minum. Perintahnya berubah, tapi saya tetap sama. Jadi, jika Anda tidak menyukai pria seperti saya, Anda bisa bangun dan pergi.

Jadi, izinkan saya kembali sedikit, sekitar 10 tahun. Saya selalu melakukan ini karena saya terutama nostalgia untuk masa itu. Pada hari-hari itu, pentesting adalah tugas yang mudah, kami datang ke klien dan berkata: "halo, kita adalah orang-orang yang aman", dan klien mengangkat tangannya, berpikir: "neraka, orang-orang aman di sini!"

Setelah itu, kami meretas jaringan klien dengan alat sumber terbuka seperti ISS atau Nessus. Berapa banyak dari Anda yang ingat bahwa Nessus bebas?



Jadi, kami datang ke klien dengan semua hal ini dan dengan mudah meretas situsnya menggunakan eksploit seperti RootShell dengan PacketStorm - angkat tangan, yang mengingatnya! Kami memindai port untuk menemukan target, menggunakan segala macam kompilasi, dot-slash, semua pustaka ini dan membuka panel kontrol.





Lalu kami mengambil tangkapan layar kerentanan, tempat Anda dapat melihat kata sandi dan informasi rahasia lainnya, dan berkata: "Ya, itu dia, kawan, jaringan Anda telah diambil alih!"



Kemudian kami menyusun laporan, menulis apa yang mereka miliki, dan menerima uang untuk itu. "Jaringanmu benar-benar sial, jadi bayar aku!"



Tapi hari ini, teman-teman, semua di sekitar adalah CISSP yang solid, sertifikasi independen keamanan informasi, dan orang yang mempekerjakan Anda berpikir dia tahu lebih banyak daripada Anda. Saya ingin mengatakan kepadanya: "lalu apa yang mempekerjakan Anda?", Dan dia menjawab: "Anda tahu, kami berhasil, dan ini, kami memiliki IDS dan MAC, kami punya ini, kami punya ini ...". Dan Anda berputar di sana dalam semua omong kosong ini.
Izinkan saya menceritakan sedikit kisah. Setiap orang yang mengenal saya tahu bahwa saya selalu memiliki semacam cerita.

Beberapa tahun yang lalu saya punya klien yang memesan pentesting. Dia berkata, "Oke, Joe, saya ingin Anda mengaudit subnet ini dan daftar kontrol akses ACL untuk VLAN." Mungkin beberapa dari Anda sudah melakukan ACL untuk VLAN, jadi kalian lebih pintar dari saya karena saya tidak pernah melakukannya.

Saya katakan - ya, audit seperti apa yang harus saya lakukan? Dia menjawab - audit VLAN, oke, saya pikir saya akan pergi dan melihat konfigurasi jaringan mereka. Dan di sini saya duduk dengan administrator jaringan dan melihat bahwa mereka memiliki 90 VLAN untuk 300 pengguna! Saya hanya terkejut dan mengatakan kepadanya bagaimana ini mungkin, tetapi dia hanya menjawab - yah, itu terjadi! Saya mengambil selembar kertas kecil dan mulai berkeliling orang-orang, bertanya: “Apakah Anda memerlukan jaringan ini? Tetapi apakah Anda membutuhkan jaringan ini? Mungkin Anda membutuhkan jaringan ini? " Jadi, saya berkeliling semua orang, mencari tahu apa yang dibutuhkan siapa pun, dan itu adalah perusahaan besar, sangat besar. Saya memeriksa semua VLAN ini, mensertifikasi beberapa jaringan, dan mencapai salah satu segmen DMZ, di mana ada 4 di perusahaan. Saya berkata pada diri sendiri, "hei Bung, semua kotak ini perlu diperbarui, mereka benar-benar perlu ditambal." Saya pergi ke wakil manajer umum dan mengatakan bahwa Anda memiliki semua peralatan ini yang memerlukan pembaruan perangkat lunak, karena Anda melewatkan beberapa tambalan SQL, tambalan PHP, dan banyak lagi.

Mereka mengadakan pertemuan karena mereka terus-menerus bertemu, dan salah satu pengembang bangkit dan berkata: "Tidak, tidak, kami tidak dapat memperbarui ini, ini adalah server pengembangan kami!" (Tertawa dan tepuk tangan di aula). Bagaimana saya bisa mengomentari fakta bahwa server pengembangan terletak di DMZ? Dan mereka menjawab saya: "Itu lebih baik!".

Jadi, saya terus bekerja untuk klien, mulai pentesting kecil saya dan “hancurkan” beberapa rak, karena itu mudah dilakukan. Klien bertanya mengapa sistem IDS kami yang tidak dapat menangkap Anda, dan saya menjawab, tapi apa, IDS ada di sana? Dia bilang ya, kami menggunakannya untuk memantau keamanan. Saya menjawab: "Yah, mungkin karena seseorang mengerjakan IDS ini"!

Perusahaan mempekerjakan perusahaan lain untuk melakukan outsourcing IDS mereka, mereka mengelolanya, membuat laporan dan melakukan banyak hal buruk. Jadi, saya harus melihat "kotak" mereka dan meminta orang itu memberi saya akses untuk segera memeriksanya. Aku sial butuh lebih dari 2 menit untuk masuk melalui SSH, dan aku melihat bahwa jalang ini lambat ke neraka, jadi aku mulai memeriksanya untuk rootkit. Ternyata sudah ada 4 rootkit!



Jadi pentesting adalah hal yang keren! Jadi, apa yang harus saya lakukan ketika saya menentang orang-orang ini dari perusahaan besar, ketika saya mengaudit semua bank sialan ini, semua perusahaan sialan ini - saya meminta bantuan Google. Pertama-tama, saya mencari pesan kesalahan SQL, saya mencari file untuk remote control, semua itu akan memberi saya akses cepat ke shell, tempat yang paling rentan. Jangan pernah terlibat dalam pemindaian omong kosong seperti kerentanan, segera ambil sistem "oleh tenggorokan". Jadi saya selalu mencari injeksi SQL, file RF, scripting lintas situs, dan setelah saya menemukannya, saya beralih ke intelijen pasif dan OSINT - intelijen open source, untuk ini saya menggunakan Maltego. Saya bertindak seperti seorang wanita yang ingin menangkap suaminya karena pengkhianatan - Saya mencari di mana-mana! Saya mencoba mencari tahu subnet apa yang mereka miliki, di mana semua hal ini berada, saya menggunakan alat luar biasa yang disebut Firefox. Percayalah, Anda akan terkejut dengan apa yang bisa dia lakukan!

Kecerdasan pasif adalah alat utama yang harus Anda coba. Saya yakin sebagian besar dari Anda sudah menggunakannya, teknik ini pasti harus digunakan. Lalu saya mencari load balancers, sekarang saya melewati load balancers sekitar 30% dari tes penetrasi saya, ini benar-benar hal yang nyaman. Saya mengkonfigurasi beban pada "kotak" dan mencari tahu apakah itu penyeimbangan beban DNS atau HTTP. Misalnya, ketika Anda mengirim paket dan mereka tersebar di sepanjang jalur ini, ini membuat pengujian sedikit lebih sulit.



Lalu saya kembali ke peramban Firefox yang luar biasa dan mengubah isi tajuk bilah pencarian HTTP Headers secara real time. Ini memungkinkan Anda untuk mengirim beberapa permintaan umum ke server.



Jadi jika Anda mengirim paket pertama dan "5" dikembalikan kepada Anda, maka Anda mengirim paket lain ke kotak yang sama dan mengembalikan "6", sehingga Anda memiliki load balancing. Hal yang sama dengan tim penggalian dan Netcraft.

Netcraft umumnya merupakan hal yang luar biasa. Misalnya, Anda mencari sesuatu seperti "F5 BigIP" dan mendapatkan alamat IP dengan beban yang sudah seimbang. Selama pentesting, itu sangat penting bagi saya. Load balancer terdeteksi oleh skrip shell atau menggunakan Halberd, skrip Python yang melakukan hal yang sama. Jadi ini adalah hal yang sangat baik yang membantu Anda menentukan IP asli dari host yang ingin Anda serang dan yang berada di belakang load balancer.



Hal berikutnya yang saya temui adalah menentukan apakah ada IPS, atau sistem pencegahan intrusi. Semua orang tampaknya memiliki IPS, tetapi sebagian besar klien saya menggunakannya dalam mode IDS. Sama seperti tidak masuk akal untuk menggunakan alat peretasan terhadap host dengan beban seimbang, tidak masuk akal untuk menggunakannya terhadap host yang dilindungi IPS. Apakah ada di antara Anda yang menggunakan benda ini? Putuskan sambungan ke neraka karena memblokir lalu lintas! Memang, coba nonaktifkan dan lihat apa yang terjadi. Berapa banyak yang percaya bahwa sistem ini memblokir lalu lintas ilegal, sudahkah ia menulis kepada Anda tentang ini? Ini omong kosong yang sama dengan semua sistem seperti dia. Apakah Anda setuju dengan saya? Aku hanya ingin memastikan aku bukan satu-satunya yang berpikir begitu.

Jadi, saya perlu mencari tahu apakah saya perlu berperang melawan IPS, yaitu, jika tuan rumah yang diserang tidak di bawah perlindungannya, dan untuk ini saya melakukan beberapa hal yang sangat sederhana.



Saya seorang pria Linux, tetapi sekarang saya harus menggunakan Windows, jadi saya merasa sedikit kotor. Pertama-tama, saya menggunakan cURL - ini adalah alat baris perintah, atau skrip, dan perpustakaan yang meneruskan data dengan URL. Dengan cURL, saya akan mengalahkan ../../WINNT/system32/cmd.exe?d. Percayalah, serangan ini tidak berhasil sejak Yesus berjalan di bumi, jadi beri tahu saya jika Anda berhasil melakukannya.

Satu-satunya alasan ini perlu dilakukan adalah untuk mencari tahu apakah ada sesuatu yang memblokir alamat IP Anda atau mengirim paket reset ke koneksi Anda. Karena jika hal ini mengirimkan paket reset kepada Anda, Anda perlu merujuk ke cmd.exe? D, karena kemungkinan alamat Anda memblokir IPS. Berpikir dengan cara yang sama, orang-orang di purehacking.com datang dengan Deteksi Filter Aktif, atau Deteksi Filter Aktif. Ini adalah alat yang sangat bagus yang berjalan di Python, yang memungkinkan Anda untuk mengubahnya sedikit dan menyesuaikannya dengan kebutuhan Anda.

Saya sering menemukan IPS, jadi saya menggunakan 3-4 alamat IP berbeda dari mana saya menembak paket dan melihat apakah saya mendapatkan paket dump sebagai respons. Jika saya terima, itu berarti alamat IP saya diblokir. Saya perhatikan bahwa sebagian besar solusi IDS / IPS tidak memantau lalu lintas yang disandikan SSL dan lalu lintas terenkripsi lainnya. Jadi hal berikutnya yang saya lakukan adalah melihat apakah IPS dapat menangani SSL. Biarkan saya mengingatkan Anda lagi mengapa kami menggunakan Linux.



Saya membuat file xlnetd dan melakukan apa yang saya sebut "Tes SSL". Anda melihat bahwa saya membuka port 8888, dan kemudian data apa pun yang saya berikan ke host lokal 8888 jatuh ke skrip shell kecil ini, Anda melihat server = /home/j0e/security/toolz/ssl_proxy.sh.

Pada slide berikutnya Anda dapat melihat kemampuan luar biasa dari skrip saya - lihat saja skrip ini dari satu baris! Dengan demikian, lalu lintas berjalan langsung untuk membuka SSL, dan kemudian koneksi dibuat dengan target dan Deteksi Filter Aktif yang sama atau cmd.exe diluncurkan terhadap host lokal untuk menentukan apakah alamat IP saya diblokir.



Sebagian besar klien saya yang menggunakan IPS dan menggunakan mode pemblokiran tidak mendekripsi lalu lintas SSL sebelum melewati IPS atau IDS. Karena itu, jika Anda ingin membuat pelanggan Anda menggunakan uang secara menguntungkan, katakan pada mereka untuk membeli akselerator SSL. Ini mengganggu protokol SSL sebelum IPS dan mencoba untuk mendekripsi lalu lintas.
Sekarang mari kita lihat bagaimana Anda dapat menyerang host melalui Tor dan bagaimana menjalankan alat pemindaian jaringan melaluinya. Saya melakukan ini cukup sering, mulai privoxy dan dalam mode tersembunyi saya menggunakan alat seperti Nessus untuk menyerang host melalui port 8080. Dalam hal ini, perlu merekomendasikan bahwa pelanggannya memblokir node output Tor.



Sebagian besar perusahaan tidak memiliki alasan untuk memungkinkan pelanggan mereka terhubung ke jaringan mereka melalui jaringan pribadi, tetapi tidak pernah memblokir koneksi tersebut. Oleh karena itu, Anda harus memaksa perusahaan untuk memblokir node-node ini, ini yang pertama-tama saya lakukan untuk klien saya. Saya tidak memiliki slide proksi GLib karena mabuk benar-benar memengaruhi kemampuan saya untuk membuat slide ini pagi ini.

Hal terakhir yang saya lakukan adalah mengidentifikasi WAF, Firewall Aplikasi Web, atau firewall aplikasi web. Bagaimana saya bisa menentukan apakah host menggunakan WAF?



Karena saya melakukan banyak pentesting PCI, saya tahu bahwa beberapa kepala yang cerdik di kantor perwakilan PCI menyadari bahwa jika Anda memiliki aplikasi web yang rentan yang tidak ingin Anda perbaiki dan perbaiki kerentanannya, maka Anda dapat menggunakan WAF. Faktanya, mudah untuk menemukan penggunaan firewall semacam itu. Untuk melakukan ini, cukup mengirimkan host 1 permintaan nyata, satu permintaan jahat dan melihat bagaimana tanggapannya akan berbeda. Permintaan HTTP perusak yang berbahaya dapat berisi muatan yang mencakup semua jenis omong kosong seperti tanda kutip, tanda kutip, tanda tanya, minus, tanda kurung, tanda bintang, dan sebagainya.



Jadi sama sekali tidak sulit untuk mengetahui apakah Anda menyerang host yang dilindungi oleh WAF.
Jadi, Anda mengirim karakter yang tidak valid, setelah itu alat yang digambarkan dalam slide berikutnya memberi Anda semua hal aneh ini. Jadi jika Anda meminta cmd.exe dan menggunakan utilitas baris perintah grep untuk metode "501", yaitu, bukannya kesalahan 404 "tidak ditemukan", Anda akan menerima pesan kesalahan 501 - "metode permintaan tidak didukung oleh server", maka Anda mungkin menemui firewall mod_security melindungi server Apache. Versi baru dari firewall ini telah mengubah situasi, tetapi siapa yang benar-benar peduli tentang memperbarui WAF mereka?

Jadi saya menggunakan metode yang ditunjukkan pada slide berikutnya dengan cukup luas, dan juga meneruskan serangan saya melalui firewall Web Knight AQTRONIX.



Anda melihat kode 999 No Hacking di header respons, yang saya luncurkan ketika menguji - “No hacking”. Jadi, Anda mulai menambahkan hal-hal ke bilah alamat untuk melihat apa yang akan diberikan dan apakah Anda mendapatkan pesan kesalahan 404 untuk file yang tidak ada di host.



Maksud saya, jika Anda mengirim permintaan yang benar yang memberi Anda 200 pesan, dan kemudian mengirim permintaan yang salah untuk file yang tidak ada, dan server memberikan kesalahan 404, dan kemudian tiba-tiba memasukkan sesuatu untuk skrip lintas situs, server akan mengirim Anda memiliki arti kesalahan yang sangat berbeda. Ini akan menunjukkan bahwa dalam hal ini ada semacam mekanisme perlindungan.

Kembali ke permainan encoding kami. Jika Anda menentukan bahwa Anda menentang WAF, lihat apakah hal ini mendukung HEX, apakah itu menangani utf7, utf-8, base16, base64, atau campuran dari pengkodean ini. Sebagian besar WAF tidak bekerja dengan baik dengan pengkodean, terutama jika Anda mulai mencampurnya satu sama lain.

Teman baik saya, Sancho Gachi dan Windell, tahun lalu menciptakan alat Python yang disebut WAFW00F, sebuah utilitas untuk mendeteksi WAF.



Hal ini mengambil sidik jari dari header respons HTTP dan mengidentifikasi WAF. Saya sangat suka hal ini, sekarang kami sudah memiliki daftar 10 atau 12 WAF, dan terus berkembang. Hal berikutnya yang patut diperhatikan adalah WAF Fun, sebuah alat yang bekerja dengan metode brute-force pada aturan firewall aplikasi web, dan juga ditulis dengan Python.

Saya sangat mengagumi orang-orang ini dan berharap kami membuat lebih banyak kemajuan, tetapi Anda tahu bahwa kami minum sedikit, lalu bekerja, lalu minum lagi dan bekerja lagi, sehingga proses menciptakan hal-hal seperti itu tidak mudah. Tetapi saya masih berharap bahwa pada konferensi DefCon berikutnya saya dapat menunjukkan bagaimana WAF Fun bekerja menggunakan metode brute-force.

Hal lain yang menarik adalah apa yang bisa kita lakukan dengan Unicode. Benar, ini ditulis dalam Ruby, dan kita semua tahu bahwa Ruby payah.

17:00 mnt

Konferensi DEFCON 18. Anda telah menghabiskan semua uang ini, tetapi mereka terus memiliki Anda. Bagian 2



Terima kasih telah tinggal bersama kami. Apakah Anda suka artikel kami? Ingin melihat materi yang lebih menarik? Dukung kami dengan melakukan pemesanan atau merekomendasikannya kepada teman-teman Anda, diskon 30% untuk pengguna Habr pada analog unik dari server entry-level yang kami temukan untuk Anda: Seluruh kebenaran tentang VPS (KVM) E5-2650 v4 (6 Cores) 10GB DDR4 240GB SSD 1Gbps dari $ 20 atau bagaimana membagi server? (pilihan tersedia dengan RAID1 dan RAID10, hingga 24 core dan hingga 40GB DDR4).

VPS (KVM) E5-2650 v4 (6 Cores) 10GB DDR4 240GB SSD 1Gbps hingga Januari secara gratis ketika membayar untuk jangka waktu enam bulan, Anda dapat memesan di sini .

Dell R730xd 2 kali lebih murah? Hanya kami yang memiliki 2 x Intel Dodeca-Core Xeon E5-2650v4 128GB DDR4 6x480GB SSD 1Gbps 100 TV dari $ 249 di Belanda dan Amerika Serikat! Baca tentang Cara Membangun Infrastruktur kelas menggunakan server Dell R730xd E5-2650 v4 seharga 9.000 euro untuk satu sen?

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


All Articles