Categoria: Networking

Imperva pubblica un report sugli attacchi alle applicazioni web

14 ottobre 2014 di In: Networking

… e sorpresa delle sorprese: WordPress è il CMS più preso di mira.
In realtà non può essere una sorpresa perché, data la sua diffusione, è normale che gli hacker lo prendano di mira.
Io rimango dell’avviso che il problema di WP non è il core ma tutti i plugin, sviluppati da chissà chi in giro per il mondo, che puntano a fornire la funzionalità di turno, tralasciando possibili falle di sicurezza.

Qui sotto potete trovare il link all’articolo (in inglese):

http://www.securityweek.com/wordpress-most-attacked-cms-report

Mentre qui avete il link al report (in inglese):

http://www.imperva.com/docs/HII_Web_Application_Attack_Report_Ed5.pdf

Buona lettura.

Norse – IPViking Live – Monitor mondiale degli attacchi informatici

12 ottobre 2014 di In: Networking

Grazie ad un link di un collega sono venuto a conoscenza di questo monitor che mostra gli attacchi informatici che stanno avvenendo ora nel mondo.
Vengono mostrati gli indirizzi IP, gli stati attaccanti, gli stati attaccati e i servizi che sono l’oggetto dell’attacco.
Chiaramente non sono tutti gli attacchi ma circa il 10% di quelli totali.

http://map.ipviking.com/

 

 

Perl su Windows: automatizzare il completamento di un form

10 ottobre 2014 di In: Networking, Script

Questo script Perl prende IP internet e hostname della macchina su cui viene eseguito e li manda ad un form presente in internet.
Il completamento del form è possibile grazie al modulo WWW::Mechanize;

#!/usr/bin/perl -w
use strict;
use warnings;
use LWP::Simple;
use Sys::Hostname;
use WWW::Mechanize;
 
# Estraggo l'indirizzo IP connettendomi ad un sito
my $ip = get('https://www.net-addiction.net/ip/ip.php');
$ip = 'Non ho trovato un indirizzo IP!' if !$ip;
 
# Estraggo l'hostname
my $host = hostname;
 
# Imposto i campi da compilare con i relativi valori (il nome del campo dev'essere uguale all'attributo name del tag input 
my $mech = WWW::Mechanize->new();
my $url = "https://www.net-addiction.net/ip/form.php"; # Definizione dell'URL contenente il form
$mech->get($url);
my $result = $mech->submit_form(
form_number => 1,                  # L'identificativo del form (nel caso in cui nella pagina ce ne fosse piu' di uno
fields      => 
{
Code		=> 'RLRRLRLL', # Codice di controllo - è la variabile che distingue le richieste autorizzate
IP    		=> $ip,        # L'indirizzo IP estratto
Hostname            => $host,      # L'hostname estratto
}
, button            => 'Invia'     # Questo deve corrispondere all'attributo name del tag input type="submit"
);
print $result->content();         # Esegue il completamento
 
 
 
system("cls"); # Svuota la finestra del prompt
print "Il tuo indirizzo IP e\' ".$ip."\nIl tuo hostname e\' " . $host ."\n"; # Scrive a video IP e Hostname

