2010-06-13 6 views
0

J'utilise regex pour analyser la sortie NMAP. Je veux les adresses IP qui sont ouvertes avec les ports correspondants ouverts. Maintenant, j'ai une méthode très naïve de le faire:Concaténation des sorties awk

awk '/^Scanning .....................ports]/ {print substr ($2,1,15);}' results.txt 
awk '/^[0-9][0-9]/ {print substr($1,1,4);}' results.txt | awk -f awkcode.awk 

où awkcode.awk contient le code pour extraire les numéros de la sous-chaîne. La première ligne imprime toutes les ips qui sont en haut et le second me donne les ports. Mon problème est que je les veux mappés les uns aux autres. Y'a-t'il un quelconque moyen d'y arriver? Même un script sed ferait l'affaire.

+0

Il serait utile si vous avez montré une sortie de votre commande 'nmap' (ou du moins les options que vous utilisez). –

+0

vous devriez fournir des détails sur le fichier (je pourrais exécuter nmap, mais paresseux, et avec quelles options?), Et ajouter awk et sed tag – ShinTakezou

+0

oui, s'il vous plaît fournir la sortie et la sortie demandée – Drakosha

Répondre

1

Vous trouverez probablement en utilisant le format de sortie "Grepable" pour être plus facile à analyser:

nmap -oG - -v -A 192.168.0.1-254 

Exemple de sortie:

Hôte: 192.168.1.1 (foo) Statut: Up hôte : 192.168.1.1 (foo) Ports: 22/open/tcp // ssh // OpenSSH 5.1p1 Debian 6ubuntu2 (protocole 2.0) /, 80/open/tcp // http // Apache httpd 2.2.12 ((Ubuntu)) /, 139/open/tcp // netbios-ssn // Samba smbd 3.X (groupe de travail: BAR) /, 445/open/tcp // netbios-ssn // Samba smbd 3.X (groupe de travail: BAR) /, 7100/open/tcp // police-service // Serveur de polices X.Org X/I État gnored: fermé (995)

Ou si vous avez un analyseur XML, utilisez le format de sortie XML:

nmap -oX - -v -A 192.168.0.1-254 

Exemple de sortie:

<?xml version="1.0" ?> 
<?xml-stylesheet href="file:///usr/share/nmap/nmap.xsl" type="text/xsl"?> 
<!-- Nmap 5.00 scan initiated Sun Jun 13 08:11:32 2010 as: nmap -oX - -v -A 192.168.1.1-254 --> 
<nmaprun scanner="nmap" args="nmap -oX - -v -A 192.168.1.1-254" start="1276434692" startstr="Sun Jun 13 08:11:32 2010" version="5.00" xmloutputversion="1.03"> 
... 
... 
<host starttime="1276434692" endtime="1276434775"><status state="up" reason="syn-ack"/> 
<address addr="192.168.1.1" addrtype="ipv4" /> 
<hostnames><hostname name="foo" type="PTR" /></hostnames> 
<ports><extraports state="closed" count="995"> 
<extrareasons reason="conn-refused" count="995"/> 
</extraports> 
<port protocol="tcp" portid="22"><state state="open" reason="syn-ack" reason_ttl="0"/><service name="ssh" product="OpenSSH" version="5.1p1 Debian 6ubuntu2" extrainfo="protocol 2.0" ostype="Linux" method="probed" conf="10" /><script id="ssh-hostkey" output="1024 1a:2b:4d:5e:6f:00:f1:e2:d3:c4:b5:a6:e2:f3:fe (DSA)&#xa;2048 fa:eb:dc:cd:be:af:a0:75:65:8a:52:7d:11:22:33:44 (RSA)" /></port>