mirror of
https://github.com/sqlmapproject/sqlmap.git
synced 2025-02-09 08:00:36 +03:00
enablind DNS server for DNS data exfiltration
This commit is contained in:
parent
8be9cd4ac4
commit
f7a664b120
|
@ -126,5 +126,5 @@ def main():
|
||||||
dumper.flush()
|
dumper.flush()
|
||||||
|
|
||||||
# Reference: http://stackoverflow.com/questions/1635080/terminate-a-multi-thread-python-program
|
# Reference: http://stackoverflow.com/questions/1635080/terminate-a-multi-thread-python-program
|
||||||
if hasattr(conf, "threads") and conf.threads > 1:
|
if conf.get("threads", 0) > 1 or conf.get("dnsServer", None):
|
||||||
os._exit(0)
|
os._exit(0)
|
||||||
|
|
|
@ -77,6 +77,7 @@ from lib.core.exception import sqlmapSyntaxException
|
||||||
from lib.core.exception import sqlmapUnsupportedDBMSException
|
from lib.core.exception import sqlmapUnsupportedDBMSException
|
||||||
from lib.core.exception import sqlmapUserQuitException
|
from lib.core.exception import sqlmapUserQuitException
|
||||||
from lib.core.optiondict import optDict
|
from lib.core.optiondict import optDict
|
||||||
|
from lib.request.dns import DNSServer
|
||||||
from lib.core.settings import CODECS_LIST_PAGE
|
from lib.core.settings import CODECS_LIST_PAGE
|
||||||
from lib.core.settings import DEFAULT_GET_POST_DELIMITER
|
from lib.core.settings import DEFAULT_GET_POST_DELIMITER
|
||||||
from lib.core.settings import DEFAULT_PAGE_ENCODING
|
from lib.core.settings import DEFAULT_PAGE_ENCODING
|
||||||
|
@ -581,7 +582,7 @@ def __setMetasploit():
|
||||||
if conf.osSmb:
|
if conf.osSmb:
|
||||||
isAdmin = runningAsAdmin()
|
isAdmin = runningAsAdmin()
|
||||||
|
|
||||||
if isAdmin is not True:
|
if not isAdmin:
|
||||||
errMsg = "you need to run sqlmap as an administrator "
|
errMsg = "you need to run sqlmap as an administrator "
|
||||||
errMsg += "if you want to perform a SMB relay attack because "
|
errMsg += "if you want to perform a SMB relay attack because "
|
||||||
errMsg += "it will need to listen on a user-specified SMB "
|
errMsg += "it will need to listen on a user-specified SMB "
|
||||||
|
@ -1380,6 +1381,7 @@ def __setConfAttributes():
|
||||||
conf.cj = None
|
conf.cj = None
|
||||||
conf.dbmsConnector = None
|
conf.dbmsConnector = None
|
||||||
conf.dbmsHandler = None
|
conf.dbmsHandler = None
|
||||||
|
conf.dnsServer = None
|
||||||
conf.dumpPath = None
|
conf.dumpPath = None
|
||||||
conf.hashDB = None
|
conf.hashDB = None
|
||||||
conf.hashDBFile = None
|
conf.hashDBFile = None
|
||||||
|
@ -1711,6 +1713,25 @@ def __setTrafficOutputFP():
|
||||||
|
|
||||||
conf.trafficFP = openFile(conf.trafficFile, "w+")
|
conf.trafficFP = openFile(conf.trafficFile, "w+")
|
||||||
|
|
||||||
|
def __setDNSServer():
|
||||||
|
if not conf.dnsDomain:
|
||||||
|
return
|
||||||
|
|
||||||
|
infoMsg = "making DNS server instance"
|
||||||
|
logger.info(infoMsg)
|
||||||
|
|
||||||
|
isAdmin = runningAsAdmin()
|
||||||
|
|
||||||
|
if isAdmin:
|
||||||
|
conf.dnsServer = DNSServer()
|
||||||
|
conf.dnsServer.run()
|
||||||
|
else:
|
||||||
|
errMsg = "you need to run sqlmap as an administrator "
|
||||||
|
errMsg += "if you want to perform a DNS data exfiltration attack "
|
||||||
|
errMsg += "as it will need to listen on privileged TCP port 53 "
|
||||||
|
errMsg += "for incoming address resolution attempts"
|
||||||
|
raise sqlmapMissingPrivileges, errMsg
|
||||||
|
|
||||||
def __setTorProxySettings():
|
def __setTorProxySettings():
|
||||||
if not conf.tor:
|
if not conf.tor:
|
||||||
return
|
return
|
||||||
|
@ -1919,6 +1940,7 @@ def init(inputOptions=AttribDict(), overrideOptions=False):
|
||||||
__checkDependencies()
|
__checkDependencies()
|
||||||
__basicOptionValidation()
|
__basicOptionValidation()
|
||||||
__setTorProxySettings()
|
__setTorProxySettings()
|
||||||
|
__setDNSServer()
|
||||||
__adjustLoggingFormatter()
|
__adjustLoggingFormatter()
|
||||||
__setMultipleTargets()
|
__setMultipleTargets()
|
||||||
__setTamperingFunctions()
|
__setTamperingFunctions()
|
||||||
|
|
|
@ -119,7 +119,7 @@ class Takeover(Abstraction, Metasploit, ICMPsh, Registry, Miscellaneous):
|
||||||
if tunnel == 2:
|
if tunnel == 2:
|
||||||
isAdmin = runningAsAdmin()
|
isAdmin = runningAsAdmin()
|
||||||
|
|
||||||
if isAdmin is not True:
|
if not isAdmin:
|
||||||
errMsg = "you need to run sqlmap as an administrator "
|
errMsg = "you need to run sqlmap as an administrator "
|
||||||
errMsg += "if you want to establish an out-of-band ICMP "
|
errMsg += "if you want to establish an out-of-band ICMP "
|
||||||
errMsg += "tunnel because icmpsh uses raw sockets to "
|
errMsg += "tunnel because icmpsh uses raw sockets to "
|
||||||
|
|
Loading…
Reference in New Issue
Block a user