Archives For VBS

Non è una novità, se ne parla già da tempo e credo che lo “scandalo” (se così lo si può definire) legato alla baia dei pirati (ne parlava Diletta su Wired il 20 settembre scorso) sia stato solo la punta dell’iceberg, che abbia in qualche maniera sdoganato una pratica sempre più crescente, adottata ogni giorno da siti web che tendenzialmente potrebbero essere raccolti sotto il tetto unico della pirateria informatica e la violazione dei diritti d’autore. Ne parla Hardware Upgrade in maniera più approfondita ma comunque accessibile per tutti. Io oggi voglio parlarti di NoCoin, ma parto da “un po’ più lontano“, dal perché dovresti difenderti dal mining delle criptovalute via browser.

ABP X Files: ti presento NoCoin, l'ultimo arrivato in famiglia!

Cosa sta succedendo

Se ti parlo di Coinhive probabilmente non capirai di cosa sto blaterando, ma in realtà te l’ho già parzialmente introdotto nel cappello di questo articolo, è lui il protagonista dell’esperimento e relativa “sommossa popolare” legata a Pirate Bay, poiché propone un diverso modo di recuperare le spese di sostentamento di un sito web (ma non solo), inserendo javascript che possono minare criptovalute sfruttando il browser (ma non solo, ribadisco). Il tutto ha avuto inizio nel settembre del 2017 (intorno alla metà del mese), come riportato in un ottimo articolo di BleepingComputer (bleepingcomputer.com/news/security/coinhive-is-rapidly-becoming-a-favorite-tool-among-malware-devs):

Coinhive is quickly becoming the talk of the Internet, going from an innovative tool that lets you mine Monero with your browser, to a technology abused by hoards of malware authors.
Coinhive, as a tool, is a JavaScript library that website owners can load on their site. When users access the site, the Coinhive JavaScript code library executes and mines for Monero for the site owner, but using the user’s CPU resources.
Original idea! We’ll give it that. Coinhive launched on September 14, and its authors advertise it as an alternative to classic advertising.
Coinhive claims that webmasters can remove ads from their sites, and load the Coinhive library and mine for Monero using a small portion of the user’s CPU while the user is navigating the site. Site owners can make money and support their business, but without peppering their visitors with annoying ads.

Dato che di notizie riguardanti malware e falle enormi ne abbiamo già ricevute abbastanza nel corso dell’anno passato e anche in concomitanza con l’inizio di questo 2018 (Meltdown e Spectre ormai sono due nomi sulla bocca di tutti, o quasi), direi che forse possiamo fare un pelo più di attenzione a questi siti web che ormai proliferano incontrollati (anche se alimentati grosso modo dagli stessi player), prendendo contromisure che possano tutelare i browser utilizzati e le CPU dei nostri PC.

In attesa che Mozilla, Google e soci lavorino proponendo una soluzione possibilmente definitiva (dai un’occhiata a questo ormai chilometrico thread riguardante Chrome), tu puoi già fare qualcosa.

Come proteggersi

In alcuni casi, prodotti di sicurezza di terze parti (un caso abbastanza importante è quello di Malwarebytes) sono già pronti a reagire alla novità, proponendosi come scudo tra il browser e quei siti web che provano a fare ciò che non è stato preventivamente approvato dall’utente, ma non tutti possono dirsi alla pari e allo stesso livello.

Ancora una volta Adblock Plus e soci possono darci una grande mano, e di questo te ne parlo nello specifico nel successivo paragrafo dedicato a liste ben specifiche. Se vuoi utilizzare qualcosa di creato ad-hoc e disponibile su più browser, posso suggerirti “No Coin“. Si tratta di un progetto open source pubblicato su GitHub, lo trovi all’indirizzo github.com/keraf/NoCoin, il quale ha dato origine all’estensione attualmente disponibile per Firefox (WebExtension, perfettamente compatibile con Quantum), Chrome e Opera:

