Memeriksa kerentanan situs apa pun yang menggunakan Nikto

Halo semuanya! Pada bulan Maret, OTUS meluncurkan Lokakarya Kali Linux baru . Untuk mengantisipasi dimulainya kursus, kami telah menyiapkan terjemahan materi yang bermanfaat untuk Anda. Kami juga ingin mengundang semua orang ke pelajaran gratis tentang topik: "Serangan Denial of Service dan pertahanan terhadap mereka . "





Sebelum menyerang situs apa pun, peretas atau pentester terlebih dahulu menyusun daftar tujuan. Setelah dia melakukan pengintaian yang baik dan menemukan kelemahan untuk "membidik," dia akan memerlukan alat pemindaian server web seperti Nikto, yang akan membantunya menemukan kerentanan - vektor serangan potensial.

Nikto adalah pemindai server web sumber terbuka sederhana yang memindai situs web dan melaporkan kerentanan yang ditemukan yang dapat dieksploitasi atau diretas. Selain itu, ini adalah salah satu alat yang paling banyak digunakan untuk memindai situs web untuk kerentanan di seluruh industri, dan di banyak kalangan dianggap sebagai standar industri.

Terlepas dari kenyataan bahwa alat ini sangat efektif, ia tidak bertindak secara diam-diam. Setiap situs dengan sistem deteksi intrusi atau langkah-langkah keamanan lainnya akan memahami bahwa itu sedang dipindai. Nikto dirancang untuk menguji keamanan, dan tidak ada yang memikirkan kerahasiaan kerjanya.

Cara menggunakan Nikto


Jika Anda hanya menjalankan Nikto di situs web target, Anda mungkin tidak mengerti apa yang harus dilakukan dengan informasi yang diperoleh setelah pemindaian. Nikto sebenarnya lebih seperti penunjuk laser, yang memerlukan suntikan, dan setelah beberapa saat Anda akan melihat cara kerjanya.

Untuk memulai, mari kita bicara tentang target. Targetnya dapat berupa hampir semua tempat di mana peretas dapat menyerang, seperti printer jaringan atau server web. Ketika kita beralih menggunakan Nikto beberapa saat kemudian, kita perlu menyediakannya dengan salah satu dari tiga jenis informasi: alamat IP untuk layanan lokal, domain serangan, atau situs web SSL / HTTPS.

Sebelum Anda mulai memindai dengan Nikto, yang terbaik untuk melakukan eksplorasi awal dengan alat terbuka seperti Maltego. Alat semacam itu dapat berguna dalam membuat profil dan menyusun daftar tujuan yang lebih spesifik untuk difokuskan. Setelah Anda melakukan ini, Anda dapat menggunakan Nikto untuk mencari potensi kerentanan untuk target dari daftar Anda.

Jika Anda beruntung, kerentanan dengan eksploitasi terkenal akan ditemukan, yang berarti bahwa sudah ada alat yang akan membantu untuk mengeksploitasi titik lemah ini. Menggunakan alat yang sesuai yang secara otomatis mengeksploitasi kerentanan, seorang hacker dapat memperoleh akses ke target untuk melakukan sejumlah serangan tersembunyi, seperti, misalnya, menambahkan kode berbahaya.

Langkah 1: Instal Nikto


Jika Anda menggunakan Kali Linux, Nikto akan diinstal sebelumnya, jadi Anda tidak perlu mengunduh dan menginstal apa pun. Ini akan ditempatkan di kategori Analisis Kerentanan. Jika karena alasan tertentu Anda tidak memilikinya, Anda dapat mengunduh Nikto dari repositori di GitHub atau cukup menggunakan perintah apt install.

apt install nikto

Jika Anda menggunakan Mac, Anda dapat menggunakan Homebrew untuk menginstal Nikto.

brew install nikto

Langkah 2: Kenali Nikto


Sebelum memindai server web dengan Nikto, gunakan parameter -Help untuk melihat semua yang dapat Anda lakukan dengan alat ini:

nikto -Help

