Anonimato su Kali Linux

Anonimato su Kali Linux

L’anonimato è uno degli elementi più importanti durante la navigazione o l’esecuzione di alcuni test.

Anche se l’anonimato completo è un errore, grazie ad alcune accortezze è possibile diminuire il rischio di tracciabilità.

In questo articolo vedremo come rendere anonima ogni azione effettuata dal nostro terminale.

Proxychains & TOR

L’unione di questi due elementi riesce a rendere le nostre azioni decisamente meno tracciabili:

  • Proxychains: Trasmette le connessioni avviate dalle applicazioni tramite server proxy come SOCKS4, SOCKS5 e HTTP (S).
  • TOR: Servizio proxy che permette l’accesso alla rete TOR, clicca qui per più informazioni.

Installazione e configurazione TOR

TOR è già installato in kali linux in caso contrario digitare il comando:

sudo apt-get install tor

Per gestire il funzionamento del servizio TOR eseguire in terminale i seguenti comandi:

Determinare lo stato di attività del servizio:

service tor status

Bloccare il servizio:

service tor stop

Avviare il servizio:

service tor start

Ricaricare il servizio (assegna così un nuovo ip):

service tor force-reload

Installazione e configurazione Proxychains

Proxychains è già installato in kali linux in caso contrario digitare il comando:

sudo apt-get install proxychains

Determiniamo la posizione dei file di configurazione di proxychains con il comando:

locate proxychains
In evidenza posizione file di configurazione

Una volta determinata la posizione del file di configurazione, eseguiamo il comando:

leafpad /etc/proxychains.conf

Aggiungiamo in basso la stringa (nel caso in cui non sia già presente): socks4 127.0.0.1 9050

Salviamo e a questo punto possiamo testare se proxychains e TOR funzionano digitando i comandi:

Per avere in output il nostro ip reale:

curl ifconfig.me

Per avere come risultato il nostro ip mascherato da TOR:

proxychains curl ifconfig.me

Con questo è facile intuire come proxychains va utilizzato. Basta inserire prima del comando la voce proxychains, ad esempio:

proxychains nmap scanme.nmap.org

Avviare ogni connessione http sotto proxy TOR:

Entriamo in impostazioni di rete:

Clicchiamo sull’ingranaggio alla destra di Proxy di rete.

Settiamo il proxy di rete su Manuale e inseriamo in Host SOCKS l’ip: 127.0.0.1 e la porta 9050

Per determinare se l’ip è stato cambiato basta visitare questa pagina: Clicca Qui

Owasp ZAP

Owasp ZAP

Cos’è OWASP ZAP

Open Web Application Security Project Zed Attack Proxy è un tool sviluppato per analizzare, testare ed effettuare attacchi ad applicazioni web. E’ multi-piattaforma, dunque disponibile anche per Windows e iOS. Ha tutto l’essenziale per poter effettuare test di web-app:

  • Crawler
  • Proxy di intercettazione
  • Scanner Attivo
  • Scanner Passivo
  • Generatore di rapporti.

Come Funziona

Per poter avviare OWASP ZAP basta digitare in terminale con utente root:

owasp-zap

oppure:

zaproxy

Al primo avvio dobbiamo accettare i termini e condizioni d’uso dell’applicativo.

Vi si presenterà questa schermata:

Selezioniamo il tipo di sessione, se persistente o meno e iniziamo.

Da avvio rapido possiamo scegliere se avviare una scansione attiva, o lanciare uno dei nostri browser sotto proxy di intercettazione:

Dopo aver avviato il nostro browser iniziamo a navigare all’interno del sito da testare. Nel mio caso utilizzerò http://testphp.vulnweb.com/ reso vulnerabile volutamente e destinato al testing.

Possiamo notare che durante la navigazione OWASP Zap rileva e identifica numerose vulnerabilità.

Come puoi notare abbiamo un’ampia panoramica abbastanza dettagliata delle vulnerabilità e delle parti del codice interessate, con una buona descrizione.

 

ATTENZIONE: Testare un applicazione web senza autorizzazione scritta è illegale, quanto scritto è solo a scopo didattico e informativo, non mi assumo nessuna responsabilità dell’uso che ne farete.

JoomScan e WPScan

JoomScan e WPScan

Cosa sono JoomScan e WPScan:

JoomScan e WPScan sono strumenti di analisi e scansione per l’individuazione di vulnerabilità e informazioni utili dei più utilizzati CMS, intendo WordPress e Joomla.

Per poterli utilizzare dobbiamo ovviamente sapere in anticipo il CMS di un sito web, per rilevare il tipo di CMS basta utilizzare questo servizio online, una volta individuato possiamo eseguire joomscan e wpscan in base alle esigenze.

JoomScan

Per utilizzarlo basta eseguire in terminale:

joomscan -u http://www.dominiojoomla.xyz

JoomScan Help

Help :

Usage:  joomscan [options]

--url | -u <URL>                |   The Joomla URL/domain to scan.
--enumerate-components | -ec    |   Try to enumerate components.

