add !isupraw - to check if a tcp connection is possible to a target
closes #120
This commit is contained in:
parent
4157574516
commit
15782908db
1 changed files with 27 additions and 0 deletions
|
@ -1,3 +1,4 @@
|
||||||
|
import socket
|
||||||
from src import ModuleManager, utils
|
from src import ModuleManager, utils
|
||||||
|
|
||||||
class Module(ModuleManager.BaseModule):
|
class Module(ModuleManager.BaseModule):
|
||||||
|
@ -18,3 +19,29 @@ class Module(ModuleManager.BaseModule):
|
||||||
|
|
||||||
event["stdout"].write("%s looks up to me (HTTP %d)" %
|
event["stdout"].write("%s looks up to me (HTTP %d)" %
|
||||||
(url, response.code))
|
(url, response.code))
|
||||||
|
|
||||||
|
@utils.hook("received.command.isupraw")
|
||||||
|
@utils.kwarg("min_args", 1)
|
||||||
|
@utils.kwarg("help", "Check if a given hostname:port is up or not")
|
||||||
|
@utils.kwarg("usage", "<hostname>[:port]")
|
||||||
|
def isupraw(self, event):
|
||||||
|
hostname, _, port = event["args_split"][0].partition(":")
|
||||||
|
port = utils.parse.try_int(port or "80")
|
||||||
|
if port == None:
|
||||||
|
raise utils.EventError("Port must be a number")
|
||||||
|
|
||||||
|
error = None
|
||||||
|
try:
|
||||||
|
with utils.deadline(seconds=5):
|
||||||
|
socket.create_connection((hostname, port))
|
||||||
|
except utils.DeadlineExceededException:
|
||||||
|
error = "timed out"
|
||||||
|
except Exception as e:
|
||||||
|
error = str(e)
|
||||||
|
|
||||||
|
if error == None:
|
||||||
|
event["stdout"].write("%s:%d looks up to me" % (hostname, port))
|
||||||
|
else:
|
||||||
|
event["stderr"].write("%s:%d looks down to me (%s)" %
|
||||||
|
(hostname, port, error))
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue