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

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

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

《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渗透测试入门——基础的网络编程工具” 的相关文章

外媒惊呼,继智能手机之后,中国在这一领域强势崛起!

外媒惊呼,继智能手机之后,中国在这一领域强势崛起!

作为一个80后,我清楚地记得,在功能手机的时代,中国的手机厂商一个能打的都没有,很多人为此努力过,但最后都折戟沉沙,黯淡收场。彼时的中国手机市场完全是三星、诺基亚、摩托罗拉等外资品牌的市场,仅存的中国手机厂商只能在夹缝中生存,靠生产杂牌手机苟延残喘。那时候我们多么希望能崛起一个自主品牌、民族品牌来收...

骁龙8和骁龙8+的日常体验,到底有多大差距?

骁龙8和骁龙8+的日常体验,到底有多大差距?

机哥写过一篇文章。主要呢,就是盘点了今年那些跳水比较严重的旗舰手机。像什么OPPO Find X5 Pro天玑版啊、小米12 Pro啊、一加10 Pro啊等等。相比起刚上市时定价,现在这些机型,普遍的降价幅度都超过了2000块。原本是卖5000多,现在却只卖3000多。。机哥当时发完文章,底下很大一...

国产办公软件崛起,金山WPS月活用户已超5.7亿;Meta指责苹果夺走部分广告收入;Python 3.11 发布|极客头条

206 篇文章201 订阅订阅专栏「极客头条」—— 技术人员的新闻圈!CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧。整理 | 梦依丹出品 | CSDN(ID:CSDNnews)一分钟速览新闻点!国产办公软件崛起 金山WPS月活用户已超5.7亿美团...

“双十一”部分手机价格先涨价再降价?券后价格反而比平时贵

“双十一”部分手机价格先涨价再降价?券后价格反而比平时贵

记者 宗智10月24日晚上八点,“双十一”的“先锋号角”已然奏响。从“光棍节”到全民参与的消费狂欢日,从最初的27个商家到现在来自全球各地的29万个品牌,互联网电商一路高歌猛进,其规模与影响力不断扩大,连续创造了13年“神话”。然而,随着消费者生活水平的提升,平台补贴活动走向日常化,低价早已不再是“...

圆周率已经算到了62.8万亿位,再算下去有什么意义?

圆周率已经算到了62.8万亿位,再算下去有什么意义?

综述大家知道,圆的周长与直径的比值就是圆周率,用希腊字母表示也就是π。π是一个无限不循环的无理数,在小数点之后存在着无限多个数字,并且不会循环。令人惊讶的是,就算已经证明了π的小数点之后的数字是无穷的,仍然有不少科学家们想要把它继续算下去。最新成果显示,瑞士的一名研究人员利用一台超级计算机,耗时19...

腾讯突然宣布关闭这项业务,阿里巴巴和百度还能做什么?

腾讯突然宣布关闭这项业务,阿里巴巴和百度还能做什么?

腾讯地图官网近日宣布,电脑端的腾讯地图将于11月11日停止服务,用户可以下载腾讯地图App。今年5月,搜狗地图也暂停了电脑端的服务,如今仅剩百度地图一家仍旧提供电脑端服务。这一变化,与移动互联网的发展不无关系。虽然电脑端地图服务商缩水,但在移动端,背靠阿里巴巴的高德地图、百度的重要业务板块百度地图,...

发表评论

访客

看不清,换一张

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