--cookie <String>               |   Set cookie.
--user-agent | -a <User-Agent>  |   Use the specified User-Agent.
--random-agent | -r             |   Use a random User-Agent.
--timeout <Time-Out>            |   Set timeout.
--about                         |   About Author
--help | -h                     |   This help screen.
--version                       |   Output the current version and exit.

WPScan

Per utilizzarlo basta eseguire in terminale:

wpscan -u http://www.dominiowordpress.xyz

WPScan Help

Help :

Some values are settable in a config file, see the example.conf.json

--update                            Update to the database to the latest version.
--url       | -u <target url>       The WordPress URL/domain to scan.
--force     | -f                    Forces WPScan to not check if the remote site is running WordPress.
--enumerate | -e [option(s)]        Enumeration.
  option :
    u        usernames from id 1 to 10
    u[10-20] usernames from id 10 to 20 (you must write [] chars)
    p        plugins
    vp       only vulnerable plugins
    ap       all plugins (can take a long time)
    tt       timthumbs
    t        themes
    vt       only vulnerable themes
    at       all themes (can take a long time)
  Multiple values are allowed : "-e tt,p" will enumerate timthumbs and plugins
  If no option is supplied, the default is "vt,tt,u,vp"

--exclude-content-based "<regexp or string>"
                                    Used with the enumeration option, will exclude all occurrences based on the regexp or string supplied.
                                    You do not need to provide the regexp delimiters, but you must write the quotes (simple or double).
--config-file  | -c <config file>   Use the specified config file, see the example.conf.json.
--user-agent   | -a <User-Agent>    Use the specified User-Agent.
--cookie <String>                   String to read cookies from.
--random-agent | -r                 Use a random User-Agent.
--follow-redirection                If the target url has a redirection, it will be followed without asking if you wanted to do so or not
--batch                             Never ask for user input, use the default behaviour.
--no-color                          Do not use colors in the output.
--wp-content-dir <wp content dir>   WPScan try to find the content directory (ie wp-content) by scanning the index page, however you can specified it.
                                    Subdirectories are allowed.
--wp-plugins-dir <wp plugins dir>   Same thing than --wp-content-dir but for the plugins directory.
                                    If not supplied, WPScan will use wp-content-dir/plugins. Subdirectories are allowed
