Cybersecurity Parlare con Jeffrey Hicks: È PowerShell un buon strumento di hacking?

In questo episodio di Cybersecurity Talk, ho Jeffrey Hicks. E ‘ un professionista assoluto in PowerShell. Ha oltre 25 anni di esperienza nel settore delle infrastrutture. È anche un MVP all’interno della specializzazione PowerShell. Lo potete trovare su Twitter @ JeffHicks e sul suo blog: jdhitsolutions.com

PowerShell – buon strumento di hacking?

Paula:

Sono il penetration tester da solo, e ho notato che PowerShell è diventato uno strumento popolare per tutti, come gli amministratori e anche alcune altre persone provenienti da altre specializzazioni. Sto usando PowerShell per l’hacking. Ma, pensi che PowerShell potrebbe essere un buon strumento di hacking? Cosa ne pensi?

Jeffrey:

Sai, questo viene fuori tutto il tempo. È venuto fuori quando PowerShell è uscito per la prima volta perché era, eravamo appena venuti dai giorni di VBScript, e Melissa, ILOVEYOU e tutte quelle cose brutte e tutti hanno detto: “Oh no, Microsoft lo farà di nuovo.”Beh, sì e no. PowerShell è uno strumento di gestione formidabile. È per i professionisti IT. Possono ottenere un’enorme quantità di lavoro svolto con pochissimo lavoro.

Naturalmente, se sei un hacker o un cattivo attore, e si desidera ottenere un sacco di cose cattive fatto molto rapidamente, sicuro PowerShell è un ottimo strumento da utilizzare in primo luogo perché non solo si hanno tutte le liste di comandi built-in, ma si ha accesso diretto al lavoro treno demo. Se hai un background di sviluppatori, c’è un’enorme quantità di cose che puoi fare a condizione che tu abbia prima accesso.

Una volta che hai accesso, se possiedi già la scatola, il fatto che stai usando PowerShell è davvero irrilevante, sei già in bad doo-doo. Ma, certo, se sono un cattivo ragazzo, e voglio fare molto in fretta, compresa la pulizia delle mie tracce, PowerShell è uno strumento perfetto per questo.

Paula:

Soprattutto abbiamo così tanti diversi moduli aggiuntivi che si possono ottenere che sono liberi di essere scaricato che potrebbe aiutare con più attività di hacking.

Jeffrey:

Certo.

Paula:

Ci sono alcuni Mimikatz anche scritto in PowerShell. Siete in grado di rubare le credenziali, semplicemente utilizzando il PowerShell. Quello che personalmente penso che sia bello, all’interno del caso di hacking che PowerShell, non è qualcosa che è riconosciuto da anti-virus, giusto?

Jeffrey:

Giusto perché è un motore di gestione che PowerShell stesso deve essere ospitato in un’applicazione. Puoi far girare un motore PowerShell solo da un prompt cmd o anche penso in memoria, quindi le cose anti-virus non possono necessariamente rilevarlo. Non è come le persone stanno per essere in esecuzione script perché questo è qualcosa che forse anti-virus potrebbe rilevare. Ma, no, l’antivirus non può farlo.

Abbiamo cose nuove in PowerShell versione 5.1, dove Microsoft ha davvero trascinato verso l’alto, la registrazione, così si potrebbe non necessariamente essere in grado di sapere subito: “Ops, sono stato attaccato”, ma sarete in grado di tornare indietro dopo il fatto e scavare attraverso tutti i registri e identificare: che cosa ha fatto, chi l’ha fatto, quali macchine hanno accesso, come hanno fatto a entrare? Almeno da un punto di vista forense e di recupero, ora hai molte più informazioni di quanto non abbiamo mai fatto nella versione precedente di PowerShell.

Paula:

E, è così accessibile, giusto?

Jeffrey:

È molto accessibile.

Dobbiamo avere paura di PowerShell?

Paula:

Sì, mi chiedo perché in generale dal punto di vista di PowerShell, potrebbe essere anche lo strumento di cui le persone hanno paura. Gli amministratori temono che PowerShell potrebbe essere utilizzato in azienda per evitare di hacking dal momento che non potranno mai vedere che.

Hai qualche consiglio per queste persone?

Jeffrey:

