gpt4 book ai didi

sockets - 使用原始套接字获取SSH Banner

转载 作者:行者123 更新时间:2023-12-02 14:10:01 26 4
gpt4 key购买 nike

我最近写了一个小脚本来获取本地网络中的op ssh服务器列表,因为我不知道计算机的ip地址,而无需将它们连接到屏幕并进行查找(这将消除对ssh的需要)。因为我有多个ssh服务器,所以我想知道哪个IP地址属于一台计算机。为此,我很想使用ssh标语来标识计算机。由于仅使用ssh库和获得学习经验,使用ssh库会有点过大,因此我想使用套接字实现此目的。

Atm我在python中有这个:

from socket import socket
s = socket()
s.connect((ip,22))
s.send(s.recv(100)) # send the ssh version back

直到这里它都起作用,并且从套接字读取给出了受支持的加密算法的列表。我应该向后发送算法列表和我的mac地址(在其中我还没有成功)。我尝试发送从服务器获取的列表,但此后没有任何响应。

根据文档,服务器可以随时发送横幅。当我使用普通的ssh客户端时,它会在登录前显示横幅,因此我认为我不需要完成整个身份验证过程。

使用套接字获取ssh横幅的最简单方法是什么?

(代码不必在python中)

最佳答案

使用
paramiko
-用python编写的ssh客户端包装程序,可以轻松地重新使用代码来获取横幅

# !/usr/bin/python

import paramiko


def grab_banner(ip_address, port):
client = paramiko.SSHClient()
client.load_system_host_keys()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
try:
client.connect(ip_address, port=port, username='username', password='bad-password-on-purpose')
except:
return client._transport.get_banner()


if __name__ == '__main__':
print grab_banner('192.168.1.26', 22)
  • 遇到了同样的问题,尝试使用原始套接字,但是看到在ssh加密 key 交换后发送了横幅广告(为夺取横幅广告而实现的过大杀伤力)
  • 关于sockets - 使用原始套接字获取SSH Banner,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16634998/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com