Dall’altra parte (seguendo l’esempio sopra in https://www.net-addiction.net/ip/form.php) ci deve essere un form tipo:

<html>
<head><title>Pagina per ricezione dati</title></head>
<body>
<?php
if ($_POST['Code'] == 'RLRRLRLL') { // Se il codice corrisponde
 
$ip = $_POST['IP']; // assegno le variabili
$hostname = $_POST['Hostname'];
 
$myfile = fopen("dati.txt", "a") or die("Impossibile aprire il file!"); // Tento di aprire il file in append
$txt = $ip . " - " . $hostname . "\n"; // Creo la stringa da scrivere su file
fwrite($myfile, $txt); // Scrivo su file
fclose($myfile); // chiudo il file
 
echo "<h1>dati inviati</h1>"; // Confermo che i dati sono stati inviati
	}
?>
 
<form id="1" action="form.php" method="POST">
<input type="text" id="Code" name="Code" />
<input type="text" id="IP" name="IP" />
<input type="text" id="Hostname" name="Hostname" />
<input type="submit" id="Invia" name="Invia" value="Invia" />
</form>
</body>
</html>

Lo so, l’ho fatto in PHP per comodità. Quando imparerò un minimo di programmazione web di Perl integrerò.

Perl su Windows: Ottenere l’indirizzo IP internet e l’hostname

10 ottobre 2014 di In: Networking, Script

Questo è frutto di una mia curiosità. Ho utilizzato Strawberry Perl su Windows.
Il codice è tutto commentato.

#!/usr/bin/perl -w
use strict;
use warnings;
use LWP::Simple;
use Time::localtime;
use Sys::Hostname;
 
# Percorso del file di output
my $output = 'output.txt';
 
# Estraggo l'indirizzo IP connettendomi ad un sito
my $ip = get('https://www.net-addiction.net/ip/ip.php');
$ip = 'Non ho trovato un indirizzo IP!' if !$ip;
 
# Estraggo la data per il timestamp
my $mese = localtime->mon + 1;
my $giorno = localtime->mday;
my $anno = localtime->year + 1900;
my $ora = localtime->hour;
my $minuti = localtime->min;
my $timestamp = $anno.$mese.$giorno." @ ".$ora.":".$minuti; 
 
# Estraggo l'hostname
my $host = hostname;
 
# Crea il file definito in precedenza se non esiste e scrive IP e timestamp (in append - senza sovrascrivere il file)
unless (-e $output) { open(FILE, '>', $output); close FILE; } 
open(FILE, '>>', $output) || die("Impossibile creare il file!"); 
print FILE $ip . ' - ' . $timestamp . "\n";
close FILE;
 
# Scrive a video IP e Hostname
system("cls");
print "Il tuo indirizzo IP e\' ".$ip."\nIl tuo hostname e\' " . $host ."\n";
 
#Evito che la finestra si chiuda ma non mostro l'output di pause
system ("pause>nul");

l’output a video è:

Il tuo indirizzo IP e' 166.95.244.117
Il tuo hostname e' Hostname-PC

Mentre il file output.txt contiene:

166.95.244.117 - 20141010 @ 1:26
166.95.244.117 - 20141010 @ 1:26
166.95.244.117 - 20141010 @ 1:27
166.95.244.117 - 20141010 @ 1:27

Prossimamente cercherò un modo per inviare questi dati ad un sito web che controlli l’idoneità della richiesta e salvi solo i dati dei computer abilitati.

Vizioncore / Dell vReplicator: La replica della macchina virtuale fallisce con errore – 3185

12 settembre 2014 di In: Networking, Sistemistico

Avete appena sostituito un host con un nuovo hardware e tentando di eseguire delle repliche con vReplicator ricevete un messaggio email tipo:

@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is also possible that the RSA host key has just been changed. The fingerprint for the RSA key sent by the remote host is c1:a0:a7:07:71:c1:a0:a7:07:71:c1:a0:a7:07:71:16. Please contact your system administrator. Add correct host key in /root/.ssh/known_hosts to get rid of this message. Offending key in /root/.ssh/known_hosts:1 RSA host key for 10.x.x.x has changed and you have requested strict checking. Host key verification failed. FATAL internal internal error (at pkt_recv:43)

Il problema consiste nel fatto che la connessione affidabile tra l’host sorgente e l’host destinazione non esiste più dato che la chiave RSA dell’host è cambiata. Per risolvere basta cancellare la riga contenente la vecchia chiave RSA dal file known_hosts.

Per passi:

  • connettetevi alla macchina sorgente della replica
  • posizionatevi nella cartella giusta cd /root/.ssh
  • aprite il file con un editor di test vi known_hosts
  • risalite con il cursore cercando la linea che inizia con l’indirizzo IP dell’host di destinazione e premete dd (due volte “d” – cancella la riga)
  • salvate ed uscite con :wq
  • iniziate una connessione ssh verso l’host di destinazione – ssh [IP host]
  • vi apparirà un messaggio: “The authenticity of host [nome host] can’t be established. RSA key fingerprint is [fingerprint]. Are you sure you want to continue connecting (yes/no)?” e scriverete yes.
  • chiudete putty
  • ritentate la replica

Aggiungere un gruppo di dominio al gruppo Administrators locale

1 luglio 2009 di In: Networking, Sistemistico

Può presentarsi la necessità di dover aggiungere un gruppo di dominio al gruppo Administrators locale di una macchina.

Nel mio caso mi trovavo in presenza di una foresta Active Directory 2003. Con un parent domain e 2 child domain e stavo installando un programma che per fare il deploy dei client necessita di credenziali amministrative. Quindi avevo necessità che un solo utente potesse “occuparsi” delle installazioni in tutta la foresta.

. Ci siamo accorti che il gruppo degli enterprise admins non aveva privilegi sui domini figli. Cercando in internet abbiamo trovato 2 strade: modificare il gruppo degli Administrators locale tramite GPO (ma il gruppo che aggiungevamo andava a sostituire gli administrators definiti in precedenza) o utilizzare Group Policy Preferences (che abbiamo scoperto dopo essere una feature di Windows Server 2008.

La soluzione provvidenziale ci è stata data da uno script in vbs che va fatto eseguire ai client da dominio.

script.vbs

1
2
3
4
5
6
7
On Error Resume Next
 
'get main objects/variables
Set ws = WScript.CreateObject ( "WScript.Shell" ) compname = ws.ExpandEnvironmentStrings ( "%COMPUTERNAME%" ) Set adGrp = GetObject ( "WinNT://" &amp; compname &amp; "/Administrators,group" )
 
'add domain groups to local admin group
adGrp.Add ( "WinNT://[MyWindowsDomain]/[GroupIWantToAdd],group" )

Lo script è abbastanza semplice da capire. Ovviamente il testo racchiuso tra parentesi quadre va modificato in base alle vostre esigenze.

Script FTP (Windows)

31 maggio 2009 di In: Networking, Sistemistico

Può nascere la necessità di dover creare una procedura automatizzata per la connessione ad un server FTP. Ci sono molti modi per affrontare la problematica; la più veloce è decisamente servirsi di un file batch e di uno scriptino contenente i comandi FTP.

ftp -s:script.txt ftp.dominio.it

questo comando non fa altro che connettersi sulla porta 21 del server ftp.dominio.it e gli passa i comandi scritti nello script.txt.

1
2
3
4
5
6
7
[utenteFTP]
[password utente FTP]
bin
lcd [directory locale interessata]
cd [directory interessata]
put [files]
bye

Nota importante: se i file che dovete trasferire, sia in un senso e sia nell’altro, sono più di uno dovete aggiungere l’opzione -i al comando ftp. In questo modo si disattiva l’interattività dell’utente.

NNSquad.it per la neutralità della rete

5 gennaio 2009 di In: Networking

Il Gruppo per la neutralità della rete (NNSquad) è un insieme di persone che hanno l’obiettivo di contribuire a mantenere Internet libera da restrizioni irragionevoli.

L’adesione è libera ed aperta e il contributo di chiunque è ben accetto.

Il focus dell’iniziativa è contribuire nella divulgazione della conoscenza sul tema della Neutralità della rete; raccogliere e riportare segnalazioni e notizie riguardo pratiche anticompetitive, discriminatorie o restrittive, da parte di Internet Service Provider (ISP).

Alcune di queste pratiche possono riguardare il blocco di applicazioni, la manipolazione di traffico, protocolli e trasmissioni o altri comportamenti simili, con finalità anticompetitive, discriminatorie o restrittive, ovvero non esplicitamente e liberamente richieste dai clienti, ovvero non influenzate dai fornitori stessi.

Altri aspetti chiave del progetto sono il favorire discussioni, approfondimenti e la definizione comune, ove possibile, di metodologie finalizzate a mantenere Internet un ambiente senza ostacoli, concorrenziale, equo e aperto per la più ampia gamma possibile di applicazioni e servizi.

Invitiamo singoli, organizzazioni commerciali, organizzazioni senza scopo di lucro, istituzioni, e tutti gli altri utenti di Internet e dei soggetti interessati (compresi i fornitori di servizi Internet) a partecipare alle attività di nnsquad.it.

NNSquad (www.nnsquad.org) è un’iniziativa nata negli USA, senza fini di lucro, con l’obiettivo di contribuire a mantenere Internet libera da restrizioni irragionevoli.

Da tale iniziativa trae origine NNSquad Italia (www.nnsquad.it) che, in coordinamento con i referenti USA, ripropone le medesime finalità agli utenti italiani.

***** IMPORTANTE*******************************************
Chi ritiene che l’argomento sia rilevante e intenda sottoscriverne l’importanza, puo’ farlo qui: http://www.firmiamo.it/nnsquad
***********************************************************

In questa prima fase si incoraggia la partecipazione di:
– persone cui stia a cuore la questione che sottoscrivano l’iniziativa;
– volontari tecnici che contribuiscano alla realizzazione ed al mantenimento dell’infrastruttura tecnologica alla base di nnsquad.it, tra cui il sito web, mailing list, forum, blog, ecc.
– volontari che contribuiscano a riportare informazioni circa temi inerenti la neutralita’ della rete contribuendo alla realizzazione di un archivio di risorse informative tra cui studi economici e tecnici, notizie stampa, segnalazioni di violazioni, iniziative normative e regolamentari, annunci commerciali, ecc.
– operatori di telecomunicazioni che pubblichino con trasparenza le informazioni circa le loro politiche di gestione del traffico e si impegnino a mantenerle aggiornate.
– attori del sistema dell’informazione (blogger, giornalisti) che contribuiscano a diffondere la percezione della rilevanza dell’argomento.

chiunque fosse interessato a collaborare, e’ pregato di segnalarlo a info (at) nnsquad.it

Per maggiori informazioni potete fare riferimento al sito di NNSquad Italia

Configurazione automatica del proxy: il PAC file

10 dicembre 2008 di In: Networking

Il file PAC (proxy auto-config) definisce come i web browser possono scegliere il proxy server appropriato per recuperare le informazioni di una data URL. Sostanzialmente stabilisce qual è la rotta che deve effettuare il vostro traffico per raggiungere certi siti web.

Un file PAC contiene una funzione JavaScript ( FindProxyForURL(url, host) ). Questa funzione restituisce una stringa con uno o più metodi di accesso. Questi fanno in modo che il vostro traffico venga mandato ad un proxy server, piuttosto che ad un altro oppure semplicemente che il sito venga raggiunto direttamente senza proxy.

Le stringhe restituite possono essere: “DIRECT” “PROXY [DNS name/ IP address del proxy]:[porta]”

Ecco 2 esempi:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function FindProxyForURL(url, host)
    {
// Se il sito che l'utente vuole visitare è quello aziendale non utilizzare nessun proxy
    if (shExpMatch(url, "http://sitointranetaziendale.it*")) { return "DIRECT"; }
 
 // se l'indirizzo IP del client è all'interno della rete 192.168.1.0/24     
    if (isInNet(myIpAddress(), "192.168.1.0", "255.255.255.0"))
 
// usa questo proxy tramite questa porta
   return "PROXY 192.168.1.1:8080"; 
 
// senno userà il suo default gateway
   else
    return "DIRECT";
    }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<strong>function FindProxyForURL(url, host)
{
 
// si possono impostare anche delle variabili che contengano le stringhe da restituire.
var proxy_a = "PROXY 192.168.1.22:8888";
var proxy_b = "PROXY 192.168.1.1:8080";
var proxy_c = "PROXY 192.168.1.243:7777";
var noproxy = "DIRECT";
 
// I siti seguenti verranno acceduti direttamente
if (shExpMatch(url, "http://sitoaziendale.local*")) { return noproxy; }
if (shExpMatch(url, "http://webmail.local*")) { return noproxy; }
 
// Il traffico verso cicciopasticcio verrà indirizzato verso il proxy A; Se il proxy A non risponde il traffico verrà girato al proxy B
if (shExpMatch(url, "http://www.cicciopasticcio.net*")) { return proxy_a ; proxy_b ; }
 
// Il traffico rimanente andrà verso il proxy C
return proxy_c;
}

Saluti!

The Dude – Network Monitor free

18 ottobre 2008 di In: Networking

Al lavoro mi è stato consigliata questa applicazione client/server che, pur essendo gratis, è piena di features interessanti. Permette di “scoprire” automaticamente gli apparati nella vostra rete locale e i servizi che forniscono, permette di stabilire ogni quanto verificare se il servizio funziona, e dopo quanti esiti negativi lanciare l’allarme. L’allarme può essere un beep sul server, un comando lanciato sul client, un comando lanciato sul server, una mail o, se avete un SMS gateway un SMS appunto. Supporta la multiutenza e si possono anche personalizzare dei probe su servizi particolari (ad esempio un webserver sulla porta 8888).

L’ho provato e sono rimasto molto colpito. Sconsiglio a tutti la funzione discovery perchè produrrà sicuramente uno schema poco chiaro. Creare invece un device alla volta vi da modo anche di farvi un’idea di come dovrà essere il vostro schema.

The Dude è scaricabile qui.