Sai, PowerShell di default ha protezioni di sicurezza integrate. Non sono limiti di sicurezza di accesso. Sono come il coperchio del pulsante di lancio nucleare. Devi sollevare il coperchio, ma prima devi avere accesso per raggiungere il coperchio per sollevarlo. Ci sono cose come l’esecuzione di script. Per impostazione predefinita, non è possibile eseguire uno script PowerShell. Inoltre, se qualcuno dovesse ricevere uno script dannoso nell’e-mail e fare doppio clic su di esso, non avremo uno script PowerShell eseguito.

Puoi certamente cambiarlo come amministratore. Se non sai cosa stai facendo e sei totalmente incompetente e dovresti essere licenziato e avere qualcosa di brutto, o se qualcuno copia il contenuto di quello script, apre il prompt di PowerShell, lo incolla. Se hanno le autorizzazioni e gli strumenti necessari, PowerShell lo farà felicemente. E ‘ una soluzione facile. Non dai agli utenti, inclusi gli amministratori, che non sono in esecuzione con credenziali elevate. Quindi, le loro sessioni di PowerShell sono praticamente sempre aperte come amministratore inferiore. Anche se il codice in qualche modo non intenzionale è stato eseguito, non hanno le autorizzazioni necessarie per farlo. Questo è un ottimo modo per limitare.Basta guardare il buon senso.

Diamo un’occhiata all’amministrazione appena sufficiente

Paula:

Suona bene. C’è anche abbastanza amministrazione. Che ne pensi di quello?

Jeffrey:

Just Enough Administration è uno strumento di remoting — set di strumenti in realtà-progettato per gli amministratori per fornire un ambiente di remoting più sicuro. Voglio dire, PowerShell, il modo in cui brilla davvero nell’azienda è che posso gestire 1.000 server tutti in una volta. Voglio trovare i registri degli eventi di query, ho bisogno di controllare il registro degli eventi di sistema alla ricerca, dire forse cosa c’è sul server riavviato o qualche altra indicazione che sono stato compromesso. PowerShell remoting rende davvero facile.

Tuttavia, per impostazione predefinita, devi essere un amministratore e hai accesso a tutto. Ma, con JEA, è possibile creare quello che viene chiamato un endpoint vincolato o delegato. Posso ancora connettermi a un server ma poi posso dire: “Solo queste persone possono connettersi a quell’endpoint e quando si connettono, possono solo eseguire questi comandi.”

Paula:

Che è piuttosto fresco.

Jeffrey:

Ancora di più, posso dire, ” Sai una cosa? Possono eseguire questi comandi, ma possono usare solo questi parametri e se questi parametri, possono essere solo questi set di valori.”Puoi davvero limitare ciò che possono fare. Possiamo prendere questo ancora di più nel legarlo con il toolkit di amministrazione appena sufficiente. Ci sono due strumenti JEA che mi confondo sempre, dove puoi, in sostanza, spingere fuori un endpoint e convincere qualcuno a dire: “Hai mezz’ora per andare a fare le tue cose, poi quell’endpoint è sparito e non hai più accesso”.

PowerShell e remoting

Microsoft riconosce che ci sono certamente un sacco di vulnerabilità. Le persone possono certamente approfittare di PowerShell e remoting, e stiamo facendo le cose per rendere più difficile. L’istruzione è una grande parte di esso. Un’altra cosa con il remoting, da quando l’abbiamo menzionato, è che molti professionisti IT pensano che una volta acceso il remoting di PowerShell, il gioco è fatto.

Ma non lo è. PowerShell remoting, accendendolo, che devi avere ora perché non c’è modo di gestire le cose in Windows. In realtà è solo il primo passo. La gente dimentica: “Oh, beh, potrei configurare le regole del firewall o usare IPSec. Ci sono tutti i tipi di strumenti di rete che abbiamo. Dimenticano totalmente, ” Oh, è PowerShell, ho finito.” Non. Questo è solo il primo passo.

Non è necessario che tutti i server siano accessibili da ogni indirizzo IP del proprio ambiente. Giusto?

Paula:

Ottima osservazione.

Jeffrey:

Voglio solo i miei amministratori di dominio, so quali sono i loro desktop. Solo loro hanno accesso, così posso fare le cose in rete saggio.

