<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Gianni Amato &#187; bash</title>
	<atom:link href="http://www.gianniamato.it/tag/bash/feed" rel="self" type="application/rss+xml" />
	<link>http://www.gianniamato.it</link>
	<description>Il primo fondamento della sicurezza non e&#039; la tecnologia. E&#039; l&#039;attitudine mentale.</description>
	<lastBuildDate>Wed, 01 Feb 2012 17:55:27 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>FileInfo v.0.2</title>
		<link>http://www.gianniamato.it/2011/04/fileinfo-v-0-2.html</link>
		<comments>http://www.gianniamato.it/2011/04/fileinfo-v-0-2.html#comments</comments>
		<pubDate>Mon, 18 Apr 2011 23:39:29 +0000</pubDate>
		<dc:creator>guelfoweb</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[forensics]]></category>
		<category><![CDATA[tool]]></category>
		<category><![CDATA[bash]]></category>

		<guid isPermaLink="false">http://www.gianniamato.it/?p=1706</guid>
		<description><![CDATA[Con questa nuova versione FileInfo diventa intelligente. La versione 0.2 è in grado di individuare automaticamente la tipologia di file e di conseguenza aggiungere nuove azioni al menu principale. Attualmente le informazioni aggiuntive riguardano i formati PE32 e JPEG ma non &#8230; <a href="http://www.gianniamato.it/2011/04/fileinfo-v-0-2.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Con questa nuova versione <a title="FileInfo on Google Code" href="http://code.google.com/p/fileinfo-gui/" target="_blank">FileInfo</a> diventa intelligente. La versione 0.2 è in grado di individuare automaticamente la tipologia di file e di conseguenza aggiungere nuove azioni al menu principale. Attualmente le informazioni aggiuntive riguardano i formati PE32 e JPEG ma non è escluso che in seguito sarà capace di studiare anche altri formati.</p>
<h3>PE32 Information</h3>
<p>Se provate a interrogare un file windows formato PE32 (es. exe o dll) il menu principale mostrerà una nuova voce: &#8220;<strong>PE32 Information</strong>&#8220;.</p>
<p><img src="http://dl.dropbox.com/u/3086328/fileinfo/fileinfo-menu-pe32.png" alt="FileInfo" /></p>
<p>Questa azione consente di individuare gli oggetti invocati, le DLL, le possibili connessioni verso l&#8217;esterno e altre informazioni utili a chi svolge l&#8217;analisi di un malware.</p>
<p><img src="http://dl.dropbox.com/u/3086328/fileinfo/fileinfo-pe32.png" alt="FileInfo" /></p>
<h3>Show thumbnail</h3>
<p>FileInfo è in grado di individuare l&#8217;eventuale presenza di una thumbnail residente all&#8217;interno di un file JPEG. In tal caso al menu principale verrà aggiunta la nuova voce: &#8220;<strong>Show Thumbnail</strong>&#8220;.</p>
<p><img src="http://dl.dropbox.com/u/3086328/fileinfo/fileinfo-menu-thumb.png" alt="FileInfo" /></p>
<p>Selezionando questa azione, dopo aver definito il percorso sul disco e scelto il nome da assegnare al file, si procederà con l&#8217;estrazione e il salvataggio della miniatura.</p>
<p><img src="http://dl.dropbox.com/u/3086328/fileinfo/fileinfo-thumb.png" alt="FileInfo" /></p>
<p>Info e download su Google Code: <a href="http://code.google.com/p/fileinfo-gui/">http://code.google.com/p/fileinfo-gui</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.gianniamato.it/2011/04/fileinfo-v-0-2.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>File Unici e Duplicati. Hash a confronto</title>
		<link>http://www.gianniamato.it/2011/03/file-unici-e-duplicati-hash-a-confronto.html</link>
		<comments>http://www.gianniamato.it/2011/03/file-unici-e-duplicati-hash-a-confronto.html#comments</comments>
		<pubDate>Sun, 27 Mar 2011 21:01:52 +0000</pubDate>
		<dc:creator>guelfoweb</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[forensics]]></category>
		<category><![CDATA[awk]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[hash]]></category>

		<guid isPermaLink="false">http://www.gianniamato.it/?p=1670</guid>
		<description><![CDATA[Lo scenario è il seguente: una serie di file di una determinata tipologia sono stati estratti da un device e posizionati su una directory di lavoro. Lo scopo, come da titolo, è quello di individuare nel minor tempo possibile e &#8230; <a href="http://www.gianniamato.it/2011/03/file-unici-e-duplicati-hash-a-confronto.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Lo scenario è il seguente: una serie di file di una determinata tipologia sono stati estratti da un device e posizionati su una directory di lavoro. Lo scopo, come da titolo, è quello di individuare nel minor tempo possibile e con il minimo sforzo i file unici e la presenza di eventuali duplicati confrontando gli hash dei file.</p>
<p>Qualcuno suggeriva di utilizzare uno script che calcolasse l&#8217;hash di ogni singolo file presente nella directory di lavoro (fin qui ok) e popolasse un db basato su un engine SQLite per poi interrogarlo ed eseguire le operazioni di confronto.</p>
<p>Un processo un po&#8217; troppo complicato dato che lo scopo non è quello di correlare diverse tipologie di informazioni ma di limitarci al confronto tra stringhe (hash). Considerando poi che la parte più onerosa (in termini di tempo) del lavoro è affidata ai tool per il calcolo dell&#8217;hash di ogni singolo file, l&#8217;uso di un db, che entra in gioco in un secondo momento, di certo non aiuta a velocizzare/ottimizzare le operazioni o i tempi di calcolo.</p>
<p>Sono sufficienti 8 righe di codice bash per risolvere il problema.</p>
<pre>#!/bin/bash	

DIR="folder"		# File's Folder
OUT="filetmp.txt"	# File output hash

md5sum $DIR/* &gt; $OUT

echo "Uniq"
awk '!x[$1]++' FS=" " $OUT

echo "Duplicate"
awk 'x[$1]++' FS=" " $OUT</pre>
<p>A volte mi chideo, che mondo sarebbe senza <a href="http://www.gianniamato.it/tag/bash">bash</a>?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gianniamato.it/2011/03/file-unici-e-duplicati-hash-a-confronto.html/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>FileInfo, una GUI per estrarre informazioni dai file</title>
		<link>http://www.gianniamato.it/2011/03/fileinfo-una-gui-per-estrarre-informazioni-dai-file.html</link>
		<comments>http://www.gianniamato.it/2011/03/fileinfo-una-gui-per-estrarre-informazioni-dai-file.html#comments</comments>
		<pubDate>Wed, 23 Mar 2011 18:01:00 +0000</pubDate>
		<dc:creator>guelfoweb</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[forensics]]></category>
		<category><![CDATA[tool]]></category>
		<category><![CDATA[bash]]></category>

		<guid isPermaLink="false">http://www.gianniamato.it/?p=1659</guid>
		<description><![CDATA[L&#8217;ho scritta per me, per velocizzare le operazioni di routine eseguite sui file, ma se proprio vogliamo dirla tutta&#8230; mi mancava il click destro sul file. L&#8217;ho testato e funziona correttamente sulla mia macchina Ubuntu 10.10, potrebbe funzionare anche su &#8230; <a href="http://www.gianniamato.it/2011/03/fileinfo-una-gui-per-estrarre-informazioni-dai-file.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>L&#8217;ho scritta per me, per velocizzare le operazioni di routine eseguite sui file, ma se proprio vogliamo dirla tutta&#8230; mi mancava il click destro sul file.</p>
<p><img class="alignnone" title="File Info" src="http://dl.dropbox.com/u/3086328/fileinfo/fileinfo-menu.png" alt="" width="365" height="345" /></p>
<p>L&#8217;ho testato e funziona correttamente sulla mia macchina Ubuntu 10.10, potrebbe funzionare anche su altre distribuzioni linux ma non vi assicuro nulla.</p>
<p>Download, screenshot e altre info su <a href="http://code.google.com/p/fileinfo-gui/">http://code.google.com/p/fileinfo-gui</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.gianniamato.it/2011/03/fileinfo-una-gui-per-estrarre-informazioni-dai-file.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Rimuovere Duplicati su Log di tipo csv</title>
		<link>http://www.gianniamato.it/2011/02/rimuovere-duplicati-su-log-di-tipo-csv.html</link>
		<comments>http://www.gianniamato.it/2011/02/rimuovere-duplicati-su-log-di-tipo-csv.html#comments</comments>
		<pubDate>Tue, 15 Feb 2011 21:32:16 +0000</pubDate>
		<dc:creator>guelfoweb</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[awk]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[log]]></category>

		<guid isPermaLink="false">http://www.gianniamato.it/?p=1564</guid>
		<description><![CDATA[Ho visto gente entrare nel panico alle prese con file di log formato csv composti da milioni di righe. Inutile affidarsi al foglio di calcolo. Tornando al titolo del post il problema è quello di dover rimuovere i duplicati limitatamente &#8230; <a href="http://www.gianniamato.it/2011/02/rimuovere-duplicati-su-log-di-tipo-csv.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Ho visto gente entrare nel panico alle prese con file di log formato csv composti da milioni di righe. Inutile affidarsi al foglio di calcolo.</p>
<p>Tornando al titolo del post il problema è quello di dover rimuovere i duplicati limitatamente agli elementi presenti in una determinata colonna. La questione sarebbe risolvibile con uno script di una decina di righe ma se si lavora su un sistema linux, utilizzando il comando awk, una riga da shell è più che sufficiente.</p>
<pre>$ awk '!x[$1]++' FS="," <em>logfile.csv</em></pre>
<p><strong>$1</strong> indica la colonna sulla quale lavorare, in questo caso verranno rimossi i duplicati in riferimento alla prima.</p>
<p><strong>FS=&#8221;,&#8221;</strong> determina l&#8217;elemento separatore, nel nostro caso la virgola.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gianniamato.it/2011/02/rimuovere-duplicati-su-log-di-tipo-csv.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Conversione IP da Intero Decimale a Puntato Decimale</title>
		<link>http://www.gianniamato.it/2010/09/conversione-ip-da-intero-decimale-a-puntato-decimale.html</link>
		<comments>http://www.gianniamato.it/2010/09/conversione-ip-da-intero-decimale-a-puntato-decimale.html#comments</comments>
		<pubDate>Sat, 25 Sep 2010 11:31:00 +0000</pubDate>
		<dc:creator>guelfoweb</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[tool]]></category>
		<category><![CDATA[bash]]></category>

		<guid isPermaLink="false">http://www.gianniamato.it/?p=1362</guid>
		<description><![CDATA[Finchè si lavora con pochi indirizzi IP di tipo intero decimale (es. 1869640050), la conversione può essere eseguita manualmente con dei tool reperibili online o grazie all&#8217;astuzia di qualche browser. Quando si ha a che fare con una lunga lista &#8230; <a href="http://www.gianniamato.it/2010/09/conversione-ip-da-intero-decimale-a-puntato-decimale.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Finchè si lavora con pochi indirizzi IP di tipo intero decimale (es. 1869640050), la conversione può essere eseguita manualmente con dei <a href="http://www.silisoftware.com/tools/ipconverter.php" target="_blank">tool reperibili online</a> o grazie all&#8217;astuzia di qualche browser.</p>
<p><a href="http://www.gianniamato.it/wp-content/uploads/2010/09/ipdecimal11.png"><img class="aligncenter size-medium wp-image-1381" title="ipdecimal" src="http://www.gianniamato.it/wp-content/uploads/2010/09/ipdecimal1-300x91.png" alt="" width="300" height="91" /></a></p>
<p>Quando si ha a che fare con una lunga lista di IP e l&#8217;esigenza è quella di convertire tutti i valori nel formato decimale puntato (es. 111.112.113.114) non è semplice trovare tool adatti allo scopo. Probabilmente esisteranno, ma nel mio caso credo che avrei perso più tempo a cercarlo che a scriverne uno partendo dallo <a href="http://linuxshellaccount.blogspot.com/2008/07/perl-and-bash-versions-of-binary-to.html" target="_blank">script bash</a> di Mike Golvach per la conversione da binario a decimale.</p>
<pre>#!/bin/bash

# by Gianni 'guelfoweb' Amato

# usage : bash decint2ip.sh 1869640050
# 	  bash decint2ip.sh -f filename.txt

function bin2dec(){

	number=$1
	length=${#number}

	set -a binnumber
	for x in $(seq 0 $((${#number} - 1)))
	do
	 binnumber[$x]=${number:$x:1}
	done

	if [ ${binnumber[7]} -eq 1 ]; then
	 total=$((total + 1))
	fi
	if [ ${binnumber[6]} -eq 1 ]; then
	 total=$((total + 2))
	fi
	if [ ${binnumber[5]} -eq 1 ]; then
	 total=$((total + 4))
	fi
	if [ ${binnumber[4]} -eq 1 ]; then
	 total=$((total + 8))
	fi
	if [ ${binnumber[3]} -eq 1 ]; then
	 total=$((total + 16))
	fi
	if [ ${binnumber[2]} -eq 1 ]; then
	 total=$((total + 32))
	fi
	if [ ${binnumber[1]} -eq 1 ]; then
	 total=$((total + 64))
	fi
	if [ ${binnumber[0]} -eq 1 ]; then
	 total=$((total + 128))
	fi
}

function ipcalc(){

	BIN=`echo "ibase=10; obase=2; $LINE;" | bc`
	LENSTR=`expr length $BIN`

	if [ $LENSTR -lt 32 ]; then
		ADD=$[32-$LENSTR]

		for i in `seq 1 $ADD`;
		do
			NULL=$NULL`echo -ne "0"`
		done
	fi

	IPBIN=$NULL$BIN
	NULL=""

	OTTETTO[4]=${IPBIN:24}
	OTTETTO[3]=${IPBIN:16:8}
	OTTETTO[2]=${IPBIN:8:8}
	OTTETTO[1]=${IPBIN:0:8}

	for i in `seq 1 4`
	do
		bin2dec ${OTTETTO[$i]}
		IP[$i]=$total
		total=0
	done
	echo -e "${IP[1]}.${IP[2]}.${IP[3]}.${IP[4]}"
}

function convertlist(){

	cat $FILE | while read LINE;
	do {
		ipcalc
	} done
}

function hlp(){
	echo "Error: argument(s) not valid."
	echo "	usage i.e.: bash decint2ip.sh 1869640050"
	echo "	usage i.e.: bash decint2ip.sh -f filename.txt"
	exit 0
}

ARG=2
if [ $# -lt 1 ]; then
	hlp
fi

if [ $# -gt "$ARG" ]; then
	hlp
fi

if [ $1 = "-f" ]; then
	if [ -n "$2" ]; then
		FILE=$2
		convertlist
	else
		hlp
	fi
else
	LINE=$1
	ipcalc
fi</pre>
<p>Per utilizzarlo su un singolo valore:</p>
<pre>$ bash decint2ip.sh <em>1869640050</em></pre>
<p>Per utilizzarlo su un file contenente una lista di ip nel formato intero decimale:</p>
<pre>$ bash decint2ip.sh -f <em>filename.txt</em></pre>
]]></content:encoded>
			<wfw:commentRss>http://www.gianniamato.it/2010/09/conversione-ip-da-intero-decimale-a-puntato-decimale.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Grep e il problema di encoding dei caratteri</title>
		<link>http://www.gianniamato.it/2010/02/grep-e-il-problema-di-encoding-dei-caratteri.html</link>
		<comments>http://www.gianniamato.it/2010/02/grep-e-il-problema-di-encoding-dei-caratteri.html#comments</comments>
		<pubDate>Mon, 15 Feb 2010 18:12:52 +0000</pubDate>
		<dc:creator>guelfoweb</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[grep]]></category>
		<category><![CDATA[iconv]]></category>
		<category><![CDATA[log]]></category>

		<guid isPermaLink="false">http://www.gianniamato.it/?p=1041</guid>
		<description><![CDATA[Non ho idea del perchè il &#8220;buon&#8221; MS Sql Server utilizza la codifica UTF-16 quando esporta i file di log &#8211; non è da escludere che chi ha configurato il database lo abbia impostato così di proposito (spero abbia avuto &#8230; <a href="http://www.gianniamato.it/2010/02/grep-e-il-problema-di-encoding-dei-caratteri.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Non ho idea del perchè il &#8220;buon&#8221; <em>MS Sql Server</em> utilizza la codifica UTF-16 quando esporta i file di log &#8211; non è da escludere che chi ha configurato il database lo abbia impostato così di proposito (spero abbia avuto i suoi buoni motivi per farlo) o probabilmente per errore. Fatto sta che in queste condizioni andando di <strong>grep</strong> si riscontrano problemi di matching.</p>
<p>Naturalmente la soluzione è quella di convertire il file di log (un comune csv) da UTF-16 in UTF-8</p>
<p><code>iconv --from-code UTF-16 --to-code UTF-8 <em>filelog.csv</em> &gt; <em>newlog.csv</em></code></p>
<p>Date le impostazioni di codifica vi ritroverete con un file di log dalle dimensioni esattamente dimezzate e finalmente digeribile da grep.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gianniamato.it/2010/02/grep-e-il-problema-di-encoding-dei-caratteri.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Data hiding: inversione di byte o bit</title>
		<link>http://www.gianniamato.it/2010/01/data-hiding-inversione-di-byte-o-bit.html</link>
		<comments>http://www.gianniamato.it/2010/01/data-hiding-inversione-di-byte-o-bit.html#comments</comments>
		<pubDate>Sun, 03 Jan 2010 14:32:45 +0000</pubDate>
		<dc:creator>guelfoweb</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[forensics]]></category>
		<category><![CDATA[tool]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[data hiding]]></category>

		<guid isPermaLink="false">http://www.gianniamato.it/?p=991</guid>
		<description><![CDATA[Leggendo il post di Denis mi è venuto in mente di riprendere lo script che pubblicai tempo fa su CFI ML e metterlo a disposizione di chiunque voglia studiare nuove tecniche di data hiding basate sull&#8217;inversione della posizione dei byte. &#8230; <a href="http://www.gianniamato.it/2010/01/data-hiding-inversione-di-byte-o-bit.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Leggendo il <a title="Sono un invertito" href="http://www.denisfrati.it/?p=1850" target="_blank">post</a> di Denis mi è venuto in mente di riprendere lo script che pubblicai tempo fa su <a title="Computer Forensics Italy (Mailing List)" href="http://groups.google.it/group/cfitaly" target="_blank">CFI ML</a> e metterlo a disposizione di chiunque voglia studiare nuove tecniche di data hiding basate sull&#8217;inversione della posizione dei byte.</p>
<p>Per capire meglio come avviene l&#8217;inversione basta guardare bene questa immagine</p>
<p><img src="http://www.gianniamato.it/wp-content/uploads/2010/01/mirrorbytes11.png" alt="" /></p>
<p>E&#8217; come se il file si guardasse allo specchio. In questo modo il primo byte diventa l&#8217;ultimo, il secondo il penultimo e così via fino a invertire completamente la posizione di tutti i byte che compongono il file.</p>
<p>Il sorgente è scaricabile da qui: <strong><a title="Mirror.sh" href="http://www.gianniamato.it/download/bash/mirror.sh" target="_self">mirror.sh</a></strong></p>
<blockquote><p>#!/bin/bash</p>
<p>## Reverse bytes<br />
## by Gianni &#8216;guelfoweb&#8217; Amato</p>
<p>## This script is released under the terms of the GNU GPL v3</p>
<p>usage(){<br />
echo &#8220;usage: $0 [ source ] [ target ]&#8221;<br />
}</p>
<p>if [ $# -lt 2 ]; then<br />
usage<br />
exit -1<br />
fi</p>
<p>if [ ! -f $1 ]; then<br />
echo &#8220;source file not found: $1&#8243;<br />
usage<br />
exit 0<br />
fi</p>
<p>if [ -f $2 ]; then<br />
echo &#8220;target file exists: $2&#8243;<br />
usage<br />
exit 0<br />
fi</p>
<p>BYTEIN=`wc &#8211;byte $1 | cut -d&#8221; &#8221; -f1`    #Byte count file input<br />
echo &#8220;reverse current $1 in $2&#8243;<br />
echo &#8220;writing $BYTEIN byte(s) in $2&#8243;</p>
<p>for i in `seq 1 $BYTEIN`<br />
do<br />
SKIP=$(($BYTEIN &#8211; $i))    #Decreases by one<br />
dd if=$1 skip=$SKIP count=1 bs=1 &gt;&gt; $2 2&gt; /dev/null<br />
echo -ne &#8220;.&#8221;<br />
done</p>
<p>BYTEOUT=`wc &#8211;byte $2 | cut -d&#8221; &#8221; -f1`    #Byte count file output<br />
if [ $BYTEIN = $BYTEOUT ]; then    #Byte verify<br />
echo<br />
echo &#8220;finished!&#8221;<br />
else<br />
echo<br />
echo &#8220;error: invalid byte(s)&#8221;<br />
fi<br />
exit 0</p></blockquote>
<p><strong>usage:</strong> <code>bash mirror.sh [ source ] [ target ]</code></p>
<p>La soluzione descritta da Denis è ancora più diabolica: anzichè lavorare sui byte propone l&#8217;inversione dei bit. Per i dettagli vi rimando al <a title="Sono un invertito" href="http://www.denisfrati.it/?p=1850" target="_blank">post sul suo blog</a>.</p>
<p>Buono studio!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gianniamato.it/2010/01/data-hiding-inversione-di-byte-o-bit.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zone Transfer (AXFR) Enumeration</title>
		<link>http://www.gianniamato.it/2009/12/zone-transfer-axfr-enumeration.html</link>
		<comments>http://www.gianniamato.it/2009/12/zone-transfer-axfr-enumeration.html#comments</comments>
		<pubDate>Wed, 16 Dec 2009 00:44:09 +0000</pubDate>
		<dc:creator>guelfoweb</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[axfr]]></category>
		<category><![CDATA[bash]]></category>

		<guid isPermaLink="false">http://www.gianniamato.it/?p=925</guid>
		<description><![CDATA[axfr.sh è un supplemento a knock #!/bin/bash ## Zone Transfer (AXFR) enumeration ## axfr.sh is a supplement to knock ## http://knock.gianniamato.it ## by Gianni &#8216;guelfoweb&#8217; Amato usage(){ echo &#8220;usage: $0 [ domain ] [ fileoutput ]&#8221; } if [ $# &#8230; <a href="http://www.gianniamato.it/2009/12/zone-transfer-axfr-enumeration.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><strong>axfr.sh</strong> è un supplemento a <a title="knock" href="http://knock.gianniamato.it/" target="_blank">knock</a></p>
<blockquote><p>#!/bin/bash</p>
<p>## Zone Transfer (AXFR) enumeration<br />
## axfr.sh is a supplement to knock<br />
## http://knock.gianniamato.it</p>
<p>## by Gianni &#8216;guelfoweb&#8217; Amato</p>
<p>usage(){<br />
echo &#8220;usage: $0 [ domain ] [ fileoutput ]&#8221;<br />
}</p>
<p>if [ $# -lt 1 ]; then<br />
usage<br />
exit -1<br />
fi</p>
<p>DOMAIN=$1</p>
<p>fileverify(){<br />
if [ -f $OUTPUT ]; then<br />
echo &#8220;error: file exists: &#8216;$OUTPUT&#8217;&#8221;<br />
usage<br />
exit 1<br />
fi<br />
}</p>
<p>if [ -z $2 ]; then<br />
OUTPUT=&#8221;output&#8221;<br />
fileverify<br />
else<br />
OUTPUT=$2<br />
fileverify<br />
fi</p>
<p>QUERY=`dig $DOMAIN NS +short | sed &#8216;s/[.t]*$//&#8217;`<br />
NS=($QUERY)</p>
<p>for((i=0;i&lt;${#NS[@]};i++)); do<br />
echo &#8220;Trying Zone Transfer on -&gt; ${NS[$i]}&#8221; &gt;&gt; $OUTPUT<br />
echo &gt;&gt; $OUTPUT<br />
dig @${NS[$i]} $DOMAIN axfr | grep -v &#8220;^;&#8221; | grep -v &#8220;^$&#8221; &gt;&gt; $OUTPUT<br />
done</p>
<p>if [ -f $OUTPUT ]; then<br />
cat $OUTPUT<br />
echo &#8220;Output saved in &#8216;$OUTPUT&#8217; file.&#8221;<br />
exit 1<br />
else<br />
echo &#8220;error: &#8216;$DOMAIN&#8217; is not a valid domain name.&#8221;<br />
fi</p></blockquote>
<p><strong>usage:</strong> bash axfr.sh [ domain ] [ fileoutput ]</p>
<p>in alternativa utilizzando i seguenti permessi <em>chmod a+x axfr.sh</em></p>
<p><code>./axfr.sh example.com</code></p>
<p>l&#8217;output verra mostrato a video e scritto di default nel file &#8216;output&#8217;.</p>
<p>Se si vuole specificare il file output di destinazione:</p>
<p><code>./axfr.sh example.com filename.txt</code></p>
<p>Lo script bash è scaricabile direttamente da <a title="knock" href="http://knock.gianniamato.it/axfr.sh">qui</a> o dalla pagina di <a href="http://knock.gianniamato.it/download.php">download</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gianniamato.it/2009/12/zone-transfer-axfr-enumeration.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Zone Transfer AXFR con DiG</title>
		<link>http://www.gianniamato.it/2009/09/zone-transfer-axfr-con-dig.html</link>
		<comments>http://www.gianniamato.it/2009/09/zone-transfer-axfr-con-dig.html#comments</comments>
		<pubDate>Tue, 22 Sep 2009 18:31:00 +0000</pubDate>
		<dc:creator>guelfoweb</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[axfr]]></category>
		<category><![CDATA[bash]]></category>

		<guid isPermaLink="false">http://gianniamato.wordpress.com/2009/09/22/zone-transfer-axfr-con-dig</guid>
		<description><![CDATA[Interrogare i server dns in fase di PT (o VA) è un&#8217;operazione fondamentale, per questo tempo fa mi decisi a implementare axfr request su knock grazie al supporto della libreria dnspython. Oggi queste operazioni possono essere tranquillamente eseguite con namp &#8230; <a href="http://www.gianniamato.it/2009/09/zone-transfer-axfr-con-dig.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div style="text-align:justify;">Interrogare i server dns in fase di PT (o VA) è un&#8217;operazione fondamentale, per questo tempo fa mi decisi a implementare <span style="font-style:italic;">axfr request</span> su <a href="http://knock.gianniamato.it/">knock</a> grazie al supporto della libreria dnspython. Oggi queste operazioni possono essere tranquillamente eseguite con namp grazie al lavoro dello <a href="http://nmap.org/nsedoc/scripts/dns-zone-transfer.html">script engine</a>.</p>
<p>Non sto qui a spiegare cosa è lo <a href="http://en.wikipedia.org/wiki/DNS_zone_transfer">zone transfer</a> o come, quando e in che modo dev&#8217;essere abilitato o inibito, voglio solo appuntare un esempio pratico di richiesta axfr utilizzando il comando DiG.</p>
<p>Andiamo per ordine:</p>
<p>Host in esame: <span style="font-weight:bold;">gazzetta.it</span></div>
<p>DNS Name Server:</p>
<p><code>$: <span style="font-weight:bold;">dig gazzetta.it NS | grep -v "^;" | grep -v "^$"| grep NS</span></code></p>
<p>gazzetta.it.  61355 IN NS ns2.ita.tip.net.<br />
gazzetta.it.  61355 IN NS ns.ita.tip.net.</p>
<div style="text-align:justify;">L&#8217;otuput restituisce due dns: <span style="font-weight:bold;">ns.ita.it.net</span> e <span style="font-weight:bold;">ns2.ita.tip.net</span>, su quest&#8217;ultimo è abilitato lo zone transfer, possiamo verificare con il seguente comando:</div>
<p><code><br />
$: <span style="font-weight:bold;">dig @ns2.ita.tip.net gazzetta.it axfr | grep -v "^;" | grep -v "^$"</span></code></p>
<p>gazzetta.it.  86400 IN NS ns.ita.tip.net.<br />
gazzetta.it.  86400 IN NS ns2.ita.tip.net.<br />
gazzetta.it.  86400 IN A 194.20.158.242<br />
gazzetta.it.  86400 IN A 194.20.158.102<br />
gazzetta.it.  86400 IN MX 15 posta3.rcs.it.<br />
gazzetta.it.  86400 IN MX 15 posta2.rcs.it.<br />
gazzetta.it.  86400 IN MX 15 posta1.rcs.it.<br />
gazzetta.it.  86400 IN MX 15 posta4.rcs.it.<br />
45parallelo.gazzetta.it. 86400 IN CNAME 45parallelo.splinder.com.<br />
altrimondi.gazzetta.it. 86400 IN CNAME cw.rcs.tomato.it.<br />
altrogirotv.gazzetta.it. 86400 IN A 213.92.76.242<br />
americaalmassimo.gazzetta.it. 86400 IN CNAME americaalmassimo.splinder.com.<br />
americalmassimo.gazzetta.it. 86400 IN CNAME americaalmassimo.splinder.com.<br />
appuntidiviaggio.gazzetta.it. 86400 IN CNAME blog.splinder.com.<br />
archivio.gazzetta.it. 86400 IN CNAME www.gazzetta.it.<br />
archivio-sms.gazzetta.it. 86400 IN CNAME www.gazzetta.it.<br />
archivioaltrimondi.gazzetta.it. 86400 IN CNAME gda.splinder.com.<br />
archiviostorico.gazzetta.it. 86400 IN CNAME www.gazzetta.it.<br />
beachtour.gazzetta.it. 86400 IN CNAME www.gazzetta.it.<br />
beachtour8.gazzetta.it. 86400 IN A 194.20.158.99<br />
beachtournews.gazzetta.it. 86400 IN CNAME www.gazzetta.it.<br />
biciscuola.gazzetta.it. 86400 IN A 64.13.232.188<br />
blog.gazzetta.it. 86400 IN CNAME www.gazzetta.it.<br />
*.blog.gazzetta.it. 86400 IN CNAME blog.splinder.com.<br />
cache1.gazzetta.it. 86400 IN A 62.94.132.21<br />
cache2.gazzetta.it. 86400 IN A 10.31.255.10<br />
cache3.gazzetta.it. 86400 IN A 151.1.208.3<br />
cache4.gazzetta.it. 86400 IN A 213.92.76.194<br />
cache5.gazzetta.it. 86400 IN A 213.255.2.197<br />
cache6.gazzetta.it. 86400 IN A 195.110.98.8<br />
cache7.gazzetta.it. 86400 IN A 212.123.79.244<br />
cache8.gazzetta.it. 86400 IN A 217.169.110.148<br />
calciofrancese.gazzetta.it. 86400 IN CNAME blog.splinder.com.<br />
carovanaexodus.gazzetta.it. 86400 IN CNAME blog.splinder.com.<br />
&#8230;..etc. etc. etc.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gianniamato.it/2009/09/zone-transfer-axfr-con-dig.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Rinominare e concatenare file di log</title>
		<link>http://www.gianniamato.it/2009/07/rinominare-e-concatenare-file-di-log.html</link>
		<comments>http://www.gianniamato.it/2009/07/rinominare-e-concatenare-file-di-log.html#comments</comments>
		<pubDate>Wed, 15 Jul 2009 20:06:00 +0000</pubDate>
		<dc:creator>guelfoweb</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[log]]></category>

		<guid isPermaLink="false">http://gianniamato.wordpress.com/2009/07/15/rinominare-e-concatenare-file-di-log</guid>
		<description><![CDATA[I log sono tipicamente dei file di testo facilmente ispezionabili con le più comuni applicazioni di text editing. Se per qualche insolito motivo vi capita di dover dare in pasto i file di log ad una applicazione che accetta solo &#8230; <a href="http://www.gianniamato.it/2009/07/rinominare-e-concatenare-file-di-log.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div style="text-align:justify;">I log sono tipicamente dei file di testo facilmente ispezionabili con le più comuni applicazioni di text editing. Se per qualche insolito motivo vi capita di dover dare in pasto i file di log ad una applicazione che accetta solo file con una determinata estensione (ad esempio <span style="font-style:italic;">.log</span> o <span style="font-style:italic;">.txt</span>) e non volete perdere tempo con le espressioni regolari di <span style="font-style:italic;">rename</span> potete utilizzare il comando <span style="font-style:italic;">mv</span> all&#8217;interno di un banale ciclo <span style="font-style:italic;">for</span>.</p>
<p>Supponiamo di dover <span style="font-size:130%;">rinominare</span> i seguenti file di log con estensione <span style="font-style:italic;">.txt</span>:</p>
<p><code>file.log.090714<br />
file.log.090715<br />
file.log.090716</code></p>
<p><code style="font-weight:bold;">$ for i in `ls file.log.*`; do mv $i $i.txt; done</code></p>
<p>Il risultato sarà il seguente:</p>
<p><code>file.log.090714.txt<br />
file.log.090715.txt<br />
file.log.090716.txt</code></p>
<p>Se volessimo <span style="font-size:130%;">concatenare</span> tutti i file con estensione <span style="font-style:italic;">.txt</span> possiamo ricorrere al classico comando <span style="font-style:italic;">cat</span>.<br />
<code><br />
<span style="font-weight:bold;">$ cat *.txt &gt; </span><span style="font-weight:bold;font-family:Georgia,serif;">newfile</span></code></p>
<p>Se invece prima di concatenarli volessimo aggiungere un delimitatore alla fine di ogni singolo file (o una riga vuota) per trattamenti futuri o semplicemente per capire ad occhio quando un file finisce e comincia l&#8217;altro possiamo usare la seguente riga di comando:</p>
<p><code style="font-weight:bold;">$ for i in `ls file.log.*`; do echo "" &gt;&gt; $i; done</code></p>
<p>In questo caso il delimitatore è una riga vuota aggiunta alla fine di tutti i file il cui nome comincia con <span style="font-style:italic;">file.log</span></div>
]]></content:encoded>
			<wfw:commentRss>http://www.gianniamato.it/2009/07/rinominare-e-concatenare-file-di-log.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

