DE-ICE ile Hacking ve Güvenlik Pentesting

Sızma testi, kötü niyetli bir saldırgan veya bilgisayar korsanları tarafından istismar edilmeden önce bir ağı güvenlik açıkları açısından test etme eylemidir. DE-ICE, bir kurulum içeren sanal bir makinedir. Linux Slax'ı ve hem yeni başlayanlar için hem de ileri düzey uygulayıcılara kadar pratik yapmaya hizmet eder.

Slax, GNU / Linux işletim sisteminin Canlı CD'sidir. Slackware dağıtımına dayalıdır. Slax taşınabilir bir Linux işletim sistemidir, fazla yer kaplamaz ve hızlı performans sağlar.

Slax, önceden yüklenmiş bir yazılım deposu sağlar ve yöneticiler tarafından test platformları, özel dağıtımlar oluşturmak için yaygın olarak kullanılır ve sistem yöneticileri ve yazılım veya güvenlik uzmanları geliştiricileri için kurtarma araçları, sızma testi, sanal makinelerle güvenlik ve ağ simülasyonları oluşturmak için kullanışlıdır, sistem yaklaşık 190 MB yer kaplar. Bir grafik arabirim kurulu olabilir veya olmayabilir, ancak bu çok fazla yer kaplar ve sistemi yavaşlatır.

De-ICE, VirtualBox'a kurulabilir veya LiveCD olarak kullanmak üzere CD'ye yazılabilir. Farklı zorluk seviyeleri sunan birkaç versiyon var, yeni başlayanlar için versiyon DE-ICE1.100 ve şu anda en karmaşık olanı DE-ICE1.140. Bu eğitim için https: //www.vulnhub… .e-ice-s1120,10 / adresinde bulunan DE-ICE 1.120 sürümünü kullanacağız.

Bu sanal makine, bilgimizi test etmek ve herhangi bir sızma testi tekniğini veya aracını uygulamak için özel olarak hazırlanmıştır.

De-ICE PenTest Lab 1.120'nin Pentesti
Penetrasyon testi prosedürleri için DE-ICE.1.120 sürümünü kurun ve DE-ICE'ı kurmak için Linux Mint ve VirtualBox kullanıyorum. Sanal makine oluşturmanıza izin veren herhangi bir işletim sisteminden kullanılabilir.

ifconfig komutunu kullanarak bir terminalden mevcut ipimi aramaya başlıyorum ve sonuç şu:

 IP: 192.168.0.11

Daha sonra kendi seçtiğim farklı yazılımları kullanıyorum, ancak başkalarını kullanıcıya uyacak şekilde deneyebilirler.

A) kullanıyorum Tüm ana bilgisayarları taramak için Zenmap 1-254 arası


Eğitimlerde:
  • Bağlantı noktası güvenlik testi için Zenmap görsel aracı
  • Sunucu güvenliğini test etmek için VPS ve Metasploit çerçevenizdeki açık bağlantı noktalarını taramak için Nmap nasıl kullanılır?

Bağlantı noktası taraması ve bunların nasıl kullanılacağı için bazı araçlar gördük.

Zenmap'i açıyoruz, IP'yi ve parametreleri atıyorum, böylece tüm ağı tarayacak ve bana bağlı ekipmanı ve IP'leri gösterecek.

IP 192.168.0.1, 80 numaralı bağlantı noktasının açık olduğu yönlendiricinin Ağ Geçidi IP'sine ve tüm bağlantı noktalarının kapalı olduğu 192.168.0.10 numaralı yönlendiricinin IP'sine karşılık gelir.

Her bir hostun topolojisine ve özelliklerine bakarak ip 192.168.0.38'in sanal makinenin WiFi ip'si ve ip 192.168.0.40'ın ise ethernet bağlantısı olduğunu tespit ediyorum.

Sanal makinenin veya VPS'nin IP'sine erişiyorum ve ürünleri kaydetmek için bir web sitesi buluyorum.

Prensipte [color = # b22222] ciddi bir başarısızlık [/ color] bu web sitesinin herhangi bir kullanıcı erişim kontrolüne sahip olmamasıdır, bu şekilde ne kadar olursa olsun ağın tüm kullanıcılarına erişebilir. bir intranette.

Zenmap'ten bu ana bilgisayar için taranan bağlantı noktalarını da gözlemliyorum.

Diğerlerinin yanı sıra Hydra veya John the Ripper gibi araçlarla kullanıcı ve parolayı zorlayarak kaba kuvvet saldırılarını denemek için açık birkaç bağlantı noktası buluyorum.

Her bir ana bilgisayarı ve kiminle bağlantılı olduğunu analiz etmek için topolojiyi de görebiliriz.

Böylece ekipmanın özelliklerini, ağın nasıl yapılandırıldığını ve hangi hostlara saldırabileceğimizi görebiliriz.

B) Güvenlik açığı taraması


