El problema está en la extracción de los detalles del cuadro virtual de Oracle (segundo párrafo) de la "versión sin interfaz gráfica de usuario de nmap" . Entiendo el uso de "grep" y "bucles" y ya lo he intentado todo, pero ¿qué pasa si hay otros sistemas conectados en la misma red? Solo quiero que el programa encuentre la palabra "(NIC virtual de Oracle VirtualBox)" y extraiga todo lo que está encima hasta que encuentre una línea en blanco.

**

root @ PopeyeTheSailorMan: ~ # nmap 192.168.43.0/24> Log.txt

**

Starting Nmap 7.60 ( https://nmap.org ) at 2017-11-15 04:08 UTC
Nmap scan report for 192.168.43.1
Host is up (0.0025s latency).
Not shown: 999 closed ports
PORT   STATE SERVICE
53/tcp open  domain
MAC Address: 9A:10:94:51:42:ED (Unknown)

***Nmap scan report for 192.168.43.136
Host is up (0.00071s latency).
Not shown: 994 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
139/tcp  open  netbios-ssn
443/tcp  open  https
1024/tcp open  kdm
MAC Address: 08:00:27:D3:73:2E (Oracle VirtualBox virtual NIC)***

Nmap scan report for kali (192.168.43.79)
Host is up (0.0000070s latency).
All 1000 scanned ports on kali (192.168.43.79) are closed

Nmap done: 256 IP addresses (3 hosts up) scanned in 16.00 seconds
2
ASK Arjun 15 nov. 2017 a las 03:10

2 respuestas

La mejor respuesta

Si entiendo tu pregunta, esto hace lo que quieres:

awk '/Oracle VirtualBox virtual NIC/' RS= Log.txt

Con su entrada de muestra:

$ awk '/Oracle VirtualBox virtual NIC/' RS= Log.txt
***Nmap scan report for 192.168.43.136
Host is up (0.00071s latency).
Not shown: 994 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
139/tcp  open  netbios-ssn
443/tcp  open  https
1024/tcp open  kdm
MAC Address: 08:00:27:D3:73:2E (Oracle VirtualBox virtual NIC)***

Cómo funciona

  • RS=

    Esto le dice a awk que lea la entrada un párrafo a la vez.

  • /Oracle VirtualBox virtual NIC/

    Esto le dice a awk que imprima cualquier párrafo que contenga la cadena Oracle VirtualBox virtual NIC.

2
John1024 15 nov. 2017 a las 00:29
    grep -n ^$ Log.txt | sed s/://

Dará los números de línea en blanco (adecuados para una matriz)

    grep -n 'Oracle VirtualBox virtual NIC' Log.txt | cut -f1 -d\:

Dará los números de línea del objetivo

Use matrices, bucles y sed para asimilar el bloque que desee

    sed -n '8,19p' Log.txt
1
user8807135user8807135 15 nov. 2017 a las 00:33