Options:
       -ask+               Whether to ask about submitting updates
                               yes   Ask about each (default)
                               no    Don't ask, don't send
                               auto  Don't ask, just send
       -Cgidirs+           Scan these CGI dirs: "none", "all", or values like "/cgi/ /cgi-a/"
       -config+            Use this config file
       -Display+           Turn on/off display outputs:
                               1     Show redirects
                               2     Show cookies received
                               3     Show all 200/OK responses
                               4     Show URLs which require authentication
                               D     Debug output
                               E     Display all HTTP errors
                               P     Print progress to STDOUT
                               S     Scrub output of IPs and hostnames
                               V     Verbose output
       -dbcheck           Check database and other key files for syntax errors
       -evasion+          Encoding technique:
                               1     Random URI encoding (non-UTF8)
                               2     Directory self-reference (/./)
                               3     Premature URL ending
                               4     Prepend long random string
                               5     Fake parameter
                               6     TAB as request spacer
                               7     Change the case of the URL
                               8     Use Windows directory separator (\)
                               A     Use a carriage return (0x0d) as a request spacer
                               B     Use binary value 0x0b as a request spacer
        -Format+           Save file (-o) format:
                               csv   Comma-separated-value
                               htm   HTML Format
                               nbe   Nessus NBE format
                               sql   Generic SQL (see docs for schema)
                               txt   Plain text
                               xml   XML Format
                               (if not specified the format will be taken from the file extension passed to -output)
       -Help              Extended help information
       -host+             Target host
       -404code           Ignore these HTTP codes as negative responses (always). Format is "302,301".
       -404string         Ignore this string in response body content as negative response (always). Can be a regular expression.
       -id+               Host authentication to use, format is id:pass or id:pass:realm
       -key+              Client certificate key file
       -list-plugins      List all available plugins, perform no testing
       -maxtime+          Maximum testing time per host (e.g., 1h, 60m, 3600s)
       -mutate+           Guess additional file names:
                               1     Test all files with all root directories
                               2     Guess for password file names
                               3     Enumerate user names via Apache (/~user type requests)
                               4     Enumerate user names via cgiwrap (/cgi-bin/cgiwrap/~user type requests)
                               5     Attempt to brute force sub-domain names, assume that the host name is the parent domain
                               6     Attempt to guess directory names from the supplied dictionary file
       -mutate-options    Provide information for mutates
       -nointeractive     Disables interactive features
       -nolookup          Disables DNS lookups
       -nossl             Disables the use of SSL
       -no404             Disables nikto attempting to guess a 404 page
       -Option            Over-ride an option in nikto.conf, can be issued multiple times
       -output+           Write output to this file ('.' for auto-name)
       -Pause+            Pause between tests (seconds, integer or float)
       -Plugins+          List of plugins to run (default: ALL)
       -port+             Port to use (default 80)
       -RSAcert+          Client certificate file
       -root+             Prepend root value to all requests, format is /directory
       -Save              Save positive responses to this directory ('.' for auto-name)
       -ssl               Force ssl mode on port
       -Tuning+           Scan tuning:
                               1     Interesting File / Seen in logs
                               2     Misconfiguration / Default File
                               3     Information Disclosure
                               4     Injection (XSS/Script/HTML)
                               5     Remote File Retrieval - Inside Web Root
                               6     Denial of Service
                               7     Remote File Retrieval - Server Wide
                               8     Command Execution / Remote Shell
                               9     SQL Injection
                               0     File Upload
                               a     Authentication Bypass
                               b     Software Identification
                               c     Remote Source Inclusion
                               d     WebService
                               e     Administrative Console
                               x     Reverse Tuning Options (i.e., include all except specified)
       -timeout+          Timeout for requests (default 10 seconds)
       -Userdbs           Load only user databases, not the standard databases
                               all   Disable standard dbs and load only user dbs
                               tests Disable only db_tests and load udb_tests
       -useragent         Over-rides the default useragent
       -until             Run until the specified time or duration
       -update            Update databases and plugins from CIRT.net
       -useproxy          Use the proxy defined in nikto.conf, or argument http://server:port
       -Version           Print plugin and database versions
       -vhost+            Virtual host (for Host header)
   		+ requires a value

Langkah 3: Gunakan Sintaks Dasar


Seperti yang Anda lihat dari langkah sebelumnya, Nikto memiliki banyak kasus penggunaan, tetapi untuk tujuan kami, kami akan menggunakan sintaks dasar <IP atau nama host> dengan alamat IP atau nama host sebenarnya tanpa tanda kurung sudut.

nikto -h <IP or hostname>

Namun, Nikto dapat memindai SSL dan port 443, yang digunakan oleh situs HTTPS (HTTP menggunakan port 80 secara default). Dengan demikian, kami tidak terbatas hanya untuk merayapi situs lama, kami dapat menilai kerentanan situs menggunakan SSL, yang saat ini hampir merupakan persyaratan wajib untuk pengindeksan dalam hasil pencarian.

Jika kita tahu bahwa situs target memiliki SSL, kita dapat menentukan ini di Nikto untuk menghemat waktu perayapan dengan menambahkan -ssl di akhir perintah.

nikto -h <IP or hostname> -ssl

Langkah 4: Pindai Situs dengan SSL


Misalnya, mari kita mulai dengan memindai situs pbs.orguntuk melihat jenis informasi yang dapat dijelajahi Nikto. Setelah terhubung ke port 443, kami melihat beberapa informasi yang berguna tentang enkripsi dan detail lainnya, seperti, misalnya, bahwa server berjalan di nginx, tetapi tidak banyak yang menarik bagi kami di sini.

nikto -h pbs.org -ssl

- Nikto v2.1.6
------------------------------------------------------------------------------
- STATUS: Starting up!
+ Target IP:			54.225.198.196
+ Target Hostname:		pbs.org
+ Traget Port:			443
------------------------------------------------------------------------------
+ SSl Info:			Subject:	/CN=www.pbs.org
					Altnames:	account.pbs.org, admin.pgs.org, dipsy-tc.pbs.org, docs.pbs.org, ga.video.cdn.pbs.org, git.pbs.org, heart.ops.pbs.org, hub-dev.pbs.org, image.pbs.org,
                    			jaws..pbs.org, kids.pbs.org, koth-qa.svp.pbs.org, login.pbs.org, ops.pbs.org, pbs.org, player.pbs.org, projects.pbs.org, sentry.pbs.org, teacherline.pbs.org,
                                urs.pbs.org, video.pbs.org, weta-qa.svp.pbs.org, whut-qa.svp.pbs.org, wnet.video-qa.pbs.org, wnet.video-staging.pbs.org, www-cache.pbs.org, www.pbs.org
                    Ciphers:	ECDHE-RSA-AES128-GCM-SHA256
                    Issuer:		/C-US/0=Let's Encrypt/CN=Let's Encrypt Authority X3
+ Start Time:			2018-12-05 23:34:06 (GMT-8)
------------------------------------------------------------------------------
+ Server: nginx
+ The anti-clickjacking X-Frame-Options header is not present.
+ The X-XSS-Protection header is not defined. This header can hint to the user agent to protect against some forms of XSS
+ Uncommon header 'x-pbs-fwsrvname' found, with contents: fwcacheproxy1
+ The site uses SSL and the Strict-Transport-Security HTTP header is not defined.
+ The X-Content-Type-Options header is not set. This could allow the user agent to render the content of the site in a different fashion to the MIME type
+ Root page / redirects to: https://www.pbs.org/
+ No CGI Directories found (use '-C all' to force check all possible dirs)
+ RC-1918 IP address found in the 'x-pbs-appsvrip' header: The IP is "10.137.181.52".
+ Uncommon header 'x-cache-fs-status' found, with contents: EXPIRED
+ Uncommon header 'x-pbs-appsvrname' found, with contents: fwcacheproxy1
+ Uncommon header 'x-pbs-appsvrip' found, with contents: 10.137.181.52
+ Server leaks inodes via ETags, header found with file /pbs.org.zip, fields: 0x5b96537e 0x1678
+ 7446 requests: 0 error(s) and 10 item(s) reported on remote host
+ End Time:				2018-12-06 00:30:29 (GMT-8) (3383 seconds)
------------------------------------------------------------------------------
+ 1 host(s) tested

Langkah 5: Pindai Alamat IP


Sekarang kita telah melakukan pemindaian cepat situs web, kita dapat mencoba menggunakan Nikto di jaringan lokal untuk menemukan server yang disematkan, seperti halaman login router atau layanan HTTP di komputer lain, yang hanya merupakan server tanpa situs web. Untuk mengetahui alamat IP yang akan kita gunakan ifconfig.

