# crackSSH **Repository Path**: jackhunx/crackSSH ## Basic Information - **Project Name**: crackSSH - **Description**: SSH弱口令暴力破解测试。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-01-28 - **Last Updated**: 2026-01-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README crackSSH是SSH弱口令暴力破解程序: 随着云服务的兴起,在xx云购买一台主机一年也就几百元,购买的主机可以用来搭建博客, 网站或者自己做测试使用。购买了云主机之后,常用的管理方式就是使用SSH,使用它登录 远程系统,从而可以方便的使用shell命令。但是许多人没有意识到安全问题,登录远程系 统时使用的是弱口令,这样很容易被暴力破解,从而被别人拿到ssh的权限,进而在你购买 的主机上做很多事情(这两钱花的,为别人服务了!)。 这个程序就是用来演示如何暴力破解SSH弱口令的,揭示了它的破解原理和思路。 1: 检测目标主机是否存活: 因为SSH是基于TCP协议,所以对它进行TCP连接就可以检测是否存活,如果连接成功 说明存活(该程序连接的默认端口号为22). 2:破解需要弱口令字典: 该程序有两个字典文件,分别是user.dic和pass.dic,user.dic用来存放用户名,pass.dic 用来存放口令,程序读取它们构成不同的弱口令集合,然后才能进行暴破。使用者可以 对字典内容进行添加和删除,字典条目的多少与使用频率直接影响着你的暴破命中率, 我已经在两个字典中添加了一部分条目,但不是很全,使用者在使用时可以自己添加条目 ,格式是一行一个。也可以用字典生成器去生成字典。 3:SSH登录: 这套用户名和密码如果登录成功说明暴破成功,如果成功的话可以在远程执行“echo 正寒 之心”这个shell命令,并返回true,如果失败返回一个错误。 4:开始暴力破解: 有了以上的准备,就可以对云主机进行弱口令破解,思路就是遍历所有的用户名和口令, 对主机进行尝试登录,它是由三层循环完成的。如果成功则输出相应的用户名和口令。 5:通过并发提升爆破速度: 以上代码运行就可以破解SSH弱口令了。不过你会发现它很慢,因为它是串行暴破的。 一个好的办法就是并发暴破,要想实现并发,先把用户名和口令放到一个结构体中,多个 结构体放入一个切片中,从而确认有多少种组合。有多少种组合就启动多少个协程。从这个 意义上来说字典足够大,那么协程数也是海量的。 6:控制并发数量: 上面的代码协程数量没有限制,会导致开启太多的协程,对客户端是一种压力,另外 由于破解链接太多,可能会被远程主机重置(封杀)。所以我们要灵活的控制并发数量, 避免被重置(封杀),在该程序中我们使用runTask函数中的threads参数控制协程数。 通道的缓存容量是协程数的2倍。 7:配置文件 想要暴破哪些云主机在配置文件中写入这些云主机的IP地址,格式也是一行一个。 8:.gitignore文件 该文件是为了避免操作系统自动生成的文件,编译器生成的中间文件和可执行文件, 含有自己敏感信息的配置文件被意外提交推送到远程代码托管仓库(比如:github.com和 gitee.com) 9:我写了三个实现,crackSSH.go用来实现串行暴破,crackSSH2.go用来实现不受限制 的并发暴破,crackSSH3.go用来实现受限制的并发暴破。推荐使用crackSSH3.go。 最后,如何避免被暴力破解,其实很简单,就是把口令设置的尽量复杂。