使用Go语言编写一个简单的SSH爆破工具

news/2024/7/7 20:44:13 标签: golang, ssh, 开发语言

使用Go语言编写一个简单的SSH爆破工具,但请注意,这个工具仅供学习和合法测试使用,不要用于任何非法目的。

以下是一个简单的Go程序示例,它尝试使用从文件中读取的用户名和密码来登录SSH服务器:

package main

import (
	"bufio"
	"fmt"
	"golang.org/x/crypto/ssh"
	"log"
	"os"
)

func main() {
	// SSH服务器的地址
	const host = "your.ssh.server:22"

	// 从文件读取用户名和密码
	username, password := readCredentials()

	// 创建SSH客户端配置
	config := &ssh.ClientConfig{
		User: username,
		Auth: []ssh.AuthMethod{
			ssh.Password(password),
		},
		HostKeyCallback: ssh.InsecureIgnoreHostKey(),
	}

	// 连接到SSH服务器
	connection, err := ssh.Dial("tcp", host, config)
	if err != nil {
		log.Fatalf("Failed to dial: %s", err)
	}
	defer connection.Close()

	// 连接成功
	fmt.Println("SSH connection established.")

	// 这里可以添加更多的SSH操作,比如执行命令等
}

// 从文件中读取用户名和密码
func readCredentials() (string, string) {
	file, err := os.Open("username.txt")
	if err != nil {
		log.Fatalf("Failed to read username file: %s", err)
	}
	defer file.Close()

	scanner := bufio.NewScanner(file)
	scanner.Scan()
	username := scanner.Text()

	file, err = os.Open("password.txt")
	if err != nil {
		log.Fatalf("Failed to read password file: %s", err)
	}
	defer file.Close()

	scanner = bufio.NewScanner(file)
	scanner.Scan()
	password := scanner.Text()

	return username, password
}

注意:

  1. 你需要将const host中的your.ssh.server:22替换为想要连接的SSH服务器的地址和端口。
  2. 这个示例使用了ssh.InsecureIgnoreHostKey(),这意味着它不会验证SSH服务器的主机密钥。在生产环境中,你应该使用一个安全的主机密钥回调函数。
  3. 确保username.txtpassword.txt文件存在,并且包含正确的用户名和密码。

http://www.niftyadmin.cn/n/5535176.html

相关文章

Cesium与Three相机同步(3)

Cesium与Three融合的案例demo <!DOCTYPE html> <html lang"en" class"dark"><head><meta charset"UTF-8"><link rel"icon" href"/favicon.ico"><meta name"viewport" content&q…

Windows 11 安装 安卓子系统 (WSA)

How to Install Windows Subsystem for Android (WSA) on Windows 11 新手教程&#xff1a;如何安装Windows 11 安卓子系统 说明 Windows Subsystem for Android 或 WSA 是由 Hyper-V 提供支持的虚拟机&#xff0c;可在 Windows 11 操作系统上运行 Android 应用程序。虽然它需…

双系统的笔记本电脑,系统引导不见了怎么办

双系统的笔记本电脑&#xff0c;系统引导不见了怎么办 个人情况 联想拯救者R9000P 按照了windows11&#xff08;电脑自带的系统&#xff09;&#xff0c;后面自己按照了ubuntu22.04 只是windows11自动更新导致系统的引导项不见的 解决办法 在电脑开机的时候&#xff0c;不停…

onnx模型转rknn到部署

简介 最近开始用3568的板子&#xff0c;之前是在用3399&#xff0c;cpu的话3399比3568强&#xff0c;但是3568有1T的npu算力&#xff0c;所以模型移植过来用npu使用&#xff0c;之前用ncnn感觉太慢了&#xff0c;rk的npu使用没有开源&#xff0c;所以没法兼容&#xff0c;只能跑…

在 Java 中从 for 循环中移出元素的原理及解决方案

在 Java 中从 for 循环中移出元素的原理及解决方案 在 Java 编程中&#xff0c;从集合中移除元素是常见操作。然而&#xff0c;直接在 for 循环中删除或移出元素往往会导致 ConcurrentModificationException&#xff08;数组下标越界&#xff09;。本文将详细解释这种情况发生…

QT 自绘树形控件

资源来自:https://gitee.com/qt-open-source-collection/NavListView/blob/master/navlistview.h 1、解决的问题:一处编译报错;空白区域绘制背景;点击页面崩溃 2、源码: #ifndef NAVLISTVIEW_H #define NAVLISTVIEW_H/*** 作者:feiyangqingyun(QQ:517216493) 2016-10-1…

隐私集合求交(PSI)原理深入浅出

隐私集合求交技术是多方安全计算领域的一个子问题&#xff0c;通常也被称为安全求交、隐私保护集合交集或者隐私交集技术等&#xff0c;其目的是允许持有各自数据集的双方或者多方&#xff0c;执行两方或者多方集合的交集计算&#xff0c;当PSI执行完成&#xff0c;一方或者两方…

CEPH client.admin key获取

通过初始化完毕后&#xff0c;admin节点会在/etc/ceph目标下生成对应的配置文件和对应的key文件&#xff0c;通过ceph orch host add 增加的默认是没有的 如果很不幸admin节点挂了&#xff0c;怎么在其它节点使用ceph -s 命令呢 启蒙方法(比较实用) key可以通过ceph auth expor…