summaryrefslogtreecommitdiff
path: root/honeypot.py
diff options
context:
space:
mode:
Diffstat (limited to 'honeypot.py')
-rwxr-xr-xhoneypot.py58
1 files changed, 58 insertions, 0 deletions
diff --git a/honeypot.py b/honeypot.py
new file mode 100755
index 0000000..82893b6
--- /dev/null
+++ b/honeypot.py
@@ -0,0 +1,58 @@
+#!/usr/bin/env python3
+
+"""
+ honeypot.py
+
+ Copyright 2017,2018, 2019 (C) Mind Chasers Inc,
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+"""
+
+import sys
+import argparse
+from socket import socket, AF_INET, SOCK_STREAM
+
+VERSION = '0.1b'
+welcome = b"Ubuntu 18.04.2 LTS\nserver login: "
+
+def send_email(src_address):
+ """ Todo: send an email if we're scanned / probed on this port """
+ pass
+
+def honeypot(address,port=23):
+ """ create a single Threaded telnet listen port """
+ try:
+ ski=socket(AF_INET,SOCK_STREAM)
+ ski.bind((address, port))
+ ski.listen()
+ conn,addr = ski.accept()
+ print('honeypot has been visited by ' + addr[0])
+ send_email(addr[0])
+ conn.sendall(welcome)
+ while True:
+ data=conn.recv(1024)
+ if data == b'\r\n':
+ ski.close()
+ sys.exit()
+ except:
+ ski.close()
+ sys.exit()
+
+if __name__ == '__main__':
+ parser = argparse.ArgumentParser(description='honeypot prototype',
+ epilog='Version: ' + str(VERSION))
+ parser.add_argument('-a','--address',help='server ip address to use',action='store', required=True)
+ args = parser.parse_args()
+
+ honeypot(args.address)