当前位置:首页 > 文章 > 正文内容

python渗透测试入门——基础的网络编程工具

廖万里3年前 (2022-10-27)文章83659

《Python黑帽子——黑客与渗透测试编程之道学习》这本书是我在学习安全的过程中发现的在我看来十分优秀的一本书,业内也拥有很高的评价,所以在这里将自己的学习内容分享出来。

1.基础的网络编程工具。

实验环境:vscode+kali虚拟机

(1)TCP客户端

python渗透测试入门——基础的网络编程工具
 ctypes.wintypes  http  pydoc  urllib = = 80==client.recv(4096
python渗透测试入门——基础的网络编程工具

 首先创建一个带有AF_INET和SOCK_STREAM参数的socket对象。AF_INET参数表示我们将使用标准的IPv4地址或主机名,SOCK_STREAM表示这是一个TCP客户端。然后,我们将该客户端连接到服务器,并发送一些bytes类型的数据。最后一步,接收返回的数据并将其打印到屏幕上,再关闭socket。以下是运行结果。

python渗透测试入门——基础的网络编程工具

(2) UDP客户端

python渗透测试入门——基础的网络编程工具
from http import clientimport socket

target_host = "127.0.0.1"target_port = 80client = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

client.sendto(b"AAABBBCCC",(target_host,target_port))

data, addr = client.recvfrom(4096)print(data.decode())

client.close()
python渗透测试入门——基础的网络编程工具

UDP客户端和TCP客户端相差不大,并且作用也相去不远,在创建socket对象时,需要将socket类型改成SOCK_DGRAM,之后调用sendto()函数即可。UDP是一个无连接协议,所以不需要connect()函数建立连接。recvfrom()函数不仅返回接收到的数据,还会返回详细的数据来源信息(主机名和端口号)。。

(3)TCP服务端(多线程)

python渗透测试入门——基础的网络编程工具
from http import client, serverimport socketimport threadingfrom urllib import request

IP = '0.0.0.0'PORT = 9998def main():
    server = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    server.bind((IP,PORT))
    server.listen(5)    print(f'[*] Listening on {IP}:{PORT}')    while True:
        client, address = server.accept()        print(f'[*] Accepted connection from {address[0]}:{address[1]}')
        client_handler = threading.Thread(target=handle_client, args=(client,))
        client_handler.start()def handle_client(client_socket):
    with client_socket as sock:
        request = sock.recv(1024)        print(f'[*] Received: {request.decode("utf-8")}')
        sock.send(b'ACK')if __name__ == '__main__':
    main()
python渗透测试入门——基础的网络编程工具

我们先指定服务器应该监听哪个IP地址和端口。接着,让服务器开始监听,并把最大连接数设为5。下一步,让服务器进入主循环中,并在该循环中等待外来连接。当一个客户端成功建立连接的时候,将接收到的客户端socket对象保存到client变量中,将远程连接的详细信息保存到address变量中。然后,创建一个新的线程,让它指向handle_client函数,并传入client变量。创建好后,我们启动这个线程来处理刚才收到的连接,与此同时服务端的主循环也已经准备好处理下一个外来连接。而handle_client函数会调用recv()接收数据,并给客户端发送一段简单的回复。那么我们用前面写好的TCP客户端给服务端发送几个测试包。

首先开启服务端:

python渗透测试入门——基础的网络编程工具

 

 在客户端发送测试包,即可看到:

python渗透测试入门——基础的网络编程工具

 

 这次的分享先到这里,下一次将扩充这次这几个实验的功能。


本文链接:https://www.kkkliao.cn/?id=164 转载需授权!

分享到:

版权声明:本文由廖万里的博客发布,如需转载请注明出处。


“python渗透测试入门——基础的网络编程工具” 的相关文章

同样是系统为什么有的叫OS有的叫UI

同样是系统为什么有的叫OS有的叫UI

大家有没有注意到现在手机系统虽然主要分iOS和安卓两大阵营,但如果从叫法的后缀上来区分的话其实是分为OS和UI。那么,你有没有想过为什么有些手机的系统后缀是OS?有些系统的后缀是UI呢?他们之间的区别在于哪些呢?同样是系统为什么有的叫OS有的叫UI1、字面意思不同OS的英文全称为Operation...

突然崩了!一则大消息,这类股集体跳水,2000亿巨头重挫12%!千亿疫苗白马暴跌16%!信创板块又火了,恒生科技指数继续大涨

突然崩了!一则大消息,这类股集体跳水,2000亿巨头重挫12%!千亿疫苗白马暴跌16%!信创板块又火了,恒生科技指数继续大涨

中国基金报 颜颖大家好,来一起关注今天上午的市场行情和最新资讯。10月27日上午,A股重要指数全线高开:上证指数高开0.18%,深证成指涨0.23%,创业板指涨0.18%。盘面上,发电设备、贵金属、教育等板块早盘涨幅居前,医疗板块陷入调整,旅游、海运等板块跌幅居前。港股市场高调高开:恒指高开2.63...

失窃iPhone最终归宿:一台被盗的手机,如何在华强北“焕发新生”

失窃iPhone最终归宿:一台被盗的手机,如何在华强北“焕发新生”

华强北,一个中国数码史上现象级的名词。这条中轴主干道南北长900多米的街区,造就了中国电子科技历史上的神话。但一个硬币有两面,如果说腾讯、TP-Link这样的成功企业代表了华强北向阳的一面,那么华强北的阴暗一面,就离不开两个词:组装机和山寨机。如今,在各大手机厂商物美价廉的新品联合绞杀之下,山寨机已...

木匠的狂傲——魅族手机兴亡史·上

木匠的狂傲——魅族手机兴亡史·上

由于老罗以工匠自诩,黄章也为其木工手艺自豪,故以木匠代指黄章。本来黄章拥有着罗永浩难以比拟的各种优势,例如他的魅族是国内最早做智能手机的,他也是国内“粉丝文化”和“饥饿营销”的鼻祖,他的魅族还有自己的手机工厂,甚至早期没创办小米的雷军还非常想投资魅族!可是魅族还是落得了和锤子一样的结局——被收购。下...

这才是华为手机正确的截屏方法,居然有9种不同的功能,太强大了

这才是华为手机正确的截屏方法,居然有9种不同的功能,太强大了

说起华为手机的截屏功能,很多朋友都会想到“指关节截屏”,这是华为手机特有的一种截屏方式。但是大家知道吗?其实除了“指关节截屏”,华为手机还有很多截屏的方法,有一些是非常实用的。平时我们发现一些有意义的画面、或者好看的视频,都可以用截屏的方式保存下来,因此多掌握几种截屏方法,还是很有帮助的!这篇文章就...

美国疯狂加息之后,怎么就是收割不动中国人?

美国疯狂加息之后,怎么就是收割不动中国人?

2022年一定是财经史上载入史册的一年。在美元连续三轮加息的基础上,包括西欧、韩国(无日本)在内的全球主要经济体央行全部升息,对抗美元回流的大潮。然而作为全世界第二大经济体的中国,利息不升反降,难道中国不担心美国收割吗?中国又为什么要在这个时间点选择降息?01要弄清这些问题,第一个需要解释美国加息为...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。