icescan-cvs Mailing List for IceScan (Page 8)
Status: Alpha
Brought to you by:
darkkey
You can subscribe to this list here.
2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(20) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2007 |
Jan
(132) |
Feb
(2) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(5) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2009 |
Jan
|
Feb
|
Mar
(18) |
Apr
(23) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Alexander B. <da...@us...> - 2007-01-02 16:48:26
|
Update of /cvsroot/icescan/IceScan/icesockets In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv7463/icesockets Modified Files: cethwrapper.h crouter.h sock_types.h Log Message: Index: sock_types.h =================================================================== RCS file: /cvsroot/icescan/IceScan/icesockets/sock_types.h,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** sock_types.h 2 Jan 2007 16:35:16 -0000 1.4 --- sock_types.h 2 Jan 2007 16:48:18 -0000 1.5 *************** *** 156,162 **** typedef std::string icestring; #endif - ! struct interface{ icestring ip; icestring iface; --- 156,161 ---- typedef std::string icestring; #endif ! struct net_interface{ icestring ip; icestring iface; Index: cethwrapper.h =================================================================== RCS file: /cvsroot/icescan/IceScan/icesockets/cethwrapper.h,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** cethwrapper.h 2 Jan 2007 16:35:16 -0000 1.5 --- cethwrapper.h 2 Jan 2007 16:48:17 -0000 1.6 *************** *** 183,187 **** } ! static int get_interfaces(std::map <int, struct interface> &ifaces){ intf_t *intf= intf_open(); --- 183,187 ---- } ! static int get_interfaces(std::map <int, struct net_interface> &ifaces){ intf_t *intf= intf_open(); *************** *** 206,210 **** static int process_intf(const struct intf_entry *ipi, void *arg){ ! std::map <int, struct interface> *ifaces = (std::map <int, struct interface> *) arg; struct sockaddr sa; struct sockaddr_in *sai; --- 206,210 ---- static int process_intf(const struct intf_entry *ipi, void *arg){ ! std::map <int, struct net_interface> *ifaces = (std::map <int, struct net_interface> *) arg; struct sockaddr sa; struct sockaddr_in *sai; Index: crouter.h =================================================================== RCS file: /cvsroot/icescan/IceScan/icesockets/crouter.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** crouter.h 2 Jan 2007 16:35:16 -0000 1.1 --- crouter.h 2 Jan 2007 16:48:17 -0000 1.2 *************** *** 20,28 **** #ifdef HAVE_LIBDNET std::vector <struct route> routes; ! std::map <int, struct interface> &ifaces; public: ! crouter(std::map <int, struct interface> i) : ifaces(i){ load_routes(); --- 20,28 ---- #ifdef HAVE_LIBDNET std::vector <struct route> routes; ! std::map <int, struct net_interface> &ifaces; public: ! crouter(std::map <int, struct net_interface> i) : ifaces(i){ load_routes(); *************** *** 52,56 **** //pls, add WIN32-specific code here ! for(std::map <int, struct interface>::iterator i = ifaces.begin(); i!= ifaces.end(); ++i){ DBGOUTPUT("1.1"); --- 52,56 ---- //pls, add WIN32-specific code here ! for(std::map <int, struct net_interface>::iterator i = ifaces.begin(); i!= ifaces.end(); ++i){ DBGOUTPUT("1.1"); *************** *** 133,137 **** gwip = routes[j].gw.sin_addr.s_addr; ! for(std::map <int, struct interface>::iterator i = ifaces.begin(); i!= ifaces.end(); ++i){ iip = ((struct sockaddr_in *) &((*i).second.sip))->sin_addr.s_addr; --- 133,137 ---- gwip = routes[j].gw.sin_addr.s_addr; ! for(std::map <int, struct net_interface>::iterator i = ifaces.begin(); i!= ifaces.end(); ++i){ iip = ((struct sockaddr_in *) &((*i).second.sip))->sin_addr.s_addr; |
From: Alexander B. <da...@us...> - 2007-01-02 16:48:24
|
Update of /cvsroot/icescan/IceScan/vccproject In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv7463/vccproject Modified Files: IceScan.vcproj Log Message: Index: IceScan.vcproj =================================================================== RCS file: /cvsroot/icescan/IceScan/vccproject/IceScan.vcproj,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** IceScan.vcproj 21 Dec 2006 20:42:13 -0000 1.1 --- IceScan.vcproj 2 Jan 2007 16:48:19 -0000 1.2 *************** *** 1,322 **** ! <?xml version="1.0" encoding="windows-1251"?> ! <VisualStudioProject ! ProjectType="Visual C++" ! Version="8,00" ! Name="IceScan" ! ProjectGUID="{80800AA3-4A13-4902-9541-CC7C5EC31DCC}" ! Keyword="Win32Proj" ! > ! <Platforms> ! <Platform ! Name="Win32" ! /> ! </Platforms> ! <ToolFiles> ! </ToolFiles> ! <Configurations> ! <Configuration ! Name="Debug|Win32" ! OutputDirectory="Debug" ! IntermediateDirectory="Debug" ! ConfigurationType="1" ! CharacterSet="2" ! > ! <Tool ! Name="VCPreBuildEventTool" ! /> ! <Tool ! Name="VCCustomBuildTool" ! /> ! <Tool ! Name="VCXMLDataGeneratorTool" ! /> ! <Tool ! Name="VCWebServiceProxyGeneratorTool" ! /> ! <Tool ! Name="VCMIDLTool" ! /> ! <Tool ! Name="VCCLCompilerTool" ! Optimization="0" ! PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;" ! MinimalRebuild="true" ! BasicRuntimeChecks="3" ! RuntimeLibrary="3" ! UsePrecompiledHeader="0" ! WarningLevel="0" ! Detect64BitPortabilityProblems="true" ! DebugInformationFormat="4" ! /> ! <Tool ! Name="VCManagedResourceCompilerTool" ! /> ! <Tool ! Name="VCResourceCompilerTool" ! /> ! <Tool ! Name="VCPreLinkEventTool" ! /> ! <Tool ! Name="VCLinkerTool" ! LinkIncremental="2" ! GenerateDebugInformation="true" ! SubSystem="1" ! TargetMachine="1" ! /> ! <Tool ! Name="VCALinkTool" ! /> ! <Tool ! Name="VCManifestTool" ! /> ! <Tool ! Name="VCXDCMakeTool" ! /> ! <Tool ! Name="VCBscMakeTool" ! /> ! <Tool ! Name="VCFxCopTool" ! /> ! <Tool ! Name="VCAppVerifierTool" ! /> ! <Tool ! Name="VCWebDeploymentTool" ! /> ! <Tool ! Name="VCPostBuildEventTool" ! /> ! </Configuration> ! <Configuration ! Name="Release|Win32" ! OutputDirectory="Release" ! IntermediateDirectory="Release" ! ConfigurationType="1" ! > ! <Tool ! Name="VCPreBuildEventTool" ! /> ! <Tool ! Name="VCCustomBuildTool" ! /> ! <Tool ! Name="VCXMLDataGeneratorTool" ! /> ! <Tool ! Name="VCWebServiceProxyGeneratorTool" ! /> ! <Tool ! Name="VCMIDLTool" ! /> ! <Tool ! Name="VCCLCompilerTool" ! PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;" ! RuntimeLibrary="2" ! UsePrecompiledHeader="0" ! WarningLevel="3" ! Detect64BitPortabilityProblems="true" ! DebugInformationFormat="3" ! /> ! <Tool ! Name="VCManagedResourceCompilerTool" ! /> ! <Tool ! Name="VCResourceCompilerTool" ! /> ! <Tool ! Name="VCPreLinkEventTool" ! /> ! <Tool ! Name="VCLinkerTool" ! LinkIncremental="2" ! GenerateDebugInformation="true" ! SubSystem="1" ! OptimizeReferences="2" ! EnableCOMDATFolding="2" ! TargetMachine="1" ! /> ! <Tool ! Name="VCALinkTool" ! /> ! <Tool ! Name="VCManifestTool" ! /> ! <Tool ! Name="VCXDCMakeTool" ! /> ! <Tool ! Name="VCBscMakeTool" ! /> ! <Tool ! Name="VCFxCopTool" ! /> ! <Tool ! Name="VCAppVerifierTool" ! /> ! <Tool ! Name="VCWebDeploymentTool" ! /> ! <Tool ! Name="VCPostBuildEventTool" ! /> ! </Configuration> ! </Configurations> ! <References> ! </References> ! <Files> ! <Filter ! Name="Header Files" ! Filter="h;hpp;hxx;hm;inl;inc;xsd" ! UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}" ! > ! <File ! RelativePath="..\icesockets\cethwrapper.h" ! > ! </File> ! <File ! RelativePath="..\config-win.h" ! > ! </File> ! <File ! RelativePath="..\icesockets\cpcapreader.h" ! > ! </File> ! <File ! RelativePath="..\icesockets\crandom.h" ! > ! </File> ! <File ! RelativePath="..\icesockets\crawsocket.h" ! > ! </File> ! <File ! RelativePath="..\icesockets\csocket.h" ! > ! </File> ! <File ! RelativePath="..\csubtarget.h" ! > ! </File> ! <File ! RelativePath="..\ctarget.h" ! > ! </File> ! <File ! RelativePath="..\defwin.h" ! > ! </File> ! <File ! RelativePath="..\icesockets\getaddrinfo.h" ! > ! </File> ! <File ! RelativePath="..\icedbs.h" ! > ! </File> ! <File ! RelativePath="..\icediscover.h" ! > ! </File> ! <File ! RelativePath="..\iceoutput.h" ! > ! </File> ! <File ! RelativePath="..\iceparams.h" ! > ! </File> ! <File ! RelativePath="..\iceprotocol.h" ! > ! </File> ! <File ! RelativePath="..\icesockets\iceregex.h" ! > ! </File> ! <File ! RelativePath="..\iceversion.h" ! > ! </File> ! <File ! RelativePath="..\nbt_wrapper.h" ! > ! </File> ! <File ! RelativePath="..\portdef.h" ! > ! </File> ! <File ! RelativePath="..\icesockets\queue.h" ! > ! </File> ! <File ! RelativePath="..\icesockets\sock_err.h" ! > ! </File> ! <File ! RelativePath="..\icesockets\sock_name.h" ! > ! </File> ! <File ! RelativePath="..\icesockets\sock_types.h" ! > ! </File> ! <File ! RelativePath="..\icesockets\sock_utils.h" ! > ! </File> ! <File ! RelativePath="..\icesockets\sock_win.h" ! > ! </File> ! <File ! RelativePath="..\udpscan.h" ! > ! </File> ! </Filter> ! <Filter ! Name="Resource Files" ! Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx" ! UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}" ! > ! </Filter> ! <Filter ! Name="Source Files" ! Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx" ! UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}" ! > ! <File ! RelativePath="..\csubtarget.cc" ! > ! </File> ! <File ! RelativePath="..\icediscover.cc" ! > ! </File> ! <File ! RelativePath="..\icescan.cc" ! > ! </File> ! <File ! RelativePath="..\icesockets\sock_name.cc" ! > ! </File> ! <File ! RelativePath="..\icesockets\sock_utils.cc" ! > ! </File> ! <File ! RelativePath="..\icesockets\sock_win.cc" ! > ! </File> ! <File ! RelativePath="..\udpscan.cc" ! > ! </File> ! </Filter> ! </Files> ! <Globals> ! </Globals> ! </VisualStudioProject> --- 1,322 ---- ! <?xml version="1.0" encoding="windows-1251"?> ! <VisualStudioProject ! ProjectType="Visual C++" ! Version="8,00" ! Name="IceScan" ! ProjectGUID="{80800AA3-4A13-4902-9541-CC7C5EC31DCC}" ! Keyword="Win32Proj" ! > ! <Platforms> ! <Platform ! Name="Win32" ! /> ! </Platforms> ! <ToolFiles> ! </ToolFiles> ! <Configurations> ! <Configuration ! Name="Debug|Win32" ! OutputDirectory="Debug" ! IntermediateDirectory="Debug" ! ConfigurationType="1" ! CharacterSet="2" ! > ! <Tool ! Name="VCPreBuildEventTool" ! /> ! <Tool ! Name="VCCustomBuildTool" ! /> ! <Tool ! Name="VCXMLDataGeneratorTool" ! /> ! <Tool ! Name="VCWebServiceProxyGeneratorTool" ! /> ! <Tool ! Name="VCMIDLTool" ! /> ! <Tool ! Name="VCCLCompilerTool" ! Optimization="0" ! PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;" ! MinimalRebuild="true" ! BasicRuntimeChecks="3" ! RuntimeLibrary="3" ! UsePrecompiledHeader="0" ! WarningLevel="0" ! Detect64BitPortabilityProblems="true" ! DebugInformationFormat="4" ! /> ! <Tool ! Name="VCManagedResourceCompilerTool" ! /> ! <Tool ! Name="VCResourceCompilerTool" ! /> ! <Tool ! Name="VCPreLinkEventTool" ! /> ! <Tool ! Name="VCLinkerTool" ! LinkIncremental="2" ! GenerateDebugInformation="true" ! SubSystem="1" ! TargetMachine="1" ! /> ! <Tool ! Name="VCALinkTool" ! /> ! <Tool ! Name="VCManifestTool" ! /> ! <Tool ! Name="VCXDCMakeTool" ! /> ! <Tool ! Name="VCBscMakeTool" ! /> ! <Tool ! Name="VCFxCopTool" ! /> ! <Tool ! Name="VCAppVerifierTool" ! /> ! <Tool ! Name="VCWebDeploymentTool" ! /> ! <Tool ! Name="VCPostBuildEventTool" ! /> ! </Configuration> ! <Configuration ! Name="Release|Win32" ! OutputDirectory="Release" ! IntermediateDirectory="Release" ! ConfigurationType="1" ! > ! <Tool ! Name="VCPreBuildEventTool" ! /> ! <Tool ! Name="VCCustomBuildTool" ! /> ! <Tool ! Name="VCXMLDataGeneratorTool" ! /> ! <Tool ! Name="VCWebServiceProxyGeneratorTool" ! /> ! <Tool ! Name="VCMIDLTool" ! /> ! <Tool ! Name="VCCLCompilerTool" ! PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;" ! RuntimeLibrary="2" ! UsePrecompiledHeader="0" ! WarningLevel="3" ! Detect64BitPortabilityProblems="true" ! DebugInformationFormat="3" ! /> ! <Tool ! Name="VCManagedResourceCompilerTool" ! /> ! <Tool ! Name="VCResourceCompilerTool" ! /> ! <Tool ! Name="VCPreLinkEventTool" ! /> ! <Tool ! Name="VCLinkerTool" ! LinkIncremental="2" ! GenerateDebugInformation="true" ! SubSystem="1" ! OptimizeReferences="2" ! EnableCOMDATFolding="2" ! TargetMachine="1" ! /> ! <Tool ! Name="VCALinkTool" ! /> ! <Tool ! Name="VCManifestTool" ! /> ! <Tool ! Name="VCXDCMakeTool" ! /> ! <Tool ! Name="VCBscMakeTool" ! /> ! <Tool ! Name="VCFxCopTool" ! /> ! <Tool ! Name="VCAppVerifierTool" ! /> ! <Tool ! Name="VCWebDeploymentTool" ! /> ! <Tool ! Name="VCPostBuildEventTool" ! /> ! </Configuration> ! </Configurations> ! <References> ! </References> ! <Files> ! <Filter ! Name="Header Files" ! Filter="h;hpp;hxx;hm;inl;inc;xsd" ! UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}" ! > ! <File ! RelativePath="..\icesockets\cethwrapper.h" ! > ! </File> ! <File ! RelativePath="..\config-win.h" ! > ! </File> ! <File ! RelativePath="..\icesockets\cpcapreader.h" ! > ! </File> ! <File ! RelativePath="..\icesockets\crandom.h" ! > ! </File> ! <File ! RelativePath="..\icesockets\crawsocket.h" ! > ! </File> ! <File ! RelativePath="..\icesockets\csocket.h" ! > ! </File> ! <File ! RelativePath="..\csubtarget.h" ! > ! </File> ! <File ! RelativePath="..\ctargets.h" ! > ! </File> ! <File ! RelativePath="..\defwin.h" ! > ! </File> ! <File ! RelativePath="..\icesockets\getaddrinfo.h" ! > ! </File> ! <File ! RelativePath="..\icedbs.h" ! > ! </File> ! <File ! RelativePath="..\icediscover.h" ! > ! </File> ! <File ! RelativePath="..\iceoutput.h" ! > ! </File> ! <File ! RelativePath="..\iceparams.h" ! > ! </File> ! <File ! RelativePath="..\iceprotocol.h" ! > ! </File> ! <File ! RelativePath="..\icesockets\iceregex.h" ! > ! </File> ! <File ! RelativePath="..\iceversion.h" ! > ! </File> ! <File ! RelativePath="..\nbt_wrapper.h" ! > ! </File> ! <File ! RelativePath="..\portdef.h" ! > ! </File> ! <File ! RelativePath="..\icesockets\queue.h" ! > ! </File> ! <File ! RelativePath="..\icesockets\sock_err.h" ! > ! </File> ! <File ! RelativePath="..\icesockets\sock_name.h" ! > ! </File> ! <File ! RelativePath="..\icesockets\sock_types.h" ! > ! </File> ! <File ! RelativePath="..\icesockets\sock_utils.h" ! > ! </File> ! <File ! RelativePath="..\icesockets\sock_win.h" ! > ! </File> ! <File ! RelativePath="..\udpscan.h" ! > ! </File> ! </Filter> ! <Filter ! Name="Resource Files" ! Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx" ! UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}" ! > ! </Filter> ! <Filter ! Name="Source Files" ! Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx" ! UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}" ! > ! <File ! RelativePath="..\csubtarget.cc" ! > ! </File> ! <File ! RelativePath="..\icediscover.cc" ! > ! </File> ! <File ! RelativePath="..\icescan.cc" ! > ! </File> ! <File ! RelativePath="..\icesockets\sock_name.cc" ! > ! </File> ! <File ! RelativePath="..\icesockets\sock_utils.cc" ! > ! </File> ! <File ! RelativePath="..\icesockets\sock_win.cc" ! > ! </File> ! <File ! RelativePath="..\udpscan.cc" ! > ! </File> ! </Filter> ! </Files> ! <Globals> ! </Globals> ! </VisualStudioProject> |
From: Alexander B. <da...@us...> - 2007-01-02 16:35:27
|
Update of /cvsroot/icescan/IceScan/icesockets In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv2421/icesockets Modified Files: sock_name.cc sock_utils.cc sock_name.h sock_types.h cethwrapper.h sock_utils.h cpcapreader.h Added Files: crouter.h Log Message: no message Index: sock_types.h =================================================================== RCS file: /cvsroot/icescan/IceScan/icesockets/sock_types.h,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** sock_types.h 23 Dec 2006 16:39:22 -0000 1.3 --- sock_types.h 2 Jan 2007 16:35:16 -0000 1.4 *************** *** 25,28 **** --- 25,29 ---- #include <fstream> #include <iostream> + #include <sstream> #include <algorithm> *************** *** 32,40 **** #include <sys/timeb.h> #include <signal.h> #ifndef __CYGWIN__ #include <pcap.h> #endif ! #include <errno.h> --- 33,44 ---- #include <sys/timeb.h> #include <signal.h> + #include <math.h> #ifndef __CYGWIN__ #include <pcap.h> #endif ! ! ! #include <errno.h> *************** *** 152,158 **** typedef std::string icestring; #endif ! // Structure and constants for icmp packets ! #ifdef __CYGWIN__ --- 156,170 ---- typedef std::string icestring; #endif ! ! ! struct interface{ ! icestring ip; ! icestring iface; ! struct sockaddr sip; ! uint32_t netmask; ! }; ! // Structure and constants for icmp packets ! #ifdef __CYGWIN__ Index: sock_name.h =================================================================== RCS file: /cvsroot/icescan/IceScan/icesockets/sock_name.h,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** sock_name.h 22 Dec 2006 20:31:57 -0000 1.3 --- sock_name.h 2 Jan 2007 16:35:16 -0000 1.4 *************** *** 19,41 **** #endif ! int make_sockname(struct sockaddr_in& saddr, const char *hostname, int port, int domain); ! bool is_ip(char * nisname); ! bool is_domainname(char * nisname); ! bool is_domainname(icestring &nisname); ! short int get_ip_byhost(const char * nisname, char * retname, int retlen); ! short int get_ips_byhost(const char * nisname, std::vector <icestring> &v); ! short int get_host_byip(icestring &nisname, icestring &retname); ! icestring get_source_ip(const icestring &destip); ! icestring get_source_ip(const icestring &destip, icestring &sourceint); icestring get_arp_from_cache(icestring &); #endif --- 19,49 ---- #endif ! int make_sockname(struct sockaddr_in&, const char *, int, int); ! bool is_ip(const char *); ! bool is_ip(icestring &); ! bool is_correct_domainname(const char *); ! bool is_correct_domainname(icestring &); ! bool is_correct_cidr(const char *); ! bool is_correct_cidr(icestring &); ! short int get_ip_byhost(const char *, char *, int); ! short int get_ips_byhost(const char *, std::vector <icestring> &); ! ! short int get_host_byip(icestring &, icestring &); ! ! icestring get_source_ip(const icestring &); ! ! icestring get_source_ip(const icestring &, icestring &); icestring get_arp_from_cache(icestring &); + icestring ip_to_str(uint32_t); + #endif Index: sock_name.cc =================================================================== RCS file: /cvsroot/icescan/IceScan/icesockets/sock_name.cc,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** sock_name.cc 23 Dec 2006 16:39:22 -0000 1.4 --- sock_name.cc 2 Jan 2007 16:35:16 -0000 1.5 *************** *** 17,32 **** } ! bool is_ip(char * nisname){ ! return !is_domainname(nisname); } ! bool is_domainname(char * nisname){ ! IceRegex re("\\d+\\.\\d+\\.\\d+\\.\\d+"); ! return ! (re.match(nisname)); } ! bool is_domainname(icestring &nisname){ ! IceRegex re("\\d+\\.\\d+\\.\\d+\\.\\d+"); ! return ! (re.match(nisname.c_str())); } --- 17,57 ---- } ! bool is_ip(const char * nisname){ ! IceRegex re("^\\d+\\.\\d+\\.\\d+\\.\\d+$"); ! return (re.match(nisname)); } ! bool is_ip(icestring &nisname){ ! return is_ip(nisname.c_str()); } ! bool is_correct_domainname(const char * nisname){ ! IceRegex re("^([A-Za-z0-9][-A-Za-z0-9]*[.]*)+$"); ! return (re.match(nisname)); ! } ! ! bool is_correct_domainname(icestring &nisname){ ! return is_correct_domainname(nisname.c_str()); ! } ! ! bool is_correct_cidr(const char * nisname){ ! IceRegex re("^\\d+\\.\\d+\\.\\d+\\.\\d+/\\d\\d*$"); ! return (re.match(nisname)); ! } ! ! bool is_correct_cidr(icestring &nisname){ ! return is_correct_cidr(nisname.c_str()); ! } ! ! icestring ip_to_str(uint32_t ip){ ! std::ostringstream os; ! os.clear(); ! ! for(int i = 0; i < 4; i++){ ! os << (int) (unsigned char) (ip >> (3 - i) * 8); ! if(i<3) os << "."; ! } ! ! return os.str(); } Index: cethwrapper.h =================================================================== RCS file: /cvsroot/icescan/IceScan/icesockets/cethwrapper.h,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** cethwrapper.h 23 Dec 2006 18:41:47 -0000 1.4 --- cethwrapper.h 2 Jan 2007 16:35:16 -0000 1.5 *************** *** 158,170 **** struct ip_intf *ipi; ! ! ip_t *ip = i_ip_open(); ! ! if ((ipi = i_lookup_ip_intf(ip, inet_addr(destip.c_str()))) == NULL) { ! errno = EHOSTUNREACH; return ""; } ! ! struct sockaddr sa; --- 158,167 ---- struct ip_intf *ipi; ! ! if ((ipi = i_lookup_ip_intf(i, inet_addr(destip.c_str()))) == NULL) { ! errno = EHOSTUNREACH; return ""; } ! struct sockaddr sa; *************** *** 173,189 **** struct sockaddr_in *sai = (sockaddr_in *) &sa; ! //sourceint.assign(ipi->name); **UGLY ! icestring addr(inet_ntoa(sai->sin_addr)); ! sourceint.assign(cpcapreader::getdev_pcap(sa)); #ifndef WIN32 //add more platforms here if(! strcmp(addr.c_str(), destip.c_str())) sourceint.assign("lo"); #endif ! return addr; } ~cethwrapper(){ i_ip_close(i); --- 170,197 ---- struct sockaddr_in *sai = (sockaddr_in *) &sa; ! sourceint.assign(ipi->name); //**UGLY ! icestring addr(inet_ntoa(sai->sin_addr)); ! //sourceint.assign(cpcapreader::getdev_pcap(sa)); #ifndef WIN32 //add more platforms here if(! strcmp(addr.c_str(), destip.c_str())) sourceint.assign("lo"); #endif ! return addr; } + static int get_interfaces(std::map <int, struct interface> &ifaces){ + + intf_t *intf= intf_open(); + + intf_loop(intf, process_intf, (void *) &ifaces); + + intf_close(intf); + + return 0; + } + ~cethwrapper(){ i_ip_close(i); *************** *** 195,198 **** --- 203,233 ---- /* start of modified code from libdnet */ + + static int + process_intf(const struct intf_entry *ipi, void *arg){ + std::map <int, struct interface> *ifaces = (std::map <int, struct interface> *) arg; + struct sockaddr sa; + struct sockaddr_in *sai; + + int k = 0; + + addr_ntos(&(ipi->intf_addr), &(sa)); + + icestring iname = cpcapreader::getdev_pcap(sa, k); + + (*ifaces)[k].netmask = htonl((unsigned long) (0-1) << (32 - ipi->intf_addr.addr_bits)); + + (*ifaces)[k].iface.assign(iname); + + addr_ntos(&(ipi->intf_addr), &((*ifaces)[k].sip)); + + sai = (sockaddr_in *) &sa; + + (*ifaces)[k].ip.assign(inet_ntoa(sai->sin_addr)); + + //DBGOUTPUT(k << " " << (*ifaces)[k].ip << " " << (*ifaces)[k].netmask); + + return 0; + } static int --- NEW FILE: crouter.h --- /* * File: crouter.h * Author: key * */ #ifndef _crouter_H #define _crouter_H #include "sock_types.h" struct route{ struct sockaddr_in dst; struct sockaddr_in gw; uint32_t netmask; int iface; }; class crouter{ #ifdef HAVE_LIBDNET std::vector <struct route> routes; std::map <int, struct interface> &ifaces; public: crouter(std::map <int, struct interface> i) : ifaces(i){ load_routes(); parse_routes(); //print_table(); } //make routing procedure for destination ip //returns iface number and source ip int route(const icestring &dst, icestring &src){ struct sockaddr_in dip; uint32_t dest_ip, iip, destnet, mask; int dlen; DBGOUTPUT("0"); dlen = make_sockname(dip, dst.c_str(), 0, AF_INET); if(dlen <=0) return -1; dest_ip = dip.sin_addr.s_addr; DBGOUTPUT("1"); //first, process local interfaces and loopbacks //pls, add WIN32-specific code here for(std::map <int, struct interface>::iterator i = ifaces.begin(); i!= ifaces.end(); ++i){ DBGOUTPUT("1.1"); iip = ((struct sockaddr_in *) &((*i).second.sip))->sin_addr.s_addr; DBGOUTPUT("1.2"); //if it is loopback if(iip == dest_ip){ src.assign(dst); return (*i).first; } DBGOUTPUT("1.3"); if((iip & (*i).second.netmask) == (dest_ip & (*i).second.netmask)){ DBGOUTPUT("1.3.1"); src.assign(inet_ntoa(((struct sockaddr_in *) &((*i).second.sip))->sin_addr)); return (*i).first; } DBGOUTPUT("1.4"); } DBGOUTPUT("2"); // dst neighter local nor loopback // now, we can route for destinatination ip for(int j = 0; j < routes.size(); j++){ DBGOUTPUT("^"); destnet = routes[j].dst.sin_addr.s_addr; DBGOUTPUT("$"); if((destnet & routes[j].netmask) == (dest_ip & routes[j].netmask)){ DBGOUTPUT(">"); src.assign(inet_ntoa(((struct sockaddr_in *) &(ifaces[routes[j].iface].sip))->sin_addr)); DBGOUTPUT("<"); return routes[j].iface; } } // can't route :( : no routable interfaces return 0; } ~crouter(){ } private: void load_routes(){ route_t *r; int arg = 1; r = route_open(); route_loop(r, &push_route, (void *) &routes); route_close(r); } void parse_routes(){ for(int j = 0; j < routes.size(); j++){ uint32_t iip, gwip, mask; gwip = routes[j].gw.sin_addr.s_addr; for(std::map <int, struct interface>::iterator i = ifaces.begin(); i!= ifaces.end(); ++i){ iip = ((struct sockaddr_in *) &((*i).second.sip))->sin_addr.s_addr; // DBGOUTPUT(iip << " " << gwip << " " << (*i).second.netmask); if((iip & (*i).second.netmask) == (gwip & (*i).second.netmask)) routes[j].iface = (*i).first; } } } //debug function; prints route table void print_table(){ for(int j = 0; j < routes.size(); j++){ std::cout << inet_ntoa(routes[j].dst.sin_addr) << "\t"; std::cout << inet_ntoa(routes[j].gw.sin_addr) << "\t"; std::cout << routes[j].iface << "\n"; } } static int push_route(const struct route_entry *entry, void *arg){ std::vector <struct route> *rs = (std::vector <struct route> *) arg; //pls, add checking here for IPv6 routes struct route r; struct sockaddr tdst, tgw; //memcpy(&(r.re), entry, sizeof(struct route_entry)); addr_ntos(&(entry->route_dst), &tdst); addr_ntos(&(entry->route_gw), &tgw); struct sockaddr_in *stdst, *stgw; stdst = (struct sockaddr_in *) &tdst; stgw = (struct sockaddr_in *) &tgw; memcpy(&(r.dst), stdst, sizeof(struct sockaddr_in)); memcpy(&(r.gw), stgw, sizeof(struct sockaddr_in)); r.netmask = htonl((unsigned long) (0-1) << (32 - entry->route_dst.addr_bits)); rs->push_back(r); return 0; } #endif }; #endif /* _crouter_H */ Index: sock_utils.h =================================================================== RCS file: /cvsroot/icescan/IceScan/icesockets/sock_utils.h,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** sock_utils.h 23 Dec 2006 23:20:15 -0000 1.3 --- sock_utils.h 2 Jan 2007 16:35:16 -0000 1.4 *************** *** 9,12 **** --- 9,13 ---- #define SUB_TIMEVALS(a,b) (((a).tv_sec - (b).tv_sec) * 1000000 + (a).tv_usec - (b).tv_usec) + #define NULL_TIMEVAL(a) ((a).tv_sec = (a).tv_usec = 0) #ifndef MAX #define MAX(a,b) (a > b ? a : b) Index: sock_utils.cc =================================================================== RCS file: /cvsroot/icescan/IceScan/icesockets/sock_utils.cc,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** sock_utils.cc 23 Dec 2006 23:20:15 -0000 1.3 --- sock_utils.cc 2 Jan 2007 16:35:16 -0000 1.4 *************** *** 177,181 **** else{ int ci=((char*)buffer)[j*16+i]&0xFF; ! char cc=((char*)buffer)[j*16+i]; if(cc<0x20 || cc==0xFF) cc='.'; sprintf(&bi[k],"%02X ",ci); --- 177,181 ---- else{ int ci=((char*)buffer)[j*16+i]&0xFF; ! unsigned char cc=((char*)buffer)[j*16+i]; if(cc<0x20 || cc==0xFF) cc='.'; sprintf(&bi[k],"%02X ",ci); Index: cpcapreader.h =================================================================== RCS file: /cvsroot/icescan/IceScan/icesockets/cpcapreader.h,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** cpcapreader.h 24 Dec 2006 10:23:25 -0000 1.5 --- cpcapreader.h 2 Jan 2007 16:35:16 -0000 1.6 *************** *** 40,43 **** --- 40,44 ---- } + static void listdev_pcap(){ #ifdef HAVE_LIBPCAP *************** *** 96,99 **** --- 97,102 ---- } + d = NULL; + pcap_freealldevs(alldevs); *************** *** 104,113 **** } ! static icestring getdev_pcap(sockaddr addr){ #ifdef HAVE_LIBPCAP pcap_if_t *alldevs; pcap_if_t *d; ! pcap_addr_t *a; ! int i = 1; char errbuf[PCAP_ERRBUF_SIZE]; --- 107,122 ---- } ! static icestring getdev_pcap(sockaddr addr){ ! int j = 0; ! ! return getdev_pcap(addr, j); ! } ! ! static icestring getdev_pcap(sockaddr addr, int &i){ #ifdef HAVE_LIBPCAP pcap_if_t *alldevs; pcap_if_t *d; ! pcap_addr_t *a; ! i = 1; char errbuf[PCAP_ERRBUF_SIZE]; *************** *** 121,147 **** if(!alldevs){ printf("\nNo interfaces found! Make sure libPcap/WinPcap is installed.\n"); ! return 0; } ! struct sockaddr_in *sai1 = (sockaddr_in *) &addr; for(d=alldevs; d; d=d->next, i++) { ! for(a=d->addresses; a; a=a->next){ ! struct sockaddr_in *sai2 = (sockaddr_in *) &a; ! if(!strcmp(inet_ntoa(sai1->sin_addr), inet_ntoa(sai2->sin_addr))) { ! icestring ret(d->name); ! pcap_freealldevs(alldevs); ! return ret; ! } ! } } pcap_freealldevs(alldevs); return ""; ! #else ! return ""; ! #endif } --- 130,170 ---- if(!alldevs){ printf("\nNo interfaces found! Make sure libPcap/WinPcap is installed.\n"); ! i = 0; ! return ""; } ! struct sockaddr_in *sai1 = (sockaddr_in *) &addr; for(d=alldevs; d; d=d->next, i++) { ! for(a=d->addresses; a; a=a->next){ ! struct sockaddr_in *sai2 = (sockaddr_in *) (a->addr); ! ! char ip[24]; ! ! strcpy(ip, inet_ntoa(sai1->sin_addr)); ! ! if(!strncmp(ip, ! inet_ntoa(sai2->sin_addr), ! MIN( ! strlen(ip), ! strlen(inet_ntoa(sai2->sin_addr)) ! ) ! ) ! ) { ! icestring ret(d->name); ! pcap_freealldevs(alldevs); ! return ret; ! } ! } } pcap_freealldevs(alldevs); + #endif + + i = 0; return ""; ! } |
From: Alexander B. <da...@us...> - 2007-01-02 16:35:23
|
Update of /cvsroot/icescan/IceScan/nbproject In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv2421/nbproject Modified Files: configurations.xml Log Message: no message Index: configurations.xml =================================================================== RCS file: /cvsroot/icescan/IceScan/nbproject/configurations.xml,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** configurations.xml 26 Dec 2006 19:22:19 -0000 1.6 --- configurations.xml 2 Jan 2007 16:35:16 -0000 1.7 *************** *** 7,10 **** --- 7,11 ---- <itemPath>icesockets/crandom.h</itemPath> <itemPath>icesockets/crawsocket.h</itemPath> + <itemPath>icesockets/crouter.h</itemPath> <itemPath>icesockets/csocket.h</itemPath> <itemPath>icesockets/getaddrinfo.h</itemPath> *************** *** 12,22 **** <itemPath>icesockets/queue.h</itemPath> <itemPath>icesockets/sock_err.h</itemPath> - <itemPath>icesockets/sock_name.cc</itemPath> <itemPath>icesockets/sock_name.h</itemPath> <itemPath>icesockets/sock_types.h</itemPath> - <itemPath>icesockets/sock_utils.cc</itemPath> <itemPath>icesockets/sock_utils.h</itemPath> ! <itemPath>icesockets/sock_win.cc</itemPath> <itemPath>icesockets/sock_win.h</itemPath> </logicalFolder> <logicalFolder name="ExternalFiles" --- 13,23 ---- <itemPath>icesockets/queue.h</itemPath> <itemPath>icesockets/sock_err.h</itemPath> <itemPath>icesockets/sock_name.h</itemPath> + <itemPath>icesockets/sock_name.cc</itemPath> <itemPath>icesockets/sock_types.h</itemPath> <itemPath>icesockets/sock_utils.h</itemPath> ! <itemPath>icesockets/sock_utils.cc</itemPath> <itemPath>icesockets/sock_win.h</itemPath> + <itemPath>icesockets/sock_win.cc</itemPath> </logicalFolder> <logicalFolder name="ExternalFiles" *************** *** 31,37 **** <itemPath>icescan.1</itemPath> <itemPath>ieee-oui.txt</itemPath> - <itemPath>INSTALL.win32</itemPath> - <itemPath>INSTALL.conf</itemPath> <itemPath>INSTALL</itemPath> <itemPath>Makefile.am</itemPath> <itemPath>NEWS</itemPath> --- 32,38 ---- <itemPath>icescan.1</itemPath> <itemPath>ieee-oui.txt</itemPath> <itemPath>INSTALL</itemPath> + <itemPath>INSTALL.conf</itemPath> + <itemPath>INSTALL.win32</itemPath> <itemPath>Makefile.am</itemPath> <itemPath>NEWS</itemPath> *************** *** 42,52 **** <itemPath>cdiscover.h</itemPath> <itemPath>cfingerprint.h</itemPath> - <itemPath>csubtarget.cc</itemPath> <itemPath>csubtarget.h</itemPath> <itemPath>ctargets.h</itemPath> <itemPath>defwin.h</itemPath> <itemPath>icedbs.h</itemPath> - <itemPath>icediscover.cc</itemPath> <itemPath>icediscover.h</itemPath> <itemPath>iceoutput.h</itemPath> <itemPath>iceparams.h</itemPath> --- 43,53 ---- <itemPath>cdiscover.h</itemPath> <itemPath>cfingerprint.h</itemPath> <itemPath>csubtarget.h</itemPath> + <itemPath>csubtarget.cc</itemPath> <itemPath>ctargets.h</itemPath> <itemPath>defwin.h</itemPath> <itemPath>icedbs.h</itemPath> <itemPath>icediscover.h</itemPath> + <itemPath>icediscover.cc</itemPath> <itemPath>iceoutput.h</itemPath> <itemPath>iceparams.h</itemPath> *************** *** 56,61 **** <itemPath>nbt_wrapper.h</itemPath> <itemPath>portdef.h</itemPath> - <itemPath>udpscan.cc</itemPath> <itemPath>udpscan.h</itemPath> </logicalFolder> <projectmakefile>Makefile</projectmakefile> --- 57,62 ---- <itemPath>nbt_wrapper.h</itemPath> <itemPath>portdef.h</itemPath> <itemPath>udpscan.h</itemPath> + <itemPath>udpscan.cc</itemPath> </logicalFolder> <projectmakefile>Makefile</projectmakefile> *************** *** 196,199 **** --- 197,203 ---- <itemTool>3</itemTool> </item> + <item path="icesockets/crouter.h"> + <itemTool>3</itemTool> + </item> </conf> </confs> |
Update of /cvsroot/icescan/IceScan In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv2421 Modified Files: iceparams.h cdiscover.h icescan.cc TODO config.h.in ctargets.h csubtarget.h portdef.h config.status csubtarget.cc Log Message: no message Index: icescan.cc =================================================================== RCS file: /cvsroot/icescan/IceScan/icescan.cc,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** icescan.cc 24 Dec 2006 19:45:55 -0000 1.6 --- icescan.cc 2 Jan 2007 16:35:16 -0000 1.7 *************** *** 75,78 **** --- 75,100 ---- } + void parse_target(char target[], iceparams *par, ctargets *ts, char *pname){ + if(is_ip(target) || is_correct_domainname(target)) + ts->add_subtargets(target); + else if(is_correct_cidr(target)){ + + unsigned char ipc[4]; + uint32_t ip; + int len; + + sscanf(target, "%d.%d.%d.%d/%d", &ipc[0], &ipc[1], &ipc[2], &ipc[3], &len); + + ip = ipc[0] * (int) pow(256, 3) + ipc[1] * (int) pow(256, 2) + ipc[2] * 256 + ipc[3]; + + int mlen = 32 - len; + + for(int j = 1; j < (int) pow(2, mlen); j++) + ts->add_subtargets(ip_to_str((((ip >> mlen) << mlen) + j)).c_str()); + + }else + invalid_command(pname, "Invalid target specification. See MAN page for more info.", ""); + } + bool parse_ports(int i, int argc, char *argv[], std::vector <port_range>& ports, bool isexit){ if(i+1 < argc){ *************** *** 371,375 **** }else{ //DBGOUTPUT("Target is: " << argv[i]); ! ts->add_subtargets(argv[i]); } --- 393,397 ---- }else{ //DBGOUTPUT("Target is: " << argv[i]); ! parse_target(argv[i], par, ts, argv[0]); } *************** *** 388,392 **** int main(int argc, char *argv[]){ - ice_service_name_database isnd("services"); ice_mac_name_database ismd("ieee-oui.txt"); --- 410,413 ---- *************** *** 413,417 **** std::cout << version_string << std::endl; ! ctargets ts(&par, &out); ftime(&tp1); --- 434,438 ---- std::cout << version_string << std::endl; ! ctargets ts(out, par); ftime(&tp1); Index: csubtarget.cc =================================================================== RCS file: /cvsroot/icescan/IceScan/csubtarget.cc,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** csubtarget.cc 26 Dec 2006 19:22:19 -0000 1.5 --- csubtarget.cc 2 Jan 2007 16:35:16 -0000 1.6 *************** *** 8,11 **** --- 8,13 ---- csubtarget::csubtarget(icestring hostname, icestring reverse_hostname, iceparams *par, iceoutput *out){ + //DBGOUTPUT(hostname); + struct scanned_port sp; *************** *** 19,40 **** init_scan_sockets(); - source_ip = par->source_ip; ! if(source_ip == "") ! source_ip = get_source_ip(hostname, source_iface); ! #if (__CYGWIN__) ! if(!par->forceuid){ ! #else ! if(getuid() && (par->forceuid != true)){ ! #endif ! iface = cpcapreader::getdev_pcap(source_iface); ! ! par->max_retries[iface] = 10; ! par->max_wait_time[iface] = 10000000; //10 seconds - if(par->source_iface) - iface = par->source_iface; }else iface = 0; } --- 21,39 ---- init_scan_sockets(); ! if(source_ip == "" && par->source_ip != "") ! source_ip = par->source_ip; ! if(par->root() && (source_ip == "")){ ! ! DBGOUTPUT(">>>>>"); ! ! iface = par->r->route(hostname, source_ip); ! ! DBGOUTPUT(hostname << ":\t" << iface << " | " << source_ip); }else iface = 0; + + max_timeout = 0; } *************** *** 283,287 **** FD_SET(scan_sockets[j].sid, &fd_x); ! (*i).second.time = time(0); int rc = c.connect(hostname.c_str(), (*i).first, 0); --- 282,286 ---- FD_SET(scan_sockets[j].sid, &fd_x); ! gettimeofday(&((*i).second.tv), NULL); int rc = c.connect(hostname.c_str(), (*i).first, 0); *************** *** 585,589 **** c.connect(hostname.c_str(), prt, 0); ! scanning_ports[prt].time = time(0); //DBGOUTPUT("Connecting to " << prt << " using socket id " << scanning_ports[prt].c->get_socketid()); //DBGOUTPUT("!!!"); --- 584,588 ---- c.connect(hostname.c_str(), prt, 0); ! gettimeofday(&(scanning_ports[prt].tv), NULL); //DBGOUTPUT("Connecting to " << prt << " using socket id " << scanning_ports[prt].c->get_socketid()); //DBGOUTPUT("!!!"); *************** *** 617,621 **** std::vector<scanned_port> &subtarget_ports){ fd_set fd_rtmp, fd_wtmp, fd_xtmp; ! struct timeval tv; int s, err; int res; --- 616,620 ---- std::vector<scanned_port> &subtarget_ports){ fd_set fd_rtmp, fd_wtmp, fd_xtmp; ! struct timeval tv, tv2; int s, err; int res; *************** *** 647,650 **** --- 646,650 ---- int curtime = time(0); + gettimeofday(&tv2, NULL); for(i = scanning_ports.begin(); i!= scanning_ports.end(); ++i){ *************** *** 703,708 **** } ! set_port_status((*i).first, status, "tcp"); (*i).second.done = true; --- 703,710 ---- } + max_timeout = SUB_TIMEVALS(tv2, (*i).second.tv) * TIMEOUT_MULTIPLIER > MIN_TIMEOUT ? SUB_TIMEVALS(tv2, (*i).second.tv) * TIMEOUT_MULTIPLIER : MIN_TIMEOUT; ! //DBGOUTPUT(max_timeout); ! set_port_status((*i).first, status, "tcp"); (*i).second.done = true; *************** *** 711,715 **** }else{ ! if( ( curtime - (*i).second.time) >= CONNECT_TIMEOUT ){ status = PORT_FILTERED; --- 713,717 ---- }else{ ! if( ( SUB_TIMEVALS(tv2, (*i).second.tv)) >= max_timeout ){ status = PORT_FILTERED; Index: csubtarget.h =================================================================== RCS file: /cvsroot/icescan/IceScan/csubtarget.h,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** csubtarget.h 26 Dec 2006 19:22:19 -0000 1.3 --- csubtarget.h 2 Jan 2007 16:35:16 -0000 1.4 *************** *** 11,15 **** #include "cfingerprint.h" ! #define CONNECT_TIMEOUT 14 #define MAX_PACKETS 2048 --- 11,15 ---- #include "cfingerprint.h" ! #define TIMEOUT_MULTIPLIER 2 #define MAX_PACKETS 2048 *************** *** 69,72 **** --- 69,74 ---- // *** discovery parameters + long max_timeout; + int max_retries; std::vector<scanned_port> subtarget_ports; Index: config.status =================================================================== RCS file: /cvsroot/icescan/IceScan/config.status,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** config.status 23 Dec 2006 17:38:32 -0000 1.4 --- config.status 2 Jan 2007 16:35:16 -0000 1.5 *************** *** 20,28 **** # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' ! elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then ! set -o posix fi DUALCASE=1; export DUALCASE # for MKS sh # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then --- 20,52 ---- [...2148 lines suppressed...] { (exit 1); exit 1; }; }; } # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" *************** *** 1293,1298 **** done ;; esac ! done { (exit 0); exit 0; } --- 1084,1091 ---- done ;; + esac ! done # for ac_tag ! { (exit 0); exit 0; } Index: config.h.in =================================================================== RCS file: /cvsroot/icescan/IceScan/config.h.in,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** config.h.in 21 Dec 2006 20:42:10 -0000 1.1 --- config.h.in 2 Jan 2007 16:35:16 -0000 1.2 *************** *** 198,201 **** #undef realloc ! /* Define to `unsigned' if <sys/types.h> does not define. */ #undef size_t --- 198,201 ---- #undef realloc ! /* Define to `unsigned int' if <sys/types.h> does not define. */ #undef size_t Index: ctargets.h =================================================================== RCS file: /cvsroot/icescan/IceScan/ctargets.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** ctargets.h 26 Dec 2006 19:22:19 -0000 1.2 --- ctargets.h 2 Jan 2007 16:35:16 -0000 1.3 *************** *** 7,21 **** class ctargets{ ! iceoutput *out; ! iceparams *par; ! std::vector <csubtarget *> subtargets; //subtargets (e.g. aliases for domain name, multiple ips per hostname, e.t.c.) public: ! ctargets(iceparams *par, iceoutput *out){ ! this->par = par; ! this->out = out; } --- 7,20 ---- class ctargets{ ! iceoutput &out; ! iceparams ∥ ! std::map <icestring, csubtarget *> subtargets; //subtargets (e.g. aliases for domain name, multiple ips per hostname, e.t.c.) public: ! ctargets(iceoutput &o, iceparams &p) : out(o), par(p){ ! //nothing to do... } *************** *** 31,36 **** int up = 0; ! for(int i = 0; i<subtargets.size(); i++){ ! if(subtargets[i]->discovered) up++; } --- 30,35 ---- int up = 0; ! for(std::map <icestring, csubtarget *>::iterator i = subtargets.begin(); i!= subtargets.end(); ++i){ ! if((*i).second->discovered) up++; } *************** *** 44,48 **** icestring rev_hostname; ! if((!is_domainname(hostname)) && par->reverse_dns){ get_host_byip(hostname, rev_hostname); --- 43,47 ---- icestring rev_hostname; ! if((is_ip(hostname)) && par.reverse_dns){ get_host_byip(hostname, rev_hostname); *************** *** 53,64 **** if(st>1){ ! *out << "Target resolves in multiple IPs: "; for(int i=0; i<st; i++) ! *out << subtargets_addresses[i].c_str() << " "; ! *out << "\n"; } ! if(par->use_first_resolve){ ! *out << "Using first IP.\n"; st = 1; } --- 52,63 ---- if(st>1){ ! out << "Target resolves in multiple IPs: "; for(int i=0; i<st; i++) ! out << subtargets_addresses[i].c_str() << " "; ! out << "\n"; } ! if(par.use_first_resolve){ ! out << "Using first IP.\n"; st = 1; } *************** *** 66,71 **** for(int i=0; i<st; i++){ ! csubtarget *cst = new csubtarget(subtargets_addresses[i].c_str(), rev_hostname.c_str(), par, out); ! subtargets.push_back(cst); } --- 65,70 ---- for(int i=0; i<st; i++){ ! csubtarget *cst = new csubtarget(subtargets_addresses[i].c_str(), rev_hostname.c_str(), &par, &out); ! subtargets[subtargets_addresses[i]] = (cst); } *************** *** 76,94 **** bool discovered = false; ! for(int i=0; i<subtargets.size(); i++){ ! ! if(par->no_host_discovery) discovered |= (subtargets[i]->discovered = true); ! else discovered |= subtargets[i]->discover(); ! } ! ! return discovered; } void scan(){ ! for(int i=0; i<subtargets.size(); i++){ ! if(subtargets[i]->discovered){ ! subtargets[i]->scan(); ! subtargets[i]->mac_discover(); } } --- 75,95 ---- bool discovered = false; ! cdiscover cds(out, par, subtargets); ! ! cds.discover(); ! ! for(std::map <icestring, csubtarget *>::iterator i = subtargets.begin(); i!= subtargets.end(); ++i){ ! if(par.no_host_discovery) discovered |= ((*i).second->discovered = true); ! else discovered |= (*i).second->discovered; } ! ! return discovered; } void scan(){ ! for(std::map <icestring, csubtarget *>::iterator i = subtargets.begin(); i!= subtargets.end(); ++i){ ! if((*i).second->discovered){ ! (*i).second->scan(); ! (*i).second->mac_discover(); } } *************** *** 96,102 **** void detect(){ ! for(int i=0; i<subtargets.size(); i++){ ! if(subtargets[i]->discovered){ ! subtargets[i]->detect(); } } --- 97,103 ---- void detect(){ ! for(std::map <icestring, csubtarget *>::iterator i = subtargets.begin(); i!= subtargets.end(); ++i){ ! if((*i).second->discovered){ ! (*i).second->detect(); } } *************** *** 104,109 **** ~ctargets(){ ! for(int i=0; i<subtargets.size(); i++){ ! delete subtargets[i]; } } --- 105,110 ---- ~ctargets(){ ! for(std::map <icestring, csubtarget *>::iterator i = subtargets.begin(); i!= subtargets.end(); ++i){ ! delete (*i).second; } } Index: iceparams.h =================================================================== RCS file: /cvsroot/icescan/IceScan/iceparams.h,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** iceparams.h 26 Dec 2006 19:22:19 -0000 1.6 --- iceparams.h 2 Jan 2007 16:35:16 -0000 1.7 *************** *** 5,8 **** --- 5,10 ---- #include <map> #include "icedbs.h" + #include "icesockets/cethwrapper.h" + #include "icesockets/crouter.h" struct port_range{ *************** *** 14,19 **** // -S0 -ST -SB -SI -SF -SN -SX -SW -SA -SS -SU ! #define MAX_RETRIES 10 ! #define MAX_WAIT_TIME 5000000 class iceparams{ --- 16,22 ---- // -S0 -ST -SB -SI -SF -SN -SX -SW -SA -SS -SU ! #define MAX_RETRIES 8 ! #define MAX_WAIT_TIME 1000000 //1 second ! #define MIN_TIMEOUT MAX_WAIT_TIME class iceparams{ *************** *** 32,35 **** --- 35,40 ---- // + crouter *r; + std::map <int, struct interface> ifaces; std::map <int, int> max_retries; std::map <int, long> max_wait_time; *************** *** 137,143 **** default_init(); } ! ~iceparams(){ } void by_default_init(){ --- 142,157 ---- default_init(); + + if(root()){ + cethwrapper::get_interfaces(ifaces); + + r = new crouter(ifaces); + }else r = NULL; + } ! ~iceparams(){ ! if(r) delete r; ! } void by_default_init(){ *************** *** 180,183 **** --- 194,205 ---- return cnt; } + + bool root(){ + #if (__CYGWIN__) + return forceuid; + #else + return !getuid() || (forceuid); + #endif + } }; Index: cdiscover.h =================================================================== RCS file: /cvsroot/icescan/IceScan/cdiscover.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** cdiscover.h 26 Dec 2006 19:22:19 -0000 1.1 --- cdiscover.h 2 Jan 2007 16:35:16 -0000 1.2 *************** *** 26,29 **** --- 26,31 ---- cdengine(){ + r3 = r2 = NULL; + p.clear(); ack_ping_discovery = false; syn_ping_discovery = false; *************** *** 36,39 **** --- 38,42 ---- void free(){ + //DBGOUTPUT("Entering destructor..."); if(r2) delete r2; if(r3) delete r3; *************** *** 41,44 **** --- 44,48 ---- for(int i = 0; i<p.size(); i++) if(p[i]) delete p[i]; + //DBGOUTPUT("Leaving destructor..."); } }; *************** *** 46,50 **** class cdiscover{ cdengine cde; ! std::vector <csubtarget *> &subtargets; iceoutput &out; iceparams ∥ --- 50,54 ---- class cdiscover{ cdengine cde; ! std::map <icestring, csubtarget *> &subtargets; iceoutput &out; iceparams ∥ *************** *** 52,56 **** public: ! cdiscover(iceoutput &o, iceparams &p, std::vector <csubtarget *> &sts) : subtargets(sts), out(o), par(p) { //nothing to do yet --- 56,60 ---- public: ! cdiscover(iceoutput &o, iceparams &p, std::map <icestring, csubtarget *> &sts) : subtargets(sts), out(o), par(p) { //nothing to do yet *************** *** 70,73 **** --- 74,82 ---- init(); + while(! send_attempts()){ + recieve_attempts(10); + usleep(10); + } + close(); *************** *** 101,107 **** } ! for(int i = 0; i < subtargets.size(); i++ ){ ! if(cde.icmp_echo_ping_discovery || cde.icmp_mask_ping_discovery || cde.icmp_timestamp_ping_discovery ) ! subtargets[i]->attempts[A_ICMP].at = 0; } } --- 110,122 ---- } ! for(std::map <icestring, csubtarget *>::iterator i = subtargets.begin(); i!= subtargets.end(); ++i){ ! //par.max_retries[(*i).second->iface] = MAX_RETRIES; ! //par.max_wait_time[(*i).second->iface] = MAX_WAIT_TIME; ! ! if(cde.icmp_echo_ping_discovery || cde.icmp_mask_ping_discovery || cde.icmp_timestamp_ping_discovery ){ ! (*i).second->attempts[A_ICMP].at = 0; ! NULL_TIMEVAL((*i).second->attempts[A_ICMP].send_tv); ! NULL_TIMEVAL((*i).second->attempts[A_ICMP].recv_tv); ! } } } *************** *** 109,138 **** bool send_attempts(){ bool stop = true; ! for(int i = 0; i < subtargets.size(); i++ ){ ! if(cde.icmp_echo_ping_discovery || cde.icmp_mask_ping_discovery || cde.icmp_timestamp_ping_discovery ){ ! if(subtargets[i]->attempts[A_ICMP].at <= par.max_retries[subtargets[i]->iface] && !subtargets[i]->discovered){ ! short int msg_type = ICMP_ECHO; ! char buf[sizeof(struct timeval) + 1]; ! Bzero(buf, sizeof(struct timeval) + 1); ! if(cde.icmp_echo_ping_discovery){ ! gettimeofday( ( struct timeval *) buf, NULL); ! }else if(cde.icmp_timestamp_ping_discovery){ ! msg_type = ICMP_TSTAMP; ! }else if(cde.icmp_mask_ping_discovery){ ! msg_type = ICMP_MASKREQ; ! } ! cde.r3->send_icmp_packet(subtargets[i]->hostname, msg_type, 0, getpid(), subtargets[i]->attempts[A_ICMP].at, 0, buf, sizeof(struct timeval)); ! ! subtargets[i]->attempts[A_ICMP].at++; ! ! gettimeofday(&(subtargets[i]->attempts[A_ICMP].send_tv), NULL); ! stop = false; ! } ! } } --- 124,167 ---- bool send_attempts(){ bool stop = true; + struct timeval tv; ! for(std::map <icestring, csubtarget *>::iterator i = subtargets.begin(); i!= subtargets.end(); ++i){ ! gettimeofday(&tv, NULL); ! ! if(!(*i).second->discovered){ ! if(cde.icmp_echo_ping_discovery || cde.icmp_mask_ping_discovery || cde.icmp_timestamp_ping_discovery ){ ! if(SUB_TIMEVALS(tv, (*i).second->attempts[A_ICMP].send_tv) >= ((*i).second->max_timeout ? (*i).second->max_timeout : par.max_wait_time[(*i).second->iface])){ ! if((*i).second->attempts[A_ICMP].at <= par.max_retries[(*i).second->iface]){ ! short int msg_type = ICMP_ECHO; ! char buf[sizeof(struct timeval) + 1]; ! //DBGOUTPUT(SUB_TIMEVALS(tv, (*i).second->attempts[A_ICMP].send_tv) << " ? " << ((*i).second->max_timeout ? (*i).second->max_timeout : par.max_wait_time[(*i).second->iface])); ! stop = false; ! ! //DBGOUTPUT("Sending attempt to " << (*i).second->hostname); ! ! Bzero(buf, sizeof(struct timeval) + 1); ! if(cde.icmp_echo_ping_discovery){ ! gettimeofday( ( struct timeval *) buf, NULL); ! }else if(cde.icmp_timestamp_ping_discovery){ ! msg_type = ICMP_TSTAMP; ! }else if(cde.icmp_mask_ping_discovery){ ! msg_type = ICMP_MASKREQ; ! } ! ! cde.r3->send_icmp_packet((*i).second->hostname, msg_type, 0, getpid(), (*i).second->attempts[A_ICMP].at, 0, buf, sizeof(struct timeval)); ! ! (*i).second->attempts[A_ICMP].at++; ! ! gettimeofday(&((*i).second->attempts[A_ICMP].send_tv), NULL); ! ! } ! } else stop = false; ! } ! ! } } *************** *** 143,147 **** --- 172,230 ---- void recieve_attempts(int timeout){ + struct timeval tv2; + if(cde.icmp_echo_ping_discovery || cde.icmp_mask_ping_discovery || cde.icmp_timestamp_ping_discovery ){ + char buf[1500]; //1500 == standart IP Packet size + sockaddr_in source; + int fromlen = sizeof(source); + + int len = recvfrom(cde.r3->get_socketid(), buf, sizeof(buf), 0, (sockaddr*)&source, (socklen_t*) &fromlen); + + if(len > 0){ + gettimeofday(&tv2, NULL); + + struct iphdr *ip = (struct iphdr *) buf; + int hdrlen = ip->ihl << 2; + + icestring ssource(inet_ntoa(source.sin_addr)); + + struct icmp *icmp = (struct icmp *) (buf + hdrlen); + + int icmplen = len - hdrlen; + + bool result = false; + + if(icmp->icmp_id == getpid() && icmplen > 16){ + if(subtargets.find(ssource) != subtargets.end()){ + if(cde.icmp_echo_ping_discovery && icmp -> icmp_type == ICMP_ECHOREPLY){ + subtargets[ssource]->discovered = true; + }else if(cde.icmp_timestamp_ping_discovery && icmp -> icmp_type == ICMP_TSTAMPREPLY){ + subtargets[ssource]->discovered = true; + if(par.verbose>1){ + uint32_t t = ntohl(icmp->icmp_rtime); + out << "Recieved icmp timestamp host discovery reply: " << make_uptime(t) << ".\n"; + } + }else if(cde.icmp_mask_ping_discovery && icmp -> icmp_type == ICMP_MASKREPLY){ + subtargets[ssource]->discovered = true; + if(par.verbose>1){ + char netmask[24]; + sprintf(netmask, "%08x", ntohl(icmp->icmp_mask)); + out << "Recieved icmp netmask host discovery reply: " << netmask << ".\n"; + } + } + + if(subtargets[ssource]->discovered){ + subtargets[ssource]->max_timeout = TIMEOUT_MULTIPLIER*(SUB_TIMEVALS(tv2, subtargets[ssource]->attempts[A_ICMP].send_tv)); + + if(par.max_retries[subtargets[ssource]->iface] > 1) par.max_retries[subtargets[ssource]->iface] = par.max_retries[subtargets[ssource]->iface] / 2; + + if(par.verbose>0) + out << "Host " << ssource << " seems to be up.\n"; + } + + } + } + } + } } Index: TODO =================================================================== RCS file: /cvsroot/icescan/IceScan/TODO,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** TODO 26 Dec 2006 19:22:19 -0000 1.7 --- TODO 2 Jan 2007 16:35:16 -0000 1.8 *************** *** 7,10 **** --- 7,12 ---- + --data-dir option for directory handling the databases + output ports options; move show_ports into iceoutput + + --output_file - output results to file + + -iL [filename|-] -- input targets from file|stdin -- Discovering -- *************** *** 13,28 **** + Rewrite discovery to support multiple subtargets. + add own DNS-server module. ! + DHCP (client or server) discover. + NetBIOS discover. -- Scanning -- + Mainmon scan (-SM, FIN/ACK) - * Fix udp scan timeouts. - * Fix Raw TCP scan timeouts. + IP Protocol Scan (-SI) + --badchksum option. + UDP RAW Scan (spoofed ip/mac/random data/etc...) + --data-length <num>: append random data to sent packets. -- Fingerprinting -- --- 15,39 ---- + Rewrite discovery to support multiple subtargets. + add own DNS-server module. ! + -PP [timeout] - passive discover + NetBIOS discover. + * check line type before using ARP. -- Scanning -- + + List Scan (-SL) + Mainmon scan (-SM, FIN/ACK) + IP Protocol Scan (-SI) + --badchksum option. + UDP RAW Scan (spoofed ip/mac/random data/etc...) + --data-length <num>: append random data to sent packets. + + add own routing module. + + -- Timing -- + + * Fix udp scan/discover timeouts. + * Fix Raw TCP scan timeouts. + + --max_retries option + + --max-timeout option + + add timeout/retry 2x engine -- Fingerprinting -- *************** *** 39,46 **** --- 50,62 ---- + make it build under cygwin + -- OpenBSD-specific -- + + + add structures and typedefs for OpenBSD + -- Misc -- * test auto-selecting interface (to listen) and source ip to scan * print library versions on icescan -V. + * replace all n_long,n_short,myuint_t, uint_t, UINT and etc with u16,u32,u8 -- Docs -- Index: portdef.h =================================================================== RCS file: /cvsroot/icescan/IceScan/portdef.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** portdef.h 21 Dec 2006 20:42:11 -0000 1.1 --- portdef.h 2 Jan 2007 16:35:16 -0000 1.2 *************** *** 22,26 **** int port_number; bool done; - long time; struct timeval tv; int socket_ptr; --- 22,25 ---- |
From: Alexander B. <da...@us...> - 2006-12-26 19:22:24
|
Update of /cvsroot/icescan/IceScan/nbproject In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv9278/nbproject Modified Files: configurations.xml Log Message: no message Index: configurations.xml =================================================================== RCS file: /cvsroot/icescan/IceScan/nbproject/configurations.xml,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** configurations.xml 24 Dec 2006 19:45:56 -0000 1.5 --- configurations.xml 26 Dec 2006 19:22:19 -0000 1.6 *************** *** 40,43 **** --- 40,44 ---- <itemPath>TODO</itemPath> </logicalFolder> + <itemPath>cdiscover.h</itemPath> <itemPath>cfingerprint.h</itemPath> <itemPath>csubtarget.cc</itemPath> *************** *** 192,195 **** --- 193,199 ---- <itemTool>3</itemTool> </item> + <item path="cdiscover.h"> + <itemTool>3</itemTool> + </item> </conf> </confs> |
From: Alexander B. <da...@us...> - 2006-12-26 19:22:24
|
Update of /cvsroot/icescan/IceScan In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv9278 Modified Files: configure configure.ac iceparams.h TODO ctargets.h icediscover.cc csubtarget.h csubtarget.cc Added Files: cdiscover.h Log Message: no message Index: csubtarget.cc =================================================================== RCS file: /cvsroot/icescan/IceScan/csubtarget.cc,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** csubtarget.cc 24 Dec 2006 19:45:56 -0000 1.4 --- csubtarget.cc 26 Dec 2006 19:22:19 -0000 1.5 *************** *** 22,26 **** if(source_ip == "") ! source_ip = get_source_ip(hostname, source_iface); } --- 22,40 ---- if(source_ip == "") ! source_ip = get_source_ip(hostname, source_iface); ! ! #if (__CYGWIN__) ! if(!par->forceuid){ ! #else ! if(getuid() && (par->forceuid != true)){ ! #endif ! iface = cpcapreader::getdev_pcap(source_iface); ! ! par->max_retries[iface] = 10; ! par->max_wait_time[iface] = 10000000; //10 seconds ! ! if(par->source_iface) ! iface = par->source_iface; ! }else iface = 0; } *************** *** 313,323 **** } ! int iface; ! ! ! if(par->source_iface) ! iface = par->source_iface; ! else ! iface = cpcapreader::getdev_pcap(source_iface); char filter_exp[256]; --- 327,337 ---- } ! // int iface; ! // ! // ! // if(par->source_iface) ! // iface = par->source_iface; ! // else ! // iface = cpcapreader::getdev_pcap(source_iface); char filter_exp[256]; Index: csubtarget.h =================================================================== RCS file: /cvsroot/icescan/IceScan/csubtarget.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** csubtarget.h 23 Dec 2006 16:39:23 -0000 1.2 --- csubtarget.h 26 Dec 2006 19:22:19 -0000 1.3 *************** *** 30,33 **** --- 30,40 ---- }; + struct attempt{ + int at; + struct timeval send_tv; + struct timeval recv_tv; + }; + + enum Attempts { A_SCAN = 0, A_ICMP = 1, A_CONNECT = 2, A_UDP = 3, A_TCPRAW = 4, A_ARP = 5 }; class csubtarget{ *************** *** 35,43 **** iceoutput *out; ! iceparams *par; ! ! icestring hostname; ! ! icestring reversed_hostname; // *****scan parameters***** --- 42,46 ---- iceoutput *out; ! iceparams *par; // *****scan parameters***** *************** *** 47,58 **** struct scan_socket* scan_sockets; - icestring source_ip; - icestring source_iface; - // *****scan parameters***** public: bool discovered; std::vector<scanned_port> subtarget_ports; --- 50,72 ---- struct scan_socket* scan_sockets; // *****scan parameters***** + public: + icestring hostname; + + icestring reversed_hostname; + + icestring source_ip; + icestring source_iface; + int iface; bool discovered; + // *** discovery parameters + + struct attempt attempts[10]; + + // *** discovery parameters + std::vector<scanned_port> subtarget_ports; Index: configure =================================================================== RCS file: /cvsroot/icescan/IceScan/configure,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** configure 23 Dec 2006 17:38:32 -0000 1.4 --- configure 26 Dec 2006 19:22:19 -0000 1.5 *************** *** 1,9 **** #! /bin/sh # Guess values for system-dependent variables and create Makefiles. ! # Generated by GNU Autoconf 2.59 for icescan "0.0.6rc1". # # Report bugs to <'ke...@ti...'>. # ! # Copyright (C) 2003 Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. --- 1,10 ---- [...10427 lines suppressed...] *************** *** 7153,7161 **** done ;; esac ! done ! _ACEOF - cat >>$CONFIG_STATUS <<\_ACEOF { (exit 0); exit 0; } --- 8165,8172 ---- done ;; + esac ! done # for ac_tag { (exit 0); exit 0; } Index: icediscover.cc =================================================================== RCS file: /cvsroot/icescan/IceScan/icediscover.cc,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** icediscover.cc 23 Dec 2006 16:39:23 -0000 1.2 --- icediscover.cc 26 Dec 2006 19:22:19 -0000 1.3 *************** *** 50,63 **** strcpy(t_hostname, hostname); ! if(par->verbose>0) ! out->line("Starting icmp ping host discovery..."); ! ! crawsocket r(AF_INET, SOCK_RAW, IPPROTO_ICMP); ! ! ! int size = 60 * 1024; ! int attempts = 0; ! r.setsockopt(SOL_SOCKET, SO_RCVBUF, (sockbuf_type *) &size, sizeof(size)); r.nonblock(true); --- 50,63 ---- strcpy(t_hostname, hostname); ! if(par->verbose>0) ! out->line("Starting icmp ping host discovery..."); ! ! crawsocket r(AF_INET, SOCK_RAW, IPPROTO_ICMP); ! ! ! int size = 60 * 1024; ! int attempts = 0; ! r.setsockopt(SOL_SOCKET, SO_RCVBUF, (sockbuf_type *) &size, sizeof(size)); r.nonblock(true); Index: ctargets.h =================================================================== RCS file: /cvsroot/icescan/IceScan/ctargets.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** ctargets.h 24 Dec 2006 19:45:55 -0000 1.1 --- ctargets.h 26 Dec 2006 19:22:19 -0000 1.2 *************** *** 3,6 **** --- 3,7 ---- #include "csubtarget.h" + #include "cdiscover.h" class ctargets{ *************** *** 66,70 **** for(int i=0; i<st; i++){ csubtarget *cst = new csubtarget(subtargets_addresses[i].c_str(), rev_hostname.c_str(), par, out); ! subtargets.push_back(cst); } --- 67,71 ---- for(int i=0; i<st; i++){ csubtarget *cst = new csubtarget(subtargets_addresses[i].c_str(), rev_hostname.c_str(), par, out); ! subtargets.push_back(cst); } Index: iceparams.h =================================================================== RCS file: /cvsroot/icescan/IceScan/iceparams.h,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** iceparams.h 24 Dec 2006 19:45:55 -0000 1.5 --- iceparams.h 26 Dec 2006 19:22:19 -0000 1.6 *************** *** 3,6 **** --- 3,7 ---- #include <vector> + #include <map> #include "icedbs.h" *************** *** 13,16 **** --- 14,19 ---- // -S0 -ST -SB -SI -SF -SN -SX -SW -SA -SS -SU + #define MAX_RETRIES 10 + #define MAX_WAIT_TIME 5000000 class iceparams{ *************** *** 26,31 **** int source_iface; ! bool ethernet; ! // PreScan settings --- 29,38 ---- int source_iface; ! bool ethernet; ! ! // ! std::map <int, int> max_retries; ! std::map <int, long> max_wait_time; ! // PreScan settings *************** *** 118,130 **** ttl = 0; ! arp_fp = false; } public: iceparams(ice_service_name_database *isnd, ice_mac_name_database *ismd){ ! this->isnd = isnd; ! this->ismd = ismd; ! ! default_init(); } --- 125,140 ---- ttl = 0; ! arp_fp = false; ! ! max_retries[0] = MAX_RETRIES; ! max_wait_time[0] = MAX_WAIT_TIME; } public: iceparams(ice_service_name_database *isnd, ice_mac_name_database *ismd){ ! this->isnd = isnd; ! this->ismd = ismd; ! ! default_init(); } *************** *** 138,144 **** } ! //#ifdef WIN32 ! // ethernet = true; ! //#endif init_default_ports(); --- 148,155 ---- } ! if(source_iface){ ! max_retries[source_iface] = MAX_RETRIES; ! max_wait_time[source_iface] = MAX_WAIT_TIME; ! } init_default_ports(); Index: configure.ac =================================================================== RCS file: /cvsroot/icescan/IceScan/configure.ac,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** configure.ac 23 Dec 2006 17:38:32 -0000 1.4 --- configure.ac 26 Dec 2006 19:22:19 -0000 1.5 *************** *** 80,84 **** fi ! # Checks for libraries. --- 80,86 ---- fi ! if test "$nmap_gcc_mayor_version" -ge 4; then ! CXXFLAGS="$CXXFLAGS -fno-strict-aliasing" ! fi # Checks for libraries. --- NEW FILE: cdiscover.h --- (This appears to be a binary file; contents omitted.) Index: TODO =================================================================== RCS file: /cvsroot/icescan/IceScan/TODO,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** TODO 24 Dec 2006 19:45:55 -0000 1.6 --- TODO 26 Dec 2006 19:22:19 -0000 1.7 *************** *** 22,26 **** * Fix Raw TCP scan timeouts. + IP Protocol Scan (-SI) - + -FA option + --badchksum option. + UDP RAW Scan (spoofed ip/mac/random data/etc...) --- 22,25 ---- *************** *** 29,35 **** -- Fingerprinting -- ! + Small fingerprint database; + Multiple fingerprinting (-F[...]) ! + Service fingerprinting (-A) (Nmap database) -- WIN32-specific -- --- 28,34 ---- -- Fingerprinting -- ! + Create os fingerprint database format; + Multiple fingerprinting (-F[...]) ! + Service fingerprinting (-A) (use Nmap-simular database) -- WIN32-specific -- *************** *** 43,47 **** * test auto-selecting interface (to listen) and source ip to scan ! * print library/names versions on icescan -V. -- Docs -- --- 42,46 ---- * test auto-selecting interface (to listen) and source ip to scan ! * print library versions on icescan -V. -- Docs -- *************** *** 49,51 **** + Man page (related links, diagram of IceScan work and etc) + Web Site ! + Readme.Win32 \ No newline at end of file --- 48,50 ---- + Man page (related links, diagram of IceScan work and etc) + Web Site ! + INSTALL.win32 \ No newline at end of file |
From: Alexander B. <da...@us...> - 2006-12-24 19:46:01
|
Update of /cvsroot/icescan/IceScan In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv27761 Modified Files: iceparams.h icescan.1 arp-fingerprints icescan.cc TODO ChangeLog AUTHORS csubtarget.cc Added Files: ctargets.h INSTALL.win32 icescan.html Removed Files: ctarget.h README.win32 Log Message: no message Index: icescan.cc =================================================================== RCS file: /cvsroot/icescan/IceScan/icescan.cc,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** icescan.cc 23 Dec 2006 16:39:23 -0000 1.5 --- icescan.cc 24 Dec 2006 19:45:55 -0000 1.6 *************** *** 26,30 **** #include "iceoutput.h" #include "icedbs.h" ! #include "ctarget.h" #include "icesockets/csocket.h" #include "icesockets/sock_utils.h" --- 26,30 ---- #include "iceoutput.h" #include "icedbs.h" ! #include "ctargets.h" #include "icesockets/csocket.h" #include "icesockets/sock_utils.h" *************** *** 112,116 **** } ! bool parse_input(int argc, char *argv[], iceparams *par){ int c; int digit_optind = 0; --- 112,116 ---- } ! bool parse_input(int argc, char *argv[], iceparams *par, ctargets *ts){ int c; int digit_optind = 0; *************** *** 327,330 **** --- 327,331 ---- par->ack_ping_discovery = true; parse_ports(i, argc, argv, par->pa_ports, false); + i++; break; *************** *** 348,351 **** --- 349,353 ---- par->udp_ping_discovery = true; parse_ports(i, argc, argv, par->pu_ports, false); + i++; break; *************** *** 358,361 **** --- 360,364 ---- case 'p': parse_ports(i, argc, argv, par->ports, true); + i++; break; *************** *** 368,372 **** }else{ //DBGOUTPUT("Target is: " << argv[i]); ! par->target.assign(argv[i]); } --- 371,375 ---- }else{ //DBGOUTPUT("Target is: " << argv[i]); ! ts->add_subtargets(argv[i]); } *************** *** 410,430 **** std::cout << version_string << std::endl; ! ! if(! parse_input(argc, argv, &par) ) return 1; par.by_default_init(); ! if(par.target.empty()){ out << "No target hosts/networks specified!" << iceoutput::endl; return 1; } - ctargets ts(&par, &out); - - ftime(&tp1); - - ts.add_subtargets(par.target); - if(! (discover = ts.discover()) ){ out << "Warn: Host(s) seems down. If it is really up, but blocking ping probes, try -P0." << iceoutput::endl; --- 413,430 ---- std::cout << version_string << std::endl; ! ctargets ts(&par, &out); ! ! ftime(&tp1); ! ! if(! parse_input(argc, argv, &par, &ts) ) return 1; par.by_default_init(); ! if(ts.empty()){ out << "No target hosts/networks specified!" << iceoutput::endl; return 1; } if(! (discover = ts.discover()) ){ out << "Warn: Host(s) seems down. If it is really up, but blocking ping probes, try -P0." << iceoutput::endl; *************** *** 433,443 **** if(discover){ ts.scan(); ! ts.detect(); } ftime(&tp2); - out.line(""); - out << "IceScan finished: " << ts.subtargets_count() << " IP address(es) (" << ts.up_subtargets_count() << " host(s) up) processed in " << timeb_diff(tp1, tp2) << " seconds." << iceoutput::endl; --- 433,441 ---- if(discover){ ts.scan(); ! ts.detect(); } ftime(&tp2); out << "IceScan finished: " << ts.subtargets_count() << " IP address(es) (" << ts.up_subtargets_count() << " host(s) up) processed in " << timeb_diff(tp1, tp2) << " seconds." << iceoutput::endl; Index: csubtarget.cc =================================================================== RCS file: /cvsroot/icescan/IceScan/csubtarget.cc,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** csubtarget.cc 23 Dec 2006 16:39:23 -0000 1.3 --- csubtarget.cc 24 Dec 2006 19:45:56 -0000 1.4 *************** *** 48,51 **** --- 48,52 ---- if(par->scan_type == SYN_SCAN) raw_tcp_scan("SYN"); if(par->scan_type == UDP_SCAN) udp_scan(); + out->line(""); } --- NEW FILE: ctargets.h --- #ifndef CTARGETS_H #define CTARGETS_H #include "csubtarget.h" class ctargets{ iceoutput *out; iceparams *par; std::vector <csubtarget *> subtargets; //subtargets (e.g. aliases for domain name, multiple ips per hostname, e.t.c.) public: ctargets(iceparams *par, iceoutput *out){ this->par = par; this->out = out; } int subtargets_count(){ return subtargets.size(); } bool empty(){ return subtargets.size() > 0 ? false : true; } int up_subtargets_count(){ int up = 0; for(int i = 0; i<subtargets.size(); i++){ if(subtargets[i]->discovered) up++; } return up; } int add_subtargets(icestring hostname){ std::vector <icestring> subtargets_addresses; //subtarget ips as string int st = get_ips_byhost(hostname.c_str(), subtargets_addresses); icestring rev_hostname; if((!is_domainname(hostname)) && par->reverse_dns){ get_host_byip(hostname, rev_hostname); if(rev_hostname == "") rev_hostname.assign(hostname); }else{ rev_hostname.assign(hostname); } if(st>1){ *out << "Target resolves in multiple IPs: "; for(int i=0; i<st; i++) *out << subtargets_addresses[i].c_str() << " "; *out << "\n"; } if(par->use_first_resolve){ *out << "Using first IP.\n"; st = 1; } for(int i=0; i<st; i++){ csubtarget *cst = new csubtarget(subtargets_addresses[i].c_str(), rev_hostname.c_str(), par, out); subtargets.push_back(cst); } return st; } bool discover(){ bool discovered = false; for(int i=0; i<subtargets.size(); i++){ if(par->no_host_discovery) discovered |= (subtargets[i]->discovered = true); else discovered |= subtargets[i]->discover(); } return discovered; } void scan(){ for(int i=0; i<subtargets.size(); i++){ if(subtargets[i]->discovered){ subtargets[i]->scan(); subtargets[i]->mac_discover(); } } } void detect(){ for(int i=0; i<subtargets.size(); i++){ if(subtargets[i]->discovered){ subtargets[i]->detect(); } } } ~ctargets(){ for(int i=0; i<subtargets.size(); i++){ delete subtargets[i]; } } private: }; #endif Index: ChangeLog =================================================================== RCS file: /cvsroot/icescan/IceScan/ChangeLog,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** ChangeLog 24 Dec 2006 10:23:26 -0000 1.5 --- ChangeLog 24 Dec 2006 19:45:55 -0000 1.6 *************** *** 17,20 **** --- 17,22 ---- * fixed bug with MACs when target resolves in multiple IPs. + added ARP/RAW (send arp packet insted of udp if user is root) discovery. + + add multiple targets handling. + * fixed several bugs with portlists. *** IceScan v. 0.0.5, 18 Dec 2006 *** Index: arp-fingerprints =================================================================== RCS file: /cvsroot/icescan/IceScan/arp-fingerprints,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** arp-fingerprints 23 Dec 2006 17:38:32 -0000 1.2 --- arp-fingerprints 24 Dec 2006 19:45:55 -0000 1.3 *************** *** 1,10 **** ! # pls, add copyrights here ! # ... 11110100000 FreeBSD 5.3, Win98, WinME, NT4, 2000, XP, 2003 01000100000 Linux 2.2, 2.4, 2.6 ! 01010100000 Linux 2.2, 2.4, 2.6 # If non-local IP is routed ! 00000100000 Cisco IOS 12.0, 12.1, 12.2, 12.3 ! 11110110000 Solaris 2.5.1, 2.6, 7, 8, 9, 10, HP-UX 11, D-Link DP-300U 01000111111 ScreenOS 5.0 11110000000 Linux 2.0, MacOS 10.4, IPSO 3.2.1 --- 1,18 ---- ! # ARP Fingerptinting database. ! # See COPYING for licence information. ! # ! # Part of this database and fingerprinting algorithm are by Roy Hills ! # <Roy.Hills(at)nta-monitor.com> ! # See arp-scan (http://www.nta-monitor.com/tools/arp-scan/) ! # application for more info. ! # 11110100000 FreeBSD 5.3, Win98, WinME, NT4, 2000, XP, 2003 01000100000 Linux 2.2, 2.4, 2.6 ! 01010100000 Linux 2.2, 2.4, 2.6 ! #^ If non-local IP is routed ! 00000100000 Cisco IOS 12.0, 12.1, 12.2, 12.3, 12.4 ! 11110110000 Solaris 2.5.1, 2.6, 7, 8, 9, 10, HP-UX 11, D-Link DP-300U ! #^ UPDATED 01000111111 ScreenOS 5.0 11110000000 Linux 2.0, MacOS 10.4, IPSO 3.2.1 *************** *** 12,16 **** 10010100011 SCO OS 5.0.7 10110100000 Win 3.11, 95, NT 3.51 ! 11110000011 4.3 BSD, OpenBSD 3.1, OpenBSD 3.9, HP Procurve 10110110000 NetBSD 2.0.2 00010110011 PIX OS --- 20,25 ---- 10010100011 SCO OS 5.0.7 10110100000 Win 3.11, 95, NT 3.51 ! 11110000011 4.3 BSD, OpenBSD 3.1, OpenBSD 3.9, HP Procurve ! #^ UPDATED 10110110000 NetBSD 2.0.2 00010110011 PIX OS *************** *** 18,22 **** --- 27,35 ---- 00000110000 Netware 6.5 11110111111 Cisco ATA + #^ NEW 11110001111 HP Network Printers (1022n) + #^ NEW 11110111100 Level-One Print Server (FPS-3002) + #^ NEW 11110111111 D-Link 704p + #^ NEW \ No newline at end of file --- README.win32 DELETED --- Index: AUTHORS =================================================================== RCS file: /cvsroot/icescan/IceScan/AUTHORS,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** AUTHORS 21 Dec 2006 20:42:10 -0000 1.1 --- AUTHORS 24 Dec 2006 19:45:55 -0000 1.2 *************** *** 32,35 **** --- 32,40 ---- Potions of code from samba and nbtstat used in nbtwrapper.h. + Roy Hills <Roy.Hills(at)nta-monitor.com> for his arp-scan + (http://www.nta-monitor.com/tools/arp-scan/). IceScan uses + same methodic in ARP fingerprinting as arp-scan. Also, I + borrowed a part of his fingerprinting database. + And to Fyodor, the AUTHOR of the GREATEST internet security scanner NNAP; I've spent some good nights in analyzing Index: iceparams.h =================================================================== RCS file: /cvsroot/icescan/IceScan/iceparams.h,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** iceparams.h 23 Dec 2006 16:39:22 -0000 1.4 --- iceparams.h 24 Dec 2006 19:45:55 -0000 1.5 *************** *** 28,35 **** bool ethernet; - // Target - - icestring target; - // PreScan settings --- 28,31 ---- --- ctarget.h DELETED --- Index: icescan.1 =================================================================== RCS file: /cvsroot/icescan/IceScan/icescan.1,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** icescan.1 23 Dec 2006 16:39:23 -0000 1.3 --- icescan.1 24 Dec 2006 19:45:55 -0000 1.4 *************** *** 2,41 **** .\" groff -man -Tascii icescan.1 .\" ! .TH ICESCAN 1 "DECEMBER 2006" "" "User Manuals" .SH NAME \fIicescan\fR \- network auditing/exploration tool and port scanner. .SH SYNOPSIS .B \fBicescan\fR [\fIscan_type\fR] [\fIoptions\fR] <\fItarget\fR> .SH DESCRIPTION ! \fBIceScan\fR is an open source tool (GPL licenced) for network ! exploraion and auditing. You can find that IceScan ! in some options and features very close to Nmap ! (\fIhttp://www.insecure.org/nmap/\fR) and that's the true. IceScan ! was written for educational purposes, but even now have some features, ! that doesn't exists in other \fIfree\fR network auditing tools, so you may ! find it useful in process of security auditing your network(s). .PP ! Either as Nmap, main result provided by IceScan is ports table. It ! consist of three columns: port number/protocol, port state and service. ! Port can have different states: open, closed, filtered, open|filtered (o|f) and ! unfiltered (unfilt). Open port means that there's an application on target, ! listening for connections/datagrams on this port. Filtered port is a port ! blocked by firewall. Closed ports have no applications listening on them, ! but access isn't blocked by firewall. And at last, unfiltered port means ! that port isn't closed and IceScan can't determine which state is has: ! opened or filtered. The service column provide some information about ! application that running or can be run on this port. This information ! may include supposed protocol or application name/version. .PP ! The other type of results may include discovery(reverse DNS lookups, MACs ! timestamps, etc), fingerprinting (OS version, device type and etc) ! information and also some vulnerability testings. .PP ! You can get the newest version of IceScan from \fIhttp://sf.net/projects/IceScan\fR. .SH OPTIONS SUMMARY .PP ! This options summary is printed when IceScan is started with no arguments - ! a short crib to all IceScan commands and specific options. ! Beware that options list may change from version to version. .PP .nf --- 2,38 ---- .\" groff -man -Tascii icescan.1 .\" ! .de Sp ! .if n .sp ! .if t .sp 0.4 ! .. ! .TH "ICESCAN" "1" "DECEMBER 2006" "" "User Manuals" .SH NAME \fIicescan\fR \- network auditing/exploration tool and port scanner. .SH SYNOPSIS + .HP 5 .B \fBicescan\fR [\fIscan_type\fR] [\fIoptions\fR] <\fItarget\fR> .SH DESCRIPTION ! \fBIceScan\fR is an open source tool (GPL licenced) for network audit and exploraion. You can find that IceScan in some options and features very close to Nmap (\fIhttp://www.insecure.org/nmap/\fR) and that's the true. IceScan was written for educational purposes, but even now have some features, that doesn't exists in other \fIfree\fR network auditing tools, so you may find it useful in process of security auditing your network(s). .PP ! The working process of IceScan shown on following diagram: ! .nf ! discover t1 display ! t1, ... tn -> .... -> scan t1 -> .. -> scan tn -> summary ! discover tn results ! .fi .PP ! As you see, IceScan recieves at start a list of targets, then process their disovery in parallel, after that, scanning process of \fBdiscovered\fR begins. Targets scan is consequent; after every target finished IceScan displays port table for that target. At the and of the scan process some summary information printed. Unlike Nmap, IceScan does not provide very fast scan of billions IPs, it process them one-by-one and, hopefully, more accurately and stealthy. .PP ! Either as Nmap, main result provided by IceScan is ports table. It consist of three columns: port number/protocol, port state and service. Port can have different states: open, closed, filtered, open|filtered and unfiltered (unfilt). Open port means that there's an application on target, listening for connections/datagrams on this port. Filtered port is a port blocked by firewall. Closed ports have no applications listening on them, but access isn't blocked by firewall. And at last, unfiltered port means that port isn't closed and IceScan can't determine which state is has: opened or filtered. The service column provide some information about application that running or can be run on this port. This information may include supposed protocol or application name and version. ! .PP ! The other type of results may include discovery(reverse DNS lookups, MACs timestamps, etc), fingerprinting (OS version, device type and etc) information and also some vulnerability testings. ! .PP ! Also see \fIREADME\fR and \fIINSTALL\fR for more on using/installing IceScan and \fINEWS\fR for information about IceScan news. ! .PP ! You can get the newest version of IceScan from: \fIhttp://sf.net/projects/IceScan\fR, or from cvs: pserver:ano...@ic...:/cvsroot/icescan, module name is IceScan. ! .SH OPTIONS SUMMARY .PP ! This options summary is printed when IceScan is started with no arguments - a short crib to all IceScan commands and specific options. Beware that options list may change from version to version. .PP .nf *************** *** 63,67 **** INTERFACES: --list-interfaces: list all interfaces ! -i <iface-number>: use interface <iface-number> for pcap/source iface --send-eth: use channel(2) level to send raw packets --send-ip: use network(3) level to send raw packets --- 60,64 ---- INTERFACES: --list-interfaces: list all interfaces ! -i <iface-number>: use interface <iface-number> for pcap iface --send-eth: use channel(2) level to send raw packets --send-ip: use network(3) level to send raw packets *************** *** 76,97 **** -V/--version: print version information and exit -?: this message .PP ! For useful work, IceScan requires only one argument \- target. Target may be ! hostname, dns or IP address of machine you want to scan. Here are some ! examples of targets: 127.0.0.1, icestation, www.novell.com, 205.217.153.62 ! and etc. If target is dns and it resolves in many IPs, IceScan will process ! all of them neither --use-first-resolve option is used. .SH HOST DISCOVERY OPTIONS ! Before you can scan the target machine, you should check is it really up. ! If you don't know this, you can incorrectly interpret port scanning results. ! Also, host discovery can provide you some additional information on target, ! such as MACs, timestamps and etc. .PP ! Note: -P* options can be combined. .TP \fB\-P0\fR (no ping) ! This options tells IceScan skip host discovery process and set target(s) ! to be up. .SH SCAN OPTIONS .SH INTERFACES --- 73,102 ---- -V/--version: print version information and exit -?: this message + .fi .PP ! For useful work, IceScan requires only one argument \- target. Target may be hostname, dns or IP address of machine you want to scan. Here are some examples of targets: 127.0.0.1, icestation, novell.com, 205.217.153.62 and etc. If target is domain name and it resolves in many IPs, IceScan will process all of them neither --use-first-resolve option is used. .SH HOST DISCOVERY OPTIONS ! Before you can scan the target machine, you should check is it really up. If you don't know this, you can incorrectly interpret port scanning results. Also, host discovery can provide you some additional information on target, ! such as MACs, timestamps and etc. .PP ! Note: -P* options can be combined. By default -PE and -PA are on. .TP \fB\-P0\fR (no ping) ! This options tells IceScan skip host discovery process and set target(s) to be up. ! .TP ! \fB\-PA\fR [portlist] (connect() ping) ! To discover that target is up, IceScan tries to connect() to all ports in portlist (or, if no portlist specified, to port 80) and if target respons in any way, it's determined as up. This discovery used by default and doesn't need superuser privileges. See \fB-p\fR option for details on portlist. ! .TP ! \fB\-PU\fR [portlist] (udp ping) ! In UDP ping, IceScan sends UDP datagrams to target host and, if host replies with udp or icmp message, it's determined as up. Portlist defines UDP destination ports, and, if no portlist specified port randomly selecting in interval of [30000, 65535].This scan requires superuser privileges. See \fB-p\fR option for details on portlist. ! .TP ! \fB\-PE/-PT/-PM\fR (ICMP Echo/TimeStamp/NetMask pings) ! This is "standart" host discovery way: through ICMP protocol. IceScan send echo/timestamp/netmask request to target and waiting for reply. If reply recieved, target is up. This scan requires superuser privileges. \fB-PE\fR is default option for discovery. ! \fB-PR\fR (ARP host discovery) ! This is an ARP low-level host-discovery. IceScan send target some message, and then, check ARP cache for target's IP. If it is there, target is up. When you run \fB-PR\fR under non-superuser, IceScan sends UDP datagram to port 138, hoping that OS will do ARP the best. Under superuser it sends only standart ARP Request. ARP Ping useful only on local networks. ! .TP ! \fB\-n\fR (no dns lookups) ! This option tells IceScan that it should not make reverse-dns lookups (e.g. lookups for domain-name by IP address). Sometimes, it can make discovering process faster. .SH SCAN OPTIONS .SH INTERFACES *************** *** 103,141 **** .SH BUGS .PP ! IceScan is still under constant development, so it is possible that you will ! encounter a bug while using it. Please report bugs to ! <icescan-bugs(at)lists.sourceforge.net>. \%(\fIhttp://lists.sf.net/mailman/listinfo/icescan-bugs\fR) .PP Be sure you tell us: ! .TP 4 ! 1) Operating System and version (the command 'uname -sr' may ! tell you this, although on Linux systems it will probably ! tell you only the version number of the Linux kernel, not of ! the distribution as a whole; on Linux systems, please tell us ! both the version number of the kernel, and which version of ! which distribution you're running). ! .TP 4 ! 2) Version of libpcap, libdnet and libpcre. Compressed\ config.log ! file. ! .TP 4 ! 3) Version of IceScan (the command 'icescan -V' will tell you, ! unless the bug is so severe as to prevent that from working, ! and should also tell you libraries with which it was built). ! .TP 4 ! 4) The command you used to invoke IceScan, and the sequence of ! operations you performed that caused the bug to appear. .PP ! If the bug is produced by a particular trace file, please be sure to send ! a trace file along with your bug description. Please don't send a trace file ! greater than 1 MB when compressed. If the trace file contains sensitive ! information (e.g., passwords), then please do not send it. .PP ! If IceScan died on you with a 'segmentation violation', 'bus error', 'abort', ! or other error that produces a UNIX core dump file, you can ! help the developers a lot if you have a debugger installed. A stack ! trace can be obtained by using your debugger ('gdb' in this example), ! the wireshark binary, and the resulting core file. Here's an example of ! how to use the gdb command 'backtrace' to do so. .nf --- 108,131 ---- .SH BUGS .PP ! IceScan is still under constant development, so it is possible that you will encounter a bug while using it. Please report bugs to <icescan-bugs(at)lists.sourceforge.net>. \%(\fIhttp://lists.sf.net/mailman/listinfo/icescan-bugs\fR) .PP Be sure you tell us: ! .TP ! 1) ! Operating System and version (the command 'uname -sr' may tell you this, although on Linux systems it will probably tell you only the version number of the Linux kernel, not of the distribution as a whole; on Linux systems, please tell us both the version number of the kernel, and which version of which distribution you're running). ! .TP ! 2) ! Version of libpcap, libdnet and libpcre. Compressed\ config.log file. ! .TP ! 3) ! Version of IceScan (the command 'icescan -V' will tell you, unless the bug is so severe as to prevent that from working, and should also tell you libraries with which it was built). ! .TP ! 4) ! The command you used to invoke IceScan, and the sequence of operations you performed that caused the bug to appear. .PP ! If the bug is produced by a particular trace file, please be sure to send a trace file along with your bug description. Please don't send a trace file greater than 1 MB when compressed. If the trace file contains sensitive information (e.g., passwords), then please do not send it. .PP ! If IceScan died on you with a 'segmentation violation', 'bus error', 'abort', or other error that produces a UNIX core dump file, you can help the developers a lot if you have a debugger installed. A stack trace can be obtained by using your debugger ('gdb' in this example), the IceScan binary, and the resulting core file. Here's an example of how to use the gdb command 'backtrace' to do so. .nf *************** *** 145,151 **** (gdb) \fBquit\fR $ .PP ! The core dump file may be named "icescan.core" rather than "core" on ! some platforms (e.g., BSD systems). .SH AUTHOR --- 135,141 ---- (gdb) \fBquit\fR $ + .fi .PP ! The core dump file may be named "icescan.core" rather than "core" on some platforms (e.g., BSD systems). .SH AUTHOR *************** *** 153,158 **** (http://sf.net/projects/icescan) ! See AUTHORS for more details and names of people who made contributions to ! IceScan. .SH REFERENCES --- 143,148 ---- (http://sf.net/projects/icescan) ! See \fIAUTHORS\fR for more details and names of people who made contributions to IceScan or ! whos code/algorithms/etc implemented in IceScan. .SH REFERENCES *************** *** 170,171 **** --- 160,173 ---- \%http://libdnet.sourceforge.net .TP 4 + 5.\ arp-scan + \%http://www.nta-monitor.com/tools/arp-scan/ + + .SH LICENSE + .PP + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation, + .PP + 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. + .PP + 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., 675 Mass Ave, Cambridge, MA 02139, USA. + .PP + See \fICOPYING\fR for more details. \ No newline at end of file --- NEW FILE: INSTALL.win32 --- Index: TODO =================================================================== RCS file: /cvsroot/icescan/IceScan/TODO,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** TODO 24 Dec 2006 10:23:26 -0000 1.5 --- TODO 24 Dec 2006 19:45:55 -0000 1.6 *************** *** 5,9 **** -- UI -- - + add multiple targets handling; + --data-dir option for directory handling the databases + output ports options; move show_ports into iceoutput --- 5,8 ---- *************** *** 14,17 **** --- 13,18 ---- + Rewrite discovery to support multiple subtargets. + add own DNS-server module. + + DHCP (client or server) discover. + + NetBIOS discover. -- Scanning -- *************** *** 30,34 **** + Small fingerprint database; + Multiple fingerprinting (-F[...]) ! + Service fingerprinting (-A) -- WIN32-specific -- --- 31,35 ---- + Small fingerprint database; + Multiple fingerprinting (-F[...]) ! + Service fingerprinting (-A) (Nmap database) -- WIN32-specific -- *************** *** 46,50 **** -- Docs -- ! + Man page (licence, related links, digram of IceScan work and etc) + Web Site + Readme.Win32 \ No newline at end of file --- 47,51 ---- -- Docs -- ! + Man page (related links, diagram of IceScan work and etc) + Web Site + Readme.Win32 \ No newline at end of file --- NEW FILE: icescan.html --- <!-- Creator : groff version 1.19.2 --> <!-- CreationDate: Sun Dec 24 22:17:51 2006 --> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta name="generator" content="groff -Thtml, see www.gnu.org"> <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> <meta name="Content-Style" content="text/css"> <style type="text/css"> p { margin-top: 0; margin-bottom: 0; } pre { margin-top: 0; margin-bottom: 0; } table { margin-top: 0; margin-bottom: 0; } </style> <title>ICESCAN</title> </head> <body> <h1 align=center>ICESCAN</h1> <a href="#NAME">NAME</a><br> <a href="#SYNOPSIS">SYNOPSIS</a><br> <a href="#DESCRIPTION">DESCRIPTION</a><br> <a href="#OPTIONS SUMMARY">OPTIONS SUMMARY</a><br> <a href="#HOST DISCOVERY OPTIONS">HOST DISCOVERY OPTIONS</a><br> <a href="#SCAN OPTIONS">SCAN OPTIONS</a><br> <a href="#INTERFACES">INTERFACES</a><br> <a href="#FW/EVASION AND SPOOFING OPTIONS">FW/EVASION AND SPOOFING OPTIONS</a><br> <a href="#OTHER OPTIONS">OTHER OPTIONS</a><br> <a href="#EXAMPLES">EXAMPLES</a><br> <a href="#BUGS">BUGS</a><br> <a href="#AUTHOR">AUTHOR</a><br> <a href="#REFERENCES">REFERENCES</a><br> <a href="#LICENSE">LICENSE</a><br> <hr> <a name="NAME"></a> <h2>NAME</h2> <p style="margin-left:11%; margin-top: 1em"><i>icescan</i> − network auditing/exploration tool and port scanner.</p> <a name="SYNOPSIS"></a> <h2>SYNOPSIS</h2> <p style="margin-left:18%; margin-top: 1em"><b>icescan</b> [<i>scan_type</i>] [<i>options</i>] <<i>target</i>></p> <a name="DESCRIPTION"></a> <h2>DESCRIPTION</h2> <p style="margin-left:11%; margin-top: 1em"><b>IceScan</b> is an open source tool (GPL licenced) for network audit and exploraion. You can find that IceScan in some options and features very close to Nmap (<i>http://www.insecure.org/nmap/</i>) and that’s the true. IceScan was written for educational purposes, but even now have some features, that doesn’t exists in other <i>free</i> network auditing tools, so you may find it useful in process of security auditing your network(s).</p> <p style="margin-left:11%; margin-top: 1em">The working process of IceScan shown on following diagram: <br> discover t1 display <br> t1, ... tn -> .... -> scan t1 -> .. -> scan tn -> summary <br> discover tn results</p> <p style="margin-left:11%; margin-top: 1em">As you see, IceScan recieves at start a list of targets, then process their disovery in parallel, after that, scanning process of <b>discovered</b> begins. Targets scan is consequent; after every target finished IceScan displays port table for that target. At the and of the scan process some summary information printed. Unlike Nmap, IceScan does not provide very fast scan of billions IPs, it process them one-by-one and, hopefully, more accurately and stealthy.</p> <p style="margin-left:11%; margin-top: 1em">Either as Nmap, main result provided by IceScan is ports table. It consist of three columns: port number/protocol, port state and service. Port can have different states: open, closed, filtered, open|filtered and unfiltered (unfilt). Open port means that there’s an application on target, listening for connections/datagrams on this port. Filtered port is a port blocked by firewall. Closed ports have no applications listening on them, but access isn’t blocked by firewall. And at last, unfiltered port means that port isn’t closed and IceScan can’t determine which state is has: opened or filtered. The service column provide some information about application that running or can be run on this port. This information may include supposed protocol or application name and version.</p> <p style="margin-left:11%; margin-top: 1em">The other type of results may include discovery(reverse DNS lookups, MACs timestamps, etc), fingerprinting (OS version, device type and etc) information and also some vulnerability testings.</p> <p style="margin-left:11%; margin-top: 1em">Also see <i>README</i> and <i>INSTALL</i> for more on using/installing IceScan and <i>NEWS</i> for information about IceScan news.</p> <p style="margin-left:11%; margin-top: 1em">You can get the newest version of IceScan from: <i>http://sf.net/projects/IceScan</i>, or from cvs: pserver:ano...@ic...:/cvsroot/icescan, module name is IceScan.</p> <a name="OPTIONS SUMMARY"></a> <h2>OPTIONS SUMMARY</h2> <p style="margin-left:11%; margin-top: 1em">This options summary is printed when IceScan is started with no arguments - a short crib to all IceScan commands and specific options. Beware that options list may change from version to version.</p> <p style="margin-left:11%; margin-top: 1em">USAGE: ./icescan [options] [scan type] <target> <br> target may be hostname or IP address. <br> HOST DISCOVERY: <br> default is PA and PE. <br> -P0: skip host discovery <br> -PA: ACK Ping host discovery <br> -PR: ARP host discovery <br> -PE/PT/PM: ICMP Echo/Timestamp/Mask host discovery <br> -PU: UDP Ping discovery <br> -n: disable reverse-dns lookups <br> SCAN: <br> default is tcp connect() <br> -ST/SA/SS/SW: tcp connect()/ACK/SYN/Window scan <br> -SB: udp NetBIOS scan <br> -SI: IP Protocol scan <br> -SN/SF/SX: stealth tcp Null/FIN/XMAS scan <br> -SU: udp scan. <br> -S0: no scan <br> --scanflags <flags>: Customize TCP scan flags (SF/SX/SN scans) <br> -p <port range>: specify port range to scan (default 1-1024) <br> You can use: 1-10; 1; 1-10,12-14; etc. <br> INTERFACES: <br> --list-interfaces: list all interfaces <br> -i <iface-number>: use interface <iface-number> for pcap iface <br> --send-eth: use channel(2) level to send raw packets <br> --send-ip: use network(3) level to send raw packets <br> FW/IDS EVASION AND SPOOFING: <br> -s <IPv4 address>: spoof source address <br> --source-port/-g <portnum>: use specified source port number <br> --ttl <value>: set IP time-to-live field <br> OTHER: <br> --use-first-resolve: use only 1st IP in DNS resolving of target <br> -v[v[v[v]]]]: verbose levels <br> --uid0: assume that the current user is fully privileged <br> -V/--version: print version information and exit <br> -?: this message</p> <p style="margin-left:11%; margin-top: 1em">For useful work, IceScan requires only one argument − target. Target may be hostname, dns or IP address of machine you want to scan. Here are some examples of targets: 127.0.0.1, icestation, novell.com, 205.217.153.62 and etc. If target is domain name and it resolves in many IPs, IceScan will process all of them neither --use-first-resolve option is used.</p> <a name="HOST DISCOVERY OPTIONS"></a> <h2>HOST DISCOVERY OPTIONS</h2> <p style="margin-left:11%; margin-top: 1em">Before you can scan the target machine, you should check is it really up. If you don’t know this, you can incorrectly interpret port scanning results. Also, host discovery can provide you some additional information on target, such as MACs, timestamps and etc.</p> <p style="margin-left:11%; margin-top: 1em">Note: -P* options can be combined. By default -PE and -PA are on. <b><br> −P0</b> (no ping)</p> <p style="margin-left:22%;">This options tells IceScan skip host discovery process and set target(s) to be up.</p> <p style="margin-left:11%;"><b>−PA</b> [portlist] (connect() ping)</p> <p style="margin-left:22%;">To discover that target is up, IceScan tries to connect() to all ports in portlist (or, if no portlist specified, to port 80) and if target respons in any way, it’s determined as up. This discovery used by default and doesn’t need superuser privileges. See <b>-p</b> option for details on portlist.</p> <p style="margin-left:11%;"><b>−PU</b> [portlist] (udp ping)</p> <p style="margin-left:22%;">In UDP ping, IceScan sends UDP datagrams to target host and, if host replies with udp or icmp message, it’s determined as up. Portlist defines UDP destination ports, and, if no portlist specified port randomly selecting in interval of [30000, 65535].This scan requires superuser privileges. See <b>-p</b> option for details on portlist.</p> <p style="margin-left:11%;"><b>−PE/-PT/-PM</b> (ICMP Echo/TimeStamp/NetMask pings)</p> <p style="margin-left:22%;">This is "standart" host discovery way: through ICMP protocol. IceScan send echo/timestamp/netmask request to target and waiting for reply. If reply recieved, target is up. This scan requires superuser privileges. <b>-PE</b> is default option for discovery. <b>-PR</b> (ARP host discovery) This is an ARP low-level host-discovery. IceScan send target some message, and then, check ARP cache for target’s IP. If it is there, target is up. When you run <b>-PR</b> under non-superuser, IceScan sends UDP datagram to port 138, hoping that OS will do ARP the best. Under superuser it sends only standart ARP Request. ARP Ping useful only on local networks.</p> <p style="margin-left:11%;"><b>−n</b> (no dns lookups)</p> <p style="margin-left:22%;">This option tells IceScan that it should not make reverse-dns lookups (e.g. lookups for domain-name by IP address). Sometimes, it can make discovering process faster.</p> <a name="SCAN OPTIONS"></a> <h2>SCAN OPTIONS</h2> <a name="INTERFACES"></a> <h2>INTERFACES</h2> <a name="FW/EVASION AND SPOOFING OPTIONS"></a> <h2>FW/EVASION AND SPOOFING OPTIONS</h2> <a name="OTHER OPTIONS"></a> <h2>OTHER OPTIONS</h2> <a name="EXAMPLES"></a> <h2>EXAMPLES</h2> <a name="BUGS"></a> <h2>BUGS</h2> <p style="margin-left:11%; margin-top: 1em">IceScan is still under constant development, so it is possible that you will encounter a bug while using it. Please report bugs to <icescan-bugs(at)lists.sourceforge.net>. (<i>http://lists.sf.net/mailman/listinfo/icescan-bugs</i>)</p> <p style="margin-left:11%; margin-top: 1em">Be sure you tell us:</p> <table width="100%" border=0 rules="none" frame="void" cellspacing="0" cellpadding="0"> <tr valign="top" align="left"> <td width="11%"></td> <td width="3%"> <p style="margin-top: 1em" valign="top">1)</p></td> <td width="8%"></td> <td width="78%"> <p style="margin-top: 1em" valign="top">Operating System and version (the command ’uname -sr’ may tell you this, although on Linux systems it will probably tell you only the version number of the Linux kernel, not of the distribution as a whole; on Linux systems, please tell us both the version number of the kernel, and which version of which distribution you’re running).</p></td> <tr valign="top" align="left"> <td width="11%"></td> <td width="3%"> <p style="margin-top: 1em" valign="top">2)</p></td> <td width="8%"></td> <td width="78%"> <p style="margin-top: 1em" valign="top">Version of libpcap, libdnet and libpcre. Compressed config.log file.</p></td> <tr valign="top" align="left"> <td width="11%"></td> <td width="3%"> <p style="margin-top: 1em" valign="top">3)</p></td> <td width="8%"></td> <td width="78%"> <p style="margin-top: 1em" valign="top">Version of IceScan (the command ’icescan -V’ will tell you, unless the bug is so severe as to prevent that from working, and should also tell you libraries with which it was built).</p></td> <tr valign="top" align="left"> <td width="11%"></td> <td width="3%"> <p style="margin-top: 1em" valign="top">4)</p></td> <td width="8%"></td> <td width="78%"> <p style="margin-top: 1em" valign="top">The command you used to invoke IceScan, and the sequence of operations you performed that caused the bug to appear.</p></td> </table> <p style="margin-left:11%; margin-top: 1em">If the bug is produced by a particular trace file, please be sure to send a trace file along with your bug description. Please don’t send a trace file greater than 1 MB when compressed. If the trace file contains sensitive information (e.g., passwords), then please do not send it.</p> <p style="margin-left:11%; margin-top: 1em">If IceScan died on you with a ’segmentation violation’, ’bus error’, ’abort’, or other error that produces a UNIX core dump file, you can help the developers a lot if you have a debugger installed. A stack trace can be obtained by using your debugger (’gdb’ in this example), the IceScan binary, and the resulting core file. Here’s an example of how to use the gdb command ’backtrace’ to do so.</p> <p style="margin-left:11%; margin-top: 1em">$ <b>gdb icescan core</b> <br> (gdb) <b>backtrace</b> <br> .... prints the stack trace <br> (gdb) <b>quit</b> <br> $</p> <p style="margin-left:11%; margin-top: 1em">The core dump file may be named "icescan.core" rather than "core" on some platforms (e.g., BSD systems).</p> <a name="AUTHOR"></a> <h2>AUTHOR</h2> <p style="margin-left:11%; margin-top: 1em">Alexander Bolshev[<i>Key</i>] <key(at)timeold.ru> <br> (http://sf.net/projects/icescan)</p> <p style="margin-left:11%; margin-top: 1em">See <i>AUTHORS</i> for more details and names of people who made contributions to IceScan or whos code/algorithms/etc implemented in IceScan.</p> <a name="REFERENCES"></a> <h2>REFERENCES</h2> <p style="margin-left:11%; margin-top: 1em">1. Libpcap portable packet capture library</p> <p style="margin-left:17%;">http://www.tcpdump.org</p> <p style="margin-left:11%;">2. WinPcap library</p> <p style="margin-left:17%;">http://www.winpcap.org</p> <p style="margin-left:11%;">3. PCRE library</p> <p style="margin-left:17%;">http://www.pcre.org</p> <p style="margin-left:11%;">4. Libdnet</p> <p style="margin-left:17%;">http://libdnet.sourceforge.net</p> <p style="margin-left:11%;">5. arp-scan</p> <p style="margin-left:17%;">http://www.nta-monitor.com/tools/arp-scan/</p> <a name="LICENSE"></a> <h2>LICENSE</h2> <p style="margin-left:11%; margin-top: 1em">This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation,</p> <p style="margin-left:11%; margin-top: 1em">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.</p> <p style="margin-left:11%; margin-top: 1em">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., 675 Mass Ave, Cambridge, MA 02139, USA.</p> <p style="margin-left:11%; margin-top: 1em">See <i>COPYING</i> for more details.</p> <hr> </body> </html> |
From: Alexander B. <da...@us...> - 2006-12-24 19:45:57
|
Update of /cvsroot/icescan/IceScan/nbproject In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv27761/nbproject Modified Files: configurations.xml Log Message: no message Index: configurations.xml =================================================================== RCS file: /cvsroot/icescan/IceScan/nbproject/configurations.xml,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** configurations.xml 23 Dec 2006 16:39:23 -0000 1.4 --- configurations.xml 24 Dec 2006 19:45:56 -0000 1.5 *************** *** 12,22 **** <itemPath>icesockets/queue.h</itemPath> <itemPath>icesockets/sock_err.h</itemPath> - <itemPath>icesockets/sock_name.h</itemPath> <itemPath>icesockets/sock_name.cc</itemPath> <itemPath>icesockets/sock_types.h</itemPath> - <itemPath>icesockets/sock_utils.h</itemPath> <itemPath>icesockets/sock_utils.cc</itemPath> ! <itemPath>icesockets/sock_win.h</itemPath> <itemPath>icesockets/sock_win.cc</itemPath> </logicalFolder> <logicalFolder name="ExternalFiles" --- 12,22 ---- <itemPath>icesockets/queue.h</itemPath> <itemPath>icesockets/sock_err.h</itemPath> <itemPath>icesockets/sock_name.cc</itemPath> + <itemPath>icesockets/sock_name.h</itemPath> <itemPath>icesockets/sock_types.h</itemPath> <itemPath>icesockets/sock_utils.cc</itemPath> ! <itemPath>icesockets/sock_utils.h</itemPath> <itemPath>icesockets/sock_win.cc</itemPath> + <itemPath>icesockets/sock_win.h</itemPath> </logicalFolder> <logicalFolder name="ExternalFiles" *************** *** 24,27 **** --- 24,28 ---- projectFiles="false"> <itemPath>.cvsignore</itemPath> + <itemPath>arp-fingerprints</itemPath> <itemPath>AUTHORS</itemPath> <itemPath>ChangeLog</itemPath> *************** *** 30,50 **** <itemPath>icescan.1</itemPath> <itemPath>ieee-oui.txt</itemPath> ! <itemPath>INSTALL</itemPath> <itemPath>INSTALL.conf</itemPath> <itemPath>Makefile.am</itemPath> <itemPath>NEWS</itemPath> <itemPath>README</itemPath> - <itemPath>README.win32</itemPath> <itemPath>services</itemPath> <itemPath>TODO</itemPath> </logicalFolder> <itemPath>cfingerprint.h</itemPath> - <itemPath>csubtarget.h</itemPath> <itemPath>csubtarget.cc</itemPath> ! <itemPath>ctarget.h</itemPath> <itemPath>defwin.h</itemPath> <itemPath>icedbs.h</itemPath> - <itemPath>icediscover.h</itemPath> <itemPath>icediscover.cc</itemPath> <itemPath>iceoutput.h</itemPath> <itemPath>iceparams.h</itemPath> --- 31,51 ---- <itemPath>icescan.1</itemPath> <itemPath>ieee-oui.txt</itemPath> ! <itemPath>INSTALL.win32</itemPath> <itemPath>INSTALL.conf</itemPath> + <itemPath>INSTALL</itemPath> <itemPath>Makefile.am</itemPath> <itemPath>NEWS</itemPath> <itemPath>README</itemPath> <itemPath>services</itemPath> <itemPath>TODO</itemPath> </logicalFolder> <itemPath>cfingerprint.h</itemPath> <itemPath>csubtarget.cc</itemPath> ! <itemPath>csubtarget.h</itemPath> ! <itemPath>ctargets.h</itemPath> <itemPath>defwin.h</itemPath> <itemPath>icedbs.h</itemPath> <itemPath>icediscover.cc</itemPath> + <itemPath>icediscover.h</itemPath> <itemPath>iceoutput.h</itemPath> <itemPath>iceparams.h</itemPath> *************** *** 54,59 **** <itemPath>nbt_wrapper.h</itemPath> <itemPath>portdef.h</itemPath> - <itemPath>udpscan.h</itemPath> <itemPath>udpscan.cc</itemPath> </logicalFolder> <projectmakefile>Makefile</projectmakefile> --- 55,60 ---- <itemPath>nbt_wrapper.h</itemPath> <itemPath>portdef.h</itemPath> <itemPath>udpscan.cc</itemPath> + <itemPath>udpscan.h</itemPath> </logicalFolder> <projectmakefile>Makefile</projectmakefile> *************** *** 92,98 **** </ccCompilerTool> </item> - <item path="ctarget.h"> - <itemTool>3</itemTool> - </item> <item path="icesockets/sock_err.h"> <itemTool>3</itemTool> --- 93,96 ---- *************** *** 191,194 **** --- 189,195 ---- <itemTool>3</itemTool> </item> + <item path="ctargets.h"> + <itemTool>3</itemTool> + </item> </conf> </confs> |
From: Alexander B. <da...@us...> - 2006-12-24 10:23:30
|
Update of /cvsroot/icescan/IceScan In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv17557 Modified Files: ChangeLog TODO Log Message: no message Index: TODO =================================================================== RCS file: /cvsroot/icescan/IceScan/TODO,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** TODO 23 Dec 2006 16:39:23 -0000 1.4 --- TODO 24 Dec 2006 10:23:26 -0000 1.5 *************** *** 7,15 **** + add multiple targets handling; + --data-dir option for directory handling the databases -- Discovering -- + TCP SYN/FIN Ping (-PS/PF [portlist]) ! * Fix bug with strange MACs when scanning different targets. -- Scanning -- --- 7,17 ---- + add multiple targets handling; + --data-dir option for directory handling the databases + + output ports options; move show_ports into iceoutput -- Discovering -- + TCP SYN/FIN Ping (-PS/PF [portlist]) ! + Rewrite discovery to support multiple subtargets. ! + add own DNS-server module. -- Scanning -- *************** *** 19,22 **** --- 21,25 ---- * Fix Raw TCP scan timeouts. + IP Protocol Scan (-SI) + + -FA option + --badchksum option. + UDP RAW Scan (spoofed ip/mac/random data/etc...) *************** *** 25,37 **** -- Fingerprinting -- ! + ARP Scan + Fingerprint -- WIN32-specific -- - * fix pcap read interface auto select - -- Cygwin-specific -- + add pceudo-classes in Cygwin (no libdnet). -- Misc -- --- 28,41 ---- -- Fingerprinting -- ! + Small fingerprint database; ! + Multiple fingerprinting (-F[...]) ! + Service fingerprinting (-A) -- WIN32-specific -- -- Cygwin-specific -- + add pceudo-classes in Cygwin (no libdnet). + + make it build under cygwin -- Misc -- *************** *** 39,40 **** --- 43,50 ---- * test auto-selecting interface (to listen) and source ip to scan * print library/names versions on icescan -V. + + -- Docs -- + + + Man page (licence, related links, digram of IceScan work and etc) + + Web Site + + Readme.Win32 \ No newline at end of file Index: ChangeLog =================================================================== RCS file: /cvsroot/icescan/IceScan/ChangeLog,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** ChangeLog 23 Dec 2006 16:39:23 -0000 1.4 --- ChangeLog 24 Dec 2006 10:23:26 -0000 1.5 *************** *** 6,10 **** * fixed blocking pcap calls. ! + automatically select source ip/interface in Linux. + added OS independent (libdnet) checking MAC address. * random generating engine replaced with libdnet rand_t. --- 6,10 ---- * fixed blocking pcap calls. ! + automatically select source ip/interface in Linux/Windows. + added OS independent (libdnet) checking MAC address. * random generating engine replaced with libdnet rand_t. *************** *** 16,20 **** + added --use-first-resolve option. * fixed bug with MACs when target resolves in multiple IPs. ! + added ARP/RAW (send arp packet insted of udp if user is root) discovery. *** IceScan v. 0.0.5, 18 Dec 2006 *** --- 16,20 ---- + added --use-first-resolve option. * fixed bug with MACs when target resolves in multiple IPs. ! + added ARP/RAW (send arp packet insted of udp if user is root) discovery. *** IceScan v. 0.0.5, 18 Dec 2006 *** |
From: Alexander B. <da...@us...> - 2006-12-24 10:23:30
|
Update of /cvsroot/icescan/IceScan/icesockets In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv17557/icesockets Modified Files: cpcapreader.h Log Message: no message Index: cpcapreader.h =================================================================== RCS file: /cvsroot/icescan/IceScan/icesockets/cpcapreader.h,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** cpcapreader.h 23 Dec 2006 18:41:47 -0000 1.4 --- cpcapreader.h 24 Dec 2006 10:23:25 -0000 1.5 *************** *** 341,353 **** #endif - static int sockaddrcmp(sockaddr_in *a, sockaddr_in *b) - { - if (a->sin_addr.s_addr > b->sin_addr.s_addr) - return 1; - if (a->sin_addr.s_addr < b->sin_addr.s_addr) - return -1; - return 0; - } - }; --- 341,344 ---- |
From: QweR <qw...@us...> - 2006-12-23 23:20:23
|
Update of /cvsroot/icescan/IceScan/icesockets In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv29994/icesockets Modified Files: sock_utils.cc sock_utils.h Log Message: Index: sock_utils.h =================================================================== RCS file: /cvsroot/icescan/IceScan/icesockets/sock_utils.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** sock_utils.h 22 Dec 2006 08:55:20 -0000 1.2 --- sock_utils.h 23 Dec 2006 23:20:15 -0000 1.3 *************** *** 42,44 **** --- 42,46 ---- icestring get_compiled_version_info(); + void print_buffer(void*, int); + #endif Index: sock_utils.cc =================================================================== RCS file: /cvsroot/icescan/IceScan/icesockets/sock_utils.cc,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** sock_utils.cc 22 Dec 2006 08:55:20 -0000 1.2 --- sock_utils.cc 23 Dec 2006 23:20:15 -0000 1.3 *************** *** 151,154 **** --- 151,192 ---- } + void print_buffer(void* buffer, int len){ + char bc[16+1]; + char bi[3*16+1+1]; + int i,j,k,ci; + char cc; + + if(len==0){ + printf("empty buffer"); + } + else{ + memset(bc,' ',16); + bc[16]=0; + memset(bi,' ',16*3+1); + bi[16*3+1]=0; + for(j=0; j<(len-1)/16+1; j++){ + for(i=0,k=0; i<16; i++,k+=3){ + if(i==8){ + bi[k]=' '; + k++; + } + if(j*16+i>=len){ + bc[i]=' '; + memset(&bi[k],' ',3); + } + else{ + int ci=((char*)buffer)[j*16+i]&0xFF; + char cc=((char*)buffer)[j*16+i]; + if(cc<0x20 || cc==0xFF) cc='.'; + sprintf(&bi[k],"%02X ",ci); + bc[i]=cc; + } + } + printf("%04X: %s %s\n",j,bi,bc); + } + } + printf("\n"); + } + |
From: Alexander B. <da...@us...> - 2006-12-23 18:41:48
|
Update of /cvsroot/icescan/IceScan/vccproject In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv22467/vccproject Modified Files: IceScan.suo Log Message: Index: IceScan.suo =================================================================== RCS file: /cvsroot/icescan/IceScan/vccproject/IceScan.suo,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 Binary files /tmp/cvsc2Ifm9 and /tmp/cvsJ2jXSr differ |
From: Alexander B. <da...@us...> - 2006-12-23 18:41:48
|
Update of /cvsroot/icescan/IceScan/icesockets In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv22467/icesockets Modified Files: cethwrapper.h cpcapreader.h Log Message: Index: cpcapreader.h =================================================================== RCS file: /cvsroot/icescan/IceScan/icesockets/cpcapreader.h,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** cpcapreader.h 23 Dec 2006 16:39:22 -0000 1.3 --- cpcapreader.h 23 Dec 2006 18:41:47 -0000 1.4 *************** *** 103,106 **** --- 103,148 ---- #endif } + + static icestring getdev_pcap(sockaddr addr){ + #ifdef HAVE_LIBPCAP + pcap_if_t *alldevs; + pcap_if_t *d; + pcap_addr_t *a; + int i = 1; + char errbuf[PCAP_ERRBUF_SIZE]; + + if(pcap_findalldevs(&alldevs, errbuf) == -1) + { + printf("Error in pcap_findalldevs: %s\n", errbuf); + exit(1); + } + + + if(!alldevs){ + printf("\nNo interfaces found! Make sure libPcap/WinPcap is installed.\n"); + return 0; + } + + struct sockaddr_in *sai1 = (sockaddr_in *) &addr; + + for(d=alldevs; d; d=d->next, i++) + { + for(a=d->addresses; a; a=a->next){ + struct sockaddr_in *sai2 = (sockaddr_in *) &a; + if(!strcmp(inet_ntoa(sai1->sin_addr), inet_ntoa(sai2->sin_addr))) { + icestring ret(d->name); + pcap_freealldevs(alldevs); + return ret; + } + } + } + + pcap_freealldevs(alldevs); + + return ""; + #else + return ""; + #endif + } ~cpcapreader(){ *************** *** 298,301 **** --- 340,353 ---- } #endif + + static int sockaddrcmp(sockaddr_in *a, sockaddr_in *b) + { + if (a->sin_addr.s_addr > b->sin_addr.s_addr) + return 1; + if (a->sin_addr.s_addr < b->sin_addr.s_addr) + return -1; + return 0; + } + }; Index: cethwrapper.h =================================================================== RCS file: /cvsroot/icescan/IceScan/icesockets/cethwrapper.h,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** cethwrapper.h 23 Dec 2006 16:39:22 -0000 1.3 --- cethwrapper.h 23 Dec 2006 18:41:47 -0000 1.4 *************** *** 13,16 **** --- 13,17 ---- #include "sock_utils.h" #include "sock_name.h" + #include "cpcapreader.h" int make_sockname(struct sockaddr_in& saddr, const char *hostname, int port, int domain); *************** *** 172,181 **** struct sockaddr_in *sai = (sockaddr_in *) &sa; ! sourceint.assign(ipi->name); ! icestring addr(inet_ntoa(sai->sin_addr)); ! #ifdef __linux__ //add more platforms here if(! strcmp(addr.c_str(), destip.c_str())) sourceint.assign("lo"); ! #endif return addr; --- 173,185 ---- struct sockaddr_in *sai = (sockaddr_in *) &sa; ! //sourceint.assign(ipi->name); **UGLY ! ! icestring addr(inet_ntoa(sai->sin_addr)); ! sourceint.assign(cpcapreader::getdev_pcap(sa)); ! ! #ifndef WIN32 //add more platforms here if(! strcmp(addr.c_str(), destip.c_str())) sourceint.assign("lo"); ! #endif return addr; |
From: Alexander B. <da...@us...> - 2006-12-23 17:38:34
|
Update of /cvsroot/icescan/IceScan In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv32394 Modified Files: configure configure.ac icedbs.h arp-fingerprints .cvsignore config.status cfingerprint.h Log Message: no message Index: .cvsignore =================================================================== RCS file: /cvsroot/icescan/IceScan/.cvsignore,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** .cvsignore 21 Dec 2006 20:42:10 -0000 1.1 --- .cvsignore 23 Dec 2006 17:38:32 -0000 1.2 *************** *** 11,13 **** autom4te.cache *.o ! .deps \ No newline at end of file --- 11,14 ---- autom4te.cache *.o ! .deps ! *.greg \ No newline at end of file Index: config.status =================================================================== RCS file: /cvsroot/icescan/IceScan/config.status,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** config.status 23 Dec 2006 16:39:23 -0000 1.3 --- config.status 23 Dec 2006 17:38:32 -0000 1.4 *************** *** 305,309 **** icescan config.status "0.0.6rc1" configured by ./configure, generated by GNU Autoconf 2.59, ! with options \" 'CXXFLAGS=-g -debug'\" Copyright (C) 2003 Free Software Foundation, Inc. --- 305,309 ---- icescan config.status "0.0.6rc1" configured by ./configure, generated by GNU Autoconf 2.59, ! with options \"'CXXFLAGS=-g -debug'\" Copyright (C) 2003 Free Software Foundation, Inc. *************** *** 384,389 **** if $ac_cs_recheck; then ! echo "running /bin/sh ./configure " 'CXXFLAGS=-g -debug' $ac_configure_extra_args " --no-create --no-recursion" >&6 ! exec /bin/sh ./configure 'CXXFLAGS=-g -debug' $ac_configure_extra_args --no-create --no-recursion fi --- 384,389 ---- if $ac_cs_recheck; then ! echo "running /bin/sh ./configure " 'CXXFLAGS=-g -debug' $ac_configure_extra_args " --no-create --no-recursion" >&6 ! exec /bin/sh ./configure 'CXXFLAGS=-g -debug' $ac_configure_extra_args --no-create --no-recursion fi *************** *** 854,858 **** ${ac_dA}ICESCAN_VERSION${ac_dB}ICESCAN_VERSION${ac_dC}"0.0.6rc1"${ac_dD} ${ac_dA}ICESCAN_NAME${ac_dB}ICESCAN_NAME${ac_dC}icescan${ac_dD} ! ${ac_dA}ICESCAN_DATE${ac_dB}ICESCAN_DATE${ac_dC}'21 December 2006"${ac_dD} ${ac_dA}ICESCAN_WEBSITE${ac_dB}ICESCAN_WEBSITE${ac_dC}"http://sf.net/projects/icescan/"${ac_dD} ${ac_dA}PACKAGE${ac_dB}PACKAGE${ac_dC}"icescan"${ac_dD} --- 854,858 ---- ${ac_dA}ICESCAN_VERSION${ac_dB}ICESCAN_VERSION${ac_dC}"0.0.6rc1"${ac_dD} ${ac_dA}ICESCAN_NAME${ac_dB}ICESCAN_NAME${ac_dC}icescan${ac_dD} ! ${ac_dA}ICESCAN_DATE${ac_dB}ICESCAN_DATE${ac_dC}"21 December 2006"${ac_dD} ${ac_dA}ICESCAN_WEBSITE${ac_dB}ICESCAN_WEBSITE${ac_dC}"http://sf.net/projects/icescan/"${ac_dD} ${ac_dA}PACKAGE${ac_dB}PACKAGE${ac_dC}"icescan"${ac_dD} *************** *** 940,944 **** ${ac_uA}ICESCAN_VERSION${ac_uB}ICESCAN_VERSION${ac_uC}"0.0.6rc1"${ac_uD} ${ac_uA}ICESCAN_NAME${ac_uB}ICESCAN_NAME${ac_uC}icescan${ac_uD} ! ${ac_uA}ICESCAN_DATE${ac_uB}ICESCAN_DATE${ac_uC}'21 December 2006"${ac_uD} ${ac_uA}ICESCAN_WEBSITE${ac_uB}ICESCAN_WEBSITE${ac_uC}"http://sf.net/projects/icescan/"${ac_uD} ${ac_uA}PACKAGE${ac_uB}PACKAGE${ac_uC}"icescan"${ac_uD} --- 940,944 ---- ${ac_uA}ICESCAN_VERSION${ac_uB}ICESCAN_VERSION${ac_uC}"0.0.6rc1"${ac_uD} ${ac_uA}ICESCAN_NAME${ac_uB}ICESCAN_NAME${ac_uC}icescan${ac_uD} ! ${ac_uA}ICESCAN_DATE${ac_uB}ICESCAN_DATE${ac_uC}"21 December 2006"${ac_uD} ${ac_uA}ICESCAN_WEBSITE${ac_uB}ICESCAN_WEBSITE${ac_uC}"http://sf.net/projects/icescan/"${ac_uD} ${ac_uA}PACKAGE${ac_uB}PACKAGE${ac_uC}"icescan"${ac_uD} Index: configure =================================================================== RCS file: /cvsroot/icescan/IceScan/configure,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** configure 23 Dec 2006 16:39:23 -0000 1.3 --- configure 23 Dec 2006 17:38:32 -0000 1.4 *************** *** 1338,1342 **** cat >>confdefs.h <<\_ACEOF ! #define ICESCAN_DATE '21 December 2006" _ACEOF --- 1338,1342 ---- cat >>confdefs.h <<\_ACEOF ! #define ICESCAN_DATE "21 December 2006" _ACEOF Index: icedbs.h =================================================================== RCS file: /cvsroot/icescan/IceScan/icedbs.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** icedbs.h 23 Dec 2006 16:39:23 -0000 1.2 --- icedbs.h 23 Dec 2006 17:38:32 -0000 1.3 *************** *** 156,160 **** icestring get_os(icestring result){ if(oses.find(result) != oses.end()) return oses[result]; ! else return "Unknown OS/device"; } --- 156,160 ---- icestring get_os(icestring result){ if(oses.find(result) != oses.end()) return oses[result]; ! else return ""; } Index: arp-fingerprints =================================================================== RCS file: /cvsroot/icescan/IceScan/arp-fingerprints,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** arp-fingerprints 23 Dec 2006 16:39:23 -0000 1.1 --- arp-fingerprints 23 Dec 2006 17:38:32 -0000 1.2 *************** *** 6,10 **** 01010100000 Linux 2.2, 2.4, 2.6 # If non-local IP is routed 00000100000 Cisco IOS 12.0, 12.1, 12.2, 12.3 ! 11110110000 Solaris 2.5.1, 2.6, 7, 8, 9, 10, HP-UX 11 01000111111 ScreenOS 5.0 11110000000 Linux 2.0, MacOS 10.4, IPSO 3.2.1 --- 6,10 ---- 01010100000 Linux 2.2, 2.4, 2.6 # If non-local IP is routed 00000100000 Cisco IOS 12.0, 12.1, 12.2, 12.3 ! 11110110000 Solaris 2.5.1, 2.6, 7, 8, 9, 10, HP-UX 11, D-Link DP-300U 01000111111 ScreenOS 5.0 11110000000 Linux 2.0, MacOS 10.4, IPSO 3.2.1 *************** *** 12,18 **** 10010100011 SCO OS 5.0.7 10110100000 Win 3.11, 95, NT 3.51 ! 11110000011 4.3 BSD, OpenBSD 3.1, OpenBSD 3.9 10110110000 NetBSD 2.0.2 00010110011 PIX OS 01010110011 PIX OS 00000110000 Netware 6.5 --- 12,22 ---- 10010100011 SCO OS 5.0.7 10110100000 Win 3.11, 95, NT 3.51 ! 11110000011 4.3 BSD, OpenBSD 3.1, OpenBSD 3.9, HP Procurve 10110110000 NetBSD 2.0.2 00010110011 PIX OS 01010110011 PIX OS 00000110000 Netware 6.5 + 11110111111 Cisco ATA + 11110001111 HP Network Printers (1022n) + 11110111100 Level-One Print Server (FPS-3002) + 11110111111 D-Link 704p Index: cfingerprint.h =================================================================== RCS file: /cvsroot/icescan/IceScan/cfingerprint.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** cfingerprint.h 23 Dec 2006 16:44:17 -0000 1.2 --- cfingerprint.h 23 Dec 2006 17:38:32 -0000 1.3 *************** *** 45,50 **** else iface = cpcapreader::getdev_pcap(source_iface); ! cpcapreader p(iface, false, "arp src host 192.168.0.2"); if(!p.opened()){ --- 45,54 ---- else iface = cpcapreader::getdev_pcap(source_iface); + + char filter_exp[256]; ! sprintf(filter_exp, "arp src host %s", hostname.c_str()); ! ! cpcapreader p(iface, false, filter_exp); if(!p.opened()){ *************** *** 120,124 **** else fp.push_back('0'); ! *out << "ARP Fingerptint returned: " << iafd.get_os(fp) << "\n"; if(par->verbose > 0) --- 124,138 ---- else fp.push_back('0'); ! icestring os = iafd.get_os(fp); ! ! if(os == ""){ ! os = "Unknown OS/device.\n"; ! os.append("If you know OS/device information, please send line '"); ! os.append(fp); ! os.append("' to icescan-bugs(at)lists.sf.net with OS/device name and version.\n"); ! os.append("See 'How to Report a Bug' in README and BUGS section in man page."); ! } ! ! *out << "ARP Fingerptint returned: " << os << "\n"; if(par->verbose > 0) Index: configure.ac =================================================================== RCS file: /cvsroot/icescan/IceScan/configure.ac,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** configure.ac 23 Dec 2006 16:39:23 -0000 1.3 --- configure.ac 23 Dec 2006 17:38:32 -0000 1.4 *************** *** 7,11 **** AC_DEFINE(ICESCAN_VERSION, AC_PACKAGE_VERSION, [version]) AC_DEFINE(ICESCAN_NAME, AC_PACKAGE_NAME, [name]) ! AC_DEFINE(ICESCAN_DATE, '21 December 2006", [releasedate]) AC_DEFINE(ICESCAN_WEBSITE, "http://sf.net/projects/icescan/", [website]) --- 7,11 ---- AC_DEFINE(ICESCAN_VERSION, AC_PACKAGE_VERSION, [version]) AC_DEFINE(ICESCAN_NAME, AC_PACKAGE_NAME, [name]) ! AC_DEFINE(ICESCAN_DATE, "21 December 2006", [releasedate]) AC_DEFINE(ICESCAN_WEBSITE, "http://sf.net/projects/icescan/", [website]) |
From: Alexander B. <da...@us...> - 2006-12-23 16:44:22
|
Update of /cvsroot/icescan/IceScan In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv11533 Modified Files: cfingerprint.h Log Message: no message Index: cfingerprint.h =================================================================== RCS file: /cvsroot/icescan/IceScan/cfingerprint.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** cfingerprint.h 23 Dec 2006 16:39:23 -0000 1.1 --- cfingerprint.h 23 Dec 2006 16:44:17 -0000 1.2 *************** *** 59,63 **** if(get_arp_from_cache(hostname) == ""){ ! out->line("No ARP responce from host. Exitting."); return; } --- 59,63 ---- if(get_arp_from_cache(hostname) == ""){ ! out->line("ARP Fingerprint: No ARP responce from host. Exitting."); return; } |
From: Alexander B. <da...@us...> - 2006-12-23 16:39:28
|
Update of /cvsroot/icescan/IceScan In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv9548 Modified Files: iceparams.h icescan.1 Makefile.am icescan.cc TODO csubtarget.h configure configure.ac icedbs.h ChangeLog ctarget.h config.status icediscover.cc csubtarget.cc Added Files: arp-fingerprints cfingerprint.h Log Message: no message Index: icescan.cc =================================================================== RCS file: /cvsroot/icescan/IceScan/icescan.cc,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** icescan.cc 22 Dec 2006 20:31:57 -0000 1.4 --- icescan.cc 23 Dec 2006 16:39:23 -0000 1.5 *************** *** 31,35 **** void print_help(char *name){ ! printf("\nUSAGE: %s [options] [scan type] target\n" "\t target can be hostname or IP address.\n" "HOST DISCOVERY:\n" --- 31,35 ---- void print_help(char *name){ ! printf("\nUSAGE: %s [options] [scan type] <target>\n" "\t target can be hostname or IP address.\n" "HOST DISCOVERY:\n" *************** *** 47,51 **** "\t-SI: IP Protocol scan\n" "\t-SN/SF/SX: stealth tcp Null/FIN/XMAS scan\n" ! "\t-SU: udp scan.\n" "\t-S0: no scan\n" "\t--scanflags <flags>: Customize TCP scan flags (SF/SX/SN scans)\n" --- 47,51 ---- "\t-SI: IP Protocol scan\n" "\t-SN/SF/SX: stealth tcp Null/FIN/XMAS scan\n" ! "\t-SU: udp scan\n" "\t-S0: no scan\n" "\t--scanflags <flags>: Customize TCP scan flags (SF/SX/SN scans)\n" *************** *** 54,58 **** "INTERFACES:\n" "\t--list-interfaces: list all interfaces\n" ! "\t-i <iface-number>: use interface <iface-number> for pcap/source interface\n" "\t--send-eth: use channel(2) level to send raw packets\n" "\t--send-ip: use network(3) level to send raw packets\n" --- 54,58 ---- "INTERFACES:\n" "\t--list-interfaces: list all interfaces\n" ! "\t-i <iface-number>: use interface <iface-number> for pcap/source iface\n" "\t--send-eth: use channel(2) level to send raw packets\n" "\t--send-ip: use network(3) level to send raw packets\n" *************** *** 62,68 **** "\t--ttl <value>: set IP time-to-live field\n" "OTHER:\n" "\t-v[v[v[v]]]]: verbose levels\n" "\t--uid0: assume that the current user is fully privileged\n" ! "\t-V: print version and exit\n" "\t-?: this message\n\n", name); } --- 62,69 ---- "\t--ttl <value>: set IP time-to-live field\n" "OTHER:\n" + "\t--use-first-resolve: use only 1st IP in DNS resolving of target\n" "\t-v[v[v[v]]]]: verbose levels\n" "\t--uid0: assume that the current user is fully privileged\n" ! "\t-V/--version: print version information and exit\n" "\t-?: this message\n\n", name); } *************** *** 163,167 **** }else if(!strcmp(argv[i], "--version")){ std::cout << get_compiled_version_info(); ! exit(0); }else if(!strcmp(argv[i], "--source-port")){ if(i+1<argc){ --- 164,170 ---- }else if(!strcmp(argv[i], "--version")){ std::cout << get_compiled_version_info(); ! exit(0); ! }else if(!strcmp(argv[i], "--use-first-resolve")){ ! par->use_first_resolve = true; }else if(!strcmp(argv[i], "--source-port")){ if(i+1<argc){ *************** *** 211,214 **** --- 214,221 ---- break; + case 'F': + par->arp_fp = true; + break; + case 'g': if(i+1<argc){ *************** *** 378,382 **** int main(int argc, char *argv[]){ ! ice_service_name_database isnd("services"); ice_mac_name_database ismd("ieee-oui.txt"); --- 385,389 ---- int main(int argc, char *argv[]){ ! ice_service_name_database isnd("services"); ice_mac_name_database ismd("ieee-oui.txt"); *************** *** 424,428 **** } ! if(discover) ts.scan(); ftime(&tp2); --- 431,438 ---- } ! if(discover){ ! ts.scan(); ! ts.detect(); ! } ftime(&tp2); Index: csubtarget.cc =================================================================== RCS file: /cvsroot/icescan/IceScan/csubtarget.cc,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** csubtarget.cc 22 Dec 2006 20:31:57 -0000 1.2 --- csubtarget.cc 23 Dec 2006 16:39:23 -0000 1.3 *************** *** 23,27 **** if(source_ip == "") source_ip = get_source_ip(hostname, source_iface); - } --- 23,26 ---- *************** *** 55,59 **** icestring mac = get_arp_from_cache(hostname); ! if(mac != "" && mac != "00:00:00:00:00:00" && mac!="cc:cc:cc:cc:cc:cc"){ char Mac[24], vmac[7]; --- 54,58 ---- icestring mac = get_arp_from_cache(hostname); ! if(mac != "" && mac != "00:00:00:00:00:00"){ char Mac[24], vmac[7]; *************** *** 72,75 **** --- 71,82 ---- } + void csubtarget::detect(){ + cfingerprint fp(hostname, out, par, source_iface); + + if(par->arp_fp) + fp.arp_fingerprint(); + + } + int csubtarget::prot_scan(){ // cprotocol_scan cps(par, out); *************** *** 307,310 **** --- 314,318 ---- int iface; + if(par->source_iface) iface = par->source_iface; Index: csubtarget.h =================================================================== RCS file: /cvsroot/icescan/IceScan/csubtarget.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** csubtarget.h 21 Dec 2006 20:42:10 -0000 1.1 --- csubtarget.h 23 Dec 2006 16:39:23 -0000 1.2 *************** *** 9,12 **** --- 9,13 ---- #include "icediscover.h" #include "portdef.h" + #include "cfingerprint.h" #define CONNECT_TIMEOUT 14 *************** *** 69,72 **** --- 70,75 ---- void mac_discover(); + void detect(); + int prot_scan(); Index: config.status =================================================================== RCS file: /cvsroot/icescan/IceScan/config.status,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** config.status 22 Dec 2006 06:56:32 -0000 1.2 --- config.status 23 Dec 2006 16:39:23 -0000 1.3 *************** *** 305,309 **** icescan config.status "0.0.6rc1" configured by ./configure, generated by GNU Autoconf 2.59, ! with options \"\" Copyright (C) 2003 Free Software Foundation, Inc. --- 305,309 ---- icescan config.status "0.0.6rc1" configured by ./configure, generated by GNU Autoconf 2.59, ! with options \" 'CXXFLAGS=-g -debug'\" Copyright (C) 2003 Free Software Foundation, Inc. *************** *** 384,389 **** if $ac_cs_recheck; then ! echo "running /bin/sh ./configure " $ac_configure_extra_args " --no-create --no-recursion" >&6 ! exec /bin/sh ./configure $ac_configure_extra_args --no-create --no-recursion fi --- 384,389 ---- if $ac_cs_recheck; then ! echo "running /bin/sh ./configure " 'CXXFLAGS=-g -debug' $ac_configure_extra_args " --no-create --no-recursion" >&6 ! exec /bin/sh ./configure 'CXXFLAGS=-g -debug' $ac_configure_extra_args --no-create --no-recursion fi *************** *** 514,518 **** s,@host_os@,linux-gnu,;t t s,@CXX@,g++,;t t ! s,@CXXFLAGS@,-g -O2,;t t s,@LDFLAGS@,,;t t s,@CPPFLAGS@,,;t t --- 514,518 ---- s,@host_os@,linux-gnu,;t t s,@CXX@,g++,;t t ! s,@CXXFLAGS@,-g -debug,;t t s,@LDFLAGS@,,;t t s,@CPPFLAGS@,,;t t *************** *** 855,859 **** ${ac_dA}ICESCAN_NAME${ac_dB}ICESCAN_NAME${ac_dC}icescan${ac_dD} ${ac_dA}ICESCAN_DATE${ac_dB}ICESCAN_DATE${ac_dC}'21 December 2006"${ac_dD} ! ${ac_dA}ICESCAN_WEBSITE${ac_dB}ICESCAN_WEBSITE${ac_dC}"http://sourceforge.net/projects/icescan/"${ac_dD} ${ac_dA}PACKAGE${ac_dB}PACKAGE${ac_dC}"icescan"${ac_dD} ${ac_dA}VERSION${ac_dB}VERSION${ac_dC}""0.0.6rc1""${ac_dD} --- 855,859 ---- ${ac_dA}ICESCAN_NAME${ac_dB}ICESCAN_NAME${ac_dC}icescan${ac_dD} ${ac_dA}ICESCAN_DATE${ac_dB}ICESCAN_DATE${ac_dC}'21 December 2006"${ac_dD} ! ${ac_dA}ICESCAN_WEBSITE${ac_dB}ICESCAN_WEBSITE${ac_dC}"http://sf.net/projects/icescan/"${ac_dD} ${ac_dA}PACKAGE${ac_dB}PACKAGE${ac_dC}"icescan"${ac_dD} ${ac_dA}VERSION${ac_dB}VERSION${ac_dC}""0.0.6rc1""${ac_dD} *************** *** 941,945 **** ${ac_uA}ICESCAN_NAME${ac_uB}ICESCAN_NAME${ac_uC}icescan${ac_uD} ${ac_uA}ICESCAN_DATE${ac_uB}ICESCAN_DATE${ac_uC}'21 December 2006"${ac_uD} ! ${ac_uA}ICESCAN_WEBSITE${ac_uB}ICESCAN_WEBSITE${ac_uC}"http://sourceforge.net/projects/icescan/"${ac_uD} ${ac_uA}PACKAGE${ac_uB}PACKAGE${ac_uC}"icescan"${ac_uD} ${ac_uA}VERSION${ac_uB}VERSION${ac_uC}""0.0.6rc1""${ac_uD} --- 941,945 ---- ${ac_uA}ICESCAN_NAME${ac_uB}ICESCAN_NAME${ac_uC}icescan${ac_uD} ${ac_uA}ICESCAN_DATE${ac_uB}ICESCAN_DATE${ac_uC}'21 December 2006"${ac_uD} ! ${ac_uA}ICESCAN_WEBSITE${ac_uB}ICESCAN_WEBSITE${ac_uC}"http://sf.net/projects/icescan/"${ac_uD} ${ac_uA}PACKAGE${ac_uB}PACKAGE${ac_uC}"icescan"${ac_uD} ${ac_uA}VERSION${ac_uB}VERSION${ac_uC}""0.0.6rc1""${ac_uD} Index: configure =================================================================== RCS file: /cvsroot/icescan/IceScan/configure,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** configure 22 Dec 2006 06:56:32 -0000 1.2 --- configure 23 Dec 2006 16:39:23 -0000 1.3 *************** *** 1343,1347 **** cat >>confdefs.h <<\_ACEOF ! #define ICESCAN_WEBSITE "http://sourceforge.net/projects/icescan/" _ACEOF --- 1343,1347 ---- cat >>confdefs.h <<\_ACEOF ! #define ICESCAN_WEBSITE "http://sf.net/projects/icescan/" _ACEOF Index: ChangeLog =================================================================== RCS file: /cvsroot/icescan/IceScan/ChangeLog,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** ChangeLog 22 Dec 2006 20:31:57 -0000 1.3 --- ChangeLog 23 Dec 2006 16:39:23 -0000 1.4 *************** *** 3,7 **** (+ -- new feature, * -- bugfix) ! *** IceScan v. 0.0.6, 19 Dec 2006 *** * fixed blocking pcap calls. --- 3,7 ---- (+ -- new feature, * -- bugfix) ! *** IceScan v. 0.0.6, 23 Dec 2006 *** * fixed blocking pcap calls. *************** *** 14,17 **** --- 14,20 ---- + added --source-port option. + added --source-ip option. + + added --use-first-resolve option. + * fixed bug with MACs when target resolves in multiple IPs. + + added ARP/RAW (send arp packet insted of udp if user is root) discovery. *** IceScan v. 0.0.5, 18 Dec 2006 *** *************** *** 27,33 **** + added scan time reporting at the end of the scan * fixed crash on empty target ! + added reverse dns lookup (and -r key to command line) ! *** IceScan v. 0.0.1, 18 Dec 2006 *** Initial release. \ No newline at end of file --- 30,36 ---- + added scan time reporting at the end of the scan * fixed crash on empty target ! + added reverse dns lookup (and -n key to command line) ! *** IceScan v. 0.0.1, 2 Dec 2006 *** Initial release. \ No newline at end of file Index: icedbs.h =================================================================== RCS file: /cvsroot/icescan/IceScan/icedbs.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** icedbs.h 21 Dec 2006 20:42:11 -0000 1.1 --- icedbs.h 23 Dec 2006 16:39:23 -0000 1.2 *************** *** 4,7 **** --- 4,8 ---- #include "icesockets/sock_utils.h" #include "icesockets/iceregex.h" + #include "icesockets/sock_err.h" class ice_service_name_database{ *************** *** 111,113 **** --- 112,163 ---- }; + class ice_arp_fingerprints_database{ + + std::map <icestring, icestring> oses; + + public: + + ice_arp_fingerprints_database(char *db_fname){ + std::ifstream in; + + in.open(find_icefile_path(db_fname).c_str()); + + if(!in){ + std::cout << "Warning: Can't open ARP fingerprint database!" << std::endl; + } else { + IceRegex re1("^(#.*|\\s*)$"); + IceRegex re("^([01]+)\\s*\\W*([-a-z0-9A-Z. +]+)"); + while(!in.eof()){ + char tmpbuf[256]; + + in.getline(tmpbuf,256); + + if(! re1.match(tmpbuf) ){ + + icestring result = "", os = ""; + + std::vector<icestring> v; + + re.match(tmpbuf, v); + + if(v.size()<3) continue; + + result = v[1]; os = v[2]; + + //DBGOUTPUT(result); + //DBGOUTPUT(os); + + oses[result] = os; + } + } + } + } + + icestring get_os(icestring result){ + if(oses.find(result) != oses.end()) return oses[result]; + else return "Unknown OS/device"; + } + + }; + #endif Index: icediscover.cc =================================================================== RCS file: /cvsroot/icescan/IceScan/icediscover.cc,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** icediscover.cc 21 Dec 2006 20:42:11 -0000 1.1 --- icediscover.cc 23 Dec 2006 16:39:23 -0000 1.2 *************** *** 158,163 **** if(par->verbose>0) out->line("Sending upd packet for unprivileged arp host discovery..."); ! ! c.sendto(hostname, ARP_PING_STANDART_PORT, " ", 1, 0); icestring mac = get_arp_from_cache(ip); --- 158,172 ---- if(par->verbose>0) out->line("Sending upd packet for unprivileged arp host discovery..."); ! ! #ifndef __CYGWIN__ ! if(!getuid() || par->forceuid){ ! #else ! if(par->forceuid){ ! #endif ! cethwrapper ew; ! ew.send_arp_msg(ARP_OP_REQUEST, "", "", "", ip); ! }else{ ! c.sendto(hostname, ARP_PING_STANDART_PORT, " ", 1, 0); ! } icestring mac = get_arp_from_cache(ip); --- NEW FILE: arp-fingerprints --- # pls, add copyrights here # ... 11110100000 FreeBSD 5.3, Win98, WinME, NT4, 2000, XP, 2003 01000100000 Linux 2.2, 2.4, 2.6 01010100000 Linux 2.2, 2.4, 2.6 # If non-local IP is routed 00000100000 Cisco IOS 12.0, 12.1, 12.2, 12.3 11110110000 Solaris 2.5.1, 2.6, 7, 8, 9, 10, HP-UX 11 01000111111 ScreenOS 5.0 11110000000 Linux 2.0, MacOS 10.4, IPSO 3.2.1 11110100011 MacOS 10.3, FreeBSD 4.3, IRIX 6.5 10010100011 SCO OS 5.0.7 10110100000 Win 3.11, 95, NT 3.51 11110000011 4.3 BSD, OpenBSD 3.1, OpenBSD 3.9 10110110000 NetBSD 2.0.2 00010110011 PIX OS 01010110011 PIX OS 00000110000 Netware 6.5 --- NEW FILE: cfingerprint.h --- #ifndef _cfingerprint_H #define _cfingerprint_H #include "icesockets/sock_types.h" #include "icesockets/cethwrapper.h" #include "icesockets/cpcapreader.h" #include "icedbs.h" #define arp_pause 30000 class cfingerprint{ iceoutput *out; iceparams *par; icestring hostname; icestring source_iface; public: //ADD source_ip, promisc and etc... cfingerprint(icestring hostname, iceoutput *out, iceparams *par, icestring source_iface){ this->hostname = hostname; this->out = out; this->par = par; this->source_iface = source_iface; } void arp_fingerprint(){ if(par->verbose > 0) out->line("Starting ARP fingerprinting..."); #if (__CYGWIN__) if(!par->forceuid){ #else if(getuid() && (par->forceuid != true)){ #endif out->line("UID isn't 0, so can't create raw socket/load pcap => no RAW tcp scan..."); return; } int iface; ice_arp_fingerprints_database iafd("arp-fingerprints"); if(par->source_iface) iface = par->source_iface; else iface = cpcapreader::getdev_pcap(source_iface); cpcapreader p(iface, false, "arp src host 192.168.0.2"); if(!p.opened()){ out->line("Can't open pcap: no arp fingerprint. Exitting."); return; } cethwrapper ew; ew.send_arp_msg(ARP_OP_REQUEST, "", "", "", hostname); read_packet(p, arp_pause); if(get_arp_from_cache(hostname) == ""){ out->line("No ARP responce from host. Exitting."); return; } icestring fp = ""; ew.send_arp_msg(ARP_OP_REQUEST, "", "127.0.0.1", "", hostname); if(read_packet(p, arp_pause)) fp.push_back('1'); else fp.push_back('0'); ew.send_arp_msg(ARP_OP_REQUEST, "", "0.0.0.0", "", hostname); if(read_packet(p, arp_pause)) fp.push_back('1'); else fp.push_back('0'); ew.send_arp_msg(ARP_OP_REQUEST, "", "255.255.255.255", "", hostname); if(read_packet(p, arp_pause)) fp.push_back('1'); else fp.push_back('0'); ew.send_arp_msg(ARP_OP_REQUEST, "", "1.0.0.1", "", hostname); if(read_packet(p, arp_pause)) fp.push_back('1'); else fp.push_back('0'); ew.send_arp_msg(255, "", "", "", hostname); if(read_packet(p, arp_pause)) fp.push_back('1'); else fp.push_back('0'); ew.send_arp_msg(ARP_OP_REQUEST, "", "", "", hostname, 6); if(read_packet(p, arp_pause)) fp.push_back('1'); else fp.push_back('0'); ew.send_arp_msg(ARP_OP_REQUEST, "", "", "", hostname, 255); if(read_packet(p, arp_pause)) fp.push_back('1'); else fp.push_back('0'); ew.send_arp_msg(ARP_OP_REQUEST, "", "", "", hostname, ARP_HRD_ETH, 0xffff); if(read_packet(p, arp_pause)) fp.push_back('1'); else fp.push_back('0'); ew.send_arp_msg(ARP_OP_REQUEST, "", "", "", hostname, ARP_HRD_ETH, 0x8137); if(read_packet(p, arp_pause)) fp.push_back('1'); else fp.push_back('0'); ew.send_arp_msg(ARP_OP_REQUEST, "", "", "", hostname, ARP_HRD_ETH, ARP_PRO_IP, ETH_ADDR_LEN, 6); if(read_packet(p, arp_pause)) fp.push_back('1'); else fp.push_back('0'); ew.send_arp_msg(ARP_OP_REQUEST, "", "", "", hostname, ARP_HRD_ETH, ARP_PRO_IP, 8); if(read_packet(p, arp_pause)) fp.push_back('1'); else fp.push_back('0'); *out << "ARP Fingerptint returned: " << iafd.get_os(fp) << "\n"; if(par->verbose > 0) out->line("ARP fingerprinting finished!"); } private: bool read_packet(cpcapreader &p, int timeout){ struct timeval tv1, tv2; gettimeofday(&tv1, 0); bool stop = false; unsigned int len = 0; char *buffer; while(!stop){ gettimeofday(&tv2, 0); buffer = p.read_packet(&len, NULL); if(len>0) return true; usleep(1); if(SUB_TIMEVALS(tv2,tv1) >= timeout) stop = true; } return false; } }; #endif /* _cfingerprint_H */ Index: iceparams.h =================================================================== RCS file: /cvsroot/icescan/IceScan/iceparams.h,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** iceparams.h 22 Dec 2006 20:31:57 -0000 1.3 --- iceparams.h 23 Dec 2006 16:39:22 -0000 1.4 *************** *** 34,38 **** // PreScan settings ! bool reverse_dns; //(true by default); -r -- no reverse dns lookup // Host discovery (default: -PA, -PI) --- 34,39 ---- // PreScan settings ! bool reverse_dns; //(true by default); -n -- no reverse dns lookup ! bool use_first_resolve; // Host discovery (default: -PA, -PI) *************** *** 78,81 **** --- 79,86 ---- ice_service_name_database *isnd; ice_mac_name_database *ismd; + + // Fingerprinting... + + bool arp_fp; private: *************** *** 98,101 **** --- 103,107 ---- no_host_discovery = false; + use_first_resolve = false; ack_ping_discovery = false; *************** *** 115,118 **** --- 121,126 ---- forceuid = false; ttl = 0; + + arp_fp = false; } Index: Makefile.am =================================================================== RCS file: /cvsroot/icescan/IceScan/Makefile.am,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Makefile.am 22 Dec 2006 08:55:21 -0000 1.3 --- Makefile.am 23 Dec 2006 16:39:23 -0000 1.4 *************** *** 5,8 **** icescan_DATA = services ieee-oui.txt README INSTALL COPYING AUTHORS ChangeLog INSTALL.conf man1_MANS=icescan.1 ! CXXFLAGS=-DICESCAN_DATADIR=\"$(icescandir)\" --- 5,8 ---- icescan_DATA = services ieee-oui.txt README INSTALL COPYING AUTHORS ChangeLog INSTALL.conf man1_MANS=icescan.1 ! icescan_CXXFLAGS=-DICESCAN_DATADIR=\"$(icescandir)\" Index: ctarget.h =================================================================== RCS file: /cvsroot/icescan/IceScan/ctarget.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** ctarget.h 21 Dec 2006 20:42:11 -0000 1.1 --- ctarget.h 23 Dec 2006 16:39:23 -0000 1.2 *************** *** 47,50 **** --- 47,62 ---- } + if(st>1){ + *out << "Target resolves in multiple IPs: "; + for(int i=0; i<st; i++) + *out << subtargets_addresses[i].c_str() << " "; + *out << "\n"; + } + + if(par->use_first_resolve){ + *out << "Using first IP.\n"; + st = 1; + } + for(int i=0; i<st; i++){ csubtarget *cst = new csubtarget(subtargets_addresses[i].c_str(), rev_hostname.c_str(), par, out); *************** *** 77,80 **** --- 89,100 ---- } + void detect(){ + for(int i=0; i<subtargets.size(); i++){ + if(subtargets[i]->discovered){ + subtargets[i]->detect(); + } + } + } + ~ctargets(){ for(int i=0; i<subtargets.size(); i++){ Index: icescan.1 =================================================================== RCS file: /cvsroot/icescan/IceScan/icescan.1,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** icescan.1 22 Dec 2006 20:31:57 -0000 1.2 --- icescan.1 23 Dec 2006 16:39:23 -0000 1.3 *************** *** 4,13 **** .TH ICESCAN 1 "DECEMBER 2006" "" "User Manuals" .SH NAME ! \fIicescan\fR \- network audit and exploration tool / port scanner. .SH SYNOPSIS ! .B \fBicescan\fR [\fIscan_type\fR] [\fIoptions\fR] {\fItarget\fR} .SH DESCRIPTION ! .B IceScan ! .SH OPTIONS SUMMARY .PP --- 4,36 ---- .TH ICESCAN 1 "DECEMBER 2006" "" "User Manuals" .SH NAME ! \fIicescan\fR \- network auditing/exploration tool and port scanner. .SH SYNOPSIS ! .B \fBicescan\fR [\fIscan_type\fR] [\fIoptions\fR] <\fItarget\fR> .SH DESCRIPTION ! \fBIceScan\fR is an open source tool (GPL licenced) for network ! exploraion and auditing. You can find that IceScan ! in some options and features very close to Nmap ! (\fIhttp://www.insecure.org/nmap/\fR) and that's the true. IceScan ! was written for educational purposes, but even now have some features, ! that doesn't exists in other \fIfree\fR network auditing tools, so you may ! find it useful in process of security auditing your network(s). ! .PP ! Either as Nmap, main result provided by IceScan is ports table. It ! consist of three columns: port number/protocol, port state and service. ! Port can have different states: open, closed, filtered, open|filtered (o|f) and ! unfiltered (unfilt). Open port means that there's an application on target, ! listening for connections/datagrams on this port. Filtered port is a port ! blocked by firewall. Closed ports have no applications listening on them, ! but access isn't blocked by firewall. And at last, unfiltered port means ! that port isn't closed and IceScan can't determine which state is has: ! opened or filtered. The service column provide some information about ! application that running or can be run on this port. This information ! may include supposed protocol or application name/version. ! .PP ! The other type of results may include discovery(reverse DNS lookups, MACs ! timestamps, etc), fingerprinting (OS version, device type and etc) ! information and also some vulnerability testings. ! .PP ! You can get the newest version of IceScan from \fIhttp://sf.net/projects/IceScan\fR. .SH OPTIONS SUMMARY .PP *************** *** 17,22 **** .PP .nf ! USAGE: ./icescan [options] [scan type] target ! target can be hostname or IP address. HOST DISCOVERY: default is PA and PE. --- 40,45 ---- .PP .nf ! USAGE: ./icescan [options] [scan type] <target> ! target may be hostname or IP address. HOST DISCOVERY: default is PA and PE. *************** *** 40,44 **** INTERFACES: --list-interfaces: list all interfaces ! -i <iface-number>: use interface <iface-number> for pcap/source interface --send-eth: use channel(2) level to send raw packets --send-ip: use network(3) level to send raw packets --- 63,67 ---- INTERFACES: --list-interfaces: list all interfaces ! -i <iface-number>: use interface <iface-number> for pcap/source iface --send-eth: use channel(2) level to send raw packets --send-ip: use network(3) level to send raw packets *************** *** 48,56 **** --ttl <value>: set IP time-to-live field OTHER: -v[v[v[v]]]]: verbose levels --uid0: assume that the current user is fully privileged ! -V: print version and exit -?: this message .SH HOST DISCOVERY OPTIONS .SH SCAN OPTIONS .SH INTERFACES --- 71,97 ---- --ttl <value>: set IP time-to-live field OTHER: + --use-first-resolve: use only 1st IP in DNS resolving of target -v[v[v[v]]]]: verbose levels --uid0: assume that the current user is fully privileged ! -V/--version: print version information and exit -?: this message + .PP + For useful work, IceScan requires only one argument \- target. Target may be + hostname, dns or IP address of machine you want to scan. Here are some + examples of targets: 127.0.0.1, icestation, www.novell.com, 205.217.153.62 + and etc. If target is dns and it resolves in many IPs, IceScan will process + all of them neither --use-first-resolve option is used. + .SH HOST DISCOVERY OPTIONS + Before you can scan the target machine, you should check is it really up. + If you don't know this, you can incorrectly interpret port scanning results. + Also, host discovery can provide you some additional information on target, + such as MACs, timestamps and etc. + .PP + Note: -P* options can be combined. + .TP + \fB\-P0\fR (no ping) + This options tells IceScan skip host discovery process and set target(s) + to be up. .SH SCAN OPTIONS .SH INTERFACES *************** *** 65,69 **** encounter a bug while using it. Please report bugs to <icescan-bugs(at)lists.sourceforge.net>. ! \%(http://lists.sf.net/mailman/listinfo/icescan-bugs) .PP Be sure you tell us: --- 106,110 ---- encounter a bug while using it. Please report bugs to <icescan-bugs(at)lists.sourceforge.net>. ! \%(\fIhttp://lists.sf.net/mailman/listinfo/icescan-bugs\fR) .PP Be sure you tell us: *************** *** 76,80 **** which distribution you're running). .TP 4 ! 2) Version of libpcap, libdnet and libcre. Compressed\ config.log file. .TP 4 --- 117,121 ---- which distribution you're running). .TP 4 ! 2) Version of libpcap, libdnet and libpcre. Compressed\ config.log file. .TP 4 *************** *** 91,96 **** information (e.g., passwords), then please do not send it. .PP ! If IceScan died on you with a 'segmentation violation', 'bus error', ! 'abort', or other error that produces a UNIX core dump file, you can help the developers a lot if you have a debugger installed. A stack trace can be obtained by using your debugger ('gdb' in this example), --- 132,137 ---- information (e.g., passwords), then please do not send it. .PP ! If IceScan died on you with a 'segmentation violation', 'bus error', 'abort', ! or other error that produces a UNIX core dump file, you can help the developers a lot if you have a debugger installed. A stack trace can be obtained by using your debugger ('gdb' in this example), Index: TODO =================================================================== RCS file: /cvsroot/icescan/IceScan/TODO,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** TODO 22 Dec 2006 20:31:57 -0000 1.3 --- TODO 23 Dec 2006 16:39:23 -0000 1.4 *************** *** 11,15 **** + TCP SYN/FIN Ping (-PS/PF [portlist]) ! + ARP/RAW Discovery -- Scanning -- --- 11,15 ---- + TCP SYN/FIN Ping (-PS/PF [portlist]) ! * Fix bug with strange MACs when scanning different targets. -- Scanning -- *************** *** 21,25 **** + --badchksum option. + UDP RAW Scan (spoofed ip/mac/random data/etc...) ! + --data-length <num>: append random data to sent packets. -- Fingerprinting -- --- 21,25 ---- + --badchksum option. + UDP RAW Scan (spoofed ip/mac/random data/etc...) ! + --data-length <num>: append random data to sent packets. -- Fingerprinting -- *************** *** 31,34 **** --- 31,38 ---- * fix pcap read interface auto select + -- Cygwin-specific -- + + + add pceudo-classes in Cygwin (no libdnet). + -- Misc -- Index: configure.ac =================================================================== RCS file: /cvsroot/icescan/IceScan/configure.ac,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** configure.ac 21 Dec 2006 20:57:34 -0000 1.2 --- configure.ac 23 Dec 2006 16:39:23 -0000 1.3 *************** *** 8,12 **** AC_DEFINE(ICESCAN_NAME, AC_PACKAGE_NAME, [name]) AC_DEFINE(ICESCAN_DATE, '21 December 2006", [releasedate]) ! AC_DEFINE(ICESCAN_WEBSITE, "http://sourceforge.net/projects/icescan/", [website]) --- 8,12 ---- AC_DEFINE(ICESCAN_NAME, AC_PACKAGE_NAME, [name]) AC_DEFINE(ICESCAN_DATE, '21 December 2006", [releasedate]) ! AC_DEFINE(ICESCAN_WEBSITE, "http://sf.net/projects/icescan/", [website]) |
From: Alexander B. <da...@us...> - 2006-12-23 16:39:26
|
Update of /cvsroot/icescan/IceScan/icesockets In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv9548/icesockets Modified Files: sock_name.cc sock_types.h cethwrapper.h cpcapreader.h Log Message: no message Index: sock_types.h =================================================================== RCS file: /cvsroot/icescan/IceScan/icesockets/sock_types.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** sock_types.h 22 Dec 2006 08:55:20 -0000 1.2 --- sock_types.h 23 Dec 2006 16:39:22 -0000 1.3 *************** *** 118,122 **** #endif ! struct pseudo_header { --- 118,140 ---- #endif ! ! #define ETH_ALEN_ 6 /* Octets in one ethernet addr */ ! #define ARPHRD_ETHER 1 /* Ethernet ARP type */ ! #define ARPOP_REQUEST 1 /* ARP Request */ ! #define ARPOP_REPLY 2 /* ARP Reply */ ! #define ARP_PKT_SIZE 28 /* Size of ARP Packet in bytes */ ! ! /* Ethernet ARP packet from RFC 826 */ ! typedef struct { ! uint16_t ar_hrd; /* Format of hardware address */ ! uint16_t ar_pro; /* Format of protocol address */ ! uint8_t ar_hln; /* Length of hardware address */ ! uint8_t ar_pln; /* Length of protocol address */ ! uint16_t ar_op; /* ARP opcode (command) */ ! uint8_t ar_sha[ETH_ALEN_]; /* Sender hardware address */ ! uint32_t ar_sip; /* Sender IP address */ ! uint8_t ar_tha[ETH_ALEN_]; /* Target hardware address */ ! uint32_t ar_tip; /* Target IP address */ ! } arp_ether_ipv4; struct pseudo_header { Index: cpcapreader.h =================================================================== RCS file: /cvsroot/icescan/IceScan/icesockets/cpcapreader.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** cpcapreader.h 22 Dec 2006 20:31:57 -0000 1.2 --- cpcapreader.h 23 Dec 2006 16:39:22 -0000 1.3 *************** *** 76,80 **** pcap_if_t *alldevs; pcap_if_t *d; ! int i = 0; char errbuf[PCAP_ERRBUF_SIZE]; --- 76,80 ---- pcap_if_t *alldevs; pcap_if_t *d; ! int i = 1; char errbuf[PCAP_ERRBUF_SIZE]; *************** *** 93,97 **** for(d=alldevs; d; d=d->next, i++) { ! if(!strcmp(d->name, dev.c_str())) break; } --- 93,97 ---- for(d=alldevs; d; d=d->next, i++) { ! if(!strcmp(d->name, dev.c_str())) break; } *************** *** 189,193 **** link = pcap_datalink(pd); ! switch(link){ case DLT_EN10MB: offset = 14; break; --- 189,193 ---- link = pcap_datalink(pd); ! switch(link){ case DLT_EN10MB: offset = 14; break; *************** *** 244,253 **** if(p){ if(head.caplen <= offset){ ! *len = 0; return NULL; } p += offset; }else return NULL; ! *len = head.caplen - offset; --- 244,253 ---- if(p){ if(head.caplen <= offset){ ! *len = 0; return NULL; } p += offset; }else return NULL; ! *len = head.caplen - offset; Index: cethwrapper.h =================================================================== RCS file: /cvsroot/icescan/IceScan/icesockets/cethwrapper.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** cethwrapper.h 22 Dec 2006 08:55:20 -0000 1.2 --- cethwrapper.h 23 Dec 2006 16:39:22 -0000 1.3 *************** *** 10,19 **** --- 10,69 ---- #include "sock_types.h" + #include "sock_err.h" #include "sock_utils.h" + #include "sock_name.h" + + int make_sockname(struct sockaddr_in& saddr, const char *hostname, int port, int domain); #ifdef HAVE_LIBDNET + /* Portions of code below are from libdnet package: + * Copyright (c) 2000-2004 Dug Song <du...@mo...> + * All rights reserved, all wrongs reversed. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. The names of the authors and copyright holders may not be used to + * endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL + * THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; + * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + + /* start of modified code from libdnet */ + #include "queue.h" + #define arp_pack_hdr_ethip_ice(hdr, eth_hdr, arp_pro, eal, pal, op, sha, spa, tha, tpa) do { \ + struct arp_hdr *pack_arp_p = (struct arp_hdr *)(hdr); \ + struct arp_ethip *pack_ethip_p = (struct arp_ethip *) \ + ((uint8_t *)(hdr) + ARP_HDR_LEN); \ + pack_arp_p->ar_hrd = htons(eth_hdr); \ + pack_arp_p->ar_pro = htons(arp_pro); \ + pack_arp_p->ar_hln = eal; \ + pack_arp_p->ar_pln = pal; \ + pack_arp_p->ar_op = htons(op); \ + memmove(pack_ethip_p->ar_sha, &(sha), ETH_ADDR_LEN); \ + memmove(pack_ethip_p->ar_spa, &(spa), IP_ADDR_LEN); \ + memmove(pack_ethip_p->ar_tha, &(tha), ETH_ADDR_LEN); \ + memmove(pack_ethip_p->ar_tpa, &(tpa), IP_ADDR_LEN); \ + } while (0) + struct ip_intf { eth_t *eth; *************** *** 35,38 **** --- 85,90 ---- }; + /* end of modified code from libdnet */ + class cethwrapper{ ip_t *i; *************** *** 47,50 **** --- 99,147 ---- return 0; } + + int send_arp_msg(uint16_t arp_opcode, icestring source_ha, icestring source_pa, + icestring dest_ha, icestring dest_pa, uint16_t eth_hardware = ARP_HRD_ETH, + uint16_t arp_protocol = ARP_PRO_IP, uint8_t hlen = ETH_ADDR_LEN, uint8_t plen = IP_ADDR_LEN ){ + struct ip_intf *ipi; + + struct sockaddr_in saddress_pa, daddress_pa; + int slen, dlen; + struct addr saddress_ha, daddress_ha; + + if(dest_pa != "") + dlen = make_sockname(daddress_pa, dest_pa.c_str(), 0, AF_UNIX); + else + return (-1); + + if ((ipi = i_lookup_ip_intf(i, daddress_pa.sin_addr.s_addr)) == NULL) { + errno = EHOSTUNREACH; + return (-1); + } + + if(source_pa != "") + slen = make_sockname(saddress_pa, source_pa.c_str(), 0, AF_UNIX); + else + saddress_pa.sin_addr.s_addr = ipi->pa.addr_ip; + + if(dest_ha != "") + addr_pton(dest_ha.c_str(), &daddress_ha); + else + addr_pton("ff:ff:ff:ff:ff:ff", &daddress_ha); + + if(source_ha!="") + addr_pton(source_ha.c_str(), &saddress_ha); + else{ + saddress_ha = ipi->ha; + } + + u_char frame[ETH_HDR_LEN + ARP_HDR_LEN + ARP_ETHIP_LEN]; + + eth_pack_hdr(frame, daddress_ha.addr_eth, ipi->ha.addr_eth, ETH_TYPE_ARP); //ETH_ADDR_BROADCAST + arp_pack_hdr_ethip_ice(frame + ETH_HDR_LEN, eth_hardware, arp_protocol, hlen, plen, arp_opcode, + saddress_ha.addr_eth, saddress_pa.sin_addr.s_addr, //ipi->pa.addr_ip + daddress_ha.addr_eth, daddress_pa.sin_addr.s_addr); //daddress_pa.sin_addr.s_addr, ETH_ADDR_BROADCAST + + eth_send(ipi->eth, frame, sizeof(frame)); + } //TODO: rewrite to work without root rights. *************** *** 91,122 **** private: ! /* Portions of code below are from libdnet package: ! * Copyright (c) 2000-2004 Dug Song <du...@mo...> ! * All rights reserved, all wrongs reversed. ! * ! * Redistribution and use in source and binary forms, with or without ! * modification, are permitted provided that the following conditions ! * are met: ! * ! * 1. Redistributions of source code must retain the above copyright ! * notice, this list of conditions and the following disclaimer. ! * 2. Redistributions in binary form must reproduce the above copyright ! * notice, this list of conditions and the following disclaimer in the ! * documentation and/or other materials provided with the distribution. ! * 3. The names of the authors and copyright holders may not be used to ! * endorse or promote products derived from this software without ! * specific prior written permission. ! * ! * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, ! * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY ! * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ! * THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, ! * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, ! * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; ! * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, ! * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR ! * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ! * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ! */ /* start of modified code from libdnet */ --- 188,192 ---- private: ! /* Portions of code below are from libdnet package. */ /* start of modified code from libdnet */ *************** *** 219,222 **** --- 289,294 ---- eth_send(ipi->eth, frame, sizeof(frame)); } + + ssize_t Index: sock_name.cc =================================================================== RCS file: /cvsroot/icescan/IceScan/icesockets/sock_name.cc,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** sock_name.cc 22 Dec 2006 20:31:57 -0000 1.3 --- sock_name.cc 23 Dec 2006 16:39:22 -0000 1.4 *************** *** 142,151 **** arp_get(p, &ae); ! arp_close(p); struct sockaddr sa; addr_ntos(&(ae.arp_ha), &sa); sprintf(arp, "%02x:%02x:%02x:%02x:%02x:%02x", --- 142,156 ---- arp_get(p, &ae); ! arp_close(p); + if(! ae.arp_ha.addr_bits) + return ""; + struct sockaddr sa; addr_ntos(&(ae.arp_ha), &sa); + + sprintf(arp, "%02x:%02x:%02x:%02x:%02x:%02x", *************** *** 160,164 **** return ret; ! #elif WIN32 && !__WITH_DNET__ PMIB_IPNETTABLE pIPNetTable = NULL; PMIB_IPNETROW pIPNetRow = NULL; --- 165,169 ---- return ret; ! #elif WIN32 && !HAVE_LIBDNET PMIB_IPNETTABLE pIPNetTable = NULL; PMIB_IPNETROW pIPNetRow = NULL; *************** *** 196,200 **** return ""; } ! #elif __linux__ && !__WITH_DNET__ struct sockaddr_in sin = { 0 }; struct arpreq myarp = { { 0 } }; --- 201,205 ---- return ""; } ! #elif __linux__ && !HAVE_LIBDNET struct sockaddr_in sin = { 0 }; struct arpreq myarp = { { 0 } }; |
From: Alexander B. <da...@us...> - 2006-12-23 16:39:25
|
Update of /cvsroot/icescan/IceScan/nbproject In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv9548/nbproject Modified Files: configurations.xml Log Message: no message Index: configurations.xml =================================================================== RCS file: /cvsroot/icescan/IceScan/nbproject/configurations.xml,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** configurations.xml 22 Dec 2006 08:55:21 -0000 1.3 --- configurations.xml 23 Dec 2006 16:39:23 -0000 1.4 *************** *** 12,22 **** <itemPath>icesockets/queue.h</itemPath> <itemPath>icesockets/sock_err.h</itemPath> - <itemPath>icesockets/sock_name.cc</itemPath> <itemPath>icesockets/sock_name.h</itemPath> <itemPath>icesockets/sock_types.h</itemPath> - <itemPath>icesockets/sock_utils.cc</itemPath> <itemPath>icesockets/sock_utils.h</itemPath> ! <itemPath>icesockets/sock_win.cc</itemPath> <itemPath>icesockets/sock_win.h</itemPath> </logicalFolder> <logicalFolder name="ExternalFiles" --- 12,22 ---- <itemPath>icesockets/queue.h</itemPath> <itemPath>icesockets/sock_err.h</itemPath> <itemPath>icesockets/sock_name.h</itemPath> + <itemPath>icesockets/sock_name.cc</itemPath> <itemPath>icesockets/sock_types.h</itemPath> <itemPath>icesockets/sock_utils.h</itemPath> ! <itemPath>icesockets/sock_utils.cc</itemPath> <itemPath>icesockets/sock_win.h</itemPath> + <itemPath>icesockets/sock_win.cc</itemPath> </logicalFolder> <logicalFolder name="ExternalFiles" *************** *** 30,49 **** <itemPath>icescan.1</itemPath> <itemPath>ieee-oui.txt</itemPath> - <itemPath>INSTALL.conf</itemPath> <itemPath>INSTALL</itemPath> <itemPath>Makefile.am</itemPath> <itemPath>NEWS</itemPath> - <itemPath>README.win32</itemPath> <itemPath>README</itemPath> <itemPath>services</itemPath> <itemPath>TODO</itemPath> </logicalFolder> ! <itemPath>csubtarget.cc</itemPath> <itemPath>csubtarget.h</itemPath> <itemPath>ctarget.h</itemPath> <itemPath>defwin.h</itemPath> <itemPath>icedbs.h</itemPath> - <itemPath>icediscover.cc</itemPath> <itemPath>icediscover.h</itemPath> <itemPath>iceoutput.h</itemPath> <itemPath>iceparams.h</itemPath> --- 30,50 ---- <itemPath>icescan.1</itemPath> <itemPath>ieee-oui.txt</itemPath> <itemPath>INSTALL</itemPath> + <itemPath>INSTALL.conf</itemPath> <itemPath>Makefile.am</itemPath> <itemPath>NEWS</itemPath> <itemPath>README</itemPath> + <itemPath>README.win32</itemPath> <itemPath>services</itemPath> <itemPath>TODO</itemPath> </logicalFolder> ! <itemPath>cfingerprint.h</itemPath> <itemPath>csubtarget.h</itemPath> + <itemPath>csubtarget.cc</itemPath> <itemPath>ctarget.h</itemPath> <itemPath>defwin.h</itemPath> <itemPath>icedbs.h</itemPath> <itemPath>icediscover.h</itemPath> + <itemPath>icediscover.cc</itemPath> <itemPath>iceoutput.h</itemPath> <itemPath>iceparams.h</itemPath> *************** *** 53,58 **** <itemPath>nbt_wrapper.h</itemPath> <itemPath>portdef.h</itemPath> - <itemPath>udpscan.cc</itemPath> <itemPath>udpscan.h</itemPath> </logicalFolder> <projectmakefile>Makefile</projectmakefile> --- 54,59 ---- <itemPath>nbt_wrapper.h</itemPath> <itemPath>portdef.h</itemPath> <itemPath>udpscan.h</itemPath> + <itemPath>udpscan.cc</itemPath> </logicalFolder> <projectmakefile>Makefile</projectmakefile> *************** *** 187,190 **** --- 188,194 ---- <itemTool>3</itemTool> </item> + <item path="cfingerprint.h"> + <itemTool>3</itemTool> + </item> </conf> </confs> |
From: Alexander B. <da...@us...> - 2006-12-22 20:32:08
|
Update of /cvsroot/icescan/IceScan In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv590 Modified Files: iceparams.h icescan.1 ChangeLog icescan.cc TODO csubtarget.cc Log Message: no message Index: icescan.cc =================================================================== RCS file: /cvsroot/icescan/IceScan/icescan.cc,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** icescan.cc 22 Dec 2006 08:55:21 -0000 1.3 --- icescan.cc 22 Dec 2006 20:31:57 -0000 1.4 *************** *** 42,46 **** "\t-n: disable reverse-dns lookups\n" "SCAN:\n" ! "\t default id tcp connect()\n" "\t-ST/SA/SS/SW: tcp connect()/ACK/SYN/Window scan\n" "\t-SB: udp NetBIOS scan\n" --- 42,46 ---- "\t-n: disable reverse-dns lookups\n" "SCAN:\n" ! "\t default is tcp connect()\n" "\t-ST/SA/SS/SW: tcp connect()/ACK/SYN/Window scan\n" "\t-SB: udp NetBIOS scan\n" *************** *** 52,61 **** "\t-p <port range>: specify port range to scan (default 1-1024)\n" "\t You can use: 1-10; 1; 1-10,12-14; etc.\n" ! "SOURCES AND SPOOFING:\n" "\t--list-interfaces: list all interfaces\n" "\t-i <iface-number>: use interface <iface-number> for pcap/source interface\n" "\t--send-eth: use channel(2) level to send raw packets\n" "\t--send-ip: use network(3) level to send raw packets\n" ! "\t--source-port/-g <portnum>: use specified source port number." "OTHER:\n" "\t-v[v[v[v]]]]: verbose levels\n" --- 52,64 ---- "\t-p <port range>: specify port range to scan (default 1-1024)\n" "\t You can use: 1-10; 1; 1-10,12-14; etc.\n" ! "INTERFACES:\n" "\t--list-interfaces: list all interfaces\n" "\t-i <iface-number>: use interface <iface-number> for pcap/source interface\n" "\t--send-eth: use channel(2) level to send raw packets\n" "\t--send-ip: use network(3) level to send raw packets\n" ! "FW/IDS EVASION AND SPOOFING:\n" ! "\t-s <IPv4 address>: spoof source address\n" ! "\t--source-port/-g <portnum>: use specified source port number\n" ! "\t--ttl <value>: set IP time-to-live field\n" "OTHER:\n" "\t-v[v[v[v]]]]: verbose levels\n" *************** *** 65,80 **** } bool parse_ports(int i, int argc, char *argv[], std::vector <port_range>& ports, bool isexit){ if(i+1 < argc){ IceRegex re1("^((\\d+(-\\d+)?),?)+$"); if(! re1.match(argv[i+1]) ){ ! if(isexit){ ! std::cout << "Invalid port range definition format." << std::endl; ! print_help(argv[0]); ! exit(1); ! } ! else{ ! return false; ! } }else{ IceRegex re("(\\d+(-\\d+)?),?"); --- 68,85 ---- } + void invalid_command(char *pname, char *msg, char *cmd){ + std::cout << msg << cmd << std::endl; + print_help(pname); + exit(1); + } + bool parse_ports(int i, int argc, char *argv[], std::vector <port_range>& ports, bool isexit){ if(i+1 < argc){ IceRegex re1("^((\\d+(-\\d+)?),?)+$"); if(! re1.match(argv[i+1]) ){ ! if(isexit) ! invalid_command(argv[0], "Invalid port range definition format.", ""); ! else ! return false; }else{ IceRegex re("(\\d+(-\\d+)?),?"); *************** *** 83,87 **** re.match(argv[i+1]); re.findReset(); - //re.Consume(&input, &var, &var2) while(re.findNext()){ --- 88,91 ---- *************** *** 101,109 **** i++; } ! }else{ ! std::cout << "Invalid port range definition format." << std::endl; ! print_help(argv[0]); ! exit(1); ! } return true; } --- 105,111 ---- i++; } ! }else ! invalid_command(argv[0], "Invalid port range definition format.",""); ! return true; } *************** *** 147,154 **** i++; ! } else { std::cout << "Invalid option format: " << argv[i] << std::endl; ! print_help(argv[0]); ! exit(1); ! } }else if(!strcmp(argv[i], "--uid0")){ par->forceuid = true; --- 149,154 ---- i++; ! } else ! invalid_command(argv[0], "Invalid option format: ", argv[i]); }else if(!strcmp(argv[i], "--uid0")){ par->forceuid = true; *************** *** 167,192 **** if(i+1<argc){ int port = atoi(argv[i+1]); ! i+=2; ! if(!port){ ! std::cout << "Invalid port number." << std::endl; ! print_help(argv[0]); ! exit(1); ! } par->source_port = port; ! }else{ ! std::cout << "Invalid option format..." << std::endl; ! print_help(argv[0]); ! exit(1); ! } ! }else{ ! std::cout << "Invalid option: -" << argv[i][1] << std::endl; ! print_help(argv[0]); ! exit(1); ! } }else{ - //DBGOUTPUT("Option is :" << argv[i]); switch(argv[i][1]){ --- 167,194 ---- if(i+1<argc){ int port = atoi(argv[i+1]); ! i++; ! if(!port) ! invalid_command(argv[0], "Invalid port number.",""); par->source_port = port; ! }else ! invalid_command(argv[0], "Invalid option format.",""); ! ! }else if(!strcmp(argv[i], "--ttl")){ ! if(i+1<argc){ ! int ttl = atoi(argv[i+1]); ! i++; ! ! if(!ttl) ! invalid_command(argv[0], "Invalid TTL value.", ""); ! ! par->ttl = ttl; ! }else ! invalid_command(argv[0], "Invalid option format.",""); ! }else ! invalid_command(argv[0], "Invalid option: ", argv[i]); }else{ switch(argv[i][1]){ *************** *** 196,203 **** for(int k=2; k<strlen(argv[i]); k++) if(argv[i][k] == 'v') par->verbose++; ! else { std::cout << "Invalid option: -" << argv[i] << std::endl; ! print_help(argv[0]); ! exit(1); ! } break; --- 198,203 ---- for(int k=2; k<strlen(argv[i]); k++) if(argv[i][k] == 'v') par->verbose++; ! else ! invalid_command(argv[0], "Invalid option: -", argv[i]); break; *************** *** 214,231 **** if(i+1<argc){ int port = atoi(argv[i+1]); ! i+=2; ! if(!port){ ! std::cout << "Invalid port number." << std::endl; ! print_help(argv[0]); ! exit(1); ! } par->source_port = port; ! }else{ ! std::cout << "Invalid option format..." << std::endl; ! print_help(argv[0]); ! exit(1); ! } break; --- 214,226 ---- if(i+1<argc){ int port = atoi(argv[i+1]); ! i++; ! if(!port) ! invalid_command(argv[0], "Invalid port number.",""); par->source_port = port; ! }else ! invalid_command(argv[0], "Invalid option format.", ""); ! break; *************** *** 245,250 **** if(strlen(argv[i])<3){ ! std::cout << "Invalid scan type." << std::endl; ! exit(0); //UGLY } --- 240,244 ---- if(strlen(argv[i])<3){ ! invalid_command(argv[0], "Invalid scan type.", ""); } *************** *** 295,310 **** default: ! std::cout << "Invalid scan type: -S" << argv[i][2] << std::endl; } break; case 'P': ! if(strlen(argv[i])<3){ ! std::cout << "Invalid discovery type." << std::endl; ! exit(0); //UGLY ! } ! switch(argv[i][2]){ case '0': --- 289,315 ---- default: ! invalid_command(argv[0], "Invalid scan type: ", argv[i]); } break; + case 's': + if(!(i+1 < argc)) + invalid_command(argv[0], "Invalid source ip: no ip.",""); + + i++; + + if(! is_ip(argv[i])) + invalid_command(argv[0], "Invalid source ip: this doesn't look like IPv4 address: ",argv[i]); + + par->source_ip.assign(argv[i]); + + break; + case 'P': ! if(strlen(argv[i])<3) ! invalid_command(argv[0], "Invalid discovery type.",""); ! switch(argv[i][2]){ case '0': *************** *** 339,345 **** default: ! std::cout << "Invalid discovery type: -P" << argv[i][2] << std::endl; ! print_help(argv[0]); ! exit(1); } --- 344,348 ---- default: ! invalid_command(argv[0], "Invalid discovery type: ", argv[i]); } *************** *** 351,362 **** default: ! std::cout << "Invalid option: -" << argv[i][1] << std::endl; ! print_help(argv[0]); ! exit(1); } } ! }else{ ! std::cout << "Invalid option format..." << std::endl; ! } }else{ //DBGOUTPUT("Target is: " << argv[i]); --- 354,362 ---- default: ! invalid_command(argv[0], "Invalid option: ", argv[i]); } } ! }else ! invalid_command(argv[0], "Invalid option format.",""); }else{ //DBGOUTPUT("Target is: " << argv[i]); *************** *** 367,374 **** }else{ ! ! std::cout << "Invalid number of arguments." << std::endl; ! print_help(argv[0]); ! exit(0); } --- 367,371 ---- }else{ ! invalid_command(argv[0], "Invalid number of arguments.",""); } Index: csubtarget.cc =================================================================== RCS file: /cvsroot/icescan/IceScan/csubtarget.cc,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** csubtarget.cc 21 Dec 2006 20:42:10 -0000 1.1 --- csubtarget.cc 22 Dec 2006 20:31:57 -0000 1.2 *************** *** 3,774 **** bool sort_sp(const scanned_port &p1, const scanned_port &p2){ ! return p1.port_number < p2.port_number; } csubtarget::csubtarget(icestring hostname, icestring reverse_hostname, iceparams *par, iceoutput *out){ - - struct scanned_port sp; ! subtarget_ports.push_back(sp); [...1521 lines suppressed...] ! }else if(subtarget_ports[j].status == PORT_OPEN_FILTERED){ ! sprintf(output_buf, "%5d/tcp o|f %s", subtarget_ports[j].port_number, par->isnd->get_tcp_service(subtarget_ports[j].port_number).c_str()); ! out->line(output_buf); ! }else if(subtarget_ports[j].status == PORT_UNFILTERED){ ! sprintf(output_buf, "%5d/tcp unfilt %s", subtarget_ports[j].port_number, par->isnd->get_tcp_service(subtarget_ports[j].port_number).c_str()); ! out->line(output_buf); ! }else if(subtarget_ports[j].status == PORT_CLOSED && show_closed){ ! sprintf(output_buf, "%5d/tcp closed %s", subtarget_ports[j].port_number, par->isnd->get_tcp_service(subtarget_ports[j].port_number).c_str()); ! out->line(output_buf); ! } } + + } + + csubtarget::~csubtarget(){ + //DBGOUTPUT("Entering destructor..."); + free(scan_sockets); + subtarget_ports.clear(); + //DBGOUTPUT("Leaving destructor..."); + } Index: ChangeLog =================================================================== RCS file: /cvsroot/icescan/IceScan/ChangeLog,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** ChangeLog 22 Dec 2006 06:56:32 -0000 1.2 --- ChangeLog 22 Dec 2006 20:31:57 -0000 1.3 *************** *** 11,14 **** --- 11,17 ---- + added autoconf/automake tools. + added man page. + + added --ttl option and ttl random generation. + + added --source-port option. + + added --source-ip option. *** IceScan v. 0.0.5, 18 Dec 2006 *** Index: iceparams.h =================================================================== RCS file: /cvsroot/icescan/IceScan/iceparams.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** iceparams.h 22 Dec 2006 08:55:21 -0000 1.2 --- iceparams.h 22 Dec 2006 20:31:57 -0000 1.3 *************** *** 65,68 **** --- 65,72 ---- unsigned char tcpflags; + + unsigned short int ttl; + + icestring source_ip; // Scan Port Range *************** *** 86,96 **** #ifndef WIN32 ! ethernet = false; #else ethernet = true; #endif - - ethernet = false; source_iface = 0; no_host_discovery = false; --- 90,99 ---- #ifndef WIN32 ! ethernet = false; #else ethernet = true; #endif source_iface = 0; + source_ip = ""; no_host_discovery = false; *************** *** 109,114 **** source_port = 0; ! tcpflags = 0; ! forceuid = false; } --- 112,118 ---- source_port = 0; ! tcpflags = 0; ! forceuid = false; ! ttl = 0; } Index: icescan.1 =================================================================== RCS file: /cvsroot/icescan/IceScan/icescan.1,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** icescan.1 21 Dec 2006 21:27:50 -0000 1.1 --- icescan.1 22 Dec 2006 20:31:57 -0000 1.2 *************** *** 11,15 **** .SH OPTIONS SUMMARY ! .TP USAGE: ./icescan [options] [scan type] target target can be hostname or IP address. --- 11,20 ---- .SH OPTIONS SUMMARY ! .PP ! This options summary is printed when IceScan is started with no arguments - ! a short crib to all IceScan commands and specific options. ! Beware that options list may change from version to version. ! .PP ! .nf USAGE: ./icescan [options] [scan type] target target can be hostname or IP address. *************** *** 23,27 **** -n: disable reverse-dns lookups SCAN: ! default id tcp connect() -ST/SA/SS/SW: tcp connect()/ACK/SYN/Window scan -SB: udp NetBIOS scan --- 28,32 ---- -n: disable reverse-dns lookups SCAN: ! default is tcp connect() -ST/SA/SS/SW: tcp connect()/ACK/SYN/Window scan -SB: udp NetBIOS scan *************** *** 33,49 **** -p <port range>: specify port range to scan (default 1-1024) You can use: 1-10; 1; 1-10,12-14; etc. ! INTERFACES AND SPOOFING: --list-interfaces: list all interfaces -i <iface-number>: use interface <iface-number> for pcap/source interface --send-eth: use channel(2) level to send raw packets --send-ip: use network(3) level to send raw packets ! MISC: --uid0: assume that the current user is fully privileged -V: print version and exit -?: this message - .SH HOST DISCOVERY OPTIONS .SH SCAN OPTIONS ! .SH INTERFACES AND SPOOFING OPTIONS .SH OTHER OPTIONS --- 38,59 ---- -p <port range>: specify port range to scan (default 1-1024) You can use: 1-10; 1; 1-10,12-14; etc. ! INTERFACES: --list-interfaces: list all interfaces -i <iface-number>: use interface <iface-number> for pcap/source interface --send-eth: use channel(2) level to send raw packets --send-ip: use network(3) level to send raw packets ! FW/IDS EVASION AND SPOOFING: ! -s <IPv4 address>: spoof source address ! --source-port/-g <portnum>: use specified source port number ! --ttl <value>: set IP time-to-live field ! OTHER: ! -v[v[v[v]]]]: verbose levels --uid0: assume that the current user is fully privileged -V: print version and exit -?: this message .SH HOST DISCOVERY OPTIONS .SH SCAN OPTIONS ! .SH INTERFACES ! .SH FW/EVASION AND SPOOFING OPTIONS .SH OTHER OPTIONS *************** *** 71,79 **** 3) Version of IceScan (the command 'icescan -V' will tell you, unless the bug is so severe as to prevent that from working, ! and should also tell you the versions of libraries with which ! it was built). .TP 4 4) The command you used to invoke IceScan, and the sequence of ! operations you performed that caused the bug to appear .PP If the bug is produced by a particular trace file, please be sure to send --- 81,88 ---- 3) Version of IceScan (the command 'icescan -V' will tell you, unless the bug is so severe as to prevent that from working, ! and should also tell you libraries with which it was built). .TP 4 4) The command you used to invoke IceScan, and the sequence of ! operations you performed that caused the bug to appear. .PP If the bug is produced by a particular trace file, please be sure to send Index: TODO =================================================================== RCS file: /cvsroot/icescan/IceScan/TODO,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** TODO 21 Dec 2006 21:27:50 -0000 1.2 --- TODO 22 Dec 2006 20:31:57 -0000 1.3 *************** *** 19,30 **** * Fix Raw TCP scan timeouts. + IP Protocol Scan (-SI) - + --ttl option and ttl random generation. + --badchksum option. ! + --source-port option. ! + --source-ip option. + ARP Scan + Fingerprint -- WIN32-specific -- ! * fix pcap read interface auto select --- 19,32 ---- * Fix Raw TCP scan timeouts. + IP Protocol Scan (-SI) + --badchksum option. ! + UDP RAW Scan (spoofed ip/mac/random data/etc...) ! + --data-length <num>: append random data to sent packets. ! ! -- Fingerprinting -- ! + ARP Scan + Fingerprint -- WIN32-specific -- ! * fix pcap read interface auto select |
From: Alexander B. <da...@us...> - 2006-12-22 20:32:03
|
Update of /cvsroot/icescan/IceScan/icesockets In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv590/icesockets Modified Files: sock_name.cc cpcapreader.h crawsocket.h sock_name.h Log Message: no message Index: cpcapreader.h =================================================================== RCS file: /cvsroot/icescan/IceScan/icesockets/cpcapreader.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** cpcapreader.h 21 Dec 2006 20:42:12 -0000 1.1 --- cpcapreader.h 22 Dec 2006 20:31:57 -0000 1.2 *************** *** 76,80 **** pcap_if_t *alldevs; pcap_if_t *d; ! int i=1; char errbuf[PCAP_ERRBUF_SIZE]; --- 76,80 ---- pcap_if_t *alldevs; pcap_if_t *d; ! int i = 0; char errbuf[PCAP_ERRBUF_SIZE]; *************** *** 85,100 **** } for(d=alldevs; d; d=d->next, i++) { if(!strcmp(d->name, dev.c_str())) break; } ! ! if(!d) (i = 0); ! pcap_freealldevs(alldevs); - if(i==0) - printf("\nNo interfaces found! Make sure WinPcap is installed.\n"); - return i; #else --- 85,101 ---- } + + if(!alldevs){ + printf("\nNo interfaces found! Make sure libPcap/WinPcap is installed.\n"); + return 0; + } + for(d=alldevs; d; d=d->next, i++) { if(!strcmp(d->name, dev.c_str())) break; } ! pcap_freealldevs(alldevs); return i; #else Index: crawsocket.h =================================================================== RCS file: /cvsroot/icescan/IceScan/icesockets/crawsocket.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** crawsocket.h 21 Dec 2006 20:42:12 -0000 1.1 --- crawsocket.h 22 Dec 2006 20:31:57 -0000 1.2 *************** *** 135,142 **** int send_tcp_raw(bool ethernet, icestring source, icestring destination, unsigned short sport, unsigned short dport, unsigned long seq, ! unsigned long ack, unsigned char flags, unsigned short window, char *data, const unsigned short datalen) { crandom r; ! #ifdef WIN32 char *packet = (char *) malloc(sizeof(struct iphdr) + sizeof(struct tcphdr) + datalen); --- 135,143 ---- int send_tcp_raw(bool ethernet, icestring source, icestring destination, unsigned short sport, unsigned short dport, unsigned long seq, ! unsigned long ack, unsigned char flags, unsigned short window, unsigned short ttl, char *data, const unsigned short datalen) { + crandom r; ! #ifdef WIN32 char *packet = (char *) malloc(sizeof(struct iphdr) + sizeof(struct tcphdr) + datalen); *************** *** 162,173 **** pseudo->dst_addr = daddress.sin_addr.s_addr; pseudo->protocol = IPPROTO_TCP; pseudo->length = htons(sizeof(struct tcphdr) + datalen); tcp->th_sport = htons(sport); tcp->th_dport = htons(dport); if (seq) tcp->th_seq = htonl(seq); else tcp->th_seq = r.rand_uint16(); ! if (flags & TH_ACK && ack) tcp->th_ack = htonl(seq); --- 163,176 ---- pseudo->dst_addr = daddress.sin_addr.s_addr; pseudo->protocol = IPPROTO_TCP; + pseudo->length = htons(sizeof(struct tcphdr) + datalen); tcp->th_sport = htons(sport); tcp->th_dport = htons(dport); + if (seq) tcp->th_seq = htonl(seq); else tcp->th_seq = r.rand_uint16(); ! if (flags & TH_ACK && ack) tcp->th_ack = htonl(seq); *************** *** 178,182 **** tcp->th_flags = flags; ! unsigned short ttl = (r.rand_uint8() + 50) % 255; if (window) --- 181,186 ---- tcp->th_flags = flags; ! if(!ttl) ! ttl = (r.rand_uint8() + 50) % 255; if (window) Index: sock_name.h =================================================================== RCS file: /cvsroot/icescan/IceScan/icesockets/sock_name.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** sock_name.h 22 Dec 2006 08:55:20 -0000 1.2 --- sock_name.h 22 Dec 2006 20:31:57 -0000 1.3 *************** *** 21,24 **** --- 21,26 ---- int make_sockname(struct sockaddr_in& saddr, const char *hostname, int port, int domain); + bool is_ip(char * nisname); + bool is_domainname(char * nisname); Index: sock_name.cc =================================================================== RCS file: /cvsroot/icescan/IceScan/icesockets/sock_name.cc,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** sock_name.cc 22 Dec 2006 08:55:20 -0000 1.2 --- sock_name.cc 22 Dec 2006 20:31:57 -0000 1.3 *************** *** 17,20 **** --- 17,23 ---- } + bool is_ip(char * nisname){ + return !is_domainname(nisname); + } bool is_domainname(char * nisname){ |
From: Alexander B. <da...@us...> - 2006-12-22 08:55:22
|
Update of /cvsroot/icescan/IceScan In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv25230 Modified Files: iceparams.h nbt_wrapper.h icescan.cc Makefile.am Log Message: no message Index: icescan.cc =================================================================== RCS file: /cvsroot/icescan/IceScan/icescan.cc,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** icescan.cc 21 Dec 2006 21:27:50 -0000 1.2 --- icescan.cc 22 Dec 2006 08:55:21 -0000 1.3 *************** *** 52,60 **** "\t-p <port range>: specify port range to scan (default 1-1024)\n" "\t You can use: 1-10; 1; 1-10,12-14; etc.\n" ! "INTERFACES AND SPOOFING:\n" "\t--list-interfaces: list all interfaces\n" "\t-i <iface-number>: use interface <iface-number> for pcap/source interface\n" "\t--send-eth: use channel(2) level to send raw packets\n" "\t--send-ip: use network(3) level to send raw packets\n" "OTHER:\n" "\t-v[v[v[v]]]]: verbose levels\n" --- 52,61 ---- "\t-p <port range>: specify port range to scan (default 1-1024)\n" "\t You can use: 1-10; 1; 1-10,12-14; etc.\n" ! "SOURCES AND SPOOFING:\n" "\t--list-interfaces: list all interfaces\n" "\t-i <iface-number>: use interface <iface-number> for pcap/source interface\n" "\t--send-eth: use channel(2) level to send raw packets\n" "\t--send-ip: use network(3) level to send raw packets\n" + "\t--source-port/-g <portnum>: use specified source port number." "OTHER:\n" "\t-v[v[v[v]]]]: verbose levels\n" *************** *** 160,163 **** --- 161,184 ---- }else if(!strcmp(argv[i], "--send-ip")){ par->ethernet = false; + }else if(!strcmp(argv[i], "--version")){ + std::cout << get_compiled_version_info(); + exit(0); + }else if(!strcmp(argv[i], "--source-port")){ + if(i+1<argc){ + int port = atoi(argv[i+1]); + i+=2; + + if(!port){ + std::cout << "Invalid port number." << std::endl; + print_help(argv[0]); + exit(1); + } + + par->source_port = port; + }else{ + std::cout << "Invalid option format..." << std::endl; + print_help(argv[0]); + exit(1); + } }else{ std::cout << "Invalid option: -" << argv[i][1] << std::endl; *************** *** 182,185 **** --- 203,207 ---- case 'V': + std::cout << get_compiled_version_info(); exit(0); break; *************** *** 188,191 **** --- 210,232 ---- par->reverse_dns = false; break; + + case 'g': + if(i+1<argc){ + int port = atoi(argv[i+1]); + i+=2; + + if(!port){ + std::cout << "Invalid port number." << std::endl; + print_help(argv[0]); + exit(1); + } + + par->source_port = port; + }else{ + std::cout << "Invalid option format..." << std::endl; + print_help(argv[0]); + exit(1); + } + break; case '?': Index: iceparams.h =================================================================== RCS file: /cvsroot/icescan/IceScan/iceparams.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** iceparams.h 21 Dec 2006 20:42:11 -0000 1.1 --- iceparams.h 22 Dec 2006 08:55:21 -0000 1.2 *************** *** 5,10 **** #include "icedbs.h" - #define NBT_PORT 137 - struct port_range{ int lower_port; --- 5,8 ---- *************** *** 64,68 **** int sim_connects; ! int netbios_port; unsigned char tcpflags; --- 62,66 ---- int sim_connects; ! int source_port; unsigned char tcpflags; *************** *** 100,104 **** ack_ping_discovery = false; syn_ping_discovery = false; ! icmp_echo_ping_discovery = false; icmp_mask_ping_discovery = false; icmp_timestamp_ping_discovery = false; --- 98,102 ---- ack_ping_discovery = false; syn_ping_discovery = false; ! icmp_echo_ping_discovery = false; icmp_mask_ping_discovery = false; icmp_timestamp_ping_discovery = false; *************** *** 109,113 **** sim_connects = 25; ! netbios_port = NBT_PORT + 10000; tcpflags = 0; --- 107,111 ---- sim_connects = 25; ! source_port = 0; tcpflags = 0; Index: Makefile.am =================================================================== RCS file: /cvsroot/icescan/IceScan/Makefile.am,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** Makefile.am 22 Dec 2006 06:56:32 -0000 1.2 --- Makefile.am 22 Dec 2006 08:55:21 -0000 1.3 *************** *** 4,8 **** csubtarget.cc icediscover.cc udpscan.cc icescan.cc icescan_DATA = services ieee-oui.txt README INSTALL COPYING AUTHORS ChangeLog INSTALL.conf ! icesacn_MAN=icescan.1 CXXFLAGS=-DICESCAN_DATADIR=\"$(icescandir)\" --- 4,8 ---- csubtarget.cc icediscover.cc udpscan.cc icescan.cc icescan_DATA = services ieee-oui.txt README INSTALL COPYING AUTHORS ChangeLog INSTALL.conf ! man1_MANS=icescan.1 CXXFLAGS=-DICESCAN_DATADIR=\"$(icescandir)\" Index: nbt_wrapper.h =================================================================== RCS file: /cvsroot/icescan/IceScan/nbt_wrapper.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** nbt_wrapper.h 21 Dec 2006 20:42:11 -0000 1.1 --- nbt_wrapper.h 22 Dec 2006 08:55:21 -0000 1.2 *************** *** 215,221 **** csocket c(AF_INET, SOCK_DGRAM); ! if(gethostname(local_hostname, 80)) exit(-1); ! c.bind(local_hostname, par->netbios_port, 0); //set local interface //beginning of repeater --- 215,228 ---- csocket c(AF_INET, SOCK_DGRAM); ! if(gethostname(local_hostname, 80)) exit(-1); //FIXME, UGLY!!!! ! icestring sip, temp; ! ! DBGOUTPUT(get_source_ip(hostname)); ! ! if(par->source_port) ! c.bind(local_hostname, par->source_port, 0); //set local interface ! else ! c.bind(local_hostname, csocket::getMagicPort(SOCK_DGRAM, 100), 0); //set local interface //beginning of repeater |
From: Alexander B. <da...@us...> - 2006-12-22 08:55:22
|
Update of /cvsroot/icescan/IceScan/icesockets In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv25230/icesockets Modified Files: sock_utils.h sock_name.cc sock_utils.cc sock_name.h sock_types.h cethwrapper.h Log Message: no message Index: sock_types.h =================================================================== RCS file: /cvsroot/icescan/IceScan/icesockets/sock_types.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** sock_types.h 21 Dec 2006 20:42:12 -0000 1.1 --- sock_types.h 22 Dec 2006 08:55:20 -0000 1.2 *************** *** 5,11 **** --- 5,14 ---- #define TRAILING_SLASH '/' + #define stringify(X) #X + #define make_str(X) stringify(X) #ifdef WIN32 #include "../defwin.h" + #undef VERSION #elif HAVE_CONFIG_H #include "../config.h" *************** *** 13,17 **** #ifdef HAVE_LIBDNET ! #include <dnet.h> #endif --- 16,20 ---- #ifdef HAVE_LIBDNET ! #include <dnet.h> #endif *************** *** 31,35 **** #ifndef __CYGWIN__ ! #include <pcap.h> #endif --- 34,38 ---- #ifndef __CYGWIN__ ! #include <pcap.h> #endif *************** *** 37,41 **** #ifdef WIN32 ! #define __WIN32__ #undef TRAILING_SLASH #define TRAILING_SLASH '\\' --- 40,44 ---- #ifdef WIN32 ! #define __WIN32__ #undef TRAILING_SLASH #define TRAILING_SLASH '\\' Index: sock_name.h =================================================================== RCS file: /cvsroot/icescan/IceScan/icesockets/sock_name.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** sock_name.h 21 Dec 2006 20:42:12 -0000 1.1 --- sock_name.h 22 Dec 2006 08:55:20 -0000 1.2 *************** *** 31,34 **** --- 31,36 ---- short int get_host_byip(icestring &nisname, icestring &retname); + icestring get_source_ip(const icestring &destip); + icestring get_source_ip(const icestring &destip, icestring &sourceint); Index: sock_name.cc =================================================================== RCS file: /cvsroot/icescan/IceScan/icesockets/sock_name.cc,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** sock_name.cc 21 Dec 2006 20:42:12 -0000 1.1 --- sock_name.cc 22 Dec 2006 08:55:20 -0000 1.2 *************** *** 99,102 **** --- 99,108 ---- } + icestring get_source_ip(const icestring &destip){ + icestring sourceint; + + return get_source_ip(destip, sourceint); + } + icestring get_source_ip(const icestring &destip, icestring &sourceint){ #ifndef HAVE_LIBDNET Index: cethwrapper.h =================================================================== RCS file: /cvsroot/icescan/IceScan/icesockets/cethwrapper.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** cethwrapper.h 21 Dec 2006 20:42:11 -0000 1.1 --- cethwrapper.h 22 Dec 2006 08:55:20 -0000 1.2 *************** *** 48,51 **** --- 48,52 ---- } + //TODO: rewrite to work without root rights. icestring get_source_ip(const icestring &destip, icestring &sourceint){ #ifdef __linux__ Index: sock_utils.h =================================================================== RCS file: /cvsroot/icescan/IceScan/icesockets/sock_utils.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** sock_utils.h 21 Dec 2006 20:42:12 -0000 1.1 --- sock_utils.h 22 Dec 2006 08:55:20 -0000 1.2 *************** *** 40,42 **** --- 40,44 ---- icestring find_icefile_path(char *fname); + icestring get_compiled_version_info(); + #endif Index: sock_utils.cc =================================================================== RCS file: /cvsroot/icescan/IceScan/icesockets/sock_utils.cc,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** sock_utils.cc 21 Dec 2006 20:42:12 -0000 1.1 --- sock_utils.cc 22 Dec 2006 08:55:20 -0000 1.2 *************** *** 1,3 **** --- 1,4 ---- #include "sock_utils.h" + #include <sstream> #ifdef WIN32 *************** *** 114,117 **** --- 115,153 ---- } + icestring get_compiled_version_info(){ + std::ostringstream os; + os.clear(); + + os << "Compiled with"; + + #ifdef HAVE_LIBPCRE + os << " with libpcre"; + #ifdef PCRE_MAJOR + #ifdef PCRE_MINOR + os << PCRE_MAJOR << "." << PCRE_MINOR; + #else /* PCRE_MINOR */ + os << PCRE_MAJOR; + #endif /* PCRE_MINOR */ + #else /* PCRE_MAJOR */ + //os << "(version unknown)"; + #endif /* PCRE_MAJOR */ + #else /* HAVE_LIBPCRE */ + os << "without libpcre"; + #endif /* HAVE_LIBPCRE */ + + + #ifdef HAVE_LIBPCAP + os << " with libpcap"; + #endif + + #ifdef HAVE_LIBDNET + os << " with libdnet"; + #endif + + os << ".\n\n"; + + return os.str(); + + } |
From: Alexander B. <da...@us...> - 2006-12-22 08:55:22
|
Update of /cvsroot/icescan/IceScan/nbproject In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv25230/nbproject Modified Files: configurations.xml Log Message: no message Index: configurations.xml =================================================================== RCS file: /cvsroot/icescan/IceScan/nbproject/configurations.xml,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** configurations.xml 21 Dec 2006 21:27:50 -0000 1.2 --- configurations.xml 22 Dec 2006 08:55:21 -0000 1.3 *************** *** 12,22 **** <itemPath>icesockets/queue.h</itemPath> <itemPath>icesockets/sock_err.h</itemPath> - <itemPath>icesockets/sock_name.h</itemPath> <itemPath>icesockets/sock_name.cc</itemPath> <itemPath>icesockets/sock_types.h</itemPath> - <itemPath>icesockets/sock_utils.h</itemPath> <itemPath>icesockets/sock_utils.cc</itemPath> ! <itemPath>icesockets/sock_win.h</itemPath> <itemPath>icesockets/sock_win.cc</itemPath> </logicalFolder> <logicalFolder name="ExternalFiles" --- 12,22 ---- <itemPath>icesockets/queue.h</itemPath> <itemPath>icesockets/sock_err.h</itemPath> <itemPath>icesockets/sock_name.cc</itemPath> + <itemPath>icesockets/sock_name.h</itemPath> <itemPath>icesockets/sock_types.h</itemPath> <itemPath>icesockets/sock_utils.cc</itemPath> ! <itemPath>icesockets/sock_utils.h</itemPath> <itemPath>icesockets/sock_win.cc</itemPath> + <itemPath>icesockets/sock_win.h</itemPath> </logicalFolder> <logicalFolder name="ExternalFiles" *************** *** 30,48 **** <itemPath>icescan.1</itemPath> <itemPath>ieee-oui.txt</itemPath> - <itemPath>INSTALL</itemPath> <itemPath>INSTALL.conf</itemPath> <itemPath>NEWS</itemPath> - <itemPath>README</itemPath> <itemPath>README.win32</itemPath> <itemPath>services</itemPath> <itemPath>TODO</itemPath> </logicalFolder> - <itemPath>csubtarget.h</itemPath> <itemPath>csubtarget.cc</itemPath> <itemPath>ctarget.h</itemPath> <itemPath>defwin.h</itemPath> <itemPath>icedbs.h</itemPath> - <itemPath>icediscover.h</itemPath> <itemPath>icediscover.cc</itemPath> <itemPath>iceoutput.h</itemPath> <itemPath>iceparams.h</itemPath> --- 30,49 ---- <itemPath>icescan.1</itemPath> <itemPath>ieee-oui.txt</itemPath> <itemPath>INSTALL.conf</itemPath> + <itemPath>INSTALL</itemPath> + <itemPath>Makefile.am</itemPath> <itemPath>NEWS</itemPath> <itemPath>README.win32</itemPath> + <itemPath>README</itemPath> <itemPath>services</itemPath> <itemPath>TODO</itemPath> </logicalFolder> <itemPath>csubtarget.cc</itemPath> + <itemPath>csubtarget.h</itemPath> <itemPath>ctarget.h</itemPath> <itemPath>defwin.h</itemPath> <itemPath>icedbs.h</itemPath> <itemPath>icediscover.cc</itemPath> + <itemPath>icediscover.h</itemPath> <itemPath>iceoutput.h</itemPath> <itemPath>iceparams.h</itemPath> *************** *** 52,57 **** <itemPath>nbt_wrapper.h</itemPath> <itemPath>portdef.h</itemPath> - <itemPath>udpscan.h</itemPath> <itemPath>udpscan.cc</itemPath> </logicalFolder> <projectmakefile>Makefile</projectmakefile> --- 53,58 ---- <itemPath>nbt_wrapper.h</itemPath> <itemPath>portdef.h</itemPath> <itemPath>udpscan.cc</itemPath> + <itemPath>udpscan.h</itemPath> </logicalFolder> <projectmakefile>Makefile</projectmakefile> |
From: Alexander B. <da...@us...> - 2006-12-22 06:56:34
|
Update of /cvsroot/icescan/IceScan In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv31803 Modified Files: configure ChangeLog Makefile.am config.status Log Message: no message Index: Makefile.am =================================================================== RCS file: /cvsroot/icescan/IceScan/Makefile.am,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Makefile.am 21 Dec 2006 20:42:10 -0000 1.1 --- Makefile.am 22 Dec 2006 06:56:32 -0000 1.2 *************** *** 4,7 **** --- 4,8 ---- csubtarget.cc icediscover.cc udpscan.cc icescan.cc icescan_DATA = services ieee-oui.txt README INSTALL COPYING AUTHORS ChangeLog INSTALL.conf + icesacn_MAN=icescan.1 CXXFLAGS=-DICESCAN_DATADIR=\"$(icescandir)\" Index: configure =================================================================== RCS file: /cvsroot/icescan/IceScan/configure,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** configure 21 Dec 2006 20:42:10 -0000 1.1 --- configure 22 Dec 2006 06:56:32 -0000 1.2 *************** *** 1,10 **** #! /bin/sh # Guess values for system-dependent variables and create Makefiles. ! # Generated by GNU Autoconf 2.60 for icescan "0.0.6". # # Report bugs to <'ke...@ti...'>. # ! # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, ! # 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. [...10499 lines suppressed...] *************** *** 8163,8170 **** done ;; - esac ! done # for ac_tag { (exit 0); exit 0; } --- 7153,7161 ---- done ;; esac ! done ! _ACEOF + cat >>$CONFIG_STATUS <<\_ACEOF { (exit 0); exit 0; } Index: config.status =================================================================== RCS file: /cvsroot/icescan/IceScan/config.status,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** config.status 21 Dec 2006 20:42:10 -0000 1.1 --- config.status 22 Dec 2006 06:56:32 -0000 1.2 *************** *** 260,264 **** cat >&5 <<_CSEOF ! This file was extended by icescan $as_me "0.0.6", which was generated by GNU Autoconf 2.59. Invocation command line was --- 260,264 ---- cat >&5 <<_CSEOF ! This file was extended by icescan $as_me "0.0.6rc1", which was generated by GNU Autoconf 2.59. Invocation command line was *************** *** 303,307 **** Report bugs to <bug...@gn...>." ac_cs_version="\ ! icescan config.status "0.0.6" configured by ./configure, generated by GNU Autoconf 2.59, with options \"\" --- 303,307 ---- Report bugs to <bug...@gn...>." ac_cs_version="\ ! icescan config.status "0.0.6rc1" configured by ./configure, generated by GNU Autoconf 2.59, with options \"\" *************** *** 457,462 **** s,@PACKAGE_NAME@,icescan,;t t s,@PACKAGE_TARNAME@,icescan,;t t ! s,@PACKAGE_VERSION@,"0.0.6",;t t ! s,@PACKAGE_STRING@,icescan "0.0.6",;t t s,@PACKAGE_BUGREPORT@,ke...@ti...,;t t s,@exec_prefix@,${prefix},;t t --- 457,462 ---- s,@PACKAGE_NAME@,icescan,;t t s,@PACKAGE_TARNAME@,icescan,;t t ! s,@PACKAGE_VERSION@,"0.0.6rc1",;t t ! s,@PACKAGE_STRING@,icescan "0.0.6rc1",;t t s,@PACKAGE_BUGREPORT@,ke...@ti...,;t t s,@exec_prefix@,${prefix},;t t *************** *** 482,498 **** s,@ECHO_N@,-n,;t t s,@ECHO_T@,,;t t ! s,@LIBS@,-lpthread -lpcrecpp -lpcre ,;t t s,@INSTALL_PROGRAM@,${INSTALL},;t t s,@INSTALL_SCRIPT@,${INSTALL},;t t s,@INSTALL_DATA@,${INSTALL} -m 644,;t t ! s,@CYGPATH_W@,cygpath -w,;t t s,@PACKAGE@,icescan,;t t ! s,@VERSION@,"0.0.6",;t t ! s,@ACLOCAL@,${SHELL} /cygdrive/c/icescan/missing --run aclocal-1.9,;t t ! s,@AUTOCONF@,${SHELL} /cygdrive/c/icescan/missing --run autoconf,;t t ! s,@AUTOMAKE@,${SHELL} /cygdrive/c/icescan/missing --run automake-1.9,;t t ! s,@AUTOHEADER@,${SHELL} /cygdrive/c/icescan/missing --run autoheader,;t t ! s,@MAKEINFO@,${SHELL} /cygdrive/c/icescan/missing --run makeinfo,;t t ! s,@install_sh@,/cygdrive/c/icescan/install-sh,;t t s,@STRIP@,,;t t s,@ac_ct_STRIP@,,;t t --- 482,498 ---- s,@ECHO_N@,-n,;t t s,@ECHO_T@,,;t t ! s,@LIBS@,-lpthread -lpcrecpp -lpcre -lpcap -ldnet ,;t t s,@INSTALL_PROGRAM@,${INSTALL},;t t s,@INSTALL_SCRIPT@,${INSTALL},;t t s,@INSTALL_DATA@,${INSTALL} -m 644,;t t ! s,@CYGPATH_W@,echo,;t t s,@PACKAGE@,icescan,;t t ! s,@VERSION@,"0.0.6rc1",;t t ! s,@ACLOCAL@,${SHELL} /home/key/IceScan/missing --run aclocal-1.9,;t t ! s,@AUTOCONF@,${SHELL} /home/key/IceScan/missing --run autoconf,;t t ! s,@AUTOMAKE@,${SHELL} /home/key/IceScan/missing --run automake-1.9,;t t ! s,@AUTOHEADER@,${SHELL} /home/key/IceScan/missing --run autoheader,;t t ! s,@MAKEINFO@,${SHELL} /home/key/IceScan/missing --run makeinfo,;t t ! s,@install_sh@,/home/key/IceScan/install-sh,;t t s,@STRIP@,,;t t s,@ac_ct_STRIP@,,;t t *************** *** 502,516 **** s,@SET_MAKE@,,;t t s,@am__leading_dot@,.,;t t ! s,@AMTAR@,${SHELL} /cygdrive/c/icescan/missing --run tar,;t t s,@am__tar@,${AMTAR} chof - "$$tardir",;t t s,@am__untar@,${AMTAR} xf -,;t t ! s,@build@,i686-pc-cygwin,;t t ! s,@build_cpu@,i686,;t t ! s,@build_vendor@,pc,;t t ! s,@build_os@,cygwin,;t t ! s,@host@,i686-pc-cygwin,;t t ! s,@host_cpu@,i686,;t t ! s,@host_vendor@,pc,;t t ! s,@host_os@,cygwin,;t t s,@CXX@,g++,;t t s,@CXXFLAGS@,-g -O2,;t t --- 502,516 ---- s,@SET_MAKE@,,;t t s,@am__leading_dot@,.,;t t ! s,@AMTAR@,${SHELL} /home/key/IceScan/missing --run tar,;t t s,@am__tar@,${AMTAR} chof - "$$tardir",;t t s,@am__untar@,${AMTAR} xf -,;t t ! s,@build@,x86_64-unknown-linux-gnu,;t t ! s,@build_cpu@,x86_64,;t t ! s,@build_vendor@,unknown,;t t ! s,@build_os@,linux-gnu,;t t ! s,@host@,x86_64-unknown-linux-gnu,;t t ! s,@host_cpu@,x86_64,;t t ! s,@host_vendor@,unknown,;t t ! s,@host_os@,linux-gnu,;t t s,@CXX@,g++,;t t s,@CXXFLAGS@,-g -O2,;t t *************** *** 518,522 **** s,@CPPFLAGS@,,;t t s,@ac_ct_CXX@,g++,;t t ! s,@EXEEXT@,.exe,;t t s,@OBJEXT@,o,;t t s,@DEPDIR@,.deps,;t t --- 518,522 ---- s,@CPPFLAGS@,,;t t s,@ac_ct_CXX@,g++,;t t ! s,@EXEEXT@,,;t t s,@OBJEXT@,o,;t t s,@DEPDIR@,.deps,;t t *************** *** 849,861 **** ${ac_dA}PACKAGE_NAME${ac_dB}PACKAGE_NAME${ac_dC}"icescan"${ac_dD} ${ac_dA}PACKAGE_TARNAME${ac_dB}PACKAGE_TARNAME${ac_dC}"icescan"${ac_dD} ! ${ac_dA}PACKAGE_VERSION${ac_dB}PACKAGE_VERSION${ac_dC}""0.0.6""${ac_dD} ! ${ac_dA}PACKAGE_STRING${ac_dB}PACKAGE_STRING${ac_dC}"icescan "0.0.6""${ac_dD} ${ac_dA}PACKAGE_BUGREPORT${ac_dB}PACKAGE_BUGREPORT${ac_dC}"ke...@ti..."${ac_dD} ! ${ac_dA}ICESCAN_VERSION${ac_dB}ICESCAN_VERSION${ac_dC}"0.0.6"${ac_dD} ${ac_dA}ICESCAN_NAME${ac_dB}ICESCAN_NAME${ac_dC}icescan${ac_dD} ${ac_dA}ICESCAN_DATE${ac_dB}ICESCAN_DATE${ac_dC}'21 December 2006"${ac_dD} ! ${ac_dA}ICESCAN_WEBSITE${ac_dB}ICESCAN_WEBSITE${ac_dC}"http://javanetsim.cvs.sourceforge.net/javanetsim/IceScan/"${ac_dD} ${ac_dA}PACKAGE${ac_dB}PACKAGE${ac_dC}"icescan"${ac_dD} ! ${ac_dA}VERSION${ac_dB}VERSION${ac_dC}""0.0.6""${ac_dD} ${ac_dA}HAVE_LIBPCRE${ac_dB}HAVE_LIBPCRE${ac_dC}1${ac_dD} ${ac_dA}HAVE_LIBPCRECPP${ac_dB}HAVE_LIBPCRECPP${ac_dC}1${ac_dD} --- 849,864 ---- ${ac_dA}PACKAGE_NAME${ac_dB}PACKAGE_NAME${ac_dC}"icescan"${ac_dD} ${ac_dA}PACKAGE_TARNAME${ac_dB}PACKAGE_TARNAME${ac_dC}"icescan"${ac_dD} ! ${ac_dA}PACKAGE_VERSION${ac_dB}PACKAGE_VERSION${ac_dC}""0.0.6rc1""${ac_dD} ! ${ac_dA}PACKAGE_STRING${ac_dB}PACKAGE_STRING${ac_dC}"icescan "0.0.6rc1""${ac_dD} ${ac_dA}PACKAGE_BUGREPORT${ac_dB}PACKAGE_BUGREPORT${ac_dC}"ke...@ti..."${ac_dD} ! ${ac_dA}ICESCAN_VERSION${ac_dB}ICESCAN_VERSION${ac_dC}"0.0.6rc1"${ac_dD} ${ac_dA}ICESCAN_NAME${ac_dB}ICESCAN_NAME${ac_dC}icescan${ac_dD} ${ac_dA}ICESCAN_DATE${ac_dB}ICESCAN_DATE${ac_dC}'21 December 2006"${ac_dD} ! ${ac_dA}ICESCAN_WEBSITE${ac_dB}ICESCAN_WEBSITE${ac_dC}"http://sourceforge.net/projects/icescan/"${ac_dD} ${ac_dA}PACKAGE${ac_dB}PACKAGE${ac_dC}"icescan"${ac_dD} ! ${ac_dA}VERSION${ac_dB}VERSION${ac_dC}""0.0.6rc1""${ac_dD} ! ${ac_dA}LINUX${ac_dB}LINUX${ac_dC}1${ac_dD} ! ${ac_dA}HAVE_LIBDNET${ac_dB}HAVE_LIBDNET${ac_dC}1${ac_dD} ! ${ac_dA}HAVE_LIBPCAP${ac_dB}HAVE_LIBPCAP${ac_dC}1${ac_dD} ${ac_dA}HAVE_LIBPCRE${ac_dB}HAVE_LIBPCRE${ac_dC}1${ac_dD} ${ac_dA}HAVE_LIBPCRECPP${ac_dB}HAVE_LIBPCRECPP${ac_dC}1${ac_dD} *************** *** 873,876 **** --- 876,880 ---- ${ac_dA}HAVE_ARPA_INET_H${ac_dB}HAVE_ARPA_INET_H${ac_dC}1${ac_dD} ${ac_dA}HAVE_FCNTL_H${ac_dB}HAVE_FCNTL_H${ac_dC}1${ac_dD} + ${ac_dA}HAVE_LIBINTL_H${ac_dB}HAVE_LIBINTL_H${ac_dC}1${ac_dD} ${ac_dA}HAVE_MEMORY_H${ac_dB}HAVE_MEMORY_H${ac_dC}1${ac_dD} ${ac_dA}HAVE_NETDB_H${ac_dB}HAVE_NETDB_H${ac_dC}1${ac_dD} *************** *** 881,888 **** ${ac_dA}HAVE_SYS_FILE_H${ac_dB}HAVE_SYS_FILE_H${ac_dC}1${ac_dD} ${ac_dA}HAVE_SYS_IOCTL_H${ac_dB}HAVE_SYS_IOCTL_H${ac_dC}1${ac_dD} - ${ac_dA}HAVE_SYS_PARAM_H${ac_dB}HAVE_SYS_PARAM_H${ac_dC}1${ac_dD} - ${ac_dA}HAVE_SYS_SOCKET_H${ac_dB}HAVE_SYS_SOCKET_H${ac_dC}1${ac_dD} - ${ac_dA}HAVE_SYS_TIME_H${ac_dB}HAVE_SYS_TIME_H${ac_dC}1${ac_dD} - ${ac_dA}HAVE_SYS_TIMEB_H${ac_dB}HAVE_SYS_TIMEB_H${ac_dC}1${ac_dD} CEOF sed -f $tmp/defines.sed $tmp/in >$tmp/out --- 885,888 ---- *************** *** 894,897 **** --- 894,901 ---- t clr : clr + ${ac_dA}HAVE_SYS_PARAM_H${ac_dB}HAVE_SYS_PARAM_H${ac_dC}1${ac_dD} + ${ac_dA}HAVE_SYS_SOCKET_H${ac_dB}HAVE_SYS_SOCKET_H${ac_dC}1${ac_dD} + ${ac_dA}HAVE_SYS_TIME_H${ac_dB}HAVE_SYS_TIME_H${ac_dC}1${ac_dD} + ${ac_dA}HAVE_SYS_TIMEB_H${ac_dB}HAVE_SYS_TIMEB_H${ac_dC}1${ac_dD} ${ac_dA}HAVE__BOOL${ac_dB}HAVE__BOOL${ac_dC}1${ac_dD} ${ac_dA}HAVE_STDBOOL_H${ac_dB}HAVE_STDBOOL_H${ac_dC}1${ac_dD} *************** *** 931,943 **** ${ac_uA}PACKAGE_NAME${ac_uB}PACKAGE_NAME${ac_uC}"icescan"${ac_uD} ${ac_uA}PACKAGE_TARNAME${ac_uB}PACKAGE_TARNAME${ac_uC}"icescan"${ac_uD} ! ${ac_uA}PACKAGE_VERSION${ac_uB}PACKAGE_VERSION${ac_uC}""0.0.6""${ac_uD} ! ${ac_uA}PACKAGE_STRING${ac_uB}PACKAGE_STRING${ac_uC}"icescan "0.0.6""${ac_uD} ${ac_uA}PACKAGE_BUGREPORT${ac_uB}PACKAGE_BUGREPORT${ac_uC}"ke...@ti..."${ac_uD} ! ${ac_uA}ICESCAN_VERSION${ac_uB}ICESCAN_VERSION${ac_uC}"0.0.6"${ac_uD} ${ac_uA}ICESCAN_NAME${ac_uB}ICESCAN_NAME${ac_uC}icescan${ac_uD} ${ac_uA}ICESCAN_DATE${ac_uB}ICESCAN_DATE${ac_uC}'21 December 2006"${ac_uD} ! ${ac_uA}ICESCAN_WEBSITE${ac_uB}ICESCAN_WEBSITE${ac_uC}"http://javanetsim.cvs.sourceforge.net/javanetsim/IceScan/"${ac_uD} ${ac_uA}PACKAGE${ac_uB}PACKAGE${ac_uC}"icescan"${ac_uD} ! ${ac_uA}VERSION${ac_uB}VERSION${ac_uC}""0.0.6""${ac_uD} ${ac_uA}HAVE_LIBPCRE${ac_uB}HAVE_LIBPCRE${ac_uC}1${ac_uD} ${ac_uA}HAVE_LIBPCRECPP${ac_uB}HAVE_LIBPCRECPP${ac_uC}1${ac_uD} --- 935,950 ---- ${ac_uA}PACKAGE_NAME${ac_uB}PACKAGE_NAME${ac_uC}"icescan"${ac_uD} ${ac_uA}PACKAGE_TARNAME${ac_uB}PACKAGE_TARNAME${ac_uC}"icescan"${ac_uD} ! ${ac_uA}PACKAGE_VERSION${ac_uB}PACKAGE_VERSION${ac_uC}""0.0.6rc1""${ac_uD} ! ${ac_uA}PACKAGE_STRING${ac_uB}PACKAGE_STRING${ac_uC}"icescan "0.0.6rc1""${ac_uD} ${ac_uA}PACKAGE_BUGREPORT${ac_uB}PACKAGE_BUGREPORT${ac_uC}"ke...@ti..."${ac_uD} ! ${ac_uA}ICESCAN_VERSION${ac_uB}ICESCAN_VERSION${ac_uC}"0.0.6rc1"${ac_uD} ${ac_uA}ICESCAN_NAME${ac_uB}ICESCAN_NAME${ac_uC}icescan${ac_uD} ${ac_uA}ICESCAN_DATE${ac_uB}ICESCAN_DATE${ac_uC}'21 December 2006"${ac_uD} ! ${ac_uA}ICESCAN_WEBSITE${ac_uB}ICESCAN_WEBSITE${ac_uC}"http://sourceforge.net/projects/icescan/"${ac_uD} ${ac_uA}PACKAGE${ac_uB}PACKAGE${ac_uC}"icescan"${ac_uD} ! ${ac_uA}VERSION${ac_uB}VERSION${ac_uC}""0.0.6rc1""${ac_uD} ! ${ac_uA}LINUX${ac_uB}LINUX${ac_uC}1${ac_uD} ! ${ac_uA}HAVE_LIBDNET${ac_uB}HAVE_LIBDNET${ac_uC}1${ac_uD} ! ${ac_uA}HAVE_LIBPCAP${ac_uB}HAVE_LIBPCAP${ac_uC}1${ac_uD} ${ac_uA}HAVE_LIBPCRE${ac_uB}HAVE_LIBPCRE${ac_uC}1${ac_uD} ${ac_uA}HAVE_LIBPCRECPP${ac_uB}HAVE_LIBPCRECPP${ac_uC}1${ac_uD} *************** *** 955,958 **** --- 962,966 ---- ${ac_uA}HAVE_ARPA_INET_H${ac_uB}HAVE_ARPA_INET_H${ac_uC}1${ac_uD} ${ac_uA}HAVE_FCNTL_H${ac_uB}HAVE_FCNTL_H${ac_uC}1${ac_uD} + ${ac_uA}HAVE_LIBINTL_H${ac_uB}HAVE_LIBINTL_H${ac_uC}1${ac_uD} ${ac_uA}HAVE_MEMORY_H${ac_uB}HAVE_MEMORY_H${ac_uC}1${ac_uD} ${ac_uA}HAVE_NETDB_H${ac_uB}HAVE_NETDB_H${ac_uC}1${ac_uD} *************** *** 963,970 **** ${ac_uA}HAVE_SYS_FILE_H${ac_uB}HAVE_SYS_FILE_H${ac_uC}1${ac_uD} ${ac_uA}HAVE_SYS_IOCTL_H${ac_uB}HAVE_SYS_IOCTL_H${ac_uC}1${ac_uD} - ${ac_uA}HAVE_SYS_PARAM_H${ac_uB}HAVE_SYS_PARAM_H${ac_uC}1${ac_uD} - ${ac_uA}HAVE_SYS_SOCKET_H${ac_uB}HAVE_SYS_SOCKET_H${ac_uC}1${ac_uD} - ${ac_uA}HAVE_SYS_TIME_H${ac_uB}HAVE_SYS_TIME_H${ac_uC}1${ac_uD} - ${ac_uA}HAVE_SYS_TIMEB_H${ac_uB}HAVE_SYS_TIMEB_H${ac_uC}1${ac_uD} CEOF sed -f $tmp/undefs.sed $tmp/in >$tmp/out --- 971,974 ---- *************** *** 976,979 **** --- 980,987 ---- t clr : clr + ${ac_uA}HAVE_SYS_PARAM_H${ac_uB}HAVE_SYS_PARAM_H${ac_uC}1${ac_uD} + ${ac_uA}HAVE_SYS_SOCKET_H${ac_uB}HAVE_SYS_SOCKET_H${ac_uC}1${ac_uD} + ${ac_uA}HAVE_SYS_TIME_H${ac_uB}HAVE_SYS_TIME_H${ac_uC}1${ac_uD} + ${ac_uA}HAVE_SYS_TIMEB_H${ac_uB}HAVE_SYS_TIMEB_H${ac_uC}1${ac_uD} ${ac_uA}HAVE__BOOL${ac_uB}HAVE__BOOL${ac_uC}1${ac_uD} ${ac_uA}HAVE_STDBOOL_H${ac_uB}HAVE_STDBOOL_H${ac_uC}1${ac_uD} Index: ChangeLog =================================================================== RCS file: /cvsroot/icescan/IceScan/ChangeLog,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** ChangeLog 21 Dec 2006 20:42:10 -0000 1.1 --- ChangeLog 22 Dec 2006 06:56:32 -0000 1.2 *************** *** 6,11 **** * fixed blocking pcap calls. ! + automatically select source ip/interface in Linux/Windows. + added OS independent (libdnet) checking MAC address. *** IceScan v. 0.0.5, 18 Dec 2006 *** --- 6,14 ---- * fixed blocking pcap calls. ! + automatically select source ip/interface in Linux. + added OS independent (libdnet) checking MAC address. + * random generating engine replaced with libdnet rand_t. + + added autoconf/automake tools. + + added man page. *** IceScan v. 0.0.5, 18 Dec 2006 *** |