diff --git a/extra/icmpsh/icmpsh_m.py b/extra/icmpsh/icmpsh_m.py index 595f060a1..d78da72ef 100755 --- a/extra/icmpsh/icmpsh_m.py +++ b/extra/icmpsh/icmpsh_m.py @@ -25,8 +25,11 @@ import select import socket import sys -from impacket import ImpactDecoder -from impacket import ImpactPacket +try: + from impacket import ImpactDecoder + from impacket import ImpactPacket +except ImportError, _: + pass def main(src, dst): # Make standard input a non-blocking file diff --git a/plugins/generic/takeover.py b/plugins/generic/takeover.py index 1d107d4e1..b8cd44f85 100644 --- a/plugins/generic/takeover.py +++ b/plugins/generic/takeover.py @@ -12,6 +12,7 @@ from lib.core.common import runningAsAdmin from lib.core.data import conf from lib.core.data import kb from lib.core.data import logger +from lib.core.exception import sqlmapMissingDependence from lib.core.exception import sqlmapMissingMandatoryOptionException from lib.core.exception import sqlmapMissingPrivileges from lib.core.exception import sqlmapNotVulnerableException @@ -126,6 +127,15 @@ class Takeover(Abstraction, Metasploit, ICMPsh, Registry, Miscellaneous): errMsg += "sniff and craft ICMP packets" raise sqlmapMissingPrivileges, errMsg + try: + from impacket import ImpactDecoder + from impacket import ImpactPacket + except ImportError, _: + errMsg = "sqlmap requires 'impacket' third-party library " + errMsg += "in order to run icmpsh master. Download from " + errMsg += "http://oss.coresecurity.com/projects/impacket.html" + raise sqlmapMissingDependence, errMsg + if kb.stackedTest or conf.direct: web = False