# // <script type="text/javascript">
//    var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
//    document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
// </script>
// <script type="text/javascript">
//     try {
//         var pageTracker = _gat._getTracker("UA-81674321-1");
//         pageTracker._trackPageview();
//    } catch(err) {}</script>
#  {"id":1752,"date":"2012-05-23T12:04:52","date_gmt":"2012-05-23T10:04:52","guid":{"rendered":"http:\/\/www.craccaaltesoro.it\/?p=1752"},"modified":"2026-09-26T00:10:14","modified_gmt":"2026-09-25T22:10:14","slug":"cracca-al-tesoro-genova-2012-bersaglio-due","status":"publish","type":"post","link":"https:\/\/www.craccaaltesoro.it\/?p=1752","title":{"rendered":"Cracca al Tesoro  Genova 2012 Bersaglio due. Setuid, chi era costui?"},"content":{"rendered":"<p>Ancora un post sui bersagli di Cracca al Tesoro. Parliamo questa volta del bersaglio due, posizionato presso la reception della Fiera. L&#8217;access point con SSID &#8220;CATGE2012-2&#8221; era protetto da una WEP 64bit la cui chiave era &#8220;1111111111&#8221;.<br \/>\nIl primo server, con indirizzo 172.16.12.1\/25, era un sistema linux con porte ssh e web aperte. La vulnerabilit\u00e0 inserita era exploitabile individuando l&#8217;utente &#8220;guest&#8221; con password &#8220;guest&#8221;.<br \/>\nNella home dell&#8217;utente &#8220;guest&#8221; si trovava il file &#8220;indizio&#8221;.<br \/>\nMa non era tutto qui&#8230;<\/p>\n<p><!--more--><br \/>\nInfatti, il file indizio, pur essendo listabile, non poteva venire aperto per via dei permessi non concessi all&#8217;utente guest.<br \/>\nGuardando bene, si notavano altri due file, &#8220;badcat&#8221; e &#8220;badcat.c&#8221;, presumibilmente un eseguibile ed il suo sorgente.<\/p>\n<p>Purtroppo anche il sorgente aveva il setuid impostato. Esaminando l&#8217;eseguibile\u00a0 si scopriva che il programma serviva banalmente a leggere un file con altri permessi, grazie al setuid impostato. Tentando di leggere il file indizio, per\u00f2 la risposta era picche. Miglior fortuna\u00a0 si aveva tentando di aprire il file sorgente.\u00a0 A questo punto, si poteva capire che per leggere il file indizio era sufficiente, ad esempio,\u00a0 creare un link al file indizio e chiedere a badcat di aprirlo con &#8220;badcat link_file_indizio&#8221;.<br \/>\nL&#8217;indizio richiedeva come azione l&#8217;acquisto di un gadget, ma di questo (la storia della radio impermeabile) ne abbiamo gi\u00e0 parlato in precedenza.<br \/>\nDue parole su setuid, prese a prestito dalla lista PLUTO-help, perch\u00e9 mi sembra davvero spiegato in modo esemplare!<\/p>\n<p>&nbsp;<\/p>\n<pre>PERCHE' IL SETUID E' PERICOLOSO (<a href=\"http:\/\/lists.pluto.it\/pipermail\/pluto-help\/2004-June\/016379.html\">link al testo<\/a><a href=\"http:\/\/lists.pluto.it\/pipermail\/pluto-help\/2004-June\/016379.html\"> originale<\/a>)\r\n\r\nIl bit  setuid e` uno dei bit  che codificano i permessi  dei file che\r\nsono 12. I 9 bassi li conoscono credo tutti e sono quelli che regolano\r\ni permessi di lettura, scrittura ed esecuzione. Rimangono i 3 bit alti\r\n\r\nSet UID\r\nSet GID\r\nSticky\r\n\r\nLinux usa sticky solo per le directory (vedi man chown).\r\n\r\nGli altri due  indicano al sistema che l'esecuzione  del programma non\r\ndeve  avvenire  con  l'uid  dell'utente  collegato ma  con  l'uid  del\r\nproprietario del file.\r\n\r\nL'uid  e` l'identita`  utilizzata, per  il sistema  c'e`  anche quella\r\nreale, per  cui un  programma e` comunque  in grado di  conoscere l'id\r\ndell'utente che lo usa se serve).\r\n\r\nScopo  dell'ambaradan  ?  Ci  sono  risorse che  non  devono  rimanere\r\nliberamente  accessibili ma  che  l'utente deve  poter utilizzare,  ad\r\nesempio, con determinati programmi. X e` uno di questi.\r\n\r\n\"WOW, quindi se io metto  setuid un certo programma posso usarlo anche\r\nda utente peone...\"\r\n\r\n##     \t##   ######    ##\r\n##\t##   ######    ##\r\n####    ## ##  \t   ##  ##\r\n####\t## ##\t   ##  ##\r\n##  ## \t## ##\t   ##  ##\r\n##  ##\t## ##\t   ##  ##\r\n##    #### ##\t   ##\r\n##    #### ##  \t   ##\r\n##     \t##   ######    ##\r\n##\t##   ######    ##\r\n\r\nIl bit setuid non va usato se non quando e` veramente l'unica risorsa,\r\nsopratutto se l'utente proprietario del file e` root.\r\n\r\n1) Certe operazioni  sono lasciate solo  a root perche'  sono critiche\r\n   per il  sistema ed il loro  uso deve avvenire in  modo \"protetto da\r\n   abusi\".  \r\n\r\n   Se si mette  setuid root un file, questa  protezione salta. Cio` e`\r\n   male (E. Spengler).\r\n\r\n   Ci  sono  vari meccanismi  (sudo,  o  file  di configurazione  come\r\n   shutdown.allow descritto  in man  shutdown) per delegare  ad alcuni\r\n   utenti  certe  operazioni  senza  peraltro  permettere  a  loro  di\r\n   diventare root a tutti gli effetti.\r\n\r\n2) Mettere setuid root un file che generalmente non lo e` puo` aprire\r\n   falle di sicurezza.\r\n\r\n   Ad esempio, e` poco probabile che tale file sia stato sottoposto ad\r\n   auditing per l'uso di  tecniche di programmazione poco sicure (i.e.\r\n   buffer  overflow).  C'e` gia`  abbastanza  da  tenere d'occhio  per\r\n   quello che \"istituzionalmente\" gira con l'uid 0:0.\r\n\r\n   Il programma potrebbe avere una shell escape: \"Mi metto setuid less\r\n   cosi` non ho  problemi di permessi. Ho tutti i  servizi di rete che\r\n   girano come nobody, anche se  li sfondano...\". Peccato che la prima\r\n   cosa che si fa quando si  sfonda una macchina con utente diverso da\r\n   root la  prima cosa  che si va  a vedere  sono i file  setuid root:\r\n   \"WOW\", esclama l'intruso, \"less  setuid!\", fa less \/etc\/motd, preme\r\n   !, scrive sh, preme return ed ha una shell di root.\r\n\r\n   Non  parliamo  del  fatto che  se  un  utente  riesce ad  avere  la\r\n   scrivibilita` di  un file  setuid allora ha  la porta  aperta verso\r\n   l'account 0:0:\r\n\r\n\t     copia il file incriminato, tanto per avere un backup\r\n\t     e cancellare le prove.\r\n\r\n\t     cat \/bin\/sh &gt; file_incriminato\r\n\r\n\t     esegue file incriminato\r\n\r\n\t     cat copia_backup &gt; file_incriminato #via le prove\r\n\r\n   Sembra  uno  scenario  stupido  ma  e`  gia`  successo  perche'  il\r\n   sistemista era troppo facilone.\r\n\r\nOh, se fate questa prova sotto Linux:\r\n\r\n    fate uno shell script che contenga il solo comando id\r\n\r\n    diventate root e fate chmod 4755 file_di_prova\r\n\r\n    tornate utenti\r\n\r\n    richiamate il file\r\n\r\nvi ritornera` i vostri dati di utente normale e non quelli di root.\r\n\r\nIl perche' e`  banale. Chi ha scritto la bash sa  che gli shell script\r\nsetuid root sono estremamente pericolosi, e quindi per default bash va\r\na vedere chi siete veramente e ripristina la vostra identita`.\r\n\r\nE' anche vero che puo` essere _realmente_ necessario avere uno shell\r\nscript setuid.\r\n\r\nbash vi  chiede di \"esserne consci\"  e richiede il  parametro -p sulla\r\ncommand line, parametro che sta a dire \"sono perfettamente conscio che\r\npotrebbe essere una cazzata, ma hai l'ordine di eseguirlo setuid\".\r\n\r\nSi puo`  fare, ma  e` meglio  non farlo. Si  puo` percuotere  i propri\r\ngeniali con un martellone, ma e` meglio non farlo.\r\n\r\n\t      E`   M E G L I O   N O N   F A R L O ! ! !\r\n\t      E`   M E G L I O   N O N   F A R L O ! ! !\r\n\t      E`   M E G L I O   N O N   F A R L O ! ! !\r\n\t      E`   M E G L I O   N O N   F A R L O ! ! !\r\n\t      E`   M E G L I O   N O N   F A R L O ! ! !\r\n\t      E`   M E G L I O   N O N   F A R L O ! ! !\r\n\t      E`   M E G L I O   N O N   F A R L O ! ! !<\/pre>\n<p>Illuninante, vero?<br \/>\n\ud83d\ude42<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ancora un post sui bersagli di Cracca al Tesoro. Parliamo questa volta del bersaglio due, posizionato presso la reception della Fiera. L&#8217;access point con SSID &#8220;CATGE2012-2&#8221; era protetto da una WEP 64bit la cui chiave era &#8220;1111111111&#8221;. Il primo server, con indirizzo 172.16.12.1\/25, era un sistema linux con porte ssh e web aperte. La vulnerabilit\u00e0 [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[33,54,15,55,66,18,65,46,67,17],"class_list":["post-1752","post","type-post","status-publish","format-standard","hentry","category-cat2009news","tag-cat","tag-cat2012-2","tag-cracca-al-tesoro","tag-genova","tag-hacker","tag-hacking","tag-marc","tag-sicurezza","tag-vulnerabilita","tag-wardriving"],"_links":{"self":[{"href":"https:\/\/www.craccaaltesoro.it\/index.php?rest_route=\/wp\/v2\/posts\/1752","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.craccaaltesoro.it\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.craccaaltesoro.it\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.craccaaltesoro.it\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.craccaaltesoro.it\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1752"}],"version-history":[{"count":19,"href":"https:\/\/www.craccaaltesoro.it\/index.php?rest_route=\/wp\/v2\/posts\/1752\/revisions"}],"predecessor-version":[{"id":1811,"href":"https:\/\/www.craccaaltesoro.it\/index.php?rest_route=\/wp\/v2\/posts\/1752\/revisions\/1811"}],"wp:attachment":[{"href":"https:\/\/www.craccaaltesoro.it\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1752"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.craccaaltesoro.it\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1752"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.craccaaltesoro.it\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1752"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}