Alamat IP yang kita butuhkan merujuk ke inet. Di atasnya kita bisa menggunakan ipcalcuntuk mendapatkan jangkauan jaringan. Jika Anda tidak memiliki ipcalc, Anda dapat menginstalnya menggunakan perintah apt install ipcalc, lalu coba lagi. Rentangnya akan setelah "Jaringan", dalam kasus saya ini adalah 192.168.0.0/24.

ifconfig

en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST>  mtu 1500
        inet 192.168.0.48  netmask 0xffffff00  broadcast 192.168.0.255
        inet6 XXXX::XXX:XXXX:XXXX:XXXX%en0  prefixlen 64  secured scopeid 0x8
        ether XX:XX:XX:XX:XX:XX  txqueuelen 1000  (Ethernet)
        inet6 XXXX::XXX:XXXX:XXXX:XXXX%en0  prefixlen 64 autoconf secured
        inet6 XXXX::XXX:XXXX:XXXX:XXXX%en0  prefixlen 64 autoconf temporary
        nd6 options=201<PERFORMNUD,DAD>
        media: autoselect
        status: active

en2: flags=8863<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST>  mtu 1500
        options=60<TS04,TS06>
        ether XX:XX:XX:XX:XX:XX
        media: autoselect <full-duplex>
        status: inactive

Sekarang kami ingin memulai Nmap untuk menemukan layanan yang berfungsi dalam jangkauan jaringan ini. Mari kita pindai port 80 menggunakan jangkauan kita, untuk ini kita akan menambahkan -oG (keluaran grepable) untuk mendapatkan hanya host yang aktif dan berjalan, yaitu yang merespons dengan mengatakan bahwa port 80 terbuka. Kemudian kita akan menyimpan semua ini dalam file, yang akan saya beri nama nullbyte.txt, Anda, pada gilirannya, dapat menamainya apa pun yang Anda suka.

ipcalc 192.168.0.48

Address:   192.168.0.48         11000000.10101000.00000000. 00110000
Netmask:   255.255.255.0 = 24   11111111.11111111.11111111. 00000000
Wildcard:  0.0.0.255            00000000.00000000.00000000. 11111111
=>
Network:   192.168.0.0/24       11000000.10101000.00000000. 00000000
HostMin:   192.168.0.1          11000000.10101000.00000000. 00000001
HostMax:   192.168.0.254        11000000.10101000.00000000. 11111110
Broadcast: 192.168.0.255        11000000.10101000.00000000. 11111111
Hosts/Net: 254                   Class C, Private Internet

Ada trik kecil yang akan membantu mengirim semua host langsung ke Nikto untuk pemindaian. Kami menggunakan catuntuk membaca input yang disimpan dalam dokumen kami nullbyte.txt(atau seperti yang Anda sebut sendiri). Setelah itu, kami menggunakan awk , alat khusus di Linux yang akan membantu Anda menemukan templat berikutnya, di mana Up berarti host sudah habis, dan mencetak $ 2 berarti Anda perlu mencetak kata kedua pada setiap baris, yaitu, hanya alamat IP. Kemudian, kami akan mengirim data yang diterima ke file bernama targetIP.txt(atau apa pun yang Anda inginkan).

cat nullbyte.txt | awk '/Up$/{print $2}' | cat >> targetIP.txt

Sekarang kita dapat melihat isi file baru kita dengan cat untuk melihat semua alamat IP yang memiliki port 80 terbuka.

cat targetIP.txt

192.168.0.1
192.168.0.2
192.168.0.4
192.168.0.5
192.168.0.11
192.168.0.24
192.168.0.31
192.168.0.48
192.168.0.60

Format ini ideal untuk Nikto, karena dapat dengan mudah menafsirkan file tersebut. Dengan demikian, kami dapat mengirim output ini ke Nikto dengan perintah berikut.

nikto -h targetIP.txt

Hasilnya akan sama dengan yang kami dapatkan saat memindai dengan SSL.

Langkah 6: Pindai Situs HTTP


Kami telah memindai situs web dan alamat IP aman di jaringan lokal, sekarang saatnya mencari domain web tidak aman yang menggunakan port 80. Untuk contoh ini, saya menggunakan afl.com.au , yang tidak memiliki SSL pada saat saya memindai ini.

nikto -h www.afl.com.au

