Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 08/07/2015, à 20:31

bud93

script pour debutants

Bonjour,
En gros j’ai un fichier csv sous cette forme

A
1
B: 2

A
3
B: 7

et je voudrais que ces données soient dans  un nouveau fichier sous cette forme
A,B
1,2
3,7

merci!

Hors ligne

#2 Le 08/07/2015, à 20:56

pingouinux

Re : script pour debutants

Bonsoir,
Peux-tu préciser ce que tu veux exactement,  ou donner un exemple plus long ?

Hors ligne

#3 Le 08/07/2015, à 21:02

bud93

Re : script pour debutants

Je voudrais faire un nouveau fichier a partir d'un fichier source qui contient des valeurs. Mon vrai besoin c'est exploiter un report de scan nessus. Mon fichier de scan a cette structure

Numero de serie
12345677889

chiffrement du certif : SHA256

Numero de serie
23345677889

chiffrement du certif : SHA1

Numero de serie
26545677889

chiffrement du certif : SHA1

....
et je voudrais mettre ces infos dans un fichier mieux structurer pour faire des stats dans excel. Idealement je voudrais obtenir un fichier de la forme
Numero de serie,chiffrement du certif
12345677889,SHA256
23345677889,SHA1
26545677889,SHA1

Hors ligne

#4 Le 08/07/2015, à 21:47

bud93

Re : script pour debutants

Vous pensez que c'est possible?

Hors ligne

#5 Le 08/07/2015, à 22:03

pingouinux

Re : script pour debutants

Essaye ceci (ce n'est pas très joli…) :

awk -F": " 'BEGIN{s="Numero de serie,chiffrement du certif"} /^$/{next} /Numero/{getline;s=sprintf("%s\n%s",s,$1)} /chiffrement/{s=sprintf("%s,%s",s,$2)} END{print s}' le_fichier

Hors ligne

#6 Le 08/07/2015, à 22:06

bud93

Re : script pour debutants

je specifie ou mes données sources?

Hors ligne

#7 Le 08/07/2015, à 22:11

pingouinux

Re : script pour debutants

je specifie ou mes données sources?

À la fin de la commande, tu remplaces le_fichier par le nom de ton fichier.

Hors ligne

#8 Le 08/07/2015, à 22:21

bud93

Re : script pour debutants

J'obtiens ca:
Numero de serie,chiffrement du certif
12345677889\,SHA256\
23345677889\,SHA1\
26545677889\,SHA1\

c'est quoi les slash?
suis sur mac

Si je veux recuperer d'autres informations, ta ligne de commande est facilement adaptable?

C'est top!

Hors ligne

#9 Le 08/07/2015, à 22:30

pingouinux

Re : script pour debutants

c'est quoi les slash?
suis sur mac

Ils n'apparaissent pas chez moi. Essaye à tout hasard cette commande (j'ai remplacé \n par \r), mais je ne suis pas très sûr du résultat :

awk -F": " 'BEGIN{s="Numero de serie,chiffrement du certif"} /^$/{next} /Numero/{getline;s=sprintf("%s\r%s",s,$1)} /chiffrement/{s=sprintf("%s,%s",s,$2)} END{print s}' le_fichier

Si je veux recuperer d'autres informations, ta ligne de commande est facilement adaptable?

Ce sera plus ou moins facile selon ce que tu veux changer.

Hors ligne

#10 Le 08/07/2015, à 22:36

bud93

Re : script pour debutants

En gros y a d'autres champs a recuperer. Mais cela a à peu pres la meme structure que ce que j'ai posté.
Numero de serie
12345677889

chiffrement du certif : SHA256

autre info : azerty

Numero de serie
23345677889

chiffrement du certif : SHA1

autre info : azyujzgdhg

Numero de serie
26545677889

chiffrement du certif : SHA1

autre info : azerdcdsc

Hors ligne

#11 Le 08/07/2015, à 22:49

bud93

Re : script pour debutants

Je l'ai modifié pour prendre la 3eme info mais ca ne marche pas
awk -F": " 'BEGIN{s=« Numero de serie,chiffrement du certif,autre info » } /^$/{next} /Numero/{getline;s=sprintf("%s\n%s",s,$1)} /chiffrement/{s=sprintf("%s,%s",s,$2)} /autre/{s=sprintf("%s,%s",s,$3)} END{print s}' source2.rtf

Hors ligne

#12 Le 08/07/2015, à 22:52

pingouinux

Re : script pour debutants

Dans ce cas, on peut faire autrement. Voici un script en python3 :

#!/usr/bin/env python3
import sys, re

with open(sys.argv[1],'r') as f: fic=f.read()

n=0
cles=[]; valeurs=[]
for k in re.split('[\n:]',fic):
   if not k: continue
   n+=1
   if n%2:
      cle=k.strip()
   else:
      val=k.strip()
      try: i=cles.index(cle); valeurs[i].append(val)
      except ValueError: cles.append(cle); valeurs.append([val])
      
print(','.join(cles))
for vals in zip(*valeurs): print(','.join(vals))

À lancer ainsi :

