py黑帽子学习笔记_网络编程工具

tcp客户端

socket.AF_INET表示使用标准IPV4地址和主机名

SOCK_STREAM表示这是一个TCP客户端

udp客户端

udp无需连接,因此不需要client.connect这种代码

socket.SOCK_DGRAM是udp的

tcp服务端

server.listen(5)表示设置最大连接数为5

发现kill server后端口仍占用导致无法再次启动server,查了下可用lsof -i tcp:port (-t)查看端口占用进程,再kill即可

执行看下结果

取代netcat

netcat是一个网络管理相关shell工具,书里不建议用这个,因为有一些风险,有的server装了py服务器,没装netcat。当通过web入侵后,如果可以创建连接客户端和服务端则对入侵很有帮助

创netcat.py,导入基本库

定义main

定义NetCat类

验证netcat

开客户端服务端看效果

发现有时候会有问题,想了一下,应该是send和recv时间不同步导致的

开发tcp代理

代理为了测试用,开发具有如下功能的代理:1显示本地设备和远程设备通信过程 2从socket接受数据 3控制设备流量方向 4创建socket监听

该函数可查看代理内数据流通

实现数据接收,设定超时时间,这样就不会无限sleep监听,超时时长可根据实际情况修改

proxy主要逻辑如下,定义proxy要做的事,然后定义框架

定义server侧逻辑,server_loop函数,用来管理和创建连接,请求的数据创现成让上面定义的proxy_handler函数处理

定义main函数

验证tcp代理

启动代理

开两个窗口,一个server一个client看效果

发现因为timeout,命令要在timeout输入否则异常,每个命令timeout内输入,看起来正常

基于paramiko的ssh通信

上面开发的tcp代理未实现数据加密,可能会被别人监测到,可以通过ssh加密避免数据泄漏,也可以使用内置了ssh的python模块比如paramiko,是基于pycrypt开发的库,支持ssh2

paramiko支持密钥认证

set_missing_host_key_policy可支持未记录的公钥请求并将其记录

测试下脚本

对于windows发行版来说,默认没装ssh server只有ssh client,如果直接ssh连windows会连不上,此时可以将windows当成一个命令下发机器,将要执行的命令下发到其他机器。即windows机器充当server角色但不执行命令把命令下发到client让clieng执行命令,执行完了再把结果从client返回到server,server再将结果返回给请求者

client端:

server端:

验证paramiko ssh通信

在windows端启动server脚本:

windows再开一个窗口运行客户端代码

验证失败,auth error不知道为啥

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值