Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Strumenti/GitHubGitHub/b1ack0wl/linux_mint_poc
Analisi delle VulnerabilitàExploitApprendimento e Formazione
GitHubb1ack0wl/linux_mint_poc

linux_mint_poc

PoC e patch per una vulnerabilità di command injection nel gestore URI yelp di Linux Mint 18.3-19.1. Dimostra la causa principale, lo sfruttamento e la mitigazione.

Vedi Repository
53107 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Linux Mint 18.3-19.1 bug di command injection 'yelp'

Causa principale

I gestori URI help://, ghelp:// e man:// sono definiti nel file /usr/share/applications/yelp.desktop che eseguirà /usr/local/bin/yelp tramite Exec=yelp %u ogni volta che uno di questi gestori URI viene invocato.

Il file /usr/local/bin/yelp è un semplice script Python che analizza la richiesta del gestore URI in arrivo. Questo script cerca prima le sottostringhe "gnome-help" e "ubuntu-help" e, se non trova nessuna di queste sottostringhe, eseguirà /usr/local/bin/yelp senza racchiudere l'argomento tra virgolette.

Contenuto di /usr/local/bin/yelp:

root@kitploit:~
#!/usr/bin/python

import os
import sys

if (len(sys.argv) > 1):
    args = ' '.join(sys.argv[1:])
    if ('gnome-help' in args) and not os.path.exists('/usr/share/help/C/gnome-help'):
        os.system ("xdg-open http://www.linuxmint.com/documentation.php &")
    elif ('ubuntu-help' in args) and not os.path.exists('/usr/share/help/C/ubuntu-help'):
        os.system ("xdg-open http://www.linuxmint.com/documentation.php &")
    else:
        os.system ("/usr/bin/yelp %s" % args)  # uh oh
else:
    os.system ('/usr/bin/yelp')

Dalla PoC alla Shell

Lo sfruttamento ha richiesto un po' di creatività, poiché Google Chrome codifica nell'URI il carattere spazio \x20, le parentesi graffe {}, il carattere più +, il carattere backtick ` e alcuni altri. Poiché ${IFS} non funzionava, si è scoperto che usare $IFS$() funziona altrettanto bene, dato che l'istruzione $() impedisce alla variabile d'ambiente $IFS di concatenarsi con altri caratteri ASCII e di diventare accidentalmente $IFSaddedword o simili.

Mitigazioni

Panoramica

Il file yelp.patch modifica l'istruzione vulnerabile da os.system ("/usr/bin/yelp %s" % args) a os.system ("/usr/bin/yelp %s" % quote(args)), sfruttando il metodo quote() della libreria shlex (https://docs.python.org/3/library/shlex.html#shlex.quote).

Istruzioni per la patch

È possibile applicare la patch a yelp oppure rimuoverlo.

Patch di yelp

  • Installa patch: sudo apt install patch
  • Applica la patch allo script yelp: sudo patch /usr/local/bin/yelp yelp.patch

Rimozione di yelp e dei suoi gestori URI associati

  • Rimozione dei gestori URI: sudo rm /usr/share/applications/yelp.desktop
  • Rimozione dello script Python di yelp: sudo rm /usr/local/bin/yelp

[b1ack0wl]

Scarica lo strumento