./le_script.py le_fichier

Édité : Simplification du script

Dernière modification par pingouinux (Le 09/07/2015, à 06:25)

Hors ligne

#13 Le 08/07/2015, à 22:57

pingouinux

Re : script pour debutants

Dans ta commande en #11, il te suffit de remplacer $3 par $2 (c'est un numéro de champ sur la ligne)

Hors ligne

#14 Le 08/07/2015, à 22:58

bud93

Re : script pour debutants

Je l'ai modifié avec
awk -F": " 'BEGIN{s="Numero de serie,chiffrement du certif,autre info"} /^$/{next} /Numero/{getline;s=sprintf("%s\n%s",s,$1)} /chiffrement/{s=sprintf("%s,%s",s,$2)} /autre/{s=sprintf("%s,%s",s,$2)} END{print s}' source2.rtf
et ca marche.

Par contre lorsque la valeur de autre info je la mets a la ligne, la valeur de autre info ne ressort pas dans le resultat final (sais tu pourquoi?)
J'essaierais le python au boulot demain

Hors ligne

#15 Le 08/07/2015, à 23:11

pingouinux

Re : script pour debutants

Par contre lorsque la valeur de autre info je la mets a la ligne, la valeur de autre info ne ressort pas dans le resultat final (sais tu pourquoi?)