No Coin
No Coin
Price: Free
No Coin - Block miners on the web!
No Coin - Block miners on the web!
Developer: Keraf
Price: Free
No Coin
No Coin
Developer: keraf
Price: Free

Il funzionamento è parecchio banale ma efficace. Come per un adblocker, No Coin sfrutta una blacklist (aggiornata) che permette al componente aggiuntivo di avvisarti nel caso in cui il sito web visitato stia facendo uso di un miner di criptovaluta, così che tu possa bloccare l’esecuzione del codice arbitrario o decidere di tenerlo in una whitelist (magari ti fa piacere partecipare al mining, ognuno fa ciò che vuole con il proprio hardware).

Allo stato attuale No Coin non è disponibile per i browser di casa Microsoft (Internet Explorer / Edge) e neanche per Safari (Apple). Per questo motivo, ho pensato di riutilizzare quanto fatto da Keraf per dare origine a “NoCoin“.

Hello, I’m NoCoin!

ABP X Files: NoCoinAdblock Plus (ma anche gli equivalenti) sono disponibili ormai per ogni browser, per questo motivo ho verificato i limiti di licenza dettati per il progetto “No Coin e ho lavorato a una modifica dello script VBS che genera la lista HWS (te ne parlavo qui), per catturare la blacklist di Keraf e trasformarla in un modulo di X Files, un’ulteriore sottoscrizione che puoi utilizzare gratuitamente sul tuo PC, la “NoCoin List“.

NoCoin si basa su una logica simile a quella HWS, per questo motivo impedisce il caricamento di qualsiasi file facente parte dei domini che vengono utilizzati per distribuire javascript (e affini) di mining di criptovaluta, quando caricati come “terza parte” (cioè utilizzati da altri siti web puliti). Ho volutamente scelto di non integrare quei domini in HWS perché si tratta di due scopi ben differenti, e chiunque può aggiungere un’ulteriore sottoscrizione al proprio Adblock Plus (o altro componente aggiuntivo), poiché costa poca fatica.

Con l’occasione, ho dato una svecchiata ai contenuti della home page di progetto, includendo il nuovo blocco per la lista attualmente in fase Beta:

Ti presento NoCoin, l'ultimo arrivato nella famiglia ABP X Files

Ora tocca a te. Scegli come proteggere ulteriormente la tua navigazione, ma fallo quanto prima, per evitare spiacevoli inconvenienti. Nel caso in cui tu non voglia utilizzare il nuovo modulo NoCoin, tu suggerisco di dare un’occhiata a un progetto alternativo anch’esso presente su GitHub e già ben nutrito, curato da Hosh.

L’area commenti qui di seguito è –come sempre– a disposizione per ulteriori informazioni o chiarimenti in merito all’argomento trattato e alle novità introdotte. Per aprire una richiesta di supporto riguardante NoCoin ti rimando invece a uno dei possibili metodi riportati nel sito web ufficiale (ti consiglio comunque GitHub).


Immagine di copertina: techporn.ph

Condividi l'articolo con i tuoi contatti:

sourcecode-vbscriptSai già come funziona, di tanto in tanto apro il cassetto degli attrezzi, utilizzo uno script e poi penso che potrebbe essere interessante per qualcun altro sul web, quindi decido di condividerlo con te che sei dall’altra parte del monitor e che stai forse svolgendo un mestiere simile al mio.

Qualche tempo fa ho rimaneggiato un po’ di codice per realizzare un piccolo VBScript che fosse in grado di ritoccare la descrizione di un PC da remoto, senza che l’utente si accorga di nulla, collegandomi in maniera amministrativa grazie alla rete di dominio.

Da un’idea e realizzazione originale di Rob Dunn (il suo sito web non esiste più, nda), il codice qui di seguito mostra un popup a video che legge l’attuale descrizione di un PC (raggiunto tramite hostname o IP) e permette contestualmente di modificarla.