Güvenlik açığı taraması yapmak için OSWAP ZAP kullanıyorum. Bu aracı öğreticide gördük:
  • ZAP ile bir web sitesi güvenlik açığını tarayın

Bulunan güvenlik açıklarının raporlarını sunarak bir web sitesinin güvenlik açıklarını taramamızı sağlar.
Filtre ve aktif ve pasif tarama kurallarını kullanarak web'in güvenlik açıklarını bulabiliriz. Ayrıca bize web'in içerdiği tüm sayfaları gösterir, hatta url tarafından bir tür parametre alan sayfaların hangileri olduğunu gösterir.

Taramadan sonra PHP'de programlanmış sayfalarla web'in yapısını ve uygulanan filtrelere göre güvenlik açıklarını görebiliyorum.

Ürün ekleme sayfasının POST yöntemiyle parametre aldığını görüyoruz ve aldığı alanları veya değişkenleri de görebiliyoruz.

C) XSS Kod Enjeksiyonu


Ardından ürün eklemek (Ürün Ekle) sayfasına gidip başvuru yapacağız. XSS enjeksiyon teknikleri bu tür saldırılara karşı savunmasız olup olmadığını görmek için html ve Javascript kodunu enjekte ediyorum.

İlk test olarak ürün açıklamasına harici bir resmin html kodunu ekliyorum, Google'da arama yaparak istediğinizi seçebilirsiniz.

 
Görüntü savunmasızsa, veritabanına kaydedilecek ve atadığımız kod için combo'da aramamız gereken ürünler listesinde görüntülenecektir, sonuç aşağıdaki gibidir:

[color = # b22222] Bağlantılar dahil herhangi bir html veya javascript kodunu girebildiğimiz için XSS'ye [/ color] karşı savunmasızdır.

Açıklama alanına bir iframe ekliyoruz ve kaydediyoruz:


Sonra 003 koduna göre ürünü ararız ve sonucu görebiliriz.

Bu tekniği kullanarak, oturum açmayı simüle eden ve verilerin aslında harici bir veritabanına kaydedildiği bir form girebiliriz. Herhangi bir ürün kayıt alanına aşağıdaki html kodunu eklersek, başka bir web sitesine yönlendirmeye neden olan ürünlerin listesini devre dışı bırakabiliriz:

 
Birisi ürün listesini görmeye çalıştığında, bu durumda Google belirtilen web sitesine otomatik olarak yönlendirilecektir.

NS) SQL enjeksiyonu Veritabanı erişimi


Sqlmap, öğreticilerdeki veritabanı sunucularının güvenliğini test etmek için çok kullanışlı bir araçtır:
  • SQLMAP SQL Enjeksiyon aracı ve Etik veritabanı korsanlığı
  • BadStore: Pentest testleri için web.

Aşağıdaki komutları kullanarak herhangi bir veri tabanının mevcut olup olmadığını belirlemek için sqlmap kullanıyorum.

 python sqlmap.py -u "http://192.168.0.40/products.php?id=1" --dbs

Sunucunun php 5.2.9 kullanan Apache 2.2.11 olduğunu ve veritabanı sunucusunun MySQL 5.0.12 olduğunu görebiliyoruz, ayrıca temel sunucu MySQL verilerinin yapılandırması olanlar da dahil olmak üzere mevcut tüm veritabanlarını da görüyoruz.

Ardından, web'de girdiğimiz ürünler tablosuna sahip olduğunu düşündüğüm ürün veritabanında tablolar olup olmadığını doğrulamak için komutu kullanıyorum.

 python sqlmap.py -u "http://192.168.0.40/products.php?id=1" --tables -D ürünleri

Web sitesinin kullandığı tabloyu bulduk. Aşağıda aşağıdaki komutla ürünler tablosuna bakabilirim

 python sqlmap.py -u "http://192.168.0.50/products.php?id=1" --columns -D merch -T ürünleri

Yönetici bulmaya çalışan Mysql hesabı olan kullanıcıları bulmaya çalışıyorum, varsayılan olarak sqlmap-dev / txt / wordlist.zip klasöründe bulunan sqlmap veri sözlüğünü kullanıyorum

Bu dizinde birkaç sözlük bulacağız, sqlmap dosyayı açmaktan ve kullanmaktan, MySQL sunucusunda yapılandırılmış kullanıcı adlarını keşfedebilir ve alabilirsem test etmek için kullanıcıları ve şifreleri aramak için sorumlu olacak, bunun için kullanıyorum aşağıdaki komut:

 python sqlmap.py -u "http://192.168.0.40/products.php?id=1" --users --passwords