Oui, parce que la ligne de commande a été adaptée à la structure supposée du fichier (autre info : valeur). Le script python est plus général (les mots-clés n'y figurent même pas), et devrait être correct.

Ajouté : J'ai simplifié le script en #12

Dernière modification par pingouinux (Le 09/07/2015, à 06:26)

Hors ligne

#16 Le 09/07/2015, à 10:54

bud93

Re : script pour debutants

J'ai pu le faire sur certains champs mais comme tu me l'as dit c'est un peu plus compliqué sur ce que j'ai a faire:(

Voici mes données en entrée anonymisées:

Source File: traceroute.nasl","It was possible to obtain traceroute information.","Makes a traceroute to the remote host.","n/a","","None","","","","","","","","Jan 27, 2015 11:52:16 UTC","Apr 27, 2015 15:01:53 UTC","N/A","N/A","Nov 27, 1999 12:00:00 UTC","Apr 11, 2013 12:00:00 UTC","","","remote","1.62"
10863,"SSL Certificate Information","General","Info","73.73.73.73","TCP","443","No","","Internet","","","","Synopsis: This plugin displays the SSL certificate.
		
Description: This plugin connects to every SSL-related port and attempts to extract and dump the X.509 certificate.
		
Solution: n/a	
		
Risk Factor: None	
		
Plugin Output: Subject Name: 
		
1.3.6.11.14.1.11.60.2.1.3: US
1.3.1.4.1.311.60.2.1.2: Delaware
2.5.5.1.15: Private Organization
2.5.4.3.5: 2183351	
Country: Country1	
Postal Code: 6541	
State/Province: Province
Locality: Ville	
Street: 5 Jackson street
Organization: Organization1
Organization Unit: Organization Unit1
Common Name: Common Name.com
		
Issuer Name: 	
		
Country: Country2	
Organization: Organization 2
Organization Unit: Organization Unit 2 3
Common Name: Common Name 2 12 
		
Serial Number: 54 77 32 43 11 7F 55 55 55 0B 12 2C E4 75 OC 01 
		
Version: 3	
		
Signature Algorithm: SHA-256 With RSA Encryption
		
Not Valid Before: Feb 13 00:00:00 2011 GMT
Not Valid After: Feb 13 23:59:59 2018 GMT
		
Public Key Info: 	
		
Algorithm: RSA Encryption
Key Length: 2048 bits
Public Key: 22 A4 0F 44 C5 D5 A5 FF F3 1C 2F 94 DB C5 50 1A 40 C7 0B 5B 
            52 64 3B 34 B0 CB 8D AB 72 1F 56 A3 86 DF C8 72 0E 32 25 F4 
            52 64 3B 34 B0 CB 8D AB 72 1F 56 A3 86 DF C8 72 0E 32 25 F4 
            52 64 3B 34 B0 CB 8D AB 72 1F 56 A3 86 DF C8 72 0E 32 25 F4 
            52 64 3B 34 B0 CB 8D AB 72 1F 56 A3 86 DF C8 72 0E 32 25 F4 
            52 64 3B 34 B0 CB 8D AB 72 1F 56 A3 86 DF C8 72 0E 32 25 F4 
            52 64 3B 34 B0 CB 8D AB 72 1F 56 A3 86 DF C8 72 0E 32 25 F4 
            52 64 3B 34 B0 CB 8D AB 72 1F 56 A3 86 DF C8 72 0E 32 25 F4 
            F2 63 30 78 09 13 47 55 CD 19 AE CA C0 14 F4 10 64 37 CE 1E 
            52 64 3B 34 B0 CB 8D AB 72 1F 56 A3 86 DF C8 72 0E 32 25 F4 
            52 64 3B 34 B0 CB 8D AB 72 1F 56 A3 86 DF C8 72 0E 32 25 F4 
            52 64 3B 34 B0 CB 8D AB 72 1F 56 A3 86 DF C8 72 0E 32 25 F4 
            F6 CD 9E 3E C6 0D 4E E2 62 2A 5E E5 88 36 9A 66 63 
Exponent: 01 11 01 	
		
Signature Length: 256 bytes / 2048 bits
Signature: 00 43 C5 23 B9 78 5F C0 AD 78 61 8A 90 47 EE 29 E9 1F 15 5D 
           97 29 91 85 0E 24 39 5C 02 D2 5B 72 50 D7 3D C2 7E B0 4D 23 
           97 29 91 85 0E 24 39 5C 02 D2 5B 72 50 D7 3D C2 7E B0 4D 23 
           97 29 91 85 0E 24 39 5C 02 D2 5B 72 50 D7 3D C2 7E B0 4D 23 
           97 29 91 85 0E 24 39 5C 02 D2 5B 72 50 D7 3D C2 7E B0 4D 23 
           97 29 91 85 0E 24 39 5C 02 D2 5B 72 50 D7 3D C2 7E B0 4D 23 
           97 29 91 85 0E 24 39 5C 02 D2 5B 72 50 D7 3D C2 7E B0 4D 23 
           97 29 91 85 0E 24 39 5C 02 D2 5B 72 50 D7 3D C2 7E B0 4D 23 
           97 29 91 85 0E 24 39 5C 02 D2 5B 72 50 D7 3D C2 7E B0 4D 23 
           97 29 91 85 0E 24 39 5C 02 D2 5B 72 50 D7 3D C2 7E B0 4D 23 
           97 29 91 85 0E 24 39 5C 02 D2 5B 72 50 D7 3D C2 7E B0 4D 23 
           97 29 91 85 0E 24 39 5C 02 D2 5B 72 50 D7 3D C2 7E B0 4D 23 
           93 B6 98 FD A9 31 E7 73 EB F6 98 B4 0B 6A 85 02 E1 
		
Extension: Subject Alternative Name (x.x.x.x)
Critical: 0		
DNS: DN1.com	
		
		
Extension: Basic Constraints (x.x.x.x)
Critical: 0		
		
		
Extension: Key Usage (x.x.x.x)
Critical: 1		
Key Usage: Digital Signature, Key Encipherment
		
		
Extension: Extended Key Usage (x.x.x.x.x)
Critical: 0		
Purpose#1: Web Server Authentication (x.x.x.x.x.x.x)
Purpose#2: Web Client Authentication (x.x.x.x.x.x.x)
		
		
Extension: Policies (x.x.x.x.x)
Critical: 0		
Policy ID #1: x.x.x.x.x.x.x.x.x.x..x.x
Qualifier ID #1: Certification Practice Statement (x.x.x.x.x.xx)
CPS URI: [url]https://x.xxxx.com/xxx[/url]
		
		
Extension: Authority Key Identifier (x.x.x.x.x)
Critical: 0		
Key Identifier: 01 AB AB 01 EE 22 0B 59 A6 64 63 77 CF 20 07 57 D5 91 E7 6A 
		
		
Extension: CRL Distribution Points (x.x.x.x.x)
Critical: 0		
URI: [url]http://xx.xxxxx.com/xx.xxx[/url]
		
		
Extension: Authority Information Access (x.x.x.x.x.xx)
Critical: 0		
Method#1: Online Certificate Status Protocol
URI: [url]http://xx.xxxxx.com/xx.xxx[/url]
Method#2: Certificate Authority Issuers
URI: [url]http://xx.xxxxx.com/xx.xxx[/url]
		
		
Extension: 1.1.1.1.1.1.1.1.1.1.1
Critical: 0		
Data: 04 82 01 69 01 67 00 77 00 A4 B9 09 90 B4 18 58 14 87 BB 13 
      A2 CC 67 70 0A 3C 35 98 04 F9 1B DF B8 E3 77 CD 0E C8 0D DC 
      A2 CC 67 70 0A 3C 35 98 04 F9 1B DF B8 E3 77 CD 0E C8 0D DC 
      A2 CC 67 70 0A 3C 35 98 04 F9 1B DF B8 E3 77 CD 0E C8 0D DC 
      A2 CC 67 70 0A 3C 35 98 04 F9 1B DF B8 E3 77 CD 0E C8 0D DC 
      A2 CC 67 70 0A 3C 35 98 04 F9 1B DF B8 E3 77 CD 0E C8 0D DC 
      A2 CC 67 70 0A 3C 35 98 04 F9 1B DF B8 E3 77 CD 0E C8 0D DC 
      A2 CC 67 70 0A 3C 35 98 04 F9 1B DF B8 E3 77 CD 0E C8 0D DC 
      A2 CC 67 70 0A 3C 35 98 04 F9 1B DF B8 E3 77 CD 0E C8 0D DC 
      A2 CC 67 70 0A 3C 35 98 04 F9 1B DF B8 E3 77 CD 0E C8 0D DC 
      A2 CC 67 70 0A 3C 35 98 04 F9 1B DF B8 E3 77 CD 0E C8 0D DC 
      A2 CC 67 70 0A 3C 35 98 04 F9 1B DF B8 E3 77 CD 0E C8 0D DC 
      A2 CC 67 70 0A 3C 35 98 04 F9 1B DF B8 E3 77 CD 0E C8 0D DC 
      A2 CC 67 70 0A 3C 35 98 04 F9 1B DF B8 E3 77 CD 0E C8 0D DC 
      A2 CC 67 70 0A 3C 35 98 04 F9 1B DF B8 E3 77 CD 0E C8 0D DC 
      A2 CC 67 70 0A 3C 35 98 04 F9 1B DF B8 E3 77 CD 0E C8 0D DC 
      A2 CC 67 70 0A 3C 35 98 04 F9 1B DF B8 E3 77 CD 0E C8 0D DC 
      A2 CC 67 70 0A 3C 35 98 04 F9 1B DF B8 E3 77 CD 0E C8 0D DC 
      5A CD 38 0A E1 	
		
		
		
		
Plugin Publication Date: 2008/05/19
		
Plugin Modification Date: 2012/04/02
		
Plugin Type: remote
		
Source File: traceroute.nasl","It was possible to obtain traceroute information.","Makes a traceroute to the remote host.","n/a","","None","","","","","","","","Jan 27, 2015 11:52:16 UTC","Apr 27, 2015 15:01:53 UTC","N/A","N/A","Nov 27, 1999 12:00:00 UTC","Apr 11, 2013 12:00:00 UTC","","","remote","1.62"
10863,"SSL Certificate Information","General","Info","74.74.74.74","TCP","443","No","","Internet","","","","Synopsis: This plugin displays the SSL certificate.
		
Description: This plugin connects to every SSL-related port and attempts to extract and dump the X.509 certificate.
		
Solution: n/a	
		
Risk Factor: None	
		
Plugin Output: Subject Name: 
		
1.3.6.11.14.1.11.60.2.1.3: US
1.3.1.4.1.311.60.2.1.2: Delaware
2.5.5.1.15: Private Organization
2.5.4.3.5: 2183351	
Country: Country1	
Postal Code: 6541	
State/Province: Province
Locality: Ville	
Street: 5 Jackson street
Organization: Organization1
Organization Unit: Organization Unit1
Common Name: Common Name.com
		
Issuer Name: 	
		
Country: Country2	
Organization: Organization 2
Organization Unit: Organization Unit 2 3
Common Name: Common Name 2 12 
		
Serial Number: 54 77 32 43 11 7F 55 55 55 0B 12 2C E4 75 OC 02 
		
Version: 3	
		
Signature Algorithm: SHA-256 With RSA Encryption
		
Not Valid Before: Feb 13 00:00:00 2014 GMT
Not Valid After: Feb 13 23:59:59 2018 GMT
		
Public Key Info: 	
		
Algorithm: RSA Encryption
Key Length: 2048 bits
Public Key: 00 E3 0F 44 C5 D5 A5 FF F3 1C 2F 94 DB C5 50 1A 40 C7 0B 5B 
            22 0F C3 C7 CC 34 D9 E5 8E 30 69 C4 D0 A1 72 A2 1D 52 C2 70 
            22 0F C3 C7 CC 34 D9 E5 8E 30 69 C4 D0 A1 72 A2 1D 52 C2 70 
            22 0F C3 C7 CC 34 D9 E5 8E 30 69 C4 D0 A1 72 A2 1D 52 C2 70 
            22 0F C3 C7 CC 34 D9 E5 8E 30 69 C4 D0 A1 72 A2 1D 52 C2 70 
            22 0F C3 C7 CC 34 D9 E5 8E 30 69 C4 D0 A1 72 A2 1D 52 C2 70 
            22 0F C3 C7 CC 34 D9 E5 8E 30 69 C4 D0 A1 72 A2 1D 52 C2 70 
            22 0F C3 C7 CC 34 D9 E5 8E 30 69 C4 D0 A1 72 A2 1D 52 C2 70 
            22 0F C3 C7 CC 34 D9 E5 8E 30 69 C4 D0 A1 72 A2 1D 52 C2 70 
            22 0F C3 C7 CC 34 D9 E5 8E 30 69 C4 D0 A1 72 A2 1D 52 C2 70 
            22 0F C3 C7 CC 34 D9 E5 8E 30 69 C4 D0 A1 72 A2 1D 52 C2 70 
            22 0F C3 C7 CC 34 D9 E5 8E 30 69 C4 D0 A1 72 A2 1D 52 C2 70 
            22 0F C3 C7 CC 34 D9 E5 8E 30 69 C4 D0 A1 72 A2 1D 52 C2 70 
Exponent: 01 11 01 	
		
Signature Length: 256 bytes / 2048 bits
Signature: 00 43 C5 23 B9 78 5F C0 AD 78 61 8A 90 47 EE 29 E9 1F 15 5D 
           97 29 91 85 0E 24 39 5C 02 D2 5B 72 50 D7 3D C2 7E B0 4D 23 
           97 29 91 85 0E 24 39 5C 02 D2 5B 72 50 D7 3D C2 7E B0 4D 23 
           97 29 91 85 0E 24 39 5C 02 D2 5B 72 50 D7 3D C2 7E B0 4D 23 
           97 29 91 85 0E 24 39 5C 02 D2 5B 72 50 D7 3D C2 7E B0 4D 23 
           97 29 91 85 0E 24 39 5C 02 D2 5B 72 50 D7 3D C2 7E B0 4D 23 
           97 29 91 85 0E 24 39 5C 02 D2 5B 72 50 D7 3D C2 7E B0 4D 23 
           97 29 91 85 0E 24 39 5C 02 D2 5B 72 50 D7 3D C2 7E B0 4D 23 
           97 29 91 85 0E 24 39 5C 02 D2 5B 72 50 D7 3D C2 7E B0 4D 23 
           97 29 91 85 0E 24 39 5C 02 D2 5B 72 50 D7 3D C2 7E B0 4D 23 
           97 29 91 85 0E 24 39 5C 02 D2 5B 72 50 D7 3D C2 7E B0 4D 23 
           97 29 91 85 0E 24 39 5C 02 D2 5B 72 50 D7 3D C2 7E B0 4D 23 
           93 B6 98 FD A9 31 E7 73 EB F6 98 B4 0B 6A 85 02 E1 
		
Extension: Subject Alternative Name (x.x.x.x.x)
Critical: 0		
DNS: x.x.com	
		
		
Extension: Basic Constraints (x.x.x.x.x)
Critical: 0		
		
		
Extension: Key Usage (x.x.x.x)
Critical: 1		
Key Usage: Digital Signature, Key Encipherment
		
		
Extension: Extended Key Usage (x.x.x.x)
Critical: 0		
Purpose#1: Web Server Authentication (x.x.x.x.x.x.x)
Purpose#2: Web Client Authentication (x.x.x.x.x.x.x.)
		
		
Extension: Policies (2.5.29.32)
Critical: 0		
Policy ID #1: 2.2.2.2.2.2.2.2.2
Qualifier ID #1: Certification Practice Statement (x.x.x.x.x.x.x)
CPS URI: [url]https://x.xxxxxx.com/xxx[/url]
		
		
Extension: Authority Key Identifier (x.x.x.x)
Critical: 0		
Key Identifier: 01 59 AB 01 59 AB01 59 AB01 59 AB01 59 AB01 59 AB01 59 AB 
		
		
Extension: CRL Distribution Points (x.x.x.x.x)
Critical: 0		
URI: [url]http://xx.xxxxxx.com/xx.xxx[/url]
		
		
Extension: Authority Information Access (1.1.1.1.1.1.1.1.)
Critical: 0		
Method#1: Online Certificate Status Protocol
URI: [url]http://xx.xxxxxxx.com[/url]
Method#2: Certificate Authority Issuers
URI: [url]http://xx.xxxxxx.com/xx.crt[/url]
		
		
Extension: 1.3.3.3.3.3.3.3.3.3.3
Critical: 0		
Data: 04 82 01 69 01 67 00 77 00 A4 B9 09 90 B4 18 58 14 87 BB 13 
      A2 CC 67 70 0A 3C 35 98 04 F9 1B DF B8 E3 77 CD 0E C8 0D DC 
      A2 CC 67 70 0A 3C 35 98 04 F9 1B DF B8 E3 77 CD 0E C8 0D DC 
      A2 CC 67 70 0A 3C 35 98 04 F9 1B DF B8 E3 77 CD 0E C8 0D DC 
      A2 CC 67 70 0A 3C 35 98 04 F9 1B DF B8 E3 77 CD 0E C8 0D DC 
      A2 CC 67 70 0A 3C 35 98 04 F9 1B DF B8 E3 77 CD 0E C8 0D DC 
      A2 CC 67 70 0A 3C 35 98 04 F9 1B DF B8 E3 77 CD 0E C8 0D DC 
      A2 CC 67 70 0A 3C 35 98 04 F9 1B DF B8 E3 77 CD 0E C8 0D DC 
      A2 CC 67 70 0A 3C 35 98 04 F9 1B DF B8 E3 77 CD 0E C8 0D DC 
      A2 CC 67 70 0A 3C 35 98 04 F9 1B DF B8 E3 77 CD 0E C8 0D DC 
      A2 CC 67 70 0A 3C 35 98 04 F9 1B DF B8 E3 77 CD 0E C8 0D DC 
      A2 CC 67 70 0A 3C 35 98 04 F9 1B DF B8 E3 77 CD 0E C8 0D DC 
      A2 CC 67 70 0A 3C 35 98 04 F9 1B DF B8 E3 77 CD 0E C8 0D DC 
      A2 CC 67 70 0A 3C 35 98 04 F9 1B DF B8 E3 77 CD 0E C8 0D DC 
      A2 CC 67 70 0A 3C 35 98 04 F9 1B DF B8 E3 77 CD 0E C8 0D DC 
      A2 CC 67 70 0A 3C 35 98 04 F9 1B DF B8 E3 77 CD 0E C8 0D DC 
      A2 CC 67 70 0A 3C 35 98 04 F9 1B DF B8 E3 77 CD 0E C8 0D DC 
      A2 CC 67 70 0A 3C 35 98 04 F9 1B DF B8 E3 77 CD 0E C8 0D DC 
      5A CD 38 0A E1 	
		
		
		
		
Plugin Publication Date: 2008/05/19
		
Plugin Modification Date: 2012/04/02
		
Plugin Type: remote

Il y a ici 2 descriptions de certificats. Penses tu que tu puisses m'aider si je te donne les infos que j'ai besoin de récupérer?

Merci!


Modération : merci à l'avenir d'utiliser les balises code (explications ici).

Dernière modification par cqfd93 (Le 09/07/2015, à 23:49)

Hors ligne

#17 Le 09/07/2015, à 12:52

pingouinux

Re : script pour debutants

Dans les exemples précédents, on pouvait avoir un couple (clé,valeur) sur deux lignes consécutives, ou sur une seule ligne en les séparant par "deux-points :". C'est cette structure qu'utilise le script python en #12.

Dans ton exemple en #16, le champ valeur peut contenir des :, ou peut être réparti sur plusieurs lignes. Il faudrait connaître la structure du fichier.
D'autre part, je ne vois pas trop comment tu veux présenter le fichier obtenu, sachant que certains champs sont multi-lignes.

Hors ligne

#18 Le 09/07/2015, à 22:31

bud93

Re : script pour debutants

Je suis desole je n'ai pas vu ta reponse.
Je ne recuperer pas les champs multilignes ma que ceux qui sont soulignés avec les valuers qu'il y a derriere. du coup c'est faisable?

10863,"SSL Certificate Information","General","Info","[u]73.73.73.73[/u]","TCP","443","No","","Internet","","","","Synopsis: This plugin displays the SSL certificate.
        
Description: This plugin connects to every SSL-related port and attempts to extract and dump the X.509 certificate.
        
Solution: n/a    
        
Risk Factor: None    
        
Plugin Output: Subject Name: 
        
1.3.6.11.14.1.11.60.2.1.3: US
1.3.1.4.1.311.60.2.1.2: Delaware
2.5.5.1.15: Private Organization
2.5.4.3.5: 2183351    
Country: Country1    
Postal Code: 6541    
State/Province: Province
Locality: Ville    
Street: 5 Jackson street
Organization: Organization1
Organization Unit: Organization Unit1
[u]Common Name[/u]: Common Name.com
        
Issuer Name:     
        
Country: Country2    
Organization: Organization 2
Organization Unit: Organization Unit 2 3
[u]Common Name[/u]: Common Name 2 12 
        
[u]Serial Number[/u]: 54 77 32 43 11 7F 55 55 55 0B 12 2C E4 75 OC 01 
        
Version: 3    
        
[u]Signature Algorithm[/u]: SHA-256 With RSA Encryption
        
[u]Not Valid Before[/u]: Feb 13 00:00:00 2011 GMT
[u]Not Valid After[/u]: Feb 13 23:59:59 2018 GMT
        
Public Key Info:     
        
[u]Algorithm[/u]: RSA Encryption
[u]Key Length[/u]: 2048 bits
Public Key: 22 A4 0F 44 C5 D5 A5 FF F3 1C 2F 94 DB C5 50 1A 40 C7 0B 5B 
            52 64 3B 34 B0 CB 8D AB 72 1F 56 A3 86 DF C8 72 0E 32 25 F4 
            52 64 3B 34 B0 CB 8D AB 72 1F 56 A3 86 DF C8 72 0E 32 25 F4 
            52 64 3B 34 B0 CB 8D AB 72 1F 56 A3 86 DF C8 72 0E 32 25 F4 
            52 64 3B 34 B0 CB 8D AB 72 1F 56 A3 86 DF C8 72 0E 32 25 F4 
            52 64 3B 34 B0 CB 8D AB 72 1F 56 A3 86 DF C8 72 0E 32 25 F4 
            52 64 3B 34 B0 CB 8D AB 72 1F 56 A3 86 DF C8 72 0E 32 25 F4 
            52 64 3B 34 B0 CB 8D AB 72 1F 56 A3 86 DF C8 72 0E 32 25 F4 
            F2 63 30 78 09 13 47 55 CD 19 AE CA C0 14 F4 10 64 37 CE 1E 
            52 64 3B 34 B0 CB 8D AB 72 1F 56 A3 86 DF C8 72 0E 32 25 F4 
            52 64 3B 34 B0 CB 8D AB 72 1F 56 A3 86 DF C8 72 0E 32 25 F4 
            52 64 3B 34 B0 CB 8D AB 72 1F 56 A3 86 DF C8 72 0E 32 25 F4 
            F6 CD 9E 3E C6 0D 4E E2 62 2A 5E E5 88 36 9A 66 63 
Exponent: 01 11 01     
        
[u]Signature Length[/u]: 256 bytes / 2048 bits
Signature: 00 43 C5 23 B9 78 5F C0 AD 78 61 8A 90 47 EE 29 E9 1F 15 5D 
           97 29 91 85 0E 24 39 5C 02 D2 5B 72 50 D7 3D C2 7E B0 4D 23 
           97 29 91 85 0E 24 39 5C 02 D2 5B 72 50 D7 3D C2 7E B0 4D 23 
           97 29 91 85 0E 24 39 5C 02 D2 5B 72 50 D7 3D C2 7E B0 4D 23 
           97 29 91 85 0E 24 39 5C 02 D2 5B 72 50 D7 3D C2 7E B0 4D 23 
           97 29 91 85 0E 24 39 5C 02 D2 5B 72 50 D7 3D C2 7E B0 4D 23 
           97 29 91 85 0E 24 39 5C 02 D2 5B 72 50 D7 3D C2 7E B0 4D 23 
           97 29 91 85 0E 24 39 5C 02 D2 5B 72 50 D7 3D C2 7E B0 4D 23 
           97 29 91 85 0E 24 39 5C 02 D2 5B 72 50 D7 3D C2 7E B0 4D 23 
           97 29 91 85 0E 24 39 5C 02 D2 5B 72 50 D7 3D C2 7E B0 4D 23 
           97 29 91 85 0E 24 39 5C 02 D2 5B 72 50 D7 3D C2 7E B0 4D 23 
           97 29 91 85 0E 24 39 5C 02 D2 5B 72 50 D7 3D C2 7E B0 4D 23 
           93 B6 98 FD A9 31 E7 73 EB F6 98 B4 0B 6A 85 02 E1 
        
Extension: Subject Alternative Name (x.x.x.x)
Critical: 0        
DNS: DN1.com    
        
        
Extension: Basic Constraints (x.x.x.x)
Critical: 0        
        
        
Extension: Key Usage (x.x.x.x)
Critical: 1        
Key Usage: Digital Signature, Key Encipherment
        
        
Extension: Extended Key Usage (x.x.x.x.x)
Critical: 0        
Purpose#1: Web Server Authentication (x.x.x.x.x.x.x)
Purpose#2: Web Client Authentication (x.x.x.x.x.x.x)
        
        
Extension: Policies (x.x.x.x.x)
Critical: 0        
Policy ID #1: x.x.x.x.x.x.x.x.x.x..x.x
Qualifier ID #1: Certification Practice Statement (x.x.x.x.x.xx)
CPS URI: [url]https://x.xxxx.com/xxx[/url]
        
        
Extension: Authority Key Identifier (x.x.x.x.x)
Critical: 0        
Key Identifier: 01 AB AB 01 EE 22 0B 59 A6 64 63 77 CF 20 07 57 D5 91 E7 6A 
        
        
Extension: CRL Distribution Points (x.x.x.x.x)
Critical: 0        
URI: [url]http://xx.xxxxx.com/xx.xxx[/url]
        
        
Extension: Authority Information Access (x.x.x.x.x.xx)
Critical: 0        
Method#1: Online Certificate Status Protocol
URI: [url]http://xx.xxxxx.com/xx.xxx[/url]
Method#2: Certificate Authority Issuers
URI: [url]http://xx.xxxxx.com/xx.xxx[/url]
        
        
Extension: 1.1.1.1.1.1.1.1.1.1.1
Critical: 0        
Data: 04 82 01 69 01 67 00 77 00 A4 B9 09 90 B4 18 58 14 87 BB 13 
      A2 CC 67 70 0A 3C 35 98 04 F9 1B DF B8 E3 77 CD 0E C8 0D DC 
      A2 CC 67 70 0A 3C 35 98 04 F9 1B DF B8 E3 77 CD 0E C8 0D DC 
      A2 CC 67 70 0A 3C 35 98 04 F9 1B DF B8 E3 77 CD 0E C8 0D DC 
      A2 CC 67 70 0A 3C 35 98 04 F9 1B DF B8 E3 77 CD 0E C8 0D DC 
      A2 CC 67 70 0A 3C 35 98 04 F9 1B DF B8 E3 77 CD 0E C8 0D DC 
      A2 CC 67 70 0A 3C 35 98 04 F9 1B DF B8 E3 77 CD 0E C8 0D DC 
      A2 CC 67 70 0A 3C 35 98 04 F9 1B DF B8 E3 77 CD 0E C8 0D DC 
      A2 CC 67 70 0A 3C 35 98 04 F9 1B DF B8 E3 77 CD 0E C8 0D DC 
      A2 CC 67 70 0A 3C 35 98 04 F9 1B DF B8 E3 77 CD 0E C8 0D DC 
      A2 CC 67 70 0A 3C 35 98 04 F9 1B DF B8 E3 77 CD 0E C8 0D DC 
      A2 CC 67 70 0A 3C 35 98 04 F9 1B DF B8 E3 77 CD 0E C8 0D DC 
      A2 CC 67 70 0A 3C 35 98 04 F9 1B DF B8 E3 77 CD 0E C8 0D DC 
      A2 CC 67 70 0A 3C 35 98 04 F9 1B DF B8 E3 77 CD 0E C8 0D DC 
      A2 CC 67 70 0A 3C 35 98 04 F9 1B DF B8 E3 77 CD 0E C8 0D DC 
      A2 CC 67 70 0A 3C 35 98 04 F9 1B DF B8 E3 77 CD 0E C8 0D DC 
      A2 CC 67 70 0A 3C 35 98 04 F9 1B DF B8 E3 77 CD 0E C8 0D DC 
      A2 CC 67 70 0A 3C 35 98 04 F9 1B DF B8 E3 77 CD 0E C8 0D DC 
      5A CD 38 0A E1     
        
        
        
        
[u]Plugin Publication Date[/u]: 2008/05/19
        
[u]Plugin Modification Date[/u]: 2012/04/02
        
Plugin Type: remote

Modération : merci à l'avenir d'utiliser les balises code (explications ici).

Dernière modification par cqfd93 (Le 09/07/2015, à 23:50)

Hors ligne

#19 Le 09/07/2015, à 22:34

bud93

Re : script pour debutants

C'est un fichier qui contient plein d'autres infos. Et je ne doit recuperer cela que lorsque il y a le tag 10863 qui indique que les infos concernent un certif ssl.

Merci

Hors ligne

#20 Le 09/07/2015, à 22:45

pingouinux

Re : script pour debutants

C'est faisable, à condition de fournir une liste des champs à récupérer.
Il y a tout de même un problème avec 2 champs de même nom (Common Name).
Quelle est la clé, quelle est la valeur correspondant à cette partie soulignée (73.73.73.73) ?

Peut-être une partie de réponse dans le message qui vient d'arriver.

Hors ligne

#21 Le 09/07/2015, à 22:55

bud93

Re : script pour debutants

Donc pour repondre a ta question, il faut recurperer :
l'IP du serveur 73.73.73.73
Les 2 common name si c'est possibledu subject name et issuer name
mais pas les url qui sont soulignées

Cela te suffit?

Merci

Hors ligne

#22 Le 09/07/2015, à 22:57

bud93

Re : script pour debutants

y a un endrit ou je pourrais apprendre a manipuler grep, awk etc...?

Hors ligne

#23 Le 09/07/2015, à 23:27

pingouinux

Re : script pour debutants

l'IP du serveur 73.73.73.73

Ça va obliger à un traitement spécial.

Les 2 common name si c'est possibledu subject name et issuer name

Pour cette clé, tu auras deux fois plus de valeurs que pour les autres. Comment alors vas-tu présenter les résultats ?

Hors ligne

#24 Le 09/07/2015, à 23:38

bud93

Re : script pour debutants

On peut récupérer les deux valeurs ? La première sera pour sujet n'amène et l'autre pour l'isuer

Hors ligne

#25 Le 10/07/2015, à 07:13

pingouinux

Re : script pour debutants

y a un endrit ou je pourrais apprendre a manipuler grep, awk etc...?

Tu as par exemple Guide avancé d'écriture des scripts Bash, mais tu trouveras de nombreux tutoriels dans la documentation Ubuntu ou sur internet.
La meilleure façon d'apprendre est d'écrire des scripts, et d'essayer de comprendre ceux des autres.

Pour ce qui est du problème initial, voici un script en python3 (tourne aussi en python2). Le nom du fichier lu est donné en paramètre.

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import sys, re

# Liste des clés
choix=( '10863'
      , 'Common Name'
      , 'Serial Number'
      , 'Signature Algorithm'
      , 'Not Valid Before'
      , 'Not Valid After'
      , 'Algorithm'
      , 'Key Length'
      , 'Signature Length'
      , 'Plugin Publication Date'
      , 'Plugin Modification Date'
      )
regex='|'.join(choix[1:])
rec=re.compile('^(%s)(,[^,]+){3},"([^"]+)|(%s) *:(.*$)'%(choix[0],regex),re.M)

# Lecture du fichier fourni en paramètre
with open(sys.argv[1],'r') as f: fic=f.read()

# cles : Liste des clés
# valeurs : Liste des listes de valeurs
cles=[]; valeurs=[]
while True:
   k=rec.search(fic) # Recherche de l'expression régulière
   if k:
    # Traitement spécial pour la 1ère clé
      if k.group(1)==choix[0]:
         deja=set()
         cle=k.group(1).strip()
         val=k.group(3).strip()
      else:
         cle=k.group(4).strip()
         val=k.group(5).strip()
      fic=fic[k.end(0):]
      try:               # La clé existe déjà dans la liste
         i=cles.index(cle)
       # La clé est-elle en multiple exemplaire pour une série de valeurs
         if cle in deja: valeurs[i][-1]+='+'+val
         else: valeurs[i].append(val)
      except ValueError: # La clé n'existe pas encore
         cles.append(cle); valeurs.append([val])
      deja.add(cle)
   else: break

# Impression des valeurs
print(','.join(cles))
for vals in zip(*valeurs): print(','.join(vals))

Hors ligne