' PC Description Changer per Windows Xp+
' GSolone 2015 v 0.3
' Basato su script originale di Rob.Dunn (www.theitoolbox.com)
' Ultima modifica 17122015
'
' - accetta da prompt dei comandi il nome macchina (o IP) da raggiungere (es. PCDescription.vbs 127.0.0.1)
' - Windows XP e 2003 richiedono un riavvio macchina per poter mostrare poi la description corretta.
' - il servizio di remote registry deve essere attivo e occorre anche avere le permission WMI)
' - lo script tronca oltre i 48 caratteri forniti come testo della descrizione PC
'
' LO SCRIPT VA ESEGUITO COME AMMINISTRATORE MACCHINA O DI DOMINIO!

Dim strDescription, strComputer, reg, objRegistry
Dim ret, msg, ValueName 

Const HKLM = &H80000002

if WScript.Arguments.Count = 0 then
    'Richiesta IP o hostname macchina da modificare
    strComputer = InputBox("PC Description Changer (Win Xp +)" & vbCR & vbCR & "VA ESEGUITO COME ADMIN LOCALI O DI DOMINIO!" & vbCR & vbCR & "Inserisci il nome macchina o indirizzo IP da raggiungere (vuoto o clic su Annulla per uscire dallo script)" & vbCR, "PC Description Changer", "W7-TEST")
else
    'Se l'indirizzo IP / Hostname mi è stato passato da riga di comando, posso procedere direttamente
    strComputer = Wscript.Arguments(0)
end if

if strComputer = "" then wscript.quit

on error resume next

Set reg = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")

if err.number <> 0 then 
  msgbox "Problemi di connessione al database WMI di " & strComputer & ".  Verifica che il PC sia acceso e che tu abbia tutti i permessi per poter effettuare l'operazione",16,"Errore di connessione a '" & strComputer & "'" 
  wscript.quit  
end if

on error goto 0 

Set objRegistry = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2").ExecQuery("Select Description FROM Win32_OperatingSystem")


For Each object In objRegistry
    strDescription = object.Description 
Next 

value = inputbox("Inserisci una nuova descrizione per '" & strComputer & "' (o fai clic su Annulla per terminare lo script):","PC Description Changer",strDescription)

If value = strDescription then wscript.quit

key = "SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters"
ValueName = "srvcomment"

If Len(Value) > 48 Then Value = Left(Value, 48)
ret = reg.SetStringValue(HKLM, key, ValueName, value)

if ret <> 0 then msgbox "Aggiornamento remoto fallito."

All’interno del codice c’è anche qualche rapida istruzione (in parte riproposta a video) per guidarti all’uso o a capire cosa può andare storto. Ricorda che il servizio di Remote Registry deve essere attivo sulla macchina di destinazione (e l’account che lancia lo script deve avere i permessi per amministrarla, vale quindi lanciarlo da un prompt dei comandi elevato), altrimenti si incorre in popup di errore come questo:

VBS: cambiare la descrizione di un PC da remoto

Tutti i test sono stati condotti su Windows 7, 8.1 e 10. In passato l’ho usato anche per macchine XP senza battere ciglio, spero però per te che tu non abbia più quel SO in giro ;-)

Per dubbi o chiarimenti, citofonare nell’area commenti.

Cheers.

Condividi l'articolo con i tuoi contatti:

Tutto parte da un vecchio articolo di HowToGeek (howtogeek.com/206329/how-to-find-your-lost-windows-or-office-product-keys) e dalla necessità di salvare rapidamente il seriale di un Windows 7 che da lì a poco sarebbe stato cancellato dal disco (formattazione completa) e reinstallato in seguito, pulito. Non volevo scaricare software di terze parti e non avevo nulla a disposizione su quella macchina.

Ho quindi preferito percorrere la via dello script VBScript, con una leggera modifica al codice per permettere il salvataggio del Product Key su file di testo, facilmente memorizzabile su chiave USB e riutilizzabile in seguito (copia & incolla) così da poter essere inserito in Windows, giusto in tempo per l’attivazione via internet.

