Bonjour,

Un petite présentation avant de vous soumettre mon problème.
Je m'appelle Vincent, j'ai 42 ans et je tente de me reconvertir professionnellement. Je suis donc en stage dans une petite entreprise très sympa ou je suis chargé de déployer une machine sous OpenVAS ( un scanner de vulnérabilités ), et de migrer de Nagios 3 vers Nagios 4.

Voici ce qui m'amène : J'ai du écrire un script shell que devra être placer dans la crontab. Ce script, mon premier, fonctionne parfaitement avec ma machine sous Kali linux au travail, il fonctionne parfaitement à la maison, toujours sous Kali et sur la machine virtuelle de la maison ( debian 7.9, virtualbox).
Dans l'entreprise, il devra être deployer dans une machine virtuelle sur un serveur Xen ( debian 7.9). Et là, patatra, ca ne fonctionne pas. le script plante dès qu'il faut recuperer la variable pour la target.

Nom du script: OpenVAS

Compatible avec: Bash

Descriptif: Permet d'automatiser le démarrage des scans.

Pré-requis: Openvas

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
 
#! /bin/bash
 
 
cd /root
mkdir .openvastmp
mkdir OpenVASreports
cd .openvastmp
 
 
# variables à renseigner
u=username #nom de l'utilisateur
pw=password #pw de l'utilisateur
cible=Openvas #nom de la cible
hosts=ip.ci.bl.e #IP de la cible
 
# création et récupération de la target
 
omp -u $u -w $pw --xml='
 
  <create_target>           <!--création de la cible-->
    <name>'$cible'</name>   <!--nom de la cible -->
    <hosts>'$hosts'</hosts>   <!--ip de la cible -->
  </create_target>'
 
target=$(omp -u $u -w $pw --get-targets | grep $cible)
targetid=$(echo ${target:0:36})
echo $target
echo $targetid
 
#pour la tâche suivante, il nous faut l'uuid d'une config
# dans un shell : omp -u -w --get--configs
 
# créer une variable name à utiliser dans la tâche
 
name=$cible
echo $name
 
#création de la tâche
omp --verbose -u $u -w $pw --create-task --name=$name -c daba56c8-73ec-11df-a475-002264764cea --target=$targetid
 
#récupération de l'uuid de la tâche
taskid=$(omp -u $u -w $pw --get-tasks= |grep New)
taskid=$(echo ${taskid:0:36})
echo $taskid
 
#démarrage de la tâche
 
omp -u $u -w $pw --xml=' 
 
  <start_task task_id="'$taskid'"/>'
 
#on vérifie l'état de la tâche
 
done=NotDone
echo $done
while test "$done" != "Done"
do
done=$(omp -u $u -w $pw -G $taskid | grep Done) 
done=$(echo ${done:38:4})
if test "$done" != "Done"
then echo " Scan en cours " && omp -u $u -w $pw -G | grep Running
else
echo " Scan terminé "
fi
sleep 30
done 
 
 
#récuperation du rapport
omp -u $u -w $pw -G $taskid > task
awk NR==2 task > report
reportid=$(awk '{print substr($0,3,36)}' report)
rm task
 
 #récupérer le rapport au format XML
 #dans un shell omp -u -w -F
 
cd /home/$u/OpenVASreports
omp -u $u -w $pw --xml='
 
  <get_reports report_id="'$reportid'"
               format_id="a994b278-1f62-11e1-96ac-406186ea4fc5"/>' > report_$reportid.xml
 
 
# mail quand c'est fini
echo " $cible-$reportid est disponible. Kali a tout fini" |mail -s " Vous avez un message de Kali " -a " From: Kali" name@name.com
 
unset VAR
Voilà. le script est chmoder +x dans toutes les machines. Je l’exécute en faisant ./OpenvasScript. Il fonctionne dans 3 machines sur 4 et évidement, pas sur celle qui sera utilisée.

Je suis bien conscient des maladresses du script. Je ne sais pas programmer. Je n'ai que quelque notions de C et il y a trois semaines, je ne saivais pas réaliser un script shell. Je travaille à l'améliorer notamment et utilisant cut.
Je pense que le script n'utilise pas le bash avec la machine à déployer ce qui fait planter le script, mais comment en être sur ?
Peut être que cela vient d'autre chose.

Je vous remercie pour vos pistes, je les vérifierai demain, au travail.

Vincent