Mercurial > farol > farolluz
diff farolluz/templates/nasl_core.j2 @ 0:e18b61a73a68
Initial Release
author | Benoît Allard <benoit.allard@greenbone.net> |
---|---|
date | Tue, 23 Sep 2014 15:19:14 +0200 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/farolluz/templates/nasl_core.j2 Tue Sep 23 15:19:14 2014 +0200 @@ -0,0 +1,59 @@ +{# +# Description: +# Template macros for generation of NASL documents +# +# Authors: +# BenoƮt Allard <benoit.allard@greenbone.net> +# +# Copyright: +# Copyright (C) 2014 Greenbone Networks GmbH +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +-#} + +{% macro isrpmvuln(plist, ptree) %} +{%- set done = [] %} +{% for prod in plist %} + {%- set os, package = ptree.decomposeProduct(prod._productid) %} + {%- if os is not none %} + {%- set rls = os._name | release_map %} + {%- set rpm = package._name | for_rpmvuln %} + {%- if rls != 'UNKNOWN' %} + {%- if (rls, rpm) not in done %} +# {{ package._name }} on {{ os._name }} +if ((res = isrpmvuln(pkg:"{{ package._name | package_name }}", rpm:"{{ rpm }}", rls:"{{ rls }}")) != NULL) + { + security_message(data:res); + exit(0); + } + {{- done.append((rls, rpm)) or '' }} + {%- endif %} + {%- else %} +# Unknown release: {{ os._name }} + {%- endif %} + {%- endif %} +{%- endfor %} +{% endmacro %} + +{% macro notes(cvrf, name) %} +{%- for note in cvrf._notes %} + {%- if note._type == name or note._title == name %}{{ note._note.replace('"', "'") }}{% endif %} +{%- endfor %} +{%- for vulnerability in cvrf._vulnerabilities %} + {%- for note in vulnerability._notes %} + {%- if note._type == name or note._title == name %}{{ note._note.replace('"', "'") }}{% endif %} + {%- endfor %} +{%- endfor %} +{% endmacro %}