Il seguente batch permette di effettuare il backup di tutti i database presenti in un’installazione MySQL/MariaDB, comprimerli e salvare il file compresso in una cartella a piacere con un solo comando.
Ovviamente lo script può essere migliorato, ma questa è una buona base.
REM Trova la data
set currentdate=%DATE:~-2%%DATE:~3,2%%DATE:~0,2%_%TIME:~0,2%%TIME:~3,2%
REM Imposta cartella bin di MySQL
set mysqldir=C:\xampp\mysql\bin\
REM Imposta la cartella di backup temporanea - meglio se vuota
set mysqlbkpdir=C:\xampp\mysql\bin\backup\
REM Utente MySQL e relativa pass
set mysqluser=root
set mysqlpass=password
REM Percorso dell'applicazione di compressione - se non si utilizza RAR verificare la sintassi corretta per l'applicazione
set zipexe=C:\Program Files (x86)\WinRAR\Rar.exe
REM Percorso del file di output compresso
set rardestfolder=C:\Users\foo\Dropbox\
REM Estrae la lista dei database (escludendo quelli di sistema) ed esegue il dump
%mysqldir%mysql.exe -u %mysqluser% -p%mysqlpass% -s -N -e "SHOW DATABASES" | for /F "usebackq" %%D in (`findstr /V "information_schema performance_schema"`) do %mysqldir%mysqldump -u %mysqluser% -p%mysqlpass% %%D > %mysqlbkpdir%%%D.sql
REM Comprime i file SQL estratti in un unico file RAR
"%zipexe%" a -r %rardestfolder%DBBackup%currentdate%.rar %mysqlbkpdir%*.sql
REM Cancella i file sql temporanei
del %mysqlbkpdir%*.sql |
REM Trova la data
set currentdate=%DATE:~-2%%DATE:~3,2%%DATE:~0,2%_%TIME:~0,2%%TIME:~3,2%
REM Imposta cartella bin di MySQL
set mysqldir=C:\xampp\mysql\bin\
REM Imposta la cartella di backup temporanea - meglio se vuota
set mysqlbkpdir=C:\xampp\mysql\bin\backup\
REM Utente MySQL e relativa pass
set mysqluser=root
set mysqlpass=password
REM Percorso dell'applicazione di compressione - se non si utilizza RAR verificare la sintassi corretta per l'applicazione
set zipexe=C:\Program Files (x86)\WinRAR\Rar.exe
REM Percorso del file di output compresso
set rardestfolder=C:\Users\foo\Dropbox\
REM Estrae la lista dei database (escludendo quelli di sistema) ed esegue il dump
%mysqldir%mysql.exe -u %mysqluser% -p%mysqlpass% -s -N -e "SHOW DATABASES" | for /F "usebackq" %%D in (`findstr /V "information_schema performance_schema"`) do %mysqldir%mysqldump -u %mysqluser% -p%mysqlpass% %%D > %mysqlbkpdir%%%D.sql
REM Comprime i file SQL estratti in un unico file RAR
"%zipexe%" a -r %rardestfolder%DBBackup%currentdate%.rar %mysqlbkpdir%*.sql
REM Cancella i file sql temporanei
del %mysqlbkpdir%*.sql
Questo Cheat Sheet vuole aiutare nel caso in cui una vostra macchina Windows sia stata compromessa o per qualsiasi altro motivo.
Questo articolo è per gli amministratori Windows e personale di sicurezza per eseguire un’analisi completa della macchina (il locale e in rete) tenendo presente che lo scopo finale è trovare delle tracce di compromissione.
1) Log Inusuali:
Controllate nei vostri log eventi sospetti come:
– “Event log service was stopped.”
– “Windows File Protection is not active on this system.”
– “The protected System file [file name] was not restored to its original, valid version because of the Windows File Protection…”
– “The MS Telnet Service has started successfully.”
– Cercare un gran numero di tentativi di accesso fallito o account bloccati.
Per fare ciò utilizzando l’interfaccia grafica (GUI), eseguite il visualizzatore eventi di Windows:
Utilizzando il prompt (CLI):
Oppure, per concentrarsi su un particolare log:
eventquery.vbs /L security |
eventquery.vbs /L security
AGGIORNAMENTO:
Nei sistemi operativi post Vista il comando è:
Il comando precedente interrogerà il log “System”. Se avete archiviato un log file .evt, potete trovare il testo “license found” usando:
wevtutil qe “C:\Directory\SubDirectory\logFile.evt” /lf:true | findstr /C:”license found”
Se volete restringere le ricerche in modo che includano solo un certo livello di evento, puoi interrogare i registri utilizzando il numero relativo al livello.
Level 4 - Information
Level 3 - Warning
Level 2 - Error
Level 1 - Critical
Per altre caratteristiche:
2) Processi e servizi inusuali:
Cercate processi strani/non attesi, e concentratevi su processi che vengono eseguiti con username “SYSTEM” o “ADMINISTRATOR” (o utenti nel gruppo Administrator). E’ necessario che abbiate familiarità con i processi e dei servizi “normali” per poter cercare le anormalità.
Utilizzando l’interfaccia grafica (GUI):
Utilizzando il prompt (CLI):
tasklist
wmic process list full |
tasklist
wmic process list full
Cercate anche servizi strani. Utilizzando l’interfaccia grafica (GUI):
Utilizzando il prompt (CLI):
Per una lista di servizi associati ad ogni processo:
3) File e Chiavi di registro inusuali:
Controllate l’utilizzo dello spazio disco per cercare improvvise diminuzioni di spazio disco libero, utilizzando la GUI (click con il tasto destro sulla partizione)
Utilizzando la CLI:
Cercate per file grandi o enormi che non dovrebbero esserci
Start -> Cerca -> File e Cartelle… -> Opzioni di ricerca -> Dimensione -> Almeno 10000KB
Cercate programmi strani che compaiono nelle chiavi di registro che sono associate con l’avvio della macchina:
HKLM\Software\Microsoft\Windows\CurrentVersion\Run
HKLM\Software\Microsoft\Windows\CurrentVersion\Runonce
HKLM\Software\Microsoft\Windows\CurrentVersion\Runonce\Ex |
HKLM\Software\Microsoft\Windows\CurrentVersion\Run
HKLM\Software\Microsoft\Windows\CurrentVersion\Runonce
HKLM\Software\Microsoft\Windows\CurrentVersion\Runonce\Ex
Notate che dovresti anche controllare la controparte HKCU – HKEY_CURRENT_USER (sostituite HKLM con HKCU nelle chiavi evidenziate.
Utilizzando la GUI:
Utilizzando la CLI:
reg query <chiave di="" registro=""></chiave> |
reg query <chiave di="" registro=""></chiave>
4) Utilizzo di rete inusuale:
Guardate le cartelle condivise, e assicuratevi che ognuna abbia un suo ruolo o un senso:
Guardate chi ha una sessione aperta con la macchina:
Guardate che sessioni ha aperto la vostra macchina:
Guarda l’attività del NetBIOS su TCP/IP:
Cercate delle porte in ascolto inusuali (TCP e UDP):
Per avere un aggiornamento continuo (ogni 5 secondi):
Il flag -o mostra l’id del processo superiore:
Il flag -b mostra il nome dell’eseguibile e le DLL caricate per la connessione di rete.
Notate che il flag -b utilizza molte risorse della CPU.
Di nuovo, è necessario che siate a conoscenza di quali sono le porte normalmente utilizzate e verifichiate le anomalie.
Controllate anche la configurazione del firewall di Windows:
netsh firewall show config |
netsh firewall show config
5) Operazioni pianificate inusuali:
Cercate delle operazioni pianificate inusuali (scheduled tasks), specialmente quelli che vengono eseguiti con un utente presente nel gruppo Administrators, come SISTEM, o con uno username formato da spazi (blank).
Utilizzando la GUI:
Start -> Programmi -> Accessori -> Utilità di Sistema -> Operazioni pianificate
Utilizzando la CLI:
Controllate anche le voci che partono in autostart, ricordando di controllare le directory di esecuzione automatica degli utenti e le chiavi di registro.
Utilizando la GUI:
Start -> Esegui -> msconfig.exe
Utilizzando la CLI:
6) Account utente insuali
Cercate account nuovi o non attesi nel gruppo Administrators:
Cliccate su Gruppi -> Doppio click su Administrators -> Controllate i membri appartenenti a quel gruppo.
Per farlo utilizzando la CLI:
net user
net localgroup administrators |
net user
net localgroup administrators
7) Altri oggetti inusuali
Cercate i servizi che rallentano molto la CPU
Gestione Attività -> Prestazioni
Cercate i crash di sistema strani oltre al livello normale del sistema.
Dovreste eseguire questi check periodicamente (ogni giorno, ogni settimana o ogni volta vi connettete ad un computer). Tutti i comandi vengono eseguiti localmente.
Questa macro permette di esportare la selezione di un worksheet Excel in un file di testo.
Permette di stabilire il separatore tra campi.
E’ stato creato in Microsoft Excel 2016.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
| Sub XLtoTXT()
'
' XLtoTXT Macro
'
Dim SeparatoreCampi ' Definisce i caratteri separatori tra un campo e l'altro
Dim Arr(500) As Integer ' Conterrà i valori di massima lunghezza per colonna
Dim myFile As String ' Contiene il percorso del file di output
Dim rng As Range 'Conterra il range di celle da esportare
Dim cellValue As Variant 'Conterrà i valori delle celle esportate
Dim celllung As Integer 'Conterrà la lunghezza massima delle celle (per ogni colonna)
Dim i As Integer ' Indice di riga
Dim j As Integer ' Indice di colonna
Dim Spazi As Integer 'Numero di spazi da aggiungere
Set rng = Selection ' Carica le celle della selezione
'
' Da personalizzare
'
SeparatoreCampi = " | "
myFile = ActiveWorkbook.Path & "\output.txt" ' stessa directory del file che invoca la macro
' Cicla il range per colonne e righe per capire la laghezza massima della colonna e la salva in Arr
For j = 1 To rng.Columns.Count
For i = 1 To rng.Rows.Count
If Len(rng.Cells(i, j).Value) > celllung Then
celllung = Len(rng.Cells(i, j).Value)
Arr(j) = celllung
End If
Next i
celllung = 0 ' Azzero la variabile perché passo alla colonna successiva
Next j
Open myFile For Output As #1 'Apre il file
' Cicla il range per riga e colonna aggiungendo gli spazi mancanti
For i = 1 To rng.Rows.Count
For j = 1 To rng.Columns.Count
Spazi = Arr(j) - Len(rng.Cells(i, j).Value)
cellValue = rng.Cells(i, j).Value
If j = rng.Columns.Count Then ' Se il valore è ultmo nella riga
Print #1, cellValue & Space(Spazi)
Else
Print #1, cellValue & Space(Spazi) & SeparatoreCampi;
End If
Next j
Next i
Close #1 'Chiude il file
End Sub |
Sub XLtoTXT()
'
' XLtoTXT Macro
'
Dim SeparatoreCampi ' Definisce i caratteri separatori tra un campo e l'altro
Dim Arr(500) As Integer ' Conterrà i valori di massima lunghezza per colonna
Dim myFile As String ' Contiene il percorso del file di output
Dim rng As Range 'Conterra il range di celle da esportare
Dim cellValue As Variant 'Conterrà i valori delle celle esportate
Dim celllung As Integer 'Conterrà la lunghezza massima delle celle (per ogni colonna)
Dim i As Integer ' Indice di riga
Dim j As Integer ' Indice di colonna
Dim Spazi As Integer 'Numero di spazi da aggiungere
Set rng = Selection ' Carica le celle della selezione
'
' Da personalizzare
'
SeparatoreCampi = " | "
myFile = ActiveWorkbook.Path & "\output.txt" ' stessa directory del file che invoca la macro
' Cicla il range per colonne e righe per capire la laghezza massima della colonna e la salva in Arr
For j = 1 To rng.Columns.Count
For i = 1 To rng.Rows.Count
If Len(rng.Cells(i, j).Value) > celllung Then
celllung = Len(rng.Cells(i, j).Value)
Arr(j) = celllung
End If
Next i
celllung = 0 ' Azzero la variabile perché passo alla colonna successiva
Next j
Open myFile For Output As #1 'Apre il file
' Cicla il range per riga e colonna aggiungendo gli spazi mancanti
For i = 1 To rng.Rows.Count
For j = 1 To rng.Columns.Count
Spazi = Arr(j) - Len(rng.Cells(i, j).Value)
cellValue = rng.Cells(i, j).Value
If j = rng.Columns.Count Then ' Se il valore è ultmo nella riga
Print #1, cellValue & Space(Spazi)
Else
Print #1, cellValue & Space(Spazi) & SeparatoreCampi;
End If
Next j
Next i
Close #1 'Chiude il file
End Sub
E’ possibile accendere, spegnere, resettare le macchine virtuali di Hyper-V senza utilizzare PowerShell.
BackupChain.com (che produce anche un software di backup) rende disponibili due strumenti eseguiili da command line per gestire le macchine virtuali.
La sintassi è molto semplice
#Per avviare una VM:
HyperVUtils.exe "vmName" start
#Per spegnare una VM immediatamente (turn off brutale):
HyperVUtils.exe "vmName" poweroff
#Per riavviare una VM:
HyperVUtils.exe "vmName" reboot
#Per resettare una VM:
HyperVUtils.exe "vmName" reset
#Per forzare uno spegnimento della VM e aspettare fino a 5 minuti per il completamento:
HyperVUtils.exe "vmName" forceshutdown
#Per effettuare uno spegnimento normale del guest OS e aspettare fino a 5 minuti per il completamento:
HyperVUtils.exe "vmName" shutdown
#Esempio con un'attesa di 10 minuti:
HyperVUtils.exe "vmName" shutdown 600 |
#Per avviare una VM:
HyperVUtils.exe "vmName" start
#Per spegnare una VM immediatamente (turn off brutale):
HyperVUtils.exe "vmName" poweroff
#Per riavviare una VM:
HyperVUtils.exe "vmName" reboot
#Per resettare una VM:
HyperVUtils.exe "vmName" reset
#Per forzare uno spegnimento della VM e aspettare fino a 5 minuti per il completamento:
HyperVUtils.exe "vmName" forceshutdown
#Per effettuare uno spegnimento normale del guest OS e aspettare fino a 5 minuti per il completamento:
HyperVUtils.exe "vmName" shutdown
#Esempio con un'attesa di 10 minuti:
HyperVUtils.exe "vmName" shutdown 600
Trovate i due eseguibili qui: http://backupchain.com/hyper-v-backup/Hyper-V-Command-Line-Tools.html.
I file possono essere utilizzati liberamente ma non rivenduti senza il consenso degli autori.
SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'nomedatabase' AND TABLE_NAME = 'nometabella'; |
SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'nomedatabase' AND TABLE_NAME = 'nometabella';
Se avete necessità di decifrare la password di accesso ad un server FTP avendo a disposizione il file di backup delle impostazioni non dovete fare altro che andare sul sito https://www.base64decode.org/ e copiare la password cifrata tipo
<Pass encoding="base64">Y2ljY2lvcGFzdGljY2lv</Pass>
nel campo indicato.
Una volta cliccato sul bottone verde DECODE vedrete la password in chiaro.