1

OpenVAS OMP を完全に自動化しようとしているスクリプトを書いています。スクリプトは、スキャンの種類、IP、名前、コメント、出力の種類を尋ねることができるはずです。すべてのメニューを通過し、次のように表示します。

Failed to read response.
Starting Scan
Failed to start task.
Failed to read response.
get-report requires one argument.

エコー開始スキャンがありますが、残りの部分は、どのように発生しているのか、またその理由がわかりません。スクリプトの外で各コマンドを実行すると、それらは機能するので、変数の読み取り方法に問題があると思います。コードは次のとおりです。どんな助けも大歓迎です。

#!/bin/sh

mkdir openvastmp 
cd openvastmp

echo "--------------------------------"
echo "----DamOS OpenVAS Automation----"
echo "------Select Type of Scan-------"
echo ""
echo "[1] Full and Fast"
echo "[2] Full and Fast Ultimate"
echo "[3] Full and very Deep"
echo "[4] Full and very Deep Ultimate"
echo "[5] Exit"
echo ""
echo "--------------------------------"

read -p "Please select an option: " m

if [ $m -eq 5 ]; then
exit 0;

elif [ $m -eq 1 ]; then
type="daba56c8-73ec-11df-a475-002264764cea"

elif [ $m -eq 2 ]; then
type="698f691e-7489-11df-9d8c-002264764cea"

elif [ $m -eq 3 ]; then
type="708f25c4-7489-11df-8094-002264764cea"

elif [ $m -eq 4 ]; then 
type="74db13d6-7489-11df-91b9-002264764cea"

fi
clear

echo "" #remove this line after
echo "--------------------------------" 
echo "----DamOS OpenVAS Automation----" 
echo "-----------Target Info----------"
read -p "Enter the IP of the target machine: " a
read -p "Enter the name you want the target stored as: " b
read -p "Enter what you would like to name the scan: " d
read -p "Enter a comment for the scan (not required): " e

omp -u user -w password --xml='
<create_target>
<name>'$b'</name>
<hosts>'$a'</hosts>
</create_target>'

echo "--------------------------------"
echo "----DamOS OpenVAS Automation----" 
echo "-------Report Output Type-------" 
echo "[1] HTML"
echo "[2] PDF"
echo "[3] Text"
echo "[4] XML"
echo "[5] Quit"
read -p "Select your desired report output format: " c

if [ $c -eq 5 ]; then
exit 0;
elif [ $c -eq 1 ]; then
report="6c248850-1f62-11e1-b082-406186ea4fc5"
ext=html
elif [ $c -eq 2 ]; then
report="c402cc3e-b531-11e1-9163-406186ea4fc5"
ext=pdf
elif [ $c -eq 3 ]; then
report="a3810a62-1f62-11e1-9219-406186ea4fc5"
ext=txt
elif [ $c -eq 4 ]; then 
report="a994b278-1f62-11e1-96ac-406186ea4fc5"
ext=xml
fi
clear

omp -u user -w password -T | grep $b > target
targetid=$(head -c 36 target)

omp -u user -w password -iX '
<create_task>
<name>'$d'</name>
<comment>'$e'</comment>
<config id='$type'/>
<target id='$targetid'/>
</create_task>'

#omp -u user -w password -C -n $d -m $e -c $type -t $targetid

omp -u user -w password -G | grep $b > scan
scanid=$(head -c 36 scan)

echo "Starting Scan"
#omp -u user -w password --xml='<start_task task_id='$scanid'/>'
omp -u user -w password -S $scanid

omp -u user -w password -G | grep Done > isdone

while [ ! -s isdone ];
do
    rm isdone
    sleep 5
    omp -u user -w password -G | grep Done > isdone
done

omp -u user -w password -iX '<get_tasks task_id='$scanid' details="1"/>' | grep     'report id' > reportid

reportid=$(awk '{print substr($0,22,64)}' reportid)

omp -u user -w password --get-report $reportid --format $report > $d.$ext

omp -u user -w password -D $scanid

omp -u user -w password -X '<delete_target target_id="'$targetid'"/>'

cd .. && rm -rf openvastmp
4

1 に答える 1

1

XML コードを使用する場合、 を変数としてでは$aなく$b 、文字列 として$a理解します$b。私のコードでも同じ問題がありました。XML コードの前に変数を渡すと、問題は発生しません。

于 2014-08-11T22:57:08.053 に答える