“渗透测试中,我们经常遇到需要创建一个TCP客户端来连接服务、发送垃圾数据、进行模糊测试或者其他任务的情况。如果你工作在 一个独立的大型企业网络环境中,那么你不会拥有丰富的网络工具或者编译器,你甚至可能会在一个不具备基本的复制粘贴或者失去互联网连接的环境下工作。在这种环境下,你需要手动创建一个TCP客户端”
# coding=utf-8
import socket
target_host = "www.baidu.com"
target_port = 80
# 建立一个 socket 对象
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# AF_INET-> 标准 IPv4 | SOCK_STREAM -> TCP 连接
# 连接客户端
client.connect((target_host, target_port))
# 发送数据
client.send("GET / HTTP/1.1\r\nHost:www.baidu.com\r\n\r\n")
# 接受数据
response = client.recv(4096) # 接收数据的返回字节数
print (response)
发送的数据就是抓包后前两行的数据
并且通过\r\n来实现对齐
TCP-connect
报错:data, addr = client.recvfrom(4096) socket.error: [Errno 10054]
这是因为你的端口根本没有和你的python发出的UDP数据报交互
所以可以使用 NetAssist 来实现数据交互
# coding=utf-8
import socket
target_host = "127.0.0.1"
target_port = 8087
# 建立一个 socket 对象
client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 发送数据
client.sendto("qf_is_so_handsome", (target_host, target_port))
# 接收返回数据
data, addr = client.recvfrom(4096)
print(data)