Daha sonra, kimlerin yönetici olduğunu ve erişim kodlarının neler olduğunu belirlemek için her kullanıcının erişim ayrıcalıklarının ne olduğunu görmek için kullanıcı türünü ararım.

 python sqlmap.py -u "http://192.168.0.65/products.php?id=1" -f -b --current-user --is-dba --is-dba --privileges --dbs - dump

Yürütme sonucunda her kullanıcının veritabanlarına erişim şifreleri ve hangi ayrıcalıklara sahip olduğu ortaya çıkar.

Tarama bittiğinde, listenin sonunda her kullanıcının ayrıcalıklarını görebilir ve hangi kullanıcıların yönetici olduğunu belirleyebiliriz.

Birkaç yönetici kullanıcı olduğunu görüyorum, bu yüzden kullanıcıyı alacağım jdavenport kim yönetici ve şifresi babyl0n, sisteme erişmeyi denemek için

Ardından, elde edilen verilerle SSH bağlantı noktası 22'yi ihlal etmeye çalışıyorum:

Yönetici olarak erişime sahip olduğum ve sunucunun tam kontrolüne sahip olduğum görülebilir. cd / komutunu kullanarak kök dizine gidiyoruz ve oradan diğer kullanıcıların klasörlerini ve hesaplarını görme gibi herhangi bir sektöre erişebiliyoruz.

Elde ettiğimiz kullanıcı adı ve şifre kombinasyonu ile SSH üzerinden erişim sağlayarak. Zaten bir kök veya yönetici kullanıcımız olmasına rağmen, bir sonraki hedefimiz ayrıcalık yükseltme olacaktır.
İzinleri değiştirmek için /etc dizininde bulunan izinleri, kullanıcıları, grupları ve erişim kodlarını içeren dosyalara başvurmalıyız.

  • Anahtarları dizinde bulunan Kullanıcı ve Gruplar: / etc / passwd
  • Dizindeki gruplar ve izinler: / etc / sudores

Kullanıcıların ve sistem anahtarlarının dosyasına aşağıdaki komutla erişebiliriz:

 nano / vb / şifre

Aralarındaki dizinleri gezebiliriz, analiz ettiğimiz dosyaları web üzerinde görebilir ve daha sonra ftp üzerinden veya ssh konsolundan indirebiliriz, düzenlemek istersek veya incelemek istersek yerel dizinimize kopyalayabiliriz. daha güvenli hale getirmek ve tekrar test etmek için kod.

Artık bir yöneticinin erişim verilerini bildiğimize göre sanal makineye giriş yapabiliriz.

SQL enjeksiyon saldırılarından nasıl kaçınılır
Burada tüm sunucuyu aldığımız SQL enjeksiyon sorunu nedeniyle web'in güvenliği çok önemlidir.

URL'lerde parametre olarak neyin gönderildiğini kontrol etmeniz gerekir, örneğin:

 http://192.168.0.40/products.php?id=1
Sql sorgusunu yaparken, karşılık gelmeyen karakter veya parametrelerin girilebildiğinden emin olmalıyız, örneğin:
 $ sql = SELECT * WHERE user = 'jose' ve password = '12345' OR '1' = '1';
Cümle, kullanıcı tablosunda kullanıcı ve şifre olup olmadığını, parametre olarak gönderdiğimiz bir kullanıcı adı ile kayıtlı biri olup olmadığını ve şifresinin '12345 olup olmadığını veya 1'in olup olmadığını araştırdığımız bir kullanıcı oturum açma işlemine çok benzer. 1' ile aynı.

Bu ifade, eğer anahtar doğru değilse 1 eşittir 1 ifadesinin doğru olduğunu ve şifreyi bilmeden sisteme girebileceğimizi belirler.

Bir yöntem, örneğin PHP'de değişkenlerden kaçmaktır:

 mysql_real_escape_string ($ _ POST ['kullanıcı']);
Parametreleri url ile göndermemiz gerekiyorsa, onları md5, sha1 veya base64 kullanarak şifrelemeliyiz ve parametrenin son biçiminin doğrudan veri tabanındaki veriler veya alanlarla ilgili olmaması için çeşitli şifreli veriler gönderebiliriz.

Ayrıca port taramasından ve aynı IP'den çoklu bağlantılardan kaçınan bir sistem olmalı, bu durumda iptables'lı bir güvenlik duvarı ve bir saldırı dedektörü yeterli olacaktır.

Kullanabileceğimiz bir araç, PortNöbetçi veya Fail2Ban Bir linux deposundan yüklenir ve yalnızca hangi bağlantı noktalarının korunması gerektiğini yapılandırmamız gerekir, bu bağlantı noktalarından biri taranırsa, bize saldıran IP'yi otomatik olarak engeller.

Bu Eğitimi beğendiniz ve yardım ettiniz mi?Yazara olumlu puan vermek için bu düğmeye basarak yazarı ödüllendirebilirsiniz.
wave wave wave wave wave