mirror of
				https://github.com/autistic-symposium/sec-pentesting-toolkit.git
				synced 2025-11-03 20:14:29 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			85 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			85 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
#!/usr/bin/python
 | 
						|
 | 
						|
__author__ = "bt3gl"
 | 
						|
__email__ = "bt3gl@gmail.com"
 | 
						|
 | 
						|
 | 
						|
import decimal
 | 
						|
import socket
 | 
						|
 | 
						|
 | 
						|
def nc_paillier():
 | 
						|
 | 
						|
    # create socket
 | 
						|
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
 | 
						|
    s.connect((HOST, PORT))
 | 
						|
 | 
						|
 | 
						|
    # answer the initial question
 | 
						|
    print s.recv(4096)
 | 
						|
    s.send(b'paillier')
 | 
						|
 | 
						|
 | 
						|
    # get the secret
 | 
						|
    print s.recv(4096)
 | 
						|
    m = s.recv(4096)
 | 
						|
 | 
						|
    # cleaning it
 | 
						|
    m = (m.split(": ")[1]).split('\n')[0]
 | 
						|
 | 
						|
    # it's good to print (because it changes periodically)
 | 
						|
    print("The secret is: ")
 | 
						|
    print(m)
 | 
						|
 | 
						|
    # change from str to long decimal
 | 
						|
    mdec = decimal.Decimal(m)
 | 
						|
 | 
						|
 | 
						|
    '''
 | 
						|
        From here you can do whatever you want.
 | 
						|
    '''
 | 
						|
    # If you want to encrypt messages
 | 
						|
 | 
						|
    msg_to_e = '1'
 | 
						|
 | 
						|
    s.send(b'E')
 | 
						|
    print s.recv(4096)
 | 
						|
    s.send(msg_to_e)
 | 
						|
    me = s.recv(4096)
 | 
						|
    me = me.split(": ")[1]
 | 
						|
 | 
						|
    print("Secret for %s is:" %(msg_to_e))
 | 
						|
    print(me)
 | 
						|
 | 
						|
    medec = decimal.Decimal(me)
 | 
						|
 | 
						|
 | 
						|
    # If you want to decrypt messages
 | 
						|
 | 
						|
    msg_to_d = me
 | 
						|
 | 
						|
    s.send(b'D')
 | 
						|
    s.recv(4096)
 | 
						|
    s.recv(4096)
 | 
						|
    s.send(msg_to_d)
 | 
						|
    md = s.recv(4096)
 | 
						|
    md = md.split(": ")[1].strip()
 | 
						|
 | 
						|
    print("Decryption is: ")
 | 
						|
    print(md)
 | 
						|
 | 
						|
    mddec = decimal.Decimal(md)
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
if __name__ == "__main__":
 | 
						|
    # really long numbers
 | 
						|
    decimal.getcontext().prec = 1240
 | 
						|
 | 
						|
    PORT = 12445
 | 
						|
    HOST = 'asis-ctf.ir'
 | 
						|
 | 
						|
    nc_paillier()
 | 
						|
 |