- Nikto v2.1.6
---------------------------------------------------------------------------
+ Target IP:          159.180.84.10
+ Target Hostname:    www.afl.com.au
+ Target Port:        80
+ Start Time:         2018-12-05 21:48:32 (GMT-8)
---------------------------------------------------------------------------
+ Server: instart/nginx
+ Retried via header: 1.1 varnish (Varnish/6.1), 1.1 e9ba0a9a729ff2960a04323bf1833df8.cloudfront.net (CloudFront)
+ The anti-clickjacking X-Frame-Options header is not present.
+ The X-XSS-Protection header is not defined. This header can hint to the user agent to protect against some forms of XSS
+ Uncommon header 'x-cache' found, with contents: Miss from cloudfront
+ Uncommon header 'x-instart-cache-id' found, with contents: 17:12768802731504004780::1544075250
+ Uncommon header 'v-cache-hit' found, with contents: Hit
+ Uncommon header 'x-amz-cf-id' found, with contents: Dr-r6OwO5kk9ABt4ejzpc7R7AIF6SuH6kfJHQgP0v6xZoHwMLE55rQ==
+ Uncommon header 'x-instart-request-id' found, with contents: 12814413144077601501:BEQ01-CPVNPPRY18:1552504721:0
+ Uncommon header 'x-oneagent-js-injection' found, with contents: true
+ Uncommon header 'grace' found, with contents: cache
+ The X-Content-Type-Options header is not set. This could allow the user agent to render the content of the site in a different fashion to the MIME type
+ Uncommon header 'x-ruxit-js-agent' found, with contents: true
+ Cookie dtCookie created without the httponly flag
+ Server banner has changed from 'instart/nginx' to 'nginx' which may suggest a WAF, load balancer or proxy is in place
+ No CGI Directories found (use '-C all' to force check all possible dirs)
+ Entry '/sites/' in robots.txt returned a non-forbidden or redirect HTTP code (200)
+ Entry '/search/' in robots.txt returned a non-forbidden or redirect HTTP code (200)
+ Entry '*.mobileapp' in robots.txt returned a non-forbidden or redirect HTTP code (400)
+ Entry '*.liveradio' in robots.txt returned a non-forbidden or redirect HTTP code (400)
+ Entry '*.smartmobile' in robots.txt returned a non-forbidden or redirect HTTP code (400)
+ Entry '*.responsive' in robots.txt returned a non-forbidden or redirect HTTP code (400)
+ Entry '/stats?*/' in robots.txt returned a non-forbidden or redirect HTTP code (200)
+ "robots.txt" contains 8 entries which should be manually viewed.
+ OSVDB-3092: /sitemap.xml: This gives a nice listing of the site content.
+ OSVDB-3092: /psql_history: This might be interesting...
+ OSVDB-3092: /global/: This might be interesting...
+ OSVDB-3092: /home/: This might be interesting...
+ OSVDB-3092: /news: This might be interesting...
+ OSVDB-3092: /search.vts: This might be interesting...
+ OSVDB-3092: /stats.htm: This might be interesting...
+ OSVDB-3092: /stats.txt: This might be interesting...
+ OSVDB-3092: /stats/: This might be interesting...
+ OSVDB-3092: /Stats/: This might be interesting...
+ OSVDB-3093: /.wwwacl: Contains authorization information
+ OSVDB-3093: /.www_acl: Contains authorization information
+ OSVDB-3093: /.htpasswd: Contains authorization information
+ OSVDB-3093: /.access: Contains authorization information
+ OSVDB-3093: /.addressbook: PINE addressbook, may store sensitive e-mail address contact information and notes
+ OSVDB-3093: /.bashrc: User home dir was found with a shell rc file. This may reveal file and path information.
+ OSVDB-3093: /.bash_history: A user's home directory may be set to the web root, the shell history was retrieved. This should not be accessible via the web.
+ OSVDB-3093: /.forward: User home dir was found with a mail forward file. May reveal where the user's mail is being forwarded to.
+ OSVDB-3093: /.history: A user's home directory may be set to the web root, the shell history was retrieved. This should not be accessible via the web.
+ OSVDB-3093: /.htaccess: Contains configuration and/or authorization information
+ OSVDB-3093: /.lynx_cookies: User home dir found with LYNX cookie file. May reveal cookies received from arbitrary web sites.
+ OSVDB-3093: /.mysql_history: Database SQL?
+ OSVDB-3093: /.passwd: Contains authorization information
+ OSVDB-3093: /.pinerc: User home dir found with a PINE rc file. May reveal system information, directories and more.
+ OSVDB-3093: /.plan: User home dir with a .plan, a now mostly outdated file for delivering information via the finger protocol
+ OSVDB-3093: /.proclog: User home dir with a Procmail rc file. May reveal mail traffic, directories and more.
+ OSVDB-3093: /.procmailrc: User home dir with a Procmail rc file. May reveal subdirectories, mail contacts and more.
+ OSVDB-3093: /.profile: User home dir with a shell profile was found. May reveal directory information and system configuration.
+ OSVDB-3093: /.rhosts: A user's home directory may be set to the web root, a .rhosts file was retrieved. This should not be accessible via the web.
+ OSVDB-3093: /.sh_history: A user's home directory may be set to the web root, the shell history was retrieved. This should not be accessible via the web.
+ OSVDB-3093: /.ssh: A user's home directory may be set to the web root, an ssh file was retrieved. This should not be accessible via the web.
+ OSVDB-5709: /.nsconfig: Contains authorization information
+ /portal/changelog: Vignette richtext HTML editor changelog found.
+ 7587 requests: 4 error(s) and 55 item(s) reported on remote host
+ End Time:           2018-12-05 22:42:41 (GMT-8) (3249 seconds)
---------------------------------------------------------------------------
+ 1 host(s) tested