Paula:

Puoi tagliarlo.

Jeffrey:

Non riesco a tagliarlo, quindi è qualcosa che penso che molti professionisti IT dimentichino. Vedono solo PowerShell. Si eccitano. Vanno: “Oh, il telecomando è acceso, posso accedere a tutte queste caselle, sono a posto. Se vuoi davvero essere sicuro, hai più lavoro che vuoi fare.

Come potrebbe PowerShell migliorare la sicurezza dell’infrastruttura?

Paula:

Si’, si’, assolutamente. Quello che vediamo anche da parte nostra, che, per esempio, ci sono aziende che vogliono implementare soluzioni di prevenzione dell’esecuzione del codice, e per impostazione predefinita, anche in Outlook o in Windows, hai la possibilità di attivare le regole di default, come li chiamano. Le regole predefinite consentivano di eseguire tutto ciò che si trova nella cartella Windows e tutto ciò che si trova nella cartella programmi.

Hanno dimenticato che potrebbe essere anche uno strumento pericoloso se è nelle mani dell’utente e l’utente non sa cosa fare. È ancora un utente, ma possiamo anche, ad esempio, crittografare i dati con PowerShell e chiedere un riscatto. Solo un’idea a cui stavamo anche pensando.

Va bene, quindi cosa ne pensi, come PowerShell potrebbe migliorare la sicurezza delle infrastrutture e come renderlo un buon strumento di sicurezza per i nostri server al fine di avere successo per vincere la battaglia contro gli hacker?

Jeffrey:

Va bene, quindi un paio di cose che mi vengono in mente. In primo luogo, PowerShell versione 5.1 è ora disponibile incluso il livello inferiore fino a 2008 R2, che si spera sia il livello minimo che le persone eseguono sui loro server. Questo è qualcosa che vorrei incoraggiare la gente a distribuire.

Controlla il README, quindi non sei in esecuzione su un server, che potrebbe avere alcune limitazioni speciali, ma questo avvertimento a parte, perché con la 5.1 otterrai tutte le ultime funzionalità di sicurezza come la registrazione e tutto il resto. Quindi, per prima cosa, assicurati di eseguire la versione più recente di PowerShell. Un’altra caratteristica che penso possa davvero rientrare nella categoria di sicurezza è DSC: Configurazione dello stato desiderato.

Paula:

È una grande caratteristica.

Jeffrey:

Perché con DSC, posso creare una configurazione per dire: “Voglio che questo server assomigli a questo.”Voglio avere questi server, queste chiavi di registro, queste caratteristiche, qualunque cosa. Posso configurare il server per estrarlo da un server centrale o spingerlo ad esso. Ma la chiave qui è che posso configurare quel server e dire: “Ehi, controlla ogni 15 minuti e se qualcosa non è conforme, fuori dalla configurazione, ripristinalo.”

Paula:

È fantastico.

Jeffrey:

DSC è davvero un framework. Mi è stato detto che c’è una parte del Dipartimento della Difesa negli Stati Uniti e usano DSC. Hanno costruito alcuni dei loro strumenti, e hanno un meccanismo perché vogliono controllare più velocemente di ogni 15 minuti, che se rilevano che il server non è conforme, presumono che sia stato violato e lo uccidono.

Hanno procedure automatizzate per far apparire un nuovo server perché sanno già come dovrebbe apparire. È tutto automatizzato, è così. Possono uccidere il server o portarlo offline, così possono analizzarlo più tardi e dire: “Ok, cosa è successo? Era un problema reale o alcuni stagisti hanno fatto qualcosa che non avrebbero dovuto fare?”Ma, utilizzando DSC sarebbe un ottimo modo per assicurarsi che il server è sempre configurato nel modo in cui voglio che sia.

Paula:

Il che in realtà mi porta a una conclusione interessante che DSC, per esempio, potrebbe essere una parte del piano di risposta agli incidenti. Ad esempio, quando abbiamo un problema, stiamo ottenendo hacked, come hai detto, uno dei server è interessato. Lo puliamo e basta. Abbiamo il massimo comfort all’interno che abbiamo la soluzione che sta funzionando abbastanza bene per fare le cose di nuovo, e siamo tornati al funzionamento.

Jeffrey:

