Minor enhancement to fingerprint the web server operating system and

the web application technology by parsing also HTTP response Server
header.
Refactor libraries and plugins that parses XML to fingerprint and show
on standard output the information.
Updated changelog.
This commit is contained in:
Bernardo Damele
2008-11-18 17:42:46 +00:00
parent 7d0724843f
commit 727664aea7
15 changed files with 588 additions and 207 deletions

View File

@@ -26,12 +26,27 @@
<info type="Windows" distrib="2000"/>
</regexp>
<regexp value="Microsoft.*4\.0">
<info type="Windows" distrib="NT 4.0"/>
</regexp>
<regexp value="Microsoft.*3\.0">
<info type="Windows" distrib="NT 4.0"/>
</regexp>
<regexp value="Microsoft.*2\.0">
<info type="Windows" distrib="NT 4.0"/>
</regexp>
<!-- Linux -->
<regexp value="Linux">
<info type="Linux"/>
</regexp>
<regexp value="CentOS">
<info type="Linux" distrib="CentOS"/>
</regexp>
<regexp value="Cobalt">
<info type="Linux" distrib="Cobalt"/>
</regexp>
@@ -61,7 +76,7 @@
</regexp>
<regexp value="Red[\-\_\ ]*Hat">
<info type="Linux" distrib="RedHat"/>
<info type="Linux" distrib="Red Hat"/>
</regexp>
<regexp value="SuSE">
@@ -72,7 +87,6 @@
<info type="Linux" distrib="Ubuntu"/>
</regexp>
<!-- Unices -->
<regexp value="FreeBSD">
<info type="FreeBSD"/>

View File

@@ -1,46 +1,42 @@
<?xml version="1.0" encoding="UTF-8"?>
<root>
<!-- Generic -->
<regexp value="^([\d\.\-]+)[\-\_\ ].*">
<info version="1"/>
<info dbms_version="1"/>
</regexp>
<!-- Windows -->
<regexp value="^([\d\.\-]+)[\-\_\ ].*nt$">
<info version="1" type="Windows"/>
<info dbms_version="1" type="Windows"/>
</regexp>
<!-- Debian -->
<regexp value="^([\d\.]+)[\-\_]Debian[\-\_][\d\.]+potato">
<info version="1" type="Linux" distrib="Debian" release="2.1" codename="Potato"/>
<info dbms_version="1" type="Linux" distrib="Debian" release="2.1" codename="Potato"/>
</regexp>
<regexp value="^([\d\.]+)[\-\_]Debian[\-\_][\d\.]+woody">
<info version="1" type="Linux" distrib="Debian" release="3.0" codename="Woody"/>
<info dbms_version="1" type="Linux" distrib="Debian" release="3.0" codename="Woody"/>
</regexp>
<regexp value="^([\d\.]+)[\-\_]Debian[\-\_][\d\.]+sarge">
<info version="1" type="Linux" distrib="Debian" release="3.1" codename="Sarge"/>
<info dbms_version="1" type="Linux" distrib="Debian" release="3.1" codename="Sarge"/>
</regexp>
<regexp value="^([\d\.]+)[\-\_]Debian[\-\_][\d\.]+etch">
<info version="1" type="Linux" distrib="Debian" release="4.0" codename="Etch"/>
<info dbms_version="1" type="Linux" distrib="Debian" release="4.0" codename="Etch"/>
</regexp>
<regexp value="^([\d\.]+)[\-\_]Debian[\-\_][\d\.]+(sid|unstable)">
<info version="1" type="Linux" distrib="Debian" codename="Unstable"/>
<info dbms_version="1" type="Linux" distrib="Debian" codename="Unstable"/>
</regexp>
<regexp value="^([\d\.]+)[\-\_]Debian[\-\_][\d\.]+testing">
<info version="1" type="Linux" distrib="Debian" codename="Testing"/>
<info dbms_version="1" type="Linux" distrib="Debian" codename="Testing"/>
</regexp>
<!-- Ubuntu -->
<regexp value="(5\.0\.67)-0ubuntu6">
<info version="1" type="Linux" distrib="Ubuntu" release="8.10" codename="Intrepid"/>
<info dbms_version="1" type="Linux" distrib="Ubuntu" release="8.10" codename="Intrepid"/>
</regexp>
</root>