Dari informasi di atas, kami memahami bahwa ada server Varnish dan beberapa tajuk yang dapat memberi tahu bagaimana situs web dikonfigurasi. Namun, informasi yang lebih berguna ditemukan direktori yang dapat membantu menangkap file konfigurasi yang mengandung kredensial atau hal-hal lain yang tidak dikonfigurasi dengan benar dan tidak sengaja tersedia.

Elemen yang diawali dengan OSVDB adalah kerentanan yang dilaporkan pada Basis Data Kerentanan Sumber Terbuka (situs yang ditutup pada 2016). Ini mirip dengan database kerentanan lainnya seperti SecurityFocus , Microsoft Technet, dan Kerentanan dan Eksposur (https://cve.mitre.org/). Secara pribadi, Database Kerentanan Nasional lebih dekat dengan saya .

Meskipun pemindaian kami tidak mengungkapkan kerentanan kritis yang dapat dieksploitasi, Anda dapat menggunakan alat bantu CVE untuk menerjemahkan pengidentifikasi OSVDB ke dalam catatan CVE sehingga Anda dapat menggunakan salah satu situs yang tercantum di atas.

Misalkan Anda menemukan sesuatu yang perlu ditelusuri, misalnya CVE-2018-10933 , kerentanan Libssh, yang telah kita bahas lebih detail sebelumnya . CVE berisi informasi tentang cara mengeksploitasinya, seberapa serius kerentanannya (misalnya, kerentanan kritis) dan beberapa informasi lain yang dapat membantu menentukan vektor serangan. Jika ini sesuatu yang bermanfaat, Anda dapat mencari dengan Metasploit, karena seseorang kemungkinan besar telah mengembangkan modul yang akan membantu dengan mudah mengeksploitasi kerentanan ini.



Langkah 7: Pindai dengan Metasploit


Salah satu hal terbaik tentang Nikto adalah Anda cukup mengekspor informasi yang Anda terima dari pemindaian ke format yang dapat dibaca Metasploit. Untuk melakukan ini, cukup gunakan perintah untuk melakukan pemindaian di atas, tetapi tambahkan flag -Format msf + di akhir . Format ini dapat membantu Anda dengan cepat mencocokkan data yang diperoleh melalui exploit.

nikto -h <IP or hostname> -Format msf+

Jadi, dalam panduan hari ini, kami beralih dari menetapkan target ke menemukan kerentanan di dalamnya, dan kemudian mengaitkan kerentanan dengan eksploitasi sehingga kami tidak harus melakukan semua pekerjaan secara manual. Karena Nikto tidak bekerja secara diam-diam, sebaiknya jalankan pemindaian ini melalui VPN, Tor, atau jenis layanan lain sehingga alamat IP Anda tidak ditandai sebagai mencurigakan.

→  Daftar untuk mendapat pelajaran gratis

All Articles