From 241cbbb9b85ef619c7eeaa3fa5364014feb8f7f1 Mon Sep 17 00:00:00 2001 From: Jo-Philipp Wich Date: Fri, 18 Dec 2009 18:27:19 +0000 Subject: [PATCH] [packages] add thc-ipv6, an IPv6 attack and analyzing toolset SVN-Revision: 18835 --- ipv6/thc-ipv6/Makefile | 70 ++++++++++++++ .../patches/100-optional-openssl.patch | 93 +++++++++++++++++++ 2 files changed, 163 insertions(+) create mode 100644 ipv6/thc-ipv6/Makefile create mode 100644 ipv6/thc-ipv6/patches/100-optional-openssl.patch diff --git a/ipv6/thc-ipv6/Makefile b/ipv6/thc-ipv6/Makefile new file mode 100644 index 0000000000..374faf4953 --- /dev/null +++ b/ipv6/thc-ipv6/Makefile @@ -0,0 +1,70 @@ +# +# Copyright (C) 2009 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=thc-ipv6 +PKG_VERSION:=0.7 +PKG_REVISION:=1 + +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz +PKG_SOURCE_URL:=http://freeworld.thc.org/releases/ +PKG_MD5SUM:=01715cfa7f5d4a53fe8f142a10c38c78 + +include $(INCLUDE_DIR)/package.mk + +define Package/thc-ipv6/Default + SECTION:=ipv6 + CATEGORY:=IPv6 + DEPENDS:=+libpcap + URL:=http://freeworld.thc.org/ +endef + +define Build/Compile + $(MAKE) -C $(PKG_BUILD_DIR) \ + CC="$(TARGET_CC)" \ + OPT="$(TARGET_CFLAGS) -L$(STAGING_DIR)/usr/lib -I$(PKG_BUILD_DIR) -I$(STAGING_DIR)/usr/include" all +endef + + +define BuildTool + + PKG_CONFIG_DEPENDS+=CONFIG_PACKAGE_$(1) + + define Package/$(1) + $$(call Package/thc-ipv6/Default) + TITLE:=$(2) + SUBMENU:=IPv6 attack and analyzing toolset (thc-ipv6) + endef + + define Package/$(1)/description + $(3) + endef + + define Package/$(1)/install + $(INSTALL_DIR) $$(1)/usr/sbin + $(INSTALL_BIN) $(PKG_BUILD_DIR)/$(1) $$(1)/usr/sbin/$(1) + endef + + $$(eval $$(call BuildPackage,$(1))) + +endef + + +#$(eval $(call BuildTool,NAME,TITLE,DESCRIPTION)) +$(eval $(call BuildTool,parasite6,\"ARP spoofer\" for IPv6,Provides false answers to Neighbor Solitication requests)) +$(eval $(call BuildTool,dos-new-ip6,DAD spoofer,Prevents new IPv6 interfaces to come up by spoofing DAD)) +$(eval $(call BuildTool,detect-new-ip6,Host detector,Detects new IPv6 addresses joining the network)) +$(eval $(call BuildTool,fake_router6,Router spoofer,Send Router Advertisements and try to become the default router)) +$(eval $(call BuildTool,fake_advertise6,RA spoofer,Advertise arbitary IPv6 addresses)) +$(eval $(call BuildTool,fake_mld6,Multicast membership spoofer,Advertise local host in arbitary multicast groups)) +$(eval $(call BuildTool,fake_mipv6,MIPv6 update spoofer,Spoof MIPv6 updates to redirect packets directed at the home-address)) +$(eval $(call BuildTool,redir6,Route injector,Inject IPv6 routes to redirect traffic to other routers)) +$(eval $(call BuildTool,smurf6,Local smurfer,Smurf the target or all-nodes multicast group with ICMPv6 echo replies)) +$(eval $(call BuildTool,alive6,Host presence scanner,Find active IPv6 hosts in the network segment)) +$(eval $(call BuildTool,toobig6,MTU injector,Inject MTU values in a IPv6 host)) +$(eval $(call BuildTool,rsmurf6,Remote smurfer,Smurf the local network of a target host by exploiting Linux implementation errors)) diff --git a/ipv6/thc-ipv6/patches/100-optional-openssl.patch b/ipv6/thc-ipv6/patches/100-optional-openssl.patch new file mode 100644 index 0000000000..96f6ceb707 --- /dev/null +++ b/ipv6/thc-ipv6/patches/100-optional-openssl.patch @@ -0,0 +1,93 @@ +--- a/Makefile ++++ b/Makefile +@@ -1,8 +1,8 @@ + CC=gcc + #OPT=-Wall -ggdb +-OPT=-O2 +-LIB=-lpcap -lssl -lcrypto +-PROGRAM=parasite6 dos-new-ip6 detect-new-ip6 fake_router6 fake_advertise6 fake_mld6 fake_mipv6 redir6 smurf6 alive6 toobig6 rsmurf6 test_implementation6 sendpees6 ++OPT=-O2 $(if $(USE_SSL),-DUSE_SSL,) ++LIB=-lpcap $(if $(USE_SSL),-lssl -lcrypto,) ++PROGRAM=parasite6 dos-new-ip6 detect-new-ip6 fake_router6 fake_advertise6 fake_mld6 fake_mipv6 redir6 smurf6 alive6 toobig6 rsmurf6 test_implementation6 $(if $(USE_SSL),sendpees6,) + + all: thc-ipv6-lib.o $(PROGRAM) + +--- a/thc-ipv6-lib.c ++++ b/thc-ipv6-lib.c +@@ -37,8 +37,10 @@ + #include + #include "thc-ipv6.h" + /* libssl */ ++#ifdef USE_SSL + #include + #include ++#endif + + + +@@ -1507,7 +1509,7 @@ + * 2006/07 + */ + +- ++#ifdef USE_SSL + thc_key_t *thc_generate_key(int key_len) + { + thc_key_t *key; +@@ -1598,6 +1600,7 @@ + + return cga_hdr; + } ++#endif + + thc_timestamp_hdr *generate_timestamp(void) + { +@@ -1632,6 +1635,7 @@ + return nonce; + } + ++#ifdef USE_SSL + thc_rsa_hdr *thc_generate_rsa(char *data2sign, int data2sign_len, thc_cga_hdr *cga_hdr, thc_key_t *key) + { + thc_rsa_hdr *rsa_hdr; +@@ -1827,3 +1831,4 @@ + + return 0; + } ++#endif +--- a/thc-ipv6.h ++++ b/thc-ipv6.h +@@ -10,7 +10,9 @@ + #define _THC_IPV6_H + + #include ++#ifdef USE_SSL + #include ++#endif + + #define VERSION "v0.7" + #define AUTHOR "van Hauser / THC " +@@ -228,10 +230,12 @@ + char *pad; + } thc_rsa_hdr; + ++#ifdef USE_SSL + typedef struct { + RSA *rsa; + int len; + } thc_key_t; ++#endif + + typedef struct { + unsigned char *data; +@@ -239,8 +243,10 @@ + int len; + } opt_t; + ++#ifdef USE_SSL + extern thc_key_t *thc_generate_key(int key_len); + extern thc_cga_hdr *thc_generate_cga(unsigned char *prefix, thc_key_t *key, unsigned char **cga); ++#endif + + #endif + -- 2.30.2