Question [Résolu] Question Powershell Windump

Plus d'informations
il y a 7 ans 3 mois #28108 par dimshell
Bonjour,

Je suis nouveau ;) et débutant le Superpowershell
Je réalises un windump pour analyser les flux de mon réseau.

voici la commande. À adapter bien sûr.
C:\>WinDump.exe -i 2 -q -n -t tcp >Documents\windumptest.txt

le contenu de mon txt :
IP x.x.x.x.443 > x.x.x.x.6782: tcp 1209
IP x.x.x.x.6782 > x.x.x.x.443: tcp 0
IP x.x.x.x.443 > x.x.x.x.6782: tcp 1134


Voici mon script powershell.

[code:1]#variable de contenant mon fichier avec IP
$fichier=\"C:\Users\\Documents\windumptest.txt\"

$newcontenu = \"C:\Users\\Documents\windumptest2.txt\"



$Header = \"c1\", \"ipsrc\", \"c3\", \"ipdest\", \"c5\", \"c6\"

$dump = Import-Csv $fichier -Header $Header -Delimiter \" \"



$dump | foreach {
$_.ipdest = $_.ipdest -replace \":\",\" \"
}


$dump | foreach {
\"$($_.ipsrc) ; $($_.ipdest)\"
} | Set-Content $newcontenu




# affichage en tant objet
#$dump | select ipsrc, @{n=\"s\";e={\";\"}}, ipdest


#prendre les objets de mon txt et enlever tout les doublons et écrire le résultat dans la variable $newcontenu
#Get-Content $fichier| Sort-Object | Get-Unique > $newcontenu

#variable qui va traverser mon fichier via la variable $newcontenu et replacer les caractéres voulus
#$contenu= get-content $newcontenu | foreach {$_ -replace \"IP\",\" \" -replace \":\",\" \" -replace \"tcp\", \" \" -replace \">\",\";\"}

#écrit dans le fichier le résultat de la variable $contenu
#Set-Content $newcontenu $contenu

#$name=Get-ChildItem -Path C:\Users\\Documents -Filter 'windumptest2.txt' | ForEach-Object {
# (Get-Content $_.FullName).Replace('.',';') | Out-File $_.FullName}


$a=Get-Content -Path C:\Users\\Documents\windumptest2.txt | Sort-Object| Get-Unique

foreach($point in $a){
Remove(4)
Insert(4,\";\"«»)
}
[/code:1]

Résultat :

x.x.x.x.9989 ; x.x.x.x.443
x.x.x.x.9990 ; x.x.x.x.443

Je n'arrive pas à ajouter un ; avant le port de l'ip source et destination.


Cordialement,

Message édité par: dimshell, à: 6/02/19 11:26<br><br>Message édité par: Arnaud, à: 12/02/19 10:19

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 7 ans 3 mois #28112 par Hicham Madini
slt,

essaie cette syntaxe.

[code:1]foreach($point in $a){
$point.Remove(11).Insert(8,\&quot;;\&quot;«»)
}[/code:1]<br><br>Message édité par: hichammadd, à: 6/02/19 13:36

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 7 ans 3 mois #28113 par dimshell
Réponse de dimshell sur le sujet Re:Question Powershell Windump
Merci pour ta réponse.

Cela fonctionne mais supprime des caractères.

Résultat :

108.177.15.154.4;43 ; 10.10.21.39.986
185.52.127.147.4;43 ; 10.10.21.39.307
185.63.144.1.443; ; 10.10.21.39.32185

c'est un peu compliqué après.

Je vais devoir faire 50 conditions pour faire respecter chaque ligne ?

J'étais entrain de créer cela.

$a est un fichier
[code:1]
foreach ($UneLigne in $a){
if ($UneLigne -match \&quot;((\b[0-9]{1,3}\.){3}([0-9]){1,3}.[0-9]{1,5} ; ([0-9]{1,3}\.){3}([0-9]){1,3}.[0-9]{1,5})\b\&quot;«»){
([regex]\&quot;((\b[0-9]{1,3}\.){3}([0-9]){1,3}.[0-9]{1,5} ; ([0-9]{1,3}\.){3}([0-9]){1,3}.[0-9]{1,5})\b\&quot;«»).Replace($UneLigne,\&quot;;\&quot;,0)

Write-Host $UneLigne

}
}[/code:1]

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 7 ans 3 mois #28114 par Hicham Madini
slt,
à ta place je notterais:
J'ai le format IP x.x.x.x.443 &gt; x.x.x.x.6782: tcp 1209
Je veux le format .............

ca serait plus facile pour t'aider!<br><br>Message édité par: hichammadd, à: 6/02/19 14:23

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 7 ans 3 mois #28115 par Philippe
Réponse de Philippe sur le sujet Re:Question Powershell Windump
salut dimshell

ce que cherche à faire :

[code:1]#variable de contenant mon fichier avec IP
$fichier = \&quot;C:\Users\\Documents\windumptest.txt\&quot;

$newcontenu = \&quot;C:\Users\\Documents\windumptest2.txt\&quot;

$Header = \&quot;c1\&quot;, \&quot;ipsrc\&quot;, \&quot;portsrc\&quot;, \&quot;ipdest\&quot;, \&quot;portdest\&quot;, \&quot;c6\&quot;

$dump = Import-Csv $fichier -Header $Header -Delimiter \&quot; \&quot;



$dump | foreach {
$_.ipdest = $_.ipdest -replace \&quot;:\&quot;,\&quot; \&quot;
}

$dump | foreach {
$_.portsrc = $_.ipsrc -replace [regex]\&quot;([0-9]{1,3}\.){3}[0-9]{1,3}(\.)\&quot;, \&quot;\&quot;
$_.ipsrc = ($_.ipsrc -split [regex]\&quot;([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})\&quot;«»)[1]
$_.portdest = $_.ipdest -replace [regex]\&quot;([0-9]{1,3}\.){3}[0-9]{1,3}(\.)\&quot;, \&quot;\&quot;
$_.ipdest = ($_.ipdest -split [regex]\&quot;([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})\&quot;«»)[1]
}

$dump | foreach {
\&quot;$($_.ipsrc):$($_.portsrc) ; $($_.ipdest):$($_.portdest)\&quot;
} | Set-Content $newcontenu


$dump | select ipsrc, portsrc, ipdest, portdest
[/code:1]

tu veux aussi enlever les doublon si j'ai bien compris sur developpez
a partir de l'objet créé tu rajoute \&quot;-unique\&quot; au select :
[code:1]$dump | select ipsrc, portsrc, ipdest, portdest -Unique[/code:1]

et pour export dans le fichier :
[code:1]$dump | select ipsrc, portsrc, ipdest, portdest -Unique | foreach {
\&quot;$($_.ipsrc):$($_.portsrc) ; $($_.ipdest):$($_.portdest)\&quot;
} | Set-Content $newcontenu[/code:1]

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 7 ans 3 mois #28117 par dimshell
Réponse de dimshell sur le sujet Re:Question Powershell Windump
Merci pour ta réponse.

Je mets en place tout ça et je te tiens au courant.

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.044 secondes
Propulsé par Kunena