Windows 7: recuperare e salvare il codice Product Key (VBScript)

Il codice è stato quindi ereditato dall’articolo di cui vi parlavo sopra, modificato dal sottoscritto, e reso nuovamente disponibile per voi tutti, qui di seguito:

' Microsoft Windows 7 Product Key Grabber
' Testata su conf. Windows 7 x86 e x64 Sp1
' GSolone 2015 v 0.1 - ultima modifica 03122015
' Fonte originale: http://www.howtogeek.com/206329/how-to-find-your-lost-windows-or-office-product-keys/

Set WshShell = CreateObject("WScript.Shell")
Set objFSO=CreateObject("Scripting.FileSystemObject")
ProduKey = ConvertToKey(WshShell.RegRead("HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DigitalProductId"))

' Salvataggio Product Key sul Desktop dell'utente
UserProfile = CreateObject("WScript.Shell").ExpandEnvironmentStrings("%UserProfile%")
Set objFile = objFSO.CreateTextFile(UserProfile & "\Desktop\Win7ProduKey.txt")
objFile.Write "Windows Product Key" & vbCrLf & ProduKey
objFile.Close

' Verifica a video del Product Key (conferma salvataggio su file di testo)
MsgBox "Ho salvato il Product Key sul tuo Desktop: " & UserProfile & "\Desktop\Win7ProduKey.txt" & vbCrLf & "Product Key (conferma a video): " & ProduKey

Function ConvertToKey(Key)
    Const KeyOffset = 52
    i = 28
    Chars = "BCDFGHJKMPQRTVWXY2346789"
    Do
        Cur = 0
        x = 14
        Do
            Cur = Cur * 256
            Cur = Key(x + KeyOffset) + Cur
            Key(x + KeyOffset) = (Cur \ 24) And 255
            Cur = Cur Mod 24
            x = x -1
        Loop While x >= 0
        i = i -1
        KeyOutput = Mid(Chars, Cur + 1, 1) & KeyOutput
        If (((29 - i) Mod 6) = 0) And (i <> -1) Then
            i = i -1
            KeyOutput = "-" & KeyOutput
        End If
    Loop While i >= 0
    ConvertToKey = KeyOutput
End Function

Una volta lanciato, questo mostrerà a video un messaggio di conferma dell’operazione (salvo problemi): avrà nel frattempo salvato su un file di testo il codice del vostro sistema operativo, direttamente sul vostro Desktop (Win7ProduKey.txt). Il tutto è stato testato con successo su configurazione Windows 7 Professional, Sp1, a 64 bit. Non dovrebbero esserci problemi a far girare lo stesso script anche su altre configurazioni di Windows 7 (anche perché basa la sua esportazione sul registro di sistema), non serve farlo girare come amministratore della macchina.

Se non volete “fare della fatica“, potete anche scaricarlo direttamente da bit.ly/Windows7ProductKey.

Buon lavoro!

Condividi l'articolo con i tuoi contatti:

Pillole

Le pillole sono articoli di veloce lettura dedicati a notizie, script o qualsiasi altra cosa possa essere "divorata e messa in pratica" con poco. Uno spazio del blog riservato ai post "a bruciapelo"!

Un errore che in tutta onestà non mi era mai capitato prima ma che -come al solito- si rifà ad associazioni sbagliate nel registro di sistema. La vostra macchina non riesce più ad eseguire un semplice VBScript? L’errore mostrato a video dice che non esiste alcun interprete di script per i file con estensione .vbs come in immagine?

Windows7_NessunInterpreteVBS