--proxy <[protocol://]host:port>    Supply a proxy. HTTP, SOCKS4 SOCKS4A and SOCKS5 are supported.
                                    If no protocol is given (format host:port), HTTP will be used.
--proxy-auth <username:password>    Supply the proxy login credentials.
--basic-auth <username:password>    Set the HTTP Basic authentication.
--wordlist | -w <wordlist>          Supply a wordlist for the password brute forcer.
--username | -U <username>          Only brute force the supplied username.
--usernames     <path-to-file>      Only brute force the usernames from the file.
--threads  | -t <number of threads> The number of threads to use when multi-threading requests.
--cache-ttl       <cache-ttl>       Typhoeus cache TTL.
--request-timeout <request-timeout> Request Timeout.
--connect-timeout <connect-timeout> Connect Timeout.
--max-threads     <max-threads>     Maximum Threads.
--help     | -h                     This help screen.
--verbose  | -v                     Verbose output.
--version                           Output the current version and exit.
Golismero

Golismero

Cos’è Golismero

Golismero è un tool di analisi orientato alla scansione di applicazioni web capace di rilevare vulnerabilità “a tutto tondo”.

Come funziona

Esegue una scansione utilizzando una serie di tool separati:

  • Attacchi di forza bruta (bruteforce)
    • brute_directories: Tenta di scoprire directory nascoste
    • brute_dns: Tenta di scoprire dns nascosti (DNS Brute)
    • brute_url_extensions: Tenta di scoprire file (Brute estenzione)
    • brute_url_permutations Tenta di scoprire file (Brute permutazione)
    • brute_url_predictables Tenta di scoprire file (Brute prevedibile)
    • brute_url_prefixes: Tenta di scoprire file (Brute prefisso)
    • brute_url_suffixes: Tenta di scoprire file (Brute suffisso)
  • Nikto
  • Nmap
  • Openvas
  • Plecost: Analizza le vulnerabilità di wordpress
  • sslscan: Esegue un’analisi dei certificati ssl
  • zone_transfer: Trova ed esegue exploit sulle vulnerabilità DNS

Per eseguirlo basta digitare in terminale:

golismero scan http://www.dominio.xyz
golismero scan 192.168.1.1
golismero scan -i [directory/file_di_input] -o [directory/file_di_output]

Help

golismero -h
usage: golismero.py COMMAND [TARGETS...] [--options]

  SCAN:
    Perform a vulnerability scan on the given targets. Optionally import
    results from other tools and write a report. The arguments that follow may
    be domain names, IP addresses or web pages.

  PROFILES:
    Show a list of available config profiles. This command takes no arguments.

  PLUGINS:
    Show a list of available plugins. This command takes no arguments.

  INFO:
    Show detailed information on a given plugin. The arguments that follow are
    the plugin IDs. You can use glob-style wildcards.

  REPORT:
    Write a report from an earlier scan. This command takes no arguments.
    To specify output files use the -o switch.

  IMPORT:
    Import results from other tools and optionally write a report, but don't
    scan the targets. This command takes no arguments. To specify input files
    use the -i switch.

  DUMP:
    Dump the database from an earlier scan in SQL format. This command takes no
    arguments. To specify output files use the -o switch.

  UPDATE:
    Update GoLismero to the latest version. Requires Git to be installed and
    available in the PATH. This command takes no arguments.

examples:

  scan a website and show the results on screen:
    golismero.py scan http://www.example.com

  grab Nmap results, scan all hosts found and write an HTML report:
    golismero.py scan -i nmap_output.xml -o report.html

  grab results from OpenVAS and show them on screen, but don't scan anything:
    golismero.py import -i openvas_output.xml

  show a list of all available configuration profiles:
    golismero.py profiles

  show a list of all available plugins:
    golismero.py plugins

  show information on all bruteforcer plugins:
    golismero.py info brute_*

  dump the database from a previous scan:
    golismero.py dump -db example.db -o dump.sql
Nikto

Nikto

Cos’è Nikto

Nikto è uno scanner per Web Server capace di rilevare programmi e file potenzialmente pericolosi, verifica delle versioni obsolete, controllo degli elementi di configurazione e identificazione delle caratteristiche del server e dei software installati.

A cosa serve

Nikto sostanzialmente serve a determinare se un server è vulnerabile sotto uno o più aspetti sopracitati, in modo da rilevare e fissare eventuali falle. E’ facile intuire che oltre a un uso etico può essere utilizzato per compiere illeciti.

Come usarlo

Prima di avviare nikto è buona norma aggiornarlo dunque eseguiamo il comando:

nikto -update

Per una semplice scansione di un host sulla porta 80 eseguiamo in terminale il comando:

nikto -h https://www.dominio.xyz

Nel caso in cui vogliamo specificare una porta differente basta inserire -p subito dopo il comando precedente seguito dalla porta:

nikto -h https://www.dominio.xyz -p 789

Nel caso in cui vogliamo scansionare piu porte:

nikto -h https://www.dominio.xyz -p 80,127,789

E’ possibile eseguire solo alcune scansioni, per fare questo basta inserire -Tuning oppure -t seguito dal numero o lettera riguardante la tipologia di scansione da eseguire:

  • 1     Interesting File / Seen in logs
  • 2     Misconfiguration / Default File
  • 3     Information Disclosure / File utili ad un attacco
  • 4     Injection (XSS/Script/HTML)
  • 5     Remote File Retrieval – All’interno di file root
  • 6     Denial of Service
  • 7     Remote File Retrieval – Server Wide
  • 8     Command Execution / Remote Shell
  • 9     SQL Injection
  • 0     File Upload
  • a     Bai-passare l’autenticazione
  • b     Software Identification
  • c     Remote Source Inclusion
  • d     WebService
  • e     Administrative Console
  • x     Inverte l’opzione Tuning (-t) ossia tutte le tipologie di scansioni tranne quella indicata dopo x

Eseguire un test Denial of Service

nikto -h -Tuning 6 https://www.dominio.xyz

Eseguire tutto tranne un test Denial of Service

nikto -h -t x 6 https://www.dominio.xyz

Nel caso in cui vogliamo eseguire una scansione salvando i risultati e controllare in terminale l’andamento della scansione (In questo caso un SQL Inj.)

nikto -Display V -o risultati.html -Format htm -t 9 -h domindio.xyz

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
Maltego

Maltego

Cos’è Maltego

Maltego è uno strumento di analisi sviluppato per il pentesting e l’uso forense, il suo scopo principale è la raccolta delle informazione sulla base di analisi dei collegamenti e data mining. Viene utilizzato da professionisti nei settori riguardanti il pen testing e l’informatica forense.

A cosa serve

Consente di generare una mappa dettagliata delle ralazione che si creano fra domini, infrastrutture, ip, persone fisiche, social-network e altre affiliazioni con servizi online, numeri di telefono e e-mail

Come usarlo

Digitiamo in terminale il comando:

maltego

Dopo qualche secondo di caricamento vi si presenterà questa schermata:

Selezioniamo Maltego CE, ma prima di accedere abbiamo bisogno di un account, puoi crearlo da QUI

Inseriamo i nostri dati come mostrato nella seguente figura:

Una volta effettuato l’accesso clicchiamo su Machines e successivamente Run Machine.

Selezioniamo in base alle nostre preferenze una delle macchine d’analisi disponibili, nel nostro caso potrebbe esserci utile il footprinting di un dominio, ossia estrapolare le relazioni di un dominio a una persona alle sue email e alle infrastrutture di rete. Selezioniamo dunque footprint L3 (la differenza fra i vari livelli da 1 a 3 sta nella complessita con cui maltego controllerà le relazioni). Qui di seguito possiamo vedere un grafico generato da Maltego