Advertisement
Guest User

openvas-commander.sh

a guest
Oct 2nd, 2017
203
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 6.48 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. function install_dependencies()
  4. {
  5.     apt-get install -y build-essential devscripts dpatch curl libassuan-dev libglib2.0-dev libgpgme11-dev libpcre3-dev libpth-dev libwrap0-dev libgmp-dev libgmp3-dev libgpgme11-dev libpcre3-dev libpth-dev quilt cmake pkg-config libssh-dev libglib2.0-dev libpcap-dev libgpgme11-dev uuid-dev bison libksba-dev doxygen sqlfairy xmltoman sqlite3 libsqlite3-dev wamerican redis-server libhiredis-dev libsnmp-dev libmicrohttpd-dev libxml2-dev libxslt1-dev xsltproc libssh2-1-dev libldap2-dev autoconf nmap libgnutls28-dev gnutls-bin libpopt-dev heimdal-dev heimdal-multidev libpopt-dev mingw32 texlive-full rpm alien nsis rsync python2.7 python-setuptools checkinstall
  6. }
  7.  
  8. function configure_redis()
  9. {
  10.     if [ ! -f /etc/redis/redis.orig ]; then
  11.         cp /etc/redis/redis.conf /etc/redis/redis.orig
  12.         echo "unixsocket /tmp/redis.sock" >> /etc/redis/redis.conf
  13.         service redis-server restart        
  14.     fi
  15. }
  16.  
  17. function get_openvas_source_table()
  18. {
  19.     curl -s http://openvas.org/install-source.html | sed -e ':a;N;$!ba;s/\n/ /g' -e 's/.*<table class="dl_table"//' -e 's/<\/table>.*//' -e 's/<tr>/\n<tr>/g' | grep "<tr>" | grep -v "bgcolor"  | sed  -e 's/[ \t]*<\/t[dh]>[ \t]*/|/g' -e 's/"[ \t]*>[^<]*<\/a>//g' -e 's/<a href="//g' -e 's/[ \t]*<[/]*t[rdh]>[ \t]*//g' -e 's/|$//' | grep -v "Supports OMP "
  20. }
  21.  
  22. function get_available_source_sets()
  23. {
  24.     get_openvas_source_table | head -n 1 | sed 's/|/\n/g'
  25. }
  26.  
  27. function check_releas_name()
  28. {
  29.     local release_name="$1"
  30.     is_available=`get_available_source_sets | grep "^$release_name$"`
  31.     if [ "$is_available" == "" ]
  32.     then
  33.         echo "wrong release name"
  34.     else
  35.         echo "ok"
  36.     fi
  37. }
  38.  
  39. function get_source_set()
  40. {
  41.     local release_name="$1"
  42.     col=`get_available_source_sets | awk -v name="$release_name" '{ if ( $0 == name ){print NR}}'`
  43.     echo "$openvas_source_table" | awk -F"|" -v col="$col" '{ if ( NR != 1 && $1 != "" && $col != "" ){print $col}}'
  44. }
  45.  
  46. function download_source_set()
  47. {
  48.     mkdir openvas 2>/dev/null
  49.     cd openvas/
  50.     get_source_set "$release_name" | xargs -i wget '{}'
  51.     cd ../
  52. }
  53.  
  54. function create_folders()
  55. {
  56.     cd openvas/
  57.     find | grep ".tar.gz$" | xargs -i tar zxvfp '{}'
  58.     cd ../
  59. }
  60.  
  61. function install_component()
  62. {
  63.     local component="$1"
  64.     cd openvas
  65.     cd $component-*
  66.     mkdir build
  67.     cd build
  68.     cmake ..
  69.     make
  70.     make doc-full
  71.     version=`pwd | sed 's/\//\n/g' | grep "$component" | sed "s/$component-//"`
  72.     checkinstall --pkgname "$component" --pkgversion "$version" --maintainer "openvas_commander" -y    
  73.     cd ../../../
  74. }
  75.  
  76.  
  77. function mkcerts()
  78. {
  79.    
  80.     openvas-mkcert 2>/dev/null
  81.     openvas-mkcert-client -n -i 2>/dev/null
  82.     openvas-manage-certs -a 2>/dev/null
  83. }
  84.  
  85. #################################
  86.  
  87. release_name="$1"
  88. openvas_source_table=`get_openvas_source_table`
  89.  
  90. if [ "$1" == "--install-dependencies" ]
  91. then
  92.     install_dependencies
  93. fi
  94.  
  95. if [ "$1" == "--show-releases" ]
  96. then
  97.     get_available_source_sets
  98. fi
  99.  
  100. if [ "$1" == "--show-sources" ]
  101. then
  102.     release_name="$2"
  103.     check=`check_releas_name "$release_name"`
  104.     if [ "$check" == "ok" ]
  105.     then
  106.         get_source_set "$release_name"
  107.     else
  108.         echo "$check"
  109.     fi
  110. fi
  111.  
  112. if [ "$1" == "--download-sources" ]
  113. then
  114.     release_name="$2"
  115.     check=`check_releas_name "$release_name"`
  116.     if [ "$check" == "ok" ]
  117.     then
  118.         download_source_set "$release_name"
  119.     else
  120.         echo "$check"
  121.     fi
  122. fi
  123.  
  124. if [ "$1" == "--create-folders" ]
  125. then
  126.     create_folders
  127. fi
  128.  
  129. if [ "$1" == "--uninstall-all" ]
  130. then
  131.     dpkg -r "openvas-smb"
  132.     dpkg -r "openvas-libraries"
  133.     dpkg -r "openvas-scanner"
  134.     dpkg -r "openvas-manager"
  135.     dpkg -r "openvas-cli"
  136.     dpkg -r "greenbone-security-assistant"
  137. fi
  138.  
  139. if [ "$1" == "--install-all" ]
  140. then
  141.     install_component "openvas-smb"
  142.     install_component "openvas-libraries"
  143.     install_component "openvas-scanner"
  144.     install_component "openvas-manager"
  145.     install_component "openvas-cli"
  146.     install_component "greenbone-security-assistant"
  147. fi
  148.  
  149. if [ "$1" == "--install-component" ]
  150. then
  151.     install_component "$2"
  152. fi
  153.  
  154. if [ "$1" == "--uninstall-component" ]
  155. then
  156.     dpkg -r "$2"
  157. fi
  158.  
  159. if [ "$1" == "--configure-all" ]
  160. then
  161.     mkdir /usr/local/var/lib/openvas/openvasmd/
  162.     mkdir /usr/local/var/lib/openvas/openvasmd/gnupg
  163.     configure_redis
  164.     mkcerts
  165.     ldconfig
  166.     openvasmd --create-user=admin --role=Admin && openvasmd --user=admin --new-password=1
  167. fi
  168.  
  169. if [ "$1" == "--delete-admin" ]
  170. then
  171.     openvasmd --delete-user=admin
  172. fi
  173.  
  174. if [ "$1" == "--update-content" ]
  175. then
  176.     if [ -f /usr/local/sbin/openvas-nvt-sync ]
  177.     then
  178.         /usr/local/sbin/openvas-nvt-sync
  179.         /usr/local/sbin/openvas-scapdata-sync
  180.         /usr/local/sbin/openvas-certdata-sync
  181.     fi
  182.     if [ -f /usr/local/sbin/greenbone-certdata-sync ]
  183.     then
  184.         /usr/local/sbin/greenbone-nvt-sync
  185.         /usr/local/sbin/greenbone-scapdata-sync
  186.         /usr/local/sbin/greenbone-certdata-sync
  187.     fi
  188. fi
  189.  
  190. if [ "$1" == "--rebuild-content" ]
  191. then
  192.     /usr/local/sbin/openvasmd --rebuild --progress
  193. fi
  194.  
  195. if [ "$1" == "--start-all" ]
  196. then
  197.  
  198.     mkdir /usr/local/var/run 2>/dev/null;
  199.     mkdir /usr/local/var/run/openvasmd 2>/dev/null;
  200.     touch /usr/local/var/run/openvasmd/openvasmd.pid;
  201.  
  202.     /usr/local/sbin/openvasmd
  203.     /usr/local/sbin/openvassd
  204.     /usr/local/sbin/gsad
  205. fi
  206.  
  207. if [ "$1" == "--kill-all" ]
  208. then
  209.     ps aux | egrep "(openvas.d|gsad)" | awk '{print $2}' | xargs -i kill -9 '{}'
  210. fi
  211.  
  212. if [ "$1" == "--check-status" ]
  213. then
  214.     if [ ! -f openvas-check-setup ];
  215.     then
  216.         wget https://svn.wald.intevation.org/svn/openvas/trunk/tools/openvas-check-setup --no-check-certificate
  217.         chmod 0755 openvas-check-setup
  218.     fi
  219.    
  220.     if [ "$2" == "" ]
  221.     then
  222.         version="v9"
  223.     else
  224.         version="$2"
  225.     fi
  226.    
  227.     ./openvas-check-setup --$version --server
  228. fi
  229.  
  230. if [ "$1" == "--check-proc" ]
  231. then
  232.     ps aux | egrep "(openvas.d|gsad)"
  233. fi
  234.  
  235. #### TODO OSPD
  236.  
  237. #cd ospd-1*
  238. #python setup.py install --prefix=/usr/local
  239. #cd ../
  240.  
  241.  
  242. #cd ospd-ancor-*
  243. #python setup.py install --prefix=/usr/local
  244. #cd ../
  245.  
  246. #cd ospd-debsecan-*
  247. #python setup.py install --prefix=/usr/local
  248. #cd ../
  249.  
  250. #cd ospd-ovaldi-*
  251. #python setup.py install --prefix=/usr/local
  252. #cd ../
  253.  
  254. #cd ospd-paloalto-*
  255. #python setup.py install --prefix=/usr/local
  256. #cd ../
  257.  
  258. #cd ospd-w3af-*
  259. #python setup.py install --prefix=/usr/local
  260. #cd ../
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement