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
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.
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
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
Partager