summaryrefslogtreecommitdiffstats
path: root/sploitrunner.py
diff options
context:
space:
mode:
authordusoleil <howcansocksbereal@gmail.com>2021-08-02 00:36:28 -0400
committerdusoleil <howcansocksbereal@gmail.com>2021-08-03 19:45:57 -0400
commitb33db8c57b0875904610ae5dec64a653332ac835 (patch)
tree433206bcd4d10173110a04641c08576380c2a12f /sploitrunner.py
downloadsploit-b33db8c57b0875904610ae5dec64a653332ac835.tar.gz
sploit-b33db8c57b0875904610ae5dec64a653332ac835.zip
Adding Initial Commit of the Sploit Tool
Signed-off-by: dusoleil <howcansocksbereal@gmail.com>
Diffstat (limited to '')
-rwxr-xr-xsploitrunner.py38
1 files changed, 38 insertions, 0 deletions
diff --git a/sploitrunner.py b/sploitrunner.py
new file mode 100755
index 0000000..f0e5ac6
--- /dev/null
+++ b/sploitrunner.py
@@ -0,0 +1,38 @@
+#!/usr/bin/env python3
+
+import os
+import sys
+import subprocess
+import time
+
+import sploitconfig as config
+import sploitutil as util
+
+#infrastructure to run sploit
+#if sploit is called with command line arguments,
+#it will use them to call the target program with popen
+#otherwise, sploit will use stdin/stdout
+#you can use sploitpipe to run sploit with pipes spltin/spltout
+#which can be used with the target program
+#<spltin ./target &>spltout
+#or from within gdb
+#r <spltin &>spltout
+def runsploit(sploit):
+ if config.use_popen:
+ print(sys.argv[1:])
+ p = subprocess.Popen(sys.argv[1:],stdin=subprocess.PIPE,stdout=subprocess.PIPE,stderr=subprocess.STDOUT)
+
+ stdin = p.stdout if config.use_popen else os.fdopen(0,"rb")
+ stdout = p.stdin if config.use_popen else os.fdopen(1,"wb")
+
+ if config.wait_for_gdb > 0:
+ time.sleep(config.wait_for_gdb)
+
+ #exec custom sploit
+ sploit(stdin,stdout)
+
+ #read anything else out and wait for termination
+ for line in stdin:
+ util.log(line)
+ if config.use_popen:
+ p.wait()