mirror of
https://github.com/autistic-symposium/sec-pentesting-toolkit.git
synced 2025-04-25 10:09:08 -04:00
115 lines
2.1 KiB
Python
115 lines
2.1 KiB
Python
#!/usr/bin/env python
|
|
|
|
|
|
__author__ = "bt3gl"
|
|
|
|
|
|
import sys
|
|
from telnetlib import Telnet
|
|
from caesarCipher import decipher, decipher_simple
|
|
from pygenere import VigCrack
|
|
|
|
|
|
|
|
def solve1(msg):
|
|
# Caesar Cipher
|
|
# Solve the first cypher and encode back to unicode:
|
|
# the method encode() returns an encoded version of the string
|
|
# Both method work fine.
|
|
# One is by freq. analysis or the other by rotating
|
|
dec_msg = decipher(msg)
|
|
#dec_msg = decipher_simple(msg)
|
|
dec_msg = dec_msg.split()[-1]
|
|
return dec_msg
|
|
|
|
|
|
|
|
|
|
def solve2(msg):
|
|
# Shift cypher, but dealing with special characters
|
|
for j in range(2, len(msg)):
|
|
dec_msg = ['0'] * len(msg)
|
|
idec_msg,shift = 0, 0
|
|
for i in range(len(msg)):
|
|
dec_msg[idec_msg] = msg[i]
|
|
idec_msg += j
|
|
if idec_msg >= len(msg):
|
|
shift += 1
|
|
idec_msg = shift
|
|
dec_msg = "".join(dec_msg)
|
|
if "you" not in dec_msg: continue
|
|
return dec_msg
|
|
|
|
|
|
|
|
|
|
|
|
def solve3(msg):
|
|
# Vigenere Cypher
|
|
key = VigCrack(msg).crack_codeword()
|
|
dec_msg = VigCrack(msg).crack_message()
|
|
dec_msg = dec_msg.replace(" ", "")
|
|
return key, dec_msg
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
|
PORT = 12345
|
|
HOST = '54.209.5.48'
|
|
tn = Telnet(HOST ,PORT)
|
|
|
|
|
|
'''
|
|
SOLVING STAGE 1 - CEASAR CIPHER
|
|
'''
|
|
|
|
tn.read_until(b'psifer text: ')
|
|
msg_in1 = tn.read_until(b'\n').dec_msg().strip()
|
|
|
|
answer1 = solve1(msg_in1)
|
|
|
|
tn.write(answer1.encode() + b'\n')
|
|
|
|
print 'Message stage 1: ' + msg_in1
|
|
print
|
|
print 'Answer stage 1: ' + answer1
|
|
print
|
|
print
|
|
|
|
|
|
|
|
'''
|
|
SOLVING STAGE 2 - SPECIAL CHARS
|
|
'''
|
|
msg_in2 = tn.read_all().dec_msg()
|
|
msg_in2 = (msg_in2.split(':')[1]).split("Time")[0]
|
|
|
|
answer2 = solve2(msg_in2)
|
|
|
|
tn.write(answer2.encode() + b'\n')
|
|
|
|
print 'Message stage 2: ' + msg_in2
|
|
print
|
|
print 'Answer stage 2: ' + answer2
|
|
print
|
|
print
|
|
|
|
|
|
'''
|
|
SOLVING STAGE 3 - VINEGERE
|
|
'''
|
|
msg_in3 = tn.read_all().dec_msg()
|
|
msg_in3 = (msg_in3.split(':')[1]).split("Time")[0]
|
|
|
|
|
|
key, answer3 = solve3(msg_in3)
|
|
tn.write(answer3.encode() + b'\n')
|
|
|
|
print 'Message stage 3: ' + msg_in3
|
|
print
|
|
print 'Answer stage 3: ' + answer3
|
|
print '(key: ' + key + ')'
|