为了能自动完成上述控制台交互过程,我们需要使用一个第三方Pthon模块 Pexpect(可以至htp:/ pexpect。 sourceforge。 net中下载该模块)。 Pexpect能够实现与程序交互、等待预期的屏幕输出,并据此做出不同的响应。这使得它成为自动暴力破解SSH用户口令程序的首选工具。
检测 connector函数。该函数接收的参数包括一个用户名、主机名和密码,返回的是以此进行的SSH连接的结果。然后,利用 pexpect库,我们的程序等待一个“可以预计到的”输出。可能会出现三种可能的输出:超时、表示主机已使用一个新的公钥的消息和要求输入密码的提示。如果出现超时,那么 session。 expect返回零。用下面的语句会识别出这一情况,打印一个错误消息后返回。如果 child。 expecto方法捕获了 ssh newkey消息,它会返回一个1,这会使函数发送一个“yes”消息,以接收新的密钥。之后,函数等待密码提示,然后发送SSH密码。
作者简介
参编作者——Robert Frost
2011 年 Robert Frost 毕业于美国军事学院,随后成为一名陆军通信兵。他以优异的成绩获 得了计算机科学的理学学士学位,其毕业论文主要关注于开源信息的收集。在 2011 年度电子 防御练习赛中,由于他规避规则的能力,Rob 个人被公认为国家锦标赛团队中最优秀的两名 成员之一。Rob 也参加并赢得了多次电子安全竞赛。
技术编辑——Mark Baggett
Mark Baggett 是 SANS 的认证讲师,担任了 SANS 的渗透测试课程体系中多门课程的授 课任务。Mark 是提供应急响应和渗透测试服务的深度防御公司的首席顾问和创始人。目前他 是 SANS 防御部门的技术指导教师,专注于把 SANS 的资源实际应用于提升军事能力的方 向。 Mark 在跨国公司和财富 1000 强企业中拥有多个信息安全职位。他曾经是一名软件开发 者、网络和系统工程师、安全管理员和 CISO(首席信息安全官)。作为一名首席信息安全 官,Mark 对信息安全策略的制定、遵守情况、应急事件的响应,以及其他信息安全操作负 责。Mark 掌握当前在销售、实现和支持信息安全时,信息安全专家所面临挑战的第一手资 料。Mark 也是信息安全社区中的一名活跃成员,是 Greater Augusta ISSA 的创始人兼总裁。 他拥有包括 SANS 声誉卓著的 GSE 在内的多张认证证书。