﻿﻿{"id":2867,"date":"2026-04-28T12:28:08","date_gmt":"2026-04-28T10:28:08","guid":{"rendered":"https:\/\/elearningsamba.com\/index.php\/gtfobins-478-binaires-unix-qui-font-tomber-root\/"},"modified":"2026-04-28T12:28:08","modified_gmt":"2026-04-28T10:28:08","slug":"gtfobins-478-binaires-unix-qui-font-tomber-root","status":"publish","type":"page","link":"https:\/\/elearningsamba.com\/index.php\/gtfobins-478-binaires-unix-qui-font-tomber-root\/","title":{"rendered":"GTFOBins &#8211; 478 binaires Unix qui font tomber root"},"content":{"rendered":"<p>478 binaires Unix peuvent servir \u00e0 devenir root sur un syst\u00e8me mal configur\u00e9.<\/p>\n<p>C&#8217;est ce que recense<br \/>\n<a href=\"https:\/\/gtfobins.org\/\">GTFOBins<\/a><br \/>\n, le projet open source mont\u00e9 par Emilio Pinna et Andrea Cardaci, qui est devenu LE bookmark obligatoire de tout pentester Linux.<\/p>\n<p>Ce ne sont pas des exploits, hein, mais juste des fonctions parfaitement l\u00e9gitimes de programmes install\u00e9s partout, et qui dans le bon contexte (genre un bit SUID oubli\u00e9, qui fait tourner un binaire avec les droits du propri\u00e9taire, souvent root) permettent de spawner un shell, lire un fichier prot\u00e9g\u00e9, ou grimper d&#8217;un cran dans la hi\u00e9rarchie des privil\u00e8ges. Petit rappel quand m\u00eame, faut d\u00e9j\u00e0 avoir un pied sur la machine, ce n&#8217;est pas une porte d&#8217;entr\u00e9e magique depuis Internet.<\/p>\n<p>\n<img decoding=\"async\" src=\"https:\/\/korben.info\/cdn-cgi\/image\/width=1200,fit=scale-down,quality=90,f=avif\/gtfobins-binaires-unix-escalade-privileges\/gtfobins-binaires-unix-escalade-privileges-2.png\" alt=\"\" loading=\"lazy\">\n<\/p>\n<p>Une fois sur leur site, vous tapez le nom d&#8217;un binaire dans le moteur de filtre (ou vous cliquez sur une fonction), et hop, vous tombez sur les commandes exactes \u00e0 recopier-coller, et c&#8217;est pli\u00e9 en moins de dix secondes.<\/p>\n<p>Par exemple, si votre cible a un sudo find sans mot de passe, le site vous donne sur un plateau d&#8217;argent <code>sudo find . -exec \/bin\/sh ; -quit<\/code>.<\/p>\n<p>Un mawk qui tourne en SUID root ? Direct, <code>mawk 'BEGIN {system(\"\/bin\/sh\")}'<\/code> et bonjour le shell privil\u00e9gi\u00e9. Un vim mal configur\u00e9 (compil\u00e9 avec le support Python ou Lua, ce qui est le cas dans la plupart des distros desktop) ? La page documente comment l&#8217;utiliser via :py ou :lua pour ex\u00e9cuter du code arbitraire et retomber sur ses pattes.<\/p>\n<p>C&#8217;est donc la fin des recherches d\u00e9sesp\u00e9r\u00e9es sur StackOverflow \u00e0 3h du matin pendant un CTF&#8230;<\/p>\n<p>La philosophie de ce projet est claire&#8230; on ne casse rien, on d\u00e9tourne juste l&#8217;usage pr\u00e9vu. Le hic, c&#8217;est que la fronti\u00e8re entre d\u00e9tournement et exploitation est mince quand un sudoers mal \u00e9crit donne acc\u00e8s \u00e0 un binaire trop puissant.<\/p>\n<p>\n<img decoding=\"async\" src=\"https:\/\/korben.info\/cdn-cgi\/image\/width=1200,fit=scale-down,quality=90,f=avif\/gtfobins-binaires-unix-escalade-privileges\/gtfobins-binaires-unix-escalade-privileges-3.png\" alt=\"\" loading=\"lazy\">\n<\/p>\n<p>Les 478 binaires sont rang\u00e9s selon 11 fonctions et 4 contextes d&#8217;ex\u00e9cution. C\u00f4t\u00e9 fonctions, vous avez : Shell (228 binaires permettent de spawner un shell, oui presque la moiti\u00e9 du catalogue), File-read (199), File-write (84), Inherit (71), Upload (34), Download (32), Command (30), Reverse-shell (21), Privilege-escalation (14), Library-load (11), et Bind-shell (7). C\u00f4t\u00e9 contextes : Unprivileged, Sudo, SUID, et Capabilities.<\/p>\n<p>Et sur la page d&#8217;un binaire, chaque case du tableau vous dit super clairement &#8220;<em>voil\u00e0 comment t&#8217;en sors selon ce que tu as sous la main<\/em>&#8220;.<\/p>\n<p>Les champions toutes cat\u00e9gories ce sont les langages interpr\u00e9t\u00e9s et les shells eux-m\u00eames. zsh, socat, ruby, python, php, node, lua plus bash, tous cumulent 7 fonctions diff\u00e9rentes chacun. C&#8217;est logique, d\u00e8s que vous avez un interpr\u00e9teur sous la main vous pouvez faire \u00e0 peu pr\u00e8s tout (lire, \u00e9crire, ex\u00e9cuter, ouvrir une socket).<\/p>\n<p>D&#8217;ailleurs c&#8217;est pour \u00e7a que les sysadmins parano\u00efaques tirent une t\u00eate bizarre quand on leur dit qu&#8217;on a install\u00e9 Python sur un serveur de prod sans cas d&#8217;usage explicite. Pfff&#8230; je les comprends, un Python qui tra\u00eene sur un serveur Debian avec un sudo NOPASSWD au-dessus, c&#8217;est game over en trois lignes.<\/p>\n<p>Y&#8217;a un autre d\u00e9tail que je trouve cool \u00e9galement, c&#8217;est l&#8217;int\u00e9gration<br \/>\n<a href=\"https:\/\/korben.info\/base-de-connaissances-cybersec-attck.html\">MITRE ATT&amp;CK<\/a><br \/>\n. Chaque fonction du site est mapp\u00e9e \u00e0 une technique du framework officiel, accessible via <code>\/mitre.json<\/code>.<\/p>\n<p>Donc pour les blue teams qui veulent justifier une r\u00e8gle de d\u00e9tection en r\u00e9union, c&#8217;est tout simplement cadeau !! Et pour ceux qui automatisent leurs scans, l&#8217;API JSON compl\u00e8te est dispo sur <code>\/api.json<\/code>, du coup vous pouvez parser les 478 entr\u00e9es avec un <code>jq<\/code> ou un petit script Python pour g\u00e9n\u00e9rer des r\u00e8gles de monitoring custom.<\/p>\n<p>Bref, GTFOBins c&#8217;est aussi un cadeau pour les d\u00e9fenseurs, \u00e0 condition de retourner la logique du projet. Voil\u00e0, \u00e7a vaut le coup d&#8217;y passer dix minutes par mois sur un audit.<\/p>\n<p>Pour les Windowsiens qui se sentent oubli\u00e9s, sachez que l&#8217;\u00e9quivalent existe et s&#8217;appelle<br \/>\n<a href=\"https:\/\/lolbas-project.github.io\/\">LOLBAS<\/a><br \/>\n(Living Off The Land Binaries And Scripts), bien suivi par les analystes Windows depuis 2018. M\u00eame philosophie, m\u00eame format, m\u00eame utilit\u00e9, juste appliqu\u00e9 aux ex\u00e9cutables Microsoft sign\u00e9s que Windows installe par d\u00e9faut.<\/p>\n<p>Les deux projets se citent mutuellement et forment ensemble la cartographie communautaire des techniques de Living Off The Land cross-OS. Si vous bossez sur les deux c\u00f4t\u00e9s du foss\u00e9, gardez les deux onglets ouverts en permanence ^^ !<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/korben.info\/cdn-cgi\/image\/width=1200,fit=scale-down,quality=90,f=avif\/gtfobins-binaires-unix-escalade-privileges\/gtfobins-binaires-unix-escalade-privileges-4.png\" alt=\"\" loading=\"lazy\"><\/p>\n<p>Maintenant si l&#8217;angle \u00e9l\u00e9vation de privil\u00e8ges via shell restreint vous int\u00e9resse, j&#8217;avais d\u00e9j\u00e0 couvert<br \/>\n<a href=\"https:\/\/korben.info\/sudo-chroot-exploit.html\">une vieille faille sudo qui permettait carr\u00e9ment de sortir d&#8217;un chroot<\/a><br \/>\n, et plus largement la<br \/>\n<a href=\"https:\/\/korben.info\/payloadsallthethings-bibliotheque-hackers-ethiques.html\">biblioth\u00e8que Payloads All The Things<\/a><br \/>\nqui compl\u00e8te bien GTFOBins sur tout ce qui est exploitation web et post-exploitation. Les deux projets sont compl\u00e9mentaires, GTFOBins se concentre sur les binaires Unix et les abus locaux de fonctionnalit\u00e9s l\u00e9gitimes (shells, transferts, lectures, \u00e9l\u00e9vation conditionnelle), PayloadsAllTheThings ratisse plus large c\u00f4t\u00e9 exploitation web.<\/p>\n<p>C\u00f4t\u00e9 admin, le r\u00e9flexe utile, \u00e0 vrai dire c&#8217;est de lister vos binaires SUID avec <code>find \/ -perm -4000 -type f 2&gt;\/dev\/null<\/code>, v\u00e9rifier <code>\/etc\/sudoers<\/code> plus les fichiers <code>\/etc\/sudoers.d\/*<\/code> avec <code>sudo -l<\/code>, puis de passer chaque candidat dans le filtre GTFOBins.<\/p>\n<p>Si une entr\u00e9e matche, c&#8217;est qu&#8217;il y a une fuite potentielle \u00e0 boucher. Attention quand m\u00eame, l&#8217;absence dans GTFOBins ne valide pas une r\u00e8gle sudo ou un SUID custom (wildcards, variables d&#8217;env, paths inscriptibles peuvent toujours cr\u00e9er un chemin d&#8217;\u00e9vasion). Bref, c&#8217;est \u00e0 faire avant de filer le moindre sudo NOPASSWD \u00e0 quelqu&#8217;un !<\/p>\n","protected":false},"excerpt":{"rendered":"<p>478 binaires Unix peuvent servir \u00e0 devenir root sur un syst\u00e8me mal configur\u00e9. C&#8217;est ce que recense GTFOBins , le projet open source mont\u00e9 par Emilio Pinna et Andrea Cardaci, qui est devenu LE bookmark obligatoire de tout pentester Linux. Ce ne sont pas des exploits, hein, mais juste des fonctions parfaitement l\u00e9gitimes de programmes install\u00e9s partout, et qui dans le bon contexte (genre un bit SUID oubli\u00e9, qui fait tourner un binaire avec les droits du propri\u00e9taire, souvent root) permettent de spawner un shell, lire un fichier prot\u00e9g\u00e9, ou grimper d&#8217;un cran dans la hi\u00e9rarchie des privil\u00e8ges. Petit rappel quand m\u00eame, faut d\u00e9j\u00e0 avoir un pied sur la machine, ce n&#8217;est pas une porte d&#8217;entr\u00e9e magique depuis Internet. Une fois sur leur site, vous tapez le nom d&#8217;un binaire dans le moteur de filtre (ou vous cliquez sur une fonction), et hop, vous tombez sur les commandes exactes \u00e0 recopier-coller, et c&#8217;est pli\u00e9 en moins de dix secondes. Par exemple, si votre cible a un sudo find sans mot de passe, le site vous donne sur un plateau d&#8217;argent sudo find . -exec \/bin\/sh ; -quit. Un mawk qui tourne en SUID root ? Direct, mawk &#8216;BEGIN {system(&#8220;\/bin\/sh&#8221;)}&#8217; et bonjour le shell privil\u00e9gi\u00e9. Un vim mal configur\u00e9 (compil\u00e9 avec le support Python ou Lua, ce qui est le cas dans la plupart des distros desktop) ? La page documente comment l&#8217;utiliser via :py ou :lua pour ex\u00e9cuter du code arbitraire et retomber sur ses pattes. C&#8217;est donc la fin des recherches d\u00e9sesp\u00e9r\u00e9es sur StackOverflow \u00e0 3h du matin pendant un CTF&#8230; La philosophie de ce projet est claire&#8230; on ne casse rien, on d\u00e9tourne juste l&#8217;usage pr\u00e9vu. Le hic, c&#8217;est que la fronti\u00e8re entre d\u00e9tournement et exploitation est mince quand un sudoers mal \u00e9crit donne acc\u00e8s \u00e0 un binaire trop puissant. Les 478 binaires sont rang\u00e9s selon 11 fonctions et 4 contextes d&#8217;ex\u00e9cution. C\u00f4t\u00e9 fonctions, vous avez : Shell (228 binaires permettent de spawner un shell, oui presque la moiti\u00e9 du catalogue), File-read (199), File-write (84), Inherit (71), Upload (34), Download (32), Command (30), Reverse-shell (21), Privilege-escalation (14), Library-load (11), et Bind-shell (7). C\u00f4t\u00e9 contextes : Unprivileged, Sudo, SUID, et Capabilities. Et sur la page d&#8217;un binaire, chaque case du tableau vous dit super clairement &#8220;voil\u00e0 comment t&#8217;en sors selon ce que tu as sous la main&#8220;. Les champions toutes cat\u00e9gories ce sont les langages interpr\u00e9t\u00e9s et les shells eux-m\u00eames. zsh, socat, ruby, python, php, node, lua plus bash, tous cumulent 7 fonctions diff\u00e9rentes chacun. C&#8217;est logique, d\u00e8s que vous avez un interpr\u00e9teur sous la main vous pouvez faire \u00e0 peu pr\u00e8s tout (lire, \u00e9crire, ex\u00e9cuter, ouvrir une socket). D&#8217;ailleurs c&#8217;est pour \u00e7a que les sysadmins parano\u00efaques tirent une t\u00eate bizarre quand on leur dit qu&#8217;on a install\u00e9 Python sur un serveur de prod sans cas d&#8217;usage explicite. Pfff&#8230; je les comprends, un Python qui tra\u00eene sur un serveur Debian avec un sudo NOPASSWD au-dessus, c&#8217;est game over en trois lignes. Y&#8217;a un autre d\u00e9tail que je trouve cool \u00e9galement, c&#8217;est l&#8217;int\u00e9gration MITRE ATT&amp;CK . Chaque fonction du site est mapp\u00e9e \u00e0 une technique du framework officiel, accessible via \/mitre.json. Donc pour les blue teams qui veulent justifier une r\u00e8gle de d\u00e9tection en r\u00e9union, c&#8217;est tout simplement cadeau !! Et pour ceux qui automatisent leurs scans, l&#8217;API JSON compl\u00e8te est dispo sur \/api.json, du coup vous pouvez parser les 478 entr\u00e9es avec un jq ou un petit script Python pour g\u00e9n\u00e9rer des r\u00e8gles de monitoring custom. Bref, GTFOBins c&#8217;est aussi un cadeau pour les d\u00e9fenseurs, \u00e0 condition de retourner la logique du projet. Voil\u00e0, \u00e7a vaut le coup d&#8217;y passer dix minutes par mois sur un audit. Pour les Windowsiens qui se sentent oubli\u00e9s, sachez que l&#8217;\u00e9quivalent existe et s&#8217;appelle LOLBAS (Living Off The Land Binaries And Scripts), bien suivi par les analystes Windows depuis 2018. M\u00eame philosophie, m\u00eame format, m\u00eame utilit\u00e9, juste appliqu\u00e9 aux ex\u00e9cutables Microsoft sign\u00e9s que Windows installe par d\u00e9faut. Les deux projets se citent mutuellement et forment ensemble la cartographie communautaire des techniques de Living Off The Land cross-OS. Si vous bossez sur les deux c\u00f4t\u00e9s du foss\u00e9, gardez les deux onglets ouverts en permanence ^^ ! Maintenant si l&#8217;angle \u00e9l\u00e9vation de privil\u00e8ges via shell restreint vous int\u00e9resse, j&#8217;avais d\u00e9j\u00e0 couvert une vieille faille sudo qui permettait carr\u00e9ment de sortir d&#8217;un chroot , et plus largement la biblioth\u00e8que Payloads All The Things qui compl\u00e8te bien GTFOBins sur tout ce qui est exploitation web et post-exploitation. Les deux projets sont compl\u00e9mentaires, GTFOBins se concentre sur les binaires Unix et les abus locaux de fonctionnalit\u00e9s l\u00e9gitimes (shells, transferts, lectures, \u00e9l\u00e9vation conditionnelle), PayloadsAllTheThings ratisse plus large c\u00f4t\u00e9 exploitation web. C\u00f4t\u00e9 admin, le r\u00e9flexe utile, \u00e0 vrai dire c&#8217;est de lister vos binaires SUID avec find \/ -perm -4000 -type f 2&gt;\/dev\/null, v\u00e9rifier \/etc\/sudoers plus les fichiers \/etc\/sudoers.d\/* avec sudo -l, puis de passer chaque candidat dans le filtre GTFOBins. Si une entr\u00e9e matche, c&#8217;est qu&#8217;il y a une fuite potentielle \u00e0 boucher. Attention quand m\u00eame, l&#8217;absence dans GTFOBins ne valide pas une r\u00e8gle sudo ou un SUID custom (wildcards, variables d&#8217;env, paths inscriptibles peuvent toujours cr\u00e9er un chemin d&#8217;\u00e9vasion). Bref, c&#8217;est \u00e0 faire avant de filer le moindre sudo NOPASSWD \u00e0 quelqu&#8217;un !<\/p>\n","protected":false},"author":1,"featured_media":2868,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"give_campaign_id":0,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_kadence_starter_templates_imported_post":false,"footnotes":""},"class_list":["post-2867","page","type-page","status-publish","has-post-thumbnail","hentry"],"campaignId":"","_links":{"self":[{"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/pages\/2867","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/comments?post=2867"}],"version-history":[{"count":0,"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/pages\/2867\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/media\/2868"}],"wp:attachment":[{"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/media?parent=2867"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}