从今天开始学习《python黑帽子:黑客与渗透测试编程之道》,一定要认真,好好的学。
安装kali虚拟机
安装虚拟机没有什么好写的,需要注意的一点是要分配足够的硬盘空间,一开始安装的时候,只分配了8G的硬盘,结果安装失败,后来改为30G的硬盘空间,就安装成功了。
安装python软件管理工具
安装easy_install和pip两个python的软件管理工具,他们允许直接安装python的函数库,而不是手动下载、解压和安装。通过下面命令同时安装这两个工具:
使用方法,安装github3.py模块:
安装IDE WingIDE
从wingide下载WingIDE,下载.deb文件的安装包,终端运行:
安装成功
socket网络编程
TCP客户端
import socket
target_host = '127.0.0.1'
target_port =
#建立一个socket对象,AF_INET说明将使用标准的IPv4地址或主机名,SOCK_STREAM说明是一个TCP客户端
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
#连接到服务器
client.connect((target_ip, target_port))
#发送数据
client.send("i am TCP client")
#接收数据
response = client.recv()
print response
TCP服务器端
import socket
import threading
bind_ip = "127.0.0.1"
bind_port =
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
#将套接字与指定的ip和端口相连
server.bind((bind_ip, bind_port))
#启动监听,并将最大连接数设为5
server.listen()
print "[*] listening on %s:%d" % (bind_ip, bind_port)
#定义函数,回发信息给客户端
def handle_client(client_socket):
#打印客户端发送的消息
request = client_socket.recv()
print "[*] Received: %s" % request
#返回一个数据包,内容为ACK!
client_socket.send('ACK!')
client_socket.close()
#服务端进入主循环,等待连接
while True:
#当有连接时,将接收到的套接字存到client中,远程连接细节保存到addr中
client, addr = server.accept()
print "[*] Accepted connection from: %s:%d" % (addr[], addr[])
#创建新线程,回发信息给客户端
client_handler = threading.Thread(target=handle_client, args=(client,))
client_handler.start()
注:要保证TCP客户端连接到的ip和端口,与TCP服务器端监听的ip和端口相同
TCP客户端和TCP服务器端建立完成之后,运行服务器端程序,进入等待连接阶段……
运行客户端程序,得到如下结果:
TCP服务器端:
TCP客户端