#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# Copyright (C) 2005-2006 Insecure.Com LLC.
# Copyright (C) 2007-2008 Adriano Monteiro Marques
#
# Author: Adriano Monteiro Marques <adriano@umitproject.org>
#
# 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 Street, Fifth Floor, Boston, MA 02110-1301 USA
import re
import cPickle
import os.path
def create_services_dump(services, services_dump):
services_dump = os.path.join("share", "umit", "misc", services_dump)
services_dict = {}
serv_file = open(services, 'r')
regex = re.compile("(\w+)\s+(\d+)/(\w{3})\s+#\s*(.*)$")
for s in serv_file.readlines():
m = regex.match(s)
if m:
serv = m.groups()
tcp, udp, ddp = False, False, False
if serv[2] == "tcp":
tcp = True
elif serv[2] == "udp":
udp = True
elif serv[2] == "ddp":
ddp = True
try:
services_dict[serv[0]]
except:
services_dict[serv[0]] = {"ports":[int(serv[1])],
"comment":serv[3],
"tcp":tcp,
"udp":udp,
"ddp":ddp}
else:
if int(serv[1]) not in services_dict[serv[0]]["ports"]:
services_dict[serv[0]]["ports"].append(int(serv[1]))
if tcp:
services_dict[serv[0]]["tcp"] = tcp
elif udp:
services_dict[serv[0]]["udp"] = udp
elif ddp:
services_dict[serv[0]]["ddp"] = ddp
serv_file.close()
print ">>> Creating %s file" % services_dump
serv_dump = open(services_dump, "wb")
cPickle.dump(services_dict, serv_dump)
serv_dump.close()
print ">>> Created!"
if __name__ == "__main__":
services = os.path.join("install_scripts", "utils", "nmap-services")
services_dump = "services.dmp"
create_services_dump(services, services_dump)
|