,

TVHeadend: Script Guida TV

Uno screenshot dell’applicazione TvhClient per iOS con la guida TV.

Gli amici che mi seguono sui Social sanno che in questi giorni sto configurando il mio Intel Nuc Skull Canyon che progressivamente sostituirà il mio “cluster” di Raspberry Pi sfruttati per lavoro e per hobby. Uno dei raspi era configurato con TVHeadend, un software Open Source per visionare la TV o ascoltare la radio in streaming sfruttando il proprio impianto televisivo di casa o una antenna esterna.

La programmazione dei canali inviata tramite le frequenze DVB-T è molto carente, si limita al massimo alle successive 24h ma è facile trovare emettitori che rilasciano informazioni molto più brevi nell’arco delle 3h o che non la rilasciano proprio. Questo non permette di impostare una registrazione automatica dei canali.

Sfruttando invece i dati offerti dalla comunità VuPlus è possibile ottenere una guida TV più ampia, VuPlus offre la programmazione per diversi paesi ed è quindi possibile personalizzare il mio script con l’archivio desiderato.

Mi sono basato su un precedente script creato da Mathias F. Svendsen e l’ho personalizzato per le mie esigenze includendo miglioramenti complessivi nel codice. Per attivare/installare lo script procedete come segue:

  • Copia lo script in /usr/bin/tv_grab_url
  • Assegnare i permessi 777 a tv_grab_url (chmod 777 tv_grab_url)
  • Riavviare TVheadend (/etc/init.d/tvheadend restart)
  • Dalla WebGUI accedere al pannello Configuration > Channel > EPG Grabber > Internal Grabber > selezionare: XMLTV: TV Grab by URL > Save

In maniera predefinita TVHeadend eseguirà il download dei dati due volte al giorno, alle 00:04 e 12:04. In alcuni casi è possibile che il file XML scaricato dallo script contenga dei nomi TV leggermente diversi rispetto a quelli acquisiti dal vostro ricevitore TV e pertanto dovrete fare una associazione manuale dalle impostazioni della WebGUI di TVHeadend.

Il mio script è disponibile su GitHub, ogni collaborazione è ovviamente ben accetta. Vi lascio infine l’estratto di tutte le Guide TV offerte da VuPlus per paese in formato XMLTV.

 

Rytec Benelux XMLTV
http://www.vuplus-community.net/rytec/rytecxmltvBenelux.gz

Rytec Benelux-Telenet XMLTV
http://www.vuplus-community.net/rytec/rytecxmltvBenelux.gz

Rytec Bulgaria XMLTV
http://www.vuplus-community.net/rytecxmltv-Bulgaria.gz

Rytec Denmark XMLTV
http://www.vuplus-community.net/rytec/rytecxmltvnordic.gz

Rytec Erotic XMLTV
http://www.vuplus-community.net/rytec/rytecxmltverotic.gz

Rytec Erotic-Telenet XMLTV
http://www.vuplus-community.net/rytec/rytecxmltverotic.gz

Rytec Finland XMLTV
http://www.vuplus-community.net/rytec/rytecxmltvnordic.gz

Rytec France XMLTV
http://www.vuplus-community.net/rytec/rytecxmltvFrance.gz

Rytec Germany/Austria/Swiss XMLTV
http://www.vuplus-community.net/rytec/rytecxmltvGermany.gz

Rytec Greece XMLTV
http://www.vuplus-community.net/rytec/rytecxmltv-Greece.gz

Rytec Hungary XMLTV
http://www.vuplus-community.net/rytec/rytecxmltv-Hungary.gz

Rytec IPTV XMLTV
http://www.vuplus-community.net/rytec/rytecxmltvIPTV.gz

Rytec Israel XMLTV
http://www.vuplus-community.net/rytec/rytecxmltvosn.gz

Rytec Italy XMLTV
http://www.vuplus-community.net/rytec/rytecxmltvItaly.gz

Rytec Norway XMLTV
http://www.vuplus-community.net/rytec/rytecxmltvnordic.gz

Rytec Middle East XMLTV
http://www.vuplus-community.net/rytec/rytecxmltvosn.gz

Rytec Poland XMLTV
http://www.vuplus-community.net/rytec/rytecxmltv-Poland.gz

Rytec Portugal XMLTV
http://www.vuplus-community.net/rytec/rytecxmltv-Portugal.gz

Rytec Romania XMLTV
http://www.vuplus-community.net/rytec/rytecxmltv-Romania.gz

Rytec Serbia/Croatia/Montenegro XMLTV
http://www.vuplus-community.net/rytec/rytecxmltvexyu.gz

Rytec Slovak/Czech XMLTV
http://www.vuplus-community.net/rytec/rytecxmltv-Czech.gz

Rytec Slovenia XMLTV
http://www.vuplus-community.net/rytec/rytecxmltvexyu.gz

Rytec Spain XMLTV
http://www.vuplus-community.net/rytec/rytecxmltv-Spain.gz

Rytec Sweden XMLTV
http://www.vuplus-community.net/rytec/rytecxmltvnordic.gz

Turkey XMLTV
http://www.vuplus-community.net/rytec/digiturk.xmltv.gz

Rytec UK XMLTV
http://www.vuplus-community.net/rytec/rytecxmltv-UK.gz

Rytec Virgin UK/Ireland XMLTV
http://www.vuplus-community.net/rytec/rytecxmltv-UK.gz

Rytec Csat Africa XMLTV
http://www.vuplus-community.net/rytec/rytecxmltv-CSatOverseas.gz

Rytec Csat Reunion XMLTV
http://www.vuplus-community.net/rytec/rytecxmltv-CSatOverseas.gz

Rytec Csat Carabean XMLTV
http://www.vuplus-community.net/rytec/rytecxmltv-CSatOverseas.gz

Rytec New Caledonia XMLTV
http://www.vuplus-community.net/rytec/rytecxmltv-CSatOverseas.gz

 

,

FOPO PHP Deobfuscator

FOPO  è probabilmente uno dei migliori progetti online e gratuiti di offuscamento del codice PHP, oltre a sfruttare le principali tecniche di offuscamento (base64, gzip, ecc) ciclandole più volte genera un hash md5 del codice e ad ogni esecuzione ne esegue una verifica. Se l’hash del file è diverso da quello iniziale non procede all’interpretazione del codice PHP, questa tecnica limita una procecuda manuale di decodifica.

Personamente ho sempre decodificato a mano questi codici PHP ma visto il crescente numero di script da decodificare la scorsa settimana ho iniziato a gettare le basi di uno script in Python per automatizzare la procedura quando ho trovato un progetto già sviluppato su GitHub creato da Antelox del team QueQuero.

Personalmente ho apportato allo script una semplice modifica per rendere lo script adatto agli offuscamenti antecedenti al 2016, modifica che Antelox ha poi apportato anche al decoder online basato su PHP.

Nell’immagine di apertura potete vedere un esempio di un semplice codice offuscato e poi deoffuscato, un semplice echo contenente la dicitura “Hello By Andrea Draghetti”.

Per chi volesse clonare il progetto il GIT è il seguente: https://github.com/Antelox/FOPO-PHP-Deobfuscator.git e potete utilizzare la versione 0.21 dello script.

,

FibraClick Scanner: Notifiche sullo stato della copertura in Fibra

Fibra Click Scanner è un nuovo progetto che ho voluto realizzare per ricevere automaticamente le notifiche sullo stato di attivazione (ma non solo) del cabinet a cui sono collegato con la mia connessione a internet TIM. L’applicazione analizza i dati forniti dal portale FibraClick e qualora il cabinet indicato risultasse variato (Attivato, Cambio Pianificazione, Saturo, ecc) rispetto alla precedente analisi viene inviata una notifica Push allo Smartphone o Tablet attraverso i servizi offerti da PushOver.

FibraClick è un noto portale che permette di monitorare l’attivazione della Fibra (VDSL/FTTC) TIM nel proprio comune, per utilizzare lo scanner bisognerà indicare anche l’ONU di appartenenza ovvero il numero scritto in nero con sfondo giallo sul cabinet che trovate nelle vicinanze della vostra abitazione. Se non riuscite o non conoscete il numero del vostro cabinet su internet trovate diverse guide su come ottenerlo.

Grazie a questo scanner non dovrò visitare il sito con costanza ma ad ogni variazione riceverò una semplice notifica sul mio smartphone come da immagine di apertura.

Il software è OpenSource e potete scaricarlo tramite GitHub, la configurazione è veramente semplice e potete trovare tutti i dettagli nel file README.

 

, ,

[English Version] Remotely reboot of HP and other printers!

(I apologize for my bad English – La versione Italia è qui.)

Premise

My HP LaserJet Pro presents punctually two problems after several days without activity, the most obvious problem is the on the scanner function that will create a scansion with vertical bars of different colors over the page. The second issue involves printing, is very slow in receiving data. Both problems seem to be related to an incorrect management of RAM which leaving the printer unused for several days you go to saturate.

The customer assistance recommend to perform reset of NVRAM, but this procedure loss all configurations. It’s been over a year since my report and other users of this problem, but nothing changed. No firmware update was unfortunately released, last in February 2015, bringing even behind the failure to resolve several vulnerabilities (such as OpenSSL).

To quickly solve the problems described above, just do a manual reboot of the printer, but are always in a hurry when I happen to do a scan and detect the problem which forces me to wait further.

In the past I have checked if it was possible to perform a reboot by software, as well as to automate the process, but unfortunately the Web interface or Telnet does not have a restart function. Absurd! I found then a first procedure via FTP but did not work, the printer prints a blank page and a second procedure again via FTP by sending a custom text string. This second procedure did not generate some effect.

During the feast of Santo Stefano (26 December) my wife has different printed material for his blog and printed was evidently slow in receiving the data (going from memory I had used the printer the last time 7 days before), the first printing of 11 sheets it took about 13 minutes and after a restart printing the same material took less than two minutes.

I tried again a solution to automatically reboot and found an article in a German blog (I did not understand who the author) illustrating a procedure to be performed by running Microsoft PowerShell that uses the protocol SNMP .

$PrinterIP = "192.168.1.87"
$SNMP = New-Object -ComObject olePrn.OleSNMP
$SNMP.Open($PrinterIP, "public")
$SNMP.Set(".1.3.6.1.2.1.43.5.1.1.3.1",4)
$SNMP.Close()

For Linux/Unix you must install the SNMP package using aptitude:

sudo apt-get install snmp

and you can run the HP Printer Reboot through the terminal with the simple command:

snmpset -v 1 -c public 192.168.1.87 ".1.3.6.1.2.1.43.5.1.1.3.1" i 4

you have replace 192.168.1.87 with the IP address of your printer.

I then decided to include an automatic cron, on my home server, which at 2 am, and every 2 days I run a reboot:

0 2 */2 * * /usr/bin/snmpset -v 1 -c public 192.168.2.41 ".1.3.6.1.2.1.43.5.1.1.3.1" i 4

IT Security: Remotely Reboot Without Password

With the steps I finally solved the problem, but I found that there is no authentication request in the command that impute.

The SNMP protocol is used by multiple printers to communicate to the user/client the state in which the printer is located (in use, the document added to the queue, finished cartridge, etc.) and uses UDP port 161 for questions and answers, and UDP port 162 as the destination of the messages.

I then exposed port 161 of my printer on the Internet and its related web interface. By a external connection I run the command described above with the public IP of my VDSL connection being able to remotely reboot the printer. Yes, I restarted my printer without any authentication.

The printer displays a “Restarting …” message as it has received the restart command.

By Shodan I discover the presence of nearly 3 million devices connected to the internet with port 161 open, but they are not just printers. A more precise search locates 30248 HP device with port 161 open but also other brands like 494 device Epson, 4235 devices Exor and 541 devices Lexmark.

I did a test on a Lexmark printer connected remotely, it is also possible to restart it. I do not however carried out tests on the Epson device, Exor or other brands because I do not have. If someone has a printer of another brand and wanted to prove I can update this article with your test.

A printer Should not be exposed on the Internet, on this point I think we all agree. But producers should pay attention in the implementation of the functionality and safety of the devices they sell. An attacker could restart continuously printers on a hospital infrastructure or a large company by blocking the printing of reports or important documents.

Or just wake up in the night your friends because of the noise of the rollers of its laser printer! 😀

,

Riavvio Remoto di Stampanti HP e altre!

 

(You can read the English version here)

Premessa

La ma HP LaserJet Pro presenta puntualmente due problemi se viene lasciata accesa e inutilizzata per diversi giorni, il problema più evidente è nell’utilizzo dello scanner che andrà a realizzare una scansione con barre verticali di diversi colori per tutta la pagina. Il secondo problema riguarda invece la stampa che risulta essere decisamente lenta nella fase iniziale di ricezione dati. Entrambi i problemi sembrano essere collegati ad una errata gestione della RAM la quale lasciando la stampante inutilizzata per diversi giorni si va a saturare.

L’assistenza consiglia puntualmente di fare un reset della NVRAM, reset che prevede la perdita di tutte le configurazioni. È passato oltre un anno dalla segnalazione mia e di altri utenti di questo problema, ma nulla è cambiato. Nessun aggiornamento firmware è stato purtroppo rilasciato da Febbraio 2015, portandosi dietro anche la mancata risoluzione di diverse vulnerabilità (come quelle di OpenSSL).

Per risolvere velocemente i problemi sopra descritti basta fare un riavvio manuale della stampante, ma puntualmente quando ho fretta mi capita di fare una scansione e di rilevare il problema il che mi costringe ad attendere ulteriormente.

In passato avevo già controllato se era possibile effettuare un reboot via software, così da automatizzare la procedura, ma purtroppo l’interfaccia Web o Telnet non offrono una funzione di riavvio. Assurdo! Trovai allora una prima procedura tramite FTP ma non funzionava, anzi mi stampava un foglio in bianco ed una seconda procedura sempre tramite FTP con l’invio di una stringa personalizzata di testo. Questa seconda procedura non generava alcune effetto.

Durante la festività di Santo Stefano mia moglie ha stampato diverso materiale per il suo Blog e la stampate era evidentemente lenta nel percepire i dati (andando a memoria l’avevo usata l’ultima volta 7 giorni prima), la prima stampa di 11 fogli ha impiegato circa 13 minuti e dopo un riavvio la stampa delle stesso materiale ha impiegato meno di due minuti.

Ho cercato nuovamente una soluzione per eseguire automaticamente un riavvio, scoprendo un articolo di un blog tedesco (non ho capito chi sia l’autore) che illustra una procedura funzionante da eseguire tramite Microsoft PowerShell che sfrutta il protocollo SNMP.

$PrinterIP = "192.168.1.87"
$SNMP = New-Object -ComObject olePrn.OleSNMP
$SNMP.Open($PrinterIP, "public")
$SNMP.Set(".1.3.6.1.2.1.43.5.1.1.3.1",4)
$SNMP.Close()

Per il mondo Linux/Unix è necessario installare snmp attraverso aptitude:

sudo apt-get install snmp

ed è possibile eseguire il Riavvio della Stampante HP attraverso il terminale con il semplice comando:

snmpset -v 1 -c public 192.168.1.87 ".1.3.6.1.2.1.43.5.1.1.3.1" i 4

avendo cura di sostituire 192.168.1.87 con l’indirizzo IP della propria stampante.

Ho poi deciso di inserire un cron automatico, sul mio server domestico, che alle 2 di notte e ogni 2 giorni mi esegue un riavvio:

0 2 */2 * * /usr/bin/snmpset -v 1 -c public 192.168.2.41 ".1.3.6.1.2.1.43.5.1.1.3.1" i 4

Remotely Reboot (Without Password)

Con la procedura illustrata ho finalmente risolto il problema, ma è evidente che non vi è alcuna richiesta di autenticazione nel comando che imputo.

Il protocollo SNPM viene sfruttato da molteplici stampanti per comunicare all’utente lo stato in cui si trova la stampante (in uso, documento aggiunto nella coda, cartuccia finita, ecc) e sfrutta la porta UDP 161 per le interrogazioni e le risposte, e la porta UDP 162 come destinazione dei messaggi.

Ho quindi esposto la porta 161 della mia stampante su Internet e la sua relativa interfaccia web. Da una connessione ad internet esterna ho eseguito il comando precedentemente illustrato con l’IP pubblico della mia connessione VDSL riuscendo a riavviare la stampante remotamente. Sì, ho riavviato la mia stampante senza alcuna autenticazione.

 

La stampante mostra il messaggio "Restarting..." poichè ha percepito il comando di riavvio.

La stampante mostra il messaggio “Restarting…” poichè ha percepito il comando di riavvio.

Sfruttando Shodan rivelo la presenza di quasi 3 milioni di dispositivi connessi a internet con la porta 161 aperta, ma tra di loro non troviamo solo stampanti. Affinando la ricerca rilevo 30248 device HP con la porta 161 aperta ma anche altri brand come 494 device Epson, 4235 device Exor e 541 device Lexmark.

Ho fatto un test su una stampante Lexmark connessa remotamente, anche essa è possibile riavviarla. Non ho invece effettuato test su device Epson, Exor o altre marche perché non le ho a disposizione. Se qualcuno ha una stampante di un altro brand e volesse provare aggiorno volentieri l’articolo così da creare un piccolo registro.

Una stampante non dovrebbe essere esposta su internet su questo punto credo siamo tutti concordi, ma allo stesso tempo i produttori dovrebbero prestare maggiore attenzione nell’implementazione delle funzionalità e sulla sicurezza dei dispositivi venduti. Un malintenzionato potrebbe riavviare in continuazione le stampanti di una infrastruttura ospedaliera o di una grande azienda bloccando la stampa di referti o di documenti importanti.

O semplicemente svegliare in piena notte un utente a causa del rumore dei rulli della sua stampante laser! 😀