mirror of
https://github.com/lgandx/Responder.git
synced 2025-12-17 05:09:02 +00:00
Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
235f0fa8ae | ||
|
|
0660cc2fe7 | ||
|
|
823915fe44 | ||
|
|
5c9fec923c |
39
FindSQLSrv.py
Executable file
39
FindSQLSrv.py
Executable file
@@ -0,0 +1,39 @@
|
|||||||
|
#! /usr/bin/env python
|
||||||
|
# Created by Laurent Gaffie
|
||||||
|
# This file is part of the Responder toolkit.
|
||||||
|
# Copyright (C) 2014 Trustwave Holdings, Inc.
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
import socket
|
||||||
|
from socket import *
|
||||||
|
|
||||||
|
print 'MSSQL Server Finder 0.1\nPlease send bugs/comments/e-beer to: lgaffie@trustwave.com\n'
|
||||||
|
|
||||||
|
s = socket(AF_INET,SOCK_DGRAM)
|
||||||
|
s.setsockopt(SOL_SOCKET, SO_BROADCAST, 1)
|
||||||
|
s.settimeout(2)
|
||||||
|
s.sendto('\x02',('255.255.255.255',1434))
|
||||||
|
try:
|
||||||
|
while 1:
|
||||||
|
data, address = s.recvfrom(8092)
|
||||||
|
if not data:
|
||||||
|
break
|
||||||
|
else:
|
||||||
|
print "===============================================================\nHost details:",address[0]
|
||||||
|
print data[2:]
|
||||||
|
print "===============================================================\n"
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
@@ -264,4 +264,3 @@ def RunThisInLoop(host, host2, ip):
|
|||||||
sleep(480)
|
sleep(480)
|
||||||
|
|
||||||
FindWhatToDo(ToThisHost2)
|
FindWhatToDo(ToThisHost2)
|
||||||
|
|
||||||
|
|||||||
9
Responder.py
Executable file → Normal file
9
Responder.py
Executable file → Normal file
@@ -630,16 +630,17 @@ from SMBPackets import *
|
|||||||
#Detect if SMB auth was Anonymous
|
#Detect if SMB auth was Anonymous
|
||||||
def Is_Anonymous(data):
|
def Is_Anonymous(data):
|
||||||
SecBlobLen = struct.unpack('<H',data[51:53])[0]
|
SecBlobLen = struct.unpack('<H',data[51:53])[0]
|
||||||
if SecBlobLen < 220:
|
if SecBlobLen < 260:
|
||||||
SSPIStart = data[75:]
|
SSPIStart = data[75:]
|
||||||
LMhashLen = struct.unpack('<H',data[89:91])[0]
|
LMhashLen = struct.unpack('<H',data[89:91])[0]
|
||||||
if LMhashLen == 0 or LMhashLen == 1:
|
if LMhashLen == 0 or LMhashLen == 1:
|
||||||
return True
|
return True
|
||||||
else:
|
else:
|
||||||
return False
|
return False
|
||||||
if SecBlobLen > 220:
|
if SecBlobLen > 260:
|
||||||
SSPIStart = data[79:]
|
SSPIStart = data[79:]
|
||||||
LMhashLen = struct.unpack('<H',data[93:95])[0]
|
LMhashLen = struct.unpack('<H',data[93:95])[0]
|
||||||
|
print 'LMHASHLEN:',struct.unpack('<H',data[89:91])[0]
|
||||||
if LMhashLen == 0 or LMhashLen == 1:
|
if LMhashLen == 0 or LMhashLen == 1:
|
||||||
return True
|
return True
|
||||||
else:
|
else:
|
||||||
@@ -692,7 +693,7 @@ def ParseShare(data):
|
|||||||
def ParseSMBHash(data,client):
|
def ParseSMBHash(data,client):
|
||||||
SecBlobLen = struct.unpack('<H',data[51:53])[0]
|
SecBlobLen = struct.unpack('<H',data[51:53])[0]
|
||||||
BccLen = struct.unpack('<H',data[61:63])[0]
|
BccLen = struct.unpack('<H',data[61:63])[0]
|
||||||
if SecBlobLen < 220:
|
if SecBlobLen < 260:
|
||||||
SSPIStart = data[75:]
|
SSPIStart = data[75:]
|
||||||
LMhashLen = struct.unpack('<H',data[89:91])[0]
|
LMhashLen = struct.unpack('<H',data[89:91])[0]
|
||||||
LMhashOffset = struct.unpack('<H',data[91:93])[0]
|
LMhashOffset = struct.unpack('<H',data[91:93])[0]
|
||||||
@@ -700,7 +701,7 @@ def ParseSMBHash(data,client):
|
|||||||
NthashLen = struct.unpack('<H',data[97:99])[0]
|
NthashLen = struct.unpack('<H',data[97:99])[0]
|
||||||
NthashOffset = struct.unpack('<H',data[99:101])[0]
|
NthashOffset = struct.unpack('<H',data[99:101])[0]
|
||||||
|
|
||||||
if SecBlobLen > 220:
|
if SecBlobLen > 260:
|
||||||
SSPIStart = data[79:]
|
SSPIStart = data[79:]
|
||||||
LMhashLen = struct.unpack('<H',data[93:95])[0]
|
LMhashLen = struct.unpack('<H',data[93:95])[0]
|
||||||
LMhashOffset = struct.unpack('<H',data[95:97])[0]
|
LMhashOffset = struct.unpack('<H',data[95:97])[0]
|
||||||
|
|||||||
@@ -445,4 +445,3 @@ if __name__ == '__main__':
|
|||||||
except KeyboardInterrupt:
|
except KeyboardInterrupt:
|
||||||
raise
|
raise
|
||||||
raw_input()
|
raw_input()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user