Salvate questo codice in un file .reg con un nome a piacere ed eseguitelo per rimettere le cose a posto:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\.VBS]
@="VBSFile"
[HKEY_CLASSES_ROOT\VBSFile]
@="VBScript File"
"EditFlags"=hex:00,00,00,00
[HKEY_CLASSES_ROOT\VBSFile\Shell]
@="Edit"
[HKEY_CLASSES_ROOT\VBSFile\Shell\Edit]
@="&Edit"
[HKEY_CLASSES_ROOT\VBSFile\Shell\Edit\Command]
@="Notepad.exe %1"

[HKEY_CLASSES_ROOT\.VBE]
@="VBEFile"
[HKEY_CLASSES_ROOT\VBEFile]
@="VBScript Encoded File"
"EditFlags"=hex:00,00,00,00
[HKEY_CLASSES_ROOT\VBEFile\Shell]
@="Edit"
[HKEY_CLASSES_ROOT\VBEFile\Shell\Edit]
@="&Edit"
[HKEY_CLASSES_ROOT\VBEFile\Shell\Edit\Command]
@="Notepad.exe %1"

Oppure scaricate ed eseguite direttamente il file pronto da qui: app.box.com/s/sanu1hpmafq1ak8m187zgy8cccuf1f14 :-)2

Condividi l'articolo con i tuoi contatti:

Uno di quei lavori che se doveste fare a mano per ciascun client dell’azienda vi ritrovereste ad andare in pensione prima di aver terminato l’intervento. Dato un numero non meglio definito di collegamenti a cartelle di rete tipicamente salvati sul Desktop utente, occorrerà modificare il puntamento da $vecchioserver a $nuovoserver. Un lavoro banale se fatto a mano da ciascun utente ma spesso -sfortunatamente- chiedere queste cose all’utente finale è un po’ come spostare una montagna a mani nude.

Ho cercato online qualcosa dalla quale partire e ho trovato ancora una volta una via di fuga tramite VBScript, pressoché perfetta per questo caso. Il codice VBS originale è di Rob Dunn (sei un santo, ragazzo, un vero santo) e lo trovate all’indirizzo community.spiceworks.com/scripts/show/298-change-shortcut-lnk-target-paths-in-bulk. Io l’ho leggermente modificato per accettare dei parametri dall’esterno (così sarà facilmente richiamabile da file batch, nel mio specifico caso al logon di un utente al dominio). Ne ho forzato la modalità “silent” per evitare che chieda qualsiasi cosa all’utente (e ho anche rimosso le parti di codice che se ne occupano nello script originale, ndr) ed evitare in ultimo che venga mostrato il log delle operazioni che rimarrà comunque disponibile sul client in %TEMP%\BulkShortcut.htm.

Ho caricato lo script modificato e i richiami in batch su Github e trovate il tutto qui: gist.github.com/gioxx/11403345.

Giusto per capirci: una volta caricato il VBS su un server accessibile per i vostri utenti vi basterà richiamarlo tramite una semplice riga nel netlogon:

cscript \\%USERDNSDOMAIN%\netlogon\scripts\BulkShortcut.vbs //B "\\SERVER1\" "\\SERVER3\shared\"

Questo permetterà al VBScript di prendere tutti i collegamenti sul Desktop analizzandoli e cercando quelli che puntano attualmente su SERVER1 per modificarli e farli puntare a SERVER3. Occhio, il VBScript potrebbe accettare un terzo parametro. Dopo cosa cercare e come modificarlo potreste specificare anche la directory all’interno della quale fare il lavoro, nel caso in cui non sia il Desktop la vostra casa base. Potreste quindi lanciare un ipotetico:

cscript \\%USERDNSDOMAIN%\netlogon\scripts\BulkShortcut.vbs //B "\\SERVER1\" "\\SERVER3\shared\" "C:\Temp"

Che forzerà così l’operazione in C:\Temp contrariamente a quanto stabilito di default all’interno del codice.

Il lavoro è molto rapido e completamente invisibile agli occhi dell’utente che potrà quindi fare clic sulle icone che ha lasciato l’ultima volta sul suo Desktop senza accorgersi che queste puntano altrove.

Condividi l'articolo con i tuoi contatti: