Une minuscule vous manque et tout est dépeuplé

Posted on mar. 10 janvier 2017 in vrac

Salut à tous et bonne année 2017 ! (ça, c'est fait)

Je partage ma petite minute pétage de câble. En ce moment je bosse sur la création d'un iso custom pour Kali Linux qui intègre par défaut un certain nombre d'outils qui ne sont pas présents sur Kali de base, par exemple Nessus. La création d'iso custom est prévu par Kali Linux (basée sur Debian) grâce à l'utilisation de Live Build.

Parmi les possibilités de Live Build, il est possible d'installer des programmes supplémentaires en plaçant le paquet (au format .deb) dans un dossier précis. Ça tombe bien, Tenable propose Nessus au format deb. Une fois le paquet téléchargé et renommé au format standard Debian ([nom][version][architecture].deb), on lance la création de l'iso, et c'est parti !

Ou pas.

Puisqu'un magnifique message d'erreur apparait : E: Unable to locate package Nessus. Et alors il y a un truc qui me chagrine, c'est que s'il essaie de l'installer, c'est bien qu'il est tombé sur le fichier .deb dans le dossier adapté (sinon il essaierait pas de l'installer), donc qu'il sait où il est. Mais nope.

Fuck you

Donc pour vérifier, j'ai installé le paquet sur la Kali de base, ce qui marchait nickel. Un peu frustrant. Donc après avoir cherché pendant une plombe (je suis même allé sur la page 2 de google, si si !), j'ai fini par trouver de manière complètement random.

En observant l'installation du paquet sur un système standard (pas la création d'un iso quoi), je me rends compte que les messages indiquent "Dépaquetage de nessus".

Et là je me dis : "Non... Noooooooooon..."

Et là vous me dites :

WAT ?

Je la refais lentement :

  • Le message d'erreur : "Unable to locate package Nessus"
  • L'install du paquet : "Dépaquetage de nessus"

That's right bitches.

Le paquet deb est mal formé, indique contenir le paquet Nessus mais contient le paquet nessus. Et oui, sous Linux c'est pas la même chose. Du coup, là où dpkg accepte l'install sans problème (va savoir pourquoi), live build pète un câble (ce qui pour le coup est plus logique) (et très chiant).

Du coup comment régler le problème ? Il suffit de modifier le paquet .deb fourni par Tenable :

$ mkdir tmp
$ dpkg-deb -R Nessus-[....].deb tmp
$ sed "s/Package: Nessus/Package: nessus/" -i tmp/DEBIAN/control
$ dpkg-deb -b tmp nessus.deb
$ dpkg-name nessus.deb

La dernière commande permet de renommer le paquet en respectant le standard Debian. Il n'y a plus qu'a coller le paquet corrigé dans le dossier adapté de live build, relancer la génération et TADAH, vous avez un iso de Kali avec Nessus préinstallé.

Magic

Sur ce, j'ai perdu la blinde de temps sur ce truc à la con (merci le packager de chez Tenable), donc je retourne au taf !