View File

@@ -1,8 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<root>
<!-- Generic -->
<regexp value="^Oracle\s+.*Release\s+([\d\.]+)\s+">
<info version="1"/>
<info dbms_version="1"/>
</regexp>
</root>

View File

@@ -1,14 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<root>
<!-- Generic -->
<regexp value="PostgreSQL\s+([\w\.]+)">
<info version="1"/>
<info dbms_version="1"/>
</regexp>
<!-- Ubuntu -->
<regexp value="PostgreSQL\s+(8\.2\.7)\s+on\s+.*?\s+\(Ubuntu 4\.2\.3-2ubuntu4\)">
<info version="1" type="Linux" distrib="Ubuntu" release="8.10" codename="Intrepid"/>
<info dbms_version="1" type="Linux" distrib="Ubuntu" release="8.10" codename="Intrepid"/>
</regexp>
</root>

369
xml/banner/server.xml Normal file
View File

@@ -0,0 +1,369 @@
<?xml version="1.0" encoding="UTF-8"?>
<root>
<!-- Apache -->
<regexp value="Apache$">
<info technology="Apache"/>
</regexp>
<regexp value="Apache/([\w\.]+)">
<info technology="Apache" tech_version="1"/>
</regexp>
<regexp value="Apache[\-\_\ ]AdvancedExtranetServer/([\w\.]+)">
<info technology="Apache" tech_version="1"/>
</regexp>
<!-- Apache: CentOS -->
<!-- TODO: add Centos 4.6, 4.7, 5.1 and 5.2 -->
<regexp value="Apache/2.0.46 \(CentOS\)">
<info type="Linux" distrib="CentOS" elease="3.7"/>
</regexp>
<regexp value="Apache/2.0.52 \(CentOS\)">
<info type="Linux" distrib="CentOS" release="4.3 or 4.4"/>
</regexp>
<regexp value="Apache/2.0.46 \(CentOS\)">
<info type="Linux" distrib="CentOS" release="5"/>
</regexp>
<!-- Apache: Fedora -->
<!-- TODO: add Fedora 8, 9 and 10 -->
<regexp value="Apache/2.0.47 \(Fedora\)">
<info type="Linux" distrib="Fedora" release="1"/>
</regexp>
<regexp value="Apache/2.0.50 \(Fedora\)">
<info type="Linux" distrib="Fedora" release="1" updated="True"/>
</regexp>
<regexp value="Apache/2.0.49 \(Fedora\)">
<info type="Linux" distrib="Fedora" release="2"/>
</regexp>
<regexp value="Apache/2.0.51 \(Fedora\)">
<info type="Linux" distrib="Fedora" release="2" updated="True"/>
</regexp>
<regexp value="Apache/2.0.52 \(Fedora\)">
<info type="Linux" distrib="Fedora" release="3"/>
</regexp>
<regexp value="Apache/2.0.53 \(Fedora\)">
<info type="Linux" distrib="Fedora" release="3" updated="True"/>
</regexp>
<regexp value="Apache/2.0.54 \(Fedora\)">
<info type="Linux" distrib="Fedora" release="4"/>
</regexp>
<regexp value="Apache/2.2.0 \(Fedora\)">
<info type="Linux" distrib="Fedora" release="5"/>
</regexp>
<regexp value="Apache/2.2.2 \(Fedora\)">
<info type="Linux" distrib="Fedora" release="5" updated="True"/>
</regexp>
<regexp value="Apache/2.2.3 \(Fedora\)">
<info type="Linux" distrib="Fedora" release="6"/>
</regexp>
<regexp value="Apache/2.2.4 \(Fedora\)">
<info type="Linux" distrib="Fedora" release="7"/>
</regexp>
<regexp value="Apache/2.2.6 \(Fedora\)">
<info type="Linux" distrib="Fedora" release="6 or 7" updated="True"/>
</regexp>
<!-- Apache: Red Hat -->
<!-- TODO: add Red Hat 5, 5.1, 5.2 and 5.3 -->
<regexp value="Apache/1.2.6 Red Hat">
<info type="Linux" distrib="Red Hat" release="5.1"/>
</regexp>
<regexp value="Apache/1.3.3 \(Unix\)\s+\(Red Hat/Linux\)">
<info type="Linux" distrib="Red Hat" release="5.2"/>
</regexp>
<regexp value="Apache/1.3.6 \(Unix\)\s+\(Red Hat/Linux\)">
<info type="Linux" distrib="Red Hat" release="6.0"/>
</regexp>
<regexp value="Apache/1.3.9 \(Unix\) \(Red Hat/Linux\)">
<info type="Linux" distrib="Red Hat" release="6.1"/>
</regexp>
<regexp value="Apache/1.3.12 \(Unix\) \(Red Hat/Linux\)">
<info type="Linux" distrib="Red Hat" release="7.0"/>
</regexp>
<regexp value="Apache/1.3.19 \(Unix\) \(Red-Hat/Linux\)">
<info type="Linux" distrib="Red Hat" release="7.1"/>
</regexp>
<regexp value="Apache/1.3.20 \(Unix\) \(Red-Hat/Linux\)">
<info type="Linux" distrib="Red Hat" release="7.2"/>
</regexp>
<regexp value="Apache/1.3.23 \(Unix\) \(Red-Hat/Linux\)">
<info type="Linux" distrib="Red Hat" release="7.3"/>
</regexp>
<regexp value="Apache/1.3.27 \(Unix\) \(Red-Hat/Linux\)">
<info type="Linux" distrib="Red Hat" release="7.1 or 7.2 or 7.3" updated="True"/>
</regexp>
<regexp value="Apache/2.0.40 \(Red Hat Linux\)">
<info type="Linux" distrib="Red Hat" release="8.0 or 9"/>
</regexp>
<regexp value="Apache/1.3.22 \(Unix\) \(Red-Hat/Linux\)">
<info type="Linux" distrib="Red Hat" release="Enterprise 2.1"/>
</regexp>
<regexp value="Apache/2.0.46 \(Red Hat\)">
<info type="Linux" distrib="Red Hat" release="Enterprise 3"/>
</regexp>
<regexp value="Apache/2.0.52 \(Red Hat\)">
<info type="Linux" distrib="Red Hat" release="Enterprise 4"/>
</regexp>
<!-- Apache: Debian -->
<!-- TODO: add Debian testing, unstable and experimental -->
<regexp value="Apache/1.0.5 \(Unix\) Debian/GNU">
<info type="Linux" distrib="Debian" release="1.1"/>
</regexp>
<regexp value="Apache/1.1.1 \(Unix\) Debian/GNU">
<info type="Linux" distrib="Debian" release="1.2"/>
</regexp>
<regexp value="Apache/1.1.3 \(Unix\) Debian/GNU">
<info type="Linux" distrib="Debian" release="1.3"/>
</regexp>
<regexp value="Apache/1.3.0 \(Unix\) Debian/GNU">
<info type="Linux" distrib="Debian" release="2.0"/>
</regexp>
<regexp value="Apache/1.3.3 \(Unix\) Debian/GNU">
<info type="Linux" distrib="Debian" release="2.1"/>
</regexp>
<regexp value="Apache/1.3.9 \(Unix\) Debian\/GNU">
<info type="Linux" distrib="Debian" release="2.2"/>
</regexp>
<regexp value="Apache/1.3.26 \(Debian GNU\/Linux\)">
<info type="Linux" distrib="Debian" release="3.0"/>
</regexp>
<regexp value="Apache/1.3.33 \(Debian GNU\/Linux\)">
<info type="Linux" distrib="Debian" release="3.1"/>
</regexp>
<regexp value="Apache/2.0.54 \(Debian GNU\/Linux\)">
<info type="Linux" distrib="Debian" release="3.1"/>
</regexp>
<regexp value="Apache/2.2.3 \(Debian\)">
<info type="Linux" distrib="Debian" release="4.0"/>
</regexp>
<regexp value="Apache/2.2.6 \(Debian\)">
<info type="Linux" distrib="Debian" release="4.0" updated="True"/>
</regexp>
<!-- Apache: Ubuntu -->
<regexp value="Apache/2.0.50 \(Ubuntu\)">
<info type="Linux" distrib="Ubuntu" release="4.10"/>
</regexp>
<regexp value="Apache/2.0.53 \(Ubuntu\)">
<info type="Linux" distrib="Ubuntu" release="5.04"/>
</regexp>
<regexp value="Apache/2.0.54 \(Ubuntu\)">
<info type="Linux" distrib="Ubuntu" release="5.10"/>
</regexp>
<regexp value="Apache/2.0.55 \(Ubuntu\)">
<info type="Linux" distrib="Ubuntu" release="6.06 or 6.10"/>
</regexp>
<regexp value="Apache/2.2.3 \(Ubuntu\)">
<info type="Linux" distrib="Ubuntu" release="7.04"/>
</regexp>
<regexp value="Apache/2.2.4 \(Ubuntu\)">
<info type="Linux" distrib="Ubuntu" release="7.10"/>
</regexp>
<regexp value="Apache/2.2.8 \(Ubuntu\)">
<info type="Linux" distrib="Ubuntu" release="8.04"/>
</regexp>
<regexp value="Apache/2.2.9 \(Ubuntu\)">
<info type="Linux" distrib="Ubuntu" release="8.10"/>
</regexp>
<!-- Apache: Mandrake / Mandriva -->
<!-- TODO: add Mandriva 2007.1, 2008.0, 2008.1 and 2009.0 -->
<regexp value="Apache/1.3.6 \(Unix\)\s+\(Mandrake/Linux\)">
<info type="Linux" distrib="Mandrake" release="6.0"/>
</regexp>
<regexp value="Apache/1.3.9 \(Unix\)\s+\(NetRevolution Advanced Server/Linux-Mandrake\)">
<info type="Linux" distrib="Mandrake" release="6.1 or 7.0"/>
</regexp>
<regexp value="Apache-AdvancedExtranetServer/1.3.12 \(NetRevolution/Linux-Mandrake\)">
<info type="Linux" distrib="Mandrake" release="7.1"/>
</regexp>
<regexp value="Apache-AdvancedExtranetServer/1.3.14 \(Linux-Mandrake/">
<info type="Linux" distrib="Mandrake" release="7.2"/>
</regexp>
<regexp value="Apache-AdvancedExtranetServer/1.3.19 \(Linux-Mandrake/">
<info type="Linux" distrib="Mandrake" release="8.0"/>
</regexp>
<regexp value="Apache-AdvancedExtranetServer/1.3.20 \(Mandrake Linux/">
<info type="Linux" distrib="Mandrake" release="8.1"/>
</regexp>
<regexp value="Apache-AdvancedExtranetServer/1.3.23 \(Mandrake Linux/">
<info type="Linux" distrib="Mandrake" release="8.2"/>
</regexp>
<regexp value="Apache-AdvancedExtranetServer/1.3.26 \(Mandrake Linux/">
<info type="Linux" distrib="Mandrake" release="9.0"/>
</regexp>
<regexp value="Apache-AdvancedExtranetServer/1.3.27 \(Mandrake Linux/">
<info type="Linux" distrib="Mandrake" release="9.1"/>
</regexp>
<regexp value="Apache-AdvancedExtranetServer/2.0.44 \(Mandrake Linux/">
<info type="Linux" distrib="Mandrake" release="9.1"/>
</regexp>
<regexp value="Apache-AdvancedExtranetServer/1.3.28 \(Mandrake Linux/">
<info type="Linux" distrib="Mandrake" release="9.2"/>
</regexp>
<regexp value="Apache-AdvancedExtranetServer/2.0.47 \(Mandrake Linux/">
<info type="Linux" distrib="Mandrake" release="9.1 or 9.2"/>
</regexp>
<regexp value="Apache-AdvancedExtranetServer/1.3.29 \(Mandrake Linux/">
<info type="Linux" distrib="Mandrake" release="10.0"/>
</regexp>
<regexp value="Apache-AdvancedExtranetServer/2.0.48 \(Mandrake Linux/">
<info type="Linux" distrib="Mandrake" release="10.0"/>
</regexp>
<regexp value="Apache-AdvancedExtranetServer/1.3.31 \(Linux-Mandrake/">
<info type="Linux" distrib="Mandrake" release="10.1"/>
</regexp>
<regexp value="Apache-AdvancedExtranetServer/2.0.50 \(Mandrake Linux/">
<info type="Linux" distrib="Mandrake" release="10.0 or 10.1"/>
</regexp>
<regexp value="Apache-AdvancedExtranetServer/2.0.53 \(Mandriva Linux/">
<info type="Linux" distrib="Mandrake" release="10.2"/>
</regexp>
<regexp value="Apache-AdvancedExtranetServer/2.0.54 \(Mandriva Linux/">
<info type="Linux" distrib="Mandrake" release="2006.0"/>
</regexp>
<regexp value="Apache/2.2.3 \(Mandriva Linux/">
<info type="Linux" distrib="Mandrake" release="2007"/>
</regexp>
<!-- Apache: SuSE -->
<!-- TODO: add SuSE 10.1, 10.2, 10.3 and 11.0 -->
<regexp value="Apache/1.3.6 \(Unix\) \(SuSE/Linux\)">
<info type="Linux" distrib="SuSE" release="6.1"/>
</regexp>
<regexp value="Apache/1.3.9 \(Unix\) \(SuSE/Linux\)">
<info type="Linux" distrib="SuSE" release="6.2"/>
</regexp>
<regexp value="Apache/1.3.12 \(Unix\) \(SuSE/Linux\)">
<info technology="operating-system.type" type="str" value="Linux"/>
<info type="Linux" distrib="SuSE" release="6.4 or 7.0"/>
</regexp>
<regexp value="Apache/1.3.17 \(Unix\) \(SuSE/Linux\)">
<info type="Linux" distrib="SuSE" release="7.1"/>
</regexp>
<regexp value="Apache/1.3.19 \(Unix\) \(SuSE/Linux\)">
<info type="Linux" distrib="SuSE" release="7.2"/>
</regexp>
<regexp value="Apache/1.3.20 \(Linux/SuSE\)">
<info type="Linux" distrib="SuSE" release="7.3"/>
</regexp>
<regexp value="Apache/1.3.23 \(Linux/SuSE\)">
<info type="Linux" distrib="SuSE" release="8.0"/>
</regexp>
<regexp value="Apache/1.3.26 \(Linux/SuSE\)">
<info type="Linux" distrib="SuSE" release="8.1"/>
</regexp>
<regexp value="Apache/1.3.27 \(Linux/SuSE\)">
<info type="Linux" distrib="SuSE" release="8.2"/>
</regexp>
<regexp value="Apache/1.3.28 \(Linux/SuSE\)">
<info type="Linux" distrib="SuSE" release="9.0"/>
</regexp>
<regexp value="Apache/2.0.40 \(Linux/SuSE\)">
<info type="Linux" distrib="SuSE" release="8.1"/>
</regexp>
<regexp value="Apache/2.0.44 \(Linux/SuSE\)">
<info type="Linux" distrib="SuSE" release="8.2"/>
</regexp>
<regexp value="Apache/2.0.47 \(Linux/SuSE\)">
<info type="Linux" distrib="SuSE" release="9.0"/>
</regexp>
<regexp value="Apache/2.0.49 \(Linux/SuSE\)">
<info type="Linux" distrib="SuSE" release="9.1"/>
</regexp>
<regexp value="Apache/2.0.50 \(Linux/SuSE\)">
<info type="Linux" distrib="SuSE" release="9.2"/>
</regexp>
<regexp value="Apache/2.0.53 \(Linux/SuSE\)">
<info type="Linux" distrib="SuSE" release="9.3"/>
</regexp>
<regexp value="Apache/2.0.54 \(Linux/SuSE\)">
<info type="Linux" distrib="SuSE" release="10.0"/>
</regexp>
</root>