Il punto che si sente da Microsoft, questo è da Jeffrey Snover è che i professionisti IT hanno bisogno di iniziare a trattare i loro server come il bestiame, non come gli animali domestici.

Paula:

Oh, e ‘ un bel paragone.

I tempi in cui stavamo costruendo i server da zero…

Jeffrey:

Per il tempo più lungo, e ci sono stato per oltre 25 anni, avremmo creato un server. Ci vorrebbe una settimana per costruire un server. Devi ordinare l’hardware, devi mettere tutto dentro, caricare manualmente i floppy disk per ottenere tutto. Ci vorrebbe molto tempo. Avresti amorevolmente lavorato a mano quel server. Se qualcosa andasse storto, ” Oh, ti sistemo io, piccola. Starai bene.”

Non possiamo più farlo. Per ora, per prima cosa, i server sono nel cloud. Non sono in fondo al corridoio e tutto il resto. Ora decidiamo e non gli diamo nomi eleganti e belli. E ‘ solo un numero. Se il server è compromesso o fallisce in un modo, non mi prendo il tempo di provare a risolverlo. Faccio solo hamburger e accendo una nuova macchina e invio la configurazione e so che sono a posto. Assolutamente.

Un consiglio da Jeffrey Hicks per coloro che vogliono diventare professionisti IT

Paula:

Che figata. Ecco che arriva la domanda impegnativa. La domanda è: Se abbiamo qualcuno che è proprio all’inizio della loro carriera, e ti guardano e dicono: “Oh, voglio essere come lui, voglio sapere tutte le cose di PowerShell ed essere un vero geek”, cosa consiglieresti a una persona del genere?

Jeffrey:

Certamente, ci sono un sacco di libri e roba. In realtà ho una pagina sul mio blog per le risorse essenziali di PowerShell perché ottengo che ha chiesto tutto il tempo. “Quali libri dovrei guardare? Quali video?”e tutto il resto. Ovviamente, ho scritto e creato un sacco di che. La cosa importante dell’apprendimento di PowerShell è che è una lingua. È come se dovessi cercare di imparare il polacco, avrei bisogno di usarlo ogni giorno per diventare fluente in esso.

PowerShell è allo stesso modo. Devi trovare il modo di usarlo ogni giorno. Questo è il numero uno da asporto lì.

Paula:

Quindi, qualcuno dovrebbe passare il proprio tempo ed essere lì ogni giorno, studiare, imparare a leggere i libri, eccetera?

Jeffrey:

Anche se non fai altro che leggere gli argomenti della guida su qualche comando una volta al giorno.

Paula:

Ok. Potrebbe bastare. Sì, come imparare una parola in una lingua straniera

Jeffrey:

Esatto. Imparare qualcosa di nuovo. Ma devi usarlo.

I consigli per i più avanzati…

Paula:

Certo, e per quanto riguarda i ragazzi avanzati. Hai un amministratore e l’infrastruttura e lui è come sapere, ovviamente, tutte quelle cose che gestisce, o lei gestisce e fondamentalmente questo ragazzo vuole sapere di più in PowerShell, essere migliore, essere fluente. Che tipo di consiglio daresti a tale persona?

Jeffrey:

Ho intenzione di dare loro in realtà una sorta di due piccoli consigli. Uno è, girati e condividi le tue conoscenze con la persona più giovane, non solo perché è la cosa giusta da fare, ma anche nel fatto di cercare di formulare i tuoi pensieri. “Ok, come posso comunicare o condividere ciò che so?”Potresti capire,” Oh, forse non lo so bene come dovrei. Devo tornare a rispolverare.”Impari un po’ di più nel cercare di insegnare a qualcuno, non hai altra scelta che impararlo davvero da solo.

Sarebbe il numero uno. Il secondo è che devi solo prendere questa idea di usarlo ogni giorno al livello successivo. Devi essere la persona che sta creando le configurazioni DSC e gli strumenti PowerShell che stai utilizzando per monitorare i server per fornire l’analisi forense se sei stato compromesso.

Avrai bisogno di imparare cose nuove come.NET framework. Avrai bisogno di imparare alcune delle avanzate. Devi iniziare a pensare. Vai ad alcune delle conferenze segrete degli hacker e impara i modi cattivi e trova i modi, ” Ok, come posso farlo in PowerShell?”Cerca di essere più proattivo.

Paula:

C’è come un piccolo detto che se senti di sapere qualcosa, puoi testarlo perfettamente spiegando questo a tuo nonno. Poi le tecnologie più recenti, mio nonno sta per essere come, ” Che cosa stai parlando?”Ma forse è lo stesso come questo con il PowerShell? Devi essere in grado di spiegarlo ai più giovani.

Jeffrey:

Giusto, se non puoi spiegarlo a qualcuno o insegnare a qualcuno, allora non lo sai abbastanza bene.

Paula:

Esattamente, esattamente.

Quando sogni in Powershell

Jeffrey:

Ho usato PowerShell da quando era in beta. Ho co-scritto uno dei primi libri. Vado a letto e sogno: “Cosa posso fare in PowerShell.”

Paula:

Sogni in PowerShell?

Jeffrey:

Io in realtà sogno in PowerShell.

Paula:

Sul serio? E ‘cosi’ divertente. Posso chiederti, com’e’?

Jeffrey:

Sognerò qualcosa, qualche script su cui sto lavorando. O qualche progetto che voglio lavorare il giorno dopo. Sono tipo, ” Oh, oh, è così che ho intenzione di aggirare il problema.”Sì, quindi, sì. Quando stai imparando una lingua straniera, se inizi a sognare in quella lingua, allora l’hai imparato.

Paula:

Bene, sogno in inglese, per esempio, perché lavoro in inglese tutto il tempo. Quando vado a letto penso, “Ok”, comincio in inglese, poi mi rendo conto, “Beh, ehi, aspetta, sono polacco, quindi forse dovrei pensare nella mia lingua madre.”Ma non funziona così, sì?

Jeffrey:

Questa è un’indicazione che hai davvero.

Paula:

Ci sei dentro.

Jeffrey:

L’hai assorbito e sai di cosa si tratta. Sì, sto confessando a tutti che sogno in PowerShell.

 Jeffrey Hicks

Impara PowerShell in un mese di pranzi

Paula:

Va bene. Ok, grazie Jeff per le belle intuizioni. Penso che possiamo riassumere un po ‘ la nostra intervista. Stavamo parlando di questo:

  • PowerShell potrebbe essere uno strumento di hacking, ma è più per admin.
  • Potrebbe anche essere usato per i cattivi se abbiamo la possibilità di usarlo in una certa fase di hacking.
  • Just Enough Administration è anche una soluzione molto bella per limitare la funzionalità del PowerShell nella mano di qualcuno.
  • È un po ‘ difficile configurare la configurazione dello stato desiderato, perché ci sono così tante parti mobili diverse, ed è solo un framework.

Jeffrey:

Non è solo un chiavi in mano, posso fare una configurazione, ho finito. Ci sono un sacco di pezzi in movimento e si deve decidere come sta andando ad adattarsi al vostro ambiente. Sì, DSC è una parte fondamentale qui.

Paula:

È una parte fondamentale e per poter essere fluente in PowerShell, devi spendere almeno un’ora al giorno forse se potessimo riassumerlo in questo modo, concentrarti sui diversi tipi di funzioni di PowerShell e così via, o almeno conoscere una lunghezza CMD al giorno.

Jeffrey:

Uno dei libri più popolari di PowerShell è quello che ho co-scritto con Don Jones:”Impara Windows PowerShell in un mese di pranzi”.

promette che leggerai un capitolo durante la pausa pranzo perché sono abbastanza brevi. Si legge un capitolo, fare un esercizio, e nel corso di un mese, si dovrebbe quindi conoscere abbastanza PowerShell per almeno essere abile. Non lo saprai al 100%, ma ne saprai abbastanza per iniziare.

Paula:

Grazie mille, si spera, voi ragazzi piace e fare in modo che se avete intenzione di avere alcune domande a Jeff o su questa intervista o a me stesso, assicuratevi di andare a pubblicarli nella sezione commenti qui sotto.

Ti è piaciuta questa intervista? Vedere quanto si sa veramente sulla sicurezza informatica! Mettiti alla prova contro Paula Januszkiewicz.

>>>Prendere il suo HARDCORE di sicurezza di Windows Quiz<<<

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.