渗透测试——SSH弱口令暴破0x01_ssh弱口令是什么意思-程序员宅基地

技术标签: 渗透测试  ssh  弱口令  

1.1 SSH服务协议说明

SSH 是 Secure Shell Protocol 的简写,由 IETF 网络工作小组(Network Working Group )制定;在进行数据传输之前,SSH先对联机数据包通过加密技术进行加密处理,加密后在进行数据传输。确保了传递的数据安全。
SSH是专为远程登录会话和其他网络服务提供的安全性协议。利用 SSH 协议可以有效的防止远程管理过程中的信息泄露问题,在当前的生产环境运维工作中,绝大多数企业普遍采用SSH协议服务来代替传统的不安全的远程联机服务软件,如telnet(23端口,非加密的)等。
在默认状态下,SSH服务主要提供两个服务功能:1.提供类似telnet远程联机服务器的服务,即上面提到的SSH服务。2.类似FTP服务的sftp-server,借助SSH协议来传输数据的.提供更安全的SFTP服务(vsftp,proftp)。
1.1.1 ssh远程连接排错过程

这里写图片描述

1.2 SSH加密技术说明

1.2.1 SSH加密技术
简单的说,SSH加密技术就是将人类可以看得懂的数据,通过一些特殊的程序算法,把这些数据变成杂乱的无意义的信怠,然后,通过网络进行传输,而当到了目的地后,在通过对应的解密算法,把传过来的加密的数据信息解密成加密前的可读的正常数据。因此,当数据在互联网上传输时即使被有心的黑客监听窃取了,也很难获取到真正黑要的数据。
当前,网络上的数据包加密技术一般是通过所谓的一对公钥与私钥(Publickey and Pivatekey)组合成的密钥对进行加密与解密操作。如下图,A-Server要给B_Client传数据,首先会通过本地的公钥加密后再到发到网络上传输。而加密的数据到达B_Client端后,再经由B_Client本地的私钥将加密的数据解密出来。由于在internet上传输过程中的数据是加密过的,所以,传输的数据内容一般来说是比较安全的。
这里写图片描述
图1-1 ssh认证连接的过程
1.2.2 ssh实现安全链接建立,利用要是和锁头
1. 钥匙=私钥 锁头=公钥,私钥可以解密公钥。
2. 公钥可以再网络中传输,私钥再本地主机保存。
1.2.3 ssh加密算法
v1漏洞: 密钥不更换。
v2 定期更换密钥。
利用Diffie-Hellman机制定期更新密钥。

1.3 SSH知识要点:

ssh是安全的加密协议,用于远程链接linux服务器。
ssh 默认端口是22,安全协议版本sshv2,出来2之外还有1(有漏洞)。
ssh服务端主要包括两个服务功能 ssh远程链接和sftp服务。
linux ssh 客户端包括ssh 远程链接命令,以及远程拷贝scp命令等。

1.4 SSH服务软件详细说明

1.4.1 什么是ssh服务
SSH服务端是一个守护讲程 (daemon).他在后台运行并响应来自客户端的连接请求。 SSH服务端的讲程名为sshd,负责实时监听远程SSH客户端的远程连接请求,并进行处理,一般包括公共密钥认证、密钥交换、对称密钥加密和非安全连接等。这个SSH服务就是我们前面基础系统优化中保留开机自启动的服务之。ssh客户端包含ssh以及像scp(远程拷贝) slogin(远程登陆) sftp(安全FTP文件传输)等应用程序。ssh的工作机制大致是本地的ssh客户端先发送一个连接请求到远程的ssh服务端,服务端检查连接的客户端发送的数据包和IP地址,如果确认合法,就会发送密钥给 SSH的客户端,此时,客户端本地再将密钥发回给服务端,自此连接建立。
1.4.2 ssh软件安装
客户端

[root@nfs01 ~]# rpm -qf `which ssh`
openssh-clients-5.3p1-122.el6.x86_64

服务端软件

[root@nfs01 ~]# rpm -qf `which sshd`
openssh-server-5.3p1-122.el6.x86_64
1.4.3   openssh-clinets 软件的主要内容:
[root@nfs01 ~]# rpm -ql openssh-clients
/etc/ssh/ssh_config         #ssh客户端配置文件
/usr/bin/.ssh.hmac
/usr/bin/scp                  #远程复制命令
/usr/bin/sftp                 #远程文件传输服务
/usr/bin/slogin              #远程登陆命令
/usr/bin/ssh                  #ssh远程登陆管理主机
/usr/bin/ssh-add
/usr/bin/ssh-agent
/usr/bin/ssh-copy-id        #ssh服务分发公钥命令
/usr/bin/ssh-keyscan

1.4.4 openssh-server 软件的主要内容:

[root@nfs01 ~]# rpm -ql openssh-server
/etc/rc.d/init.d/sshd      #ssh服务启动脚本
/etc/ssh/sshd_config       #ssh服务配置文件
/etc/sysconfig/sshd        #ssh创建密钥有关
/usr/sbin/.sshd.hmac       #ssh加密算法有关文件
/usr/sbin/sshd             #ssh服务进程启动命令

注意:使用sshd采用绝对路径进行启动
[root@test ~]# sshd
sshd re-exec requires execution with an absolute path

1.5 SSH服务配置文件说明:

  1. 配置文件中所有注释信息,表示默认参数配置。
  2. 配置文件中#空格 后面内容表示说明信息。
    #参数 表示配置参数信息。
  3. 配置文件参数信息修改后,一旦变为注释,即还原为默认配置。

1.6 SSH服务认证类型

  1. 基于口令认证方式
  2. 基于密钥认证方式
    1.6.1 基于密码的认证类型
    基于口令的安全验证的方式就是大家现在一直在用的,只要知道服务器的SSH连接帐号和口令(当然也要知道对应服务器的 IP及开放的 SSH端口,默认为22 ),就可以通过 ssh客户端登录到这台远程主机。此时,联机过程中所有传输的数据都是加密的。演示了 SecureCR及ssh客户端连接,口令验证的测试。
[root@test ~]# ssh 10.0.0.250
The authenticity of host '10.0.0.250 (10.0.0.250)' can't be established.
RSA key fingerprint is d3:41:bb:0d:43:88:da:a3:2c:e8:36:91:11:c9:e4:9c.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.0.0.250' (RSA) to the list of known hosts.
root@10.0.0.250's password:    #需要输入密码
Last login: Mon Oct 16 21:13:58 2017 from 10.0.0.1
[root@test ~]#

1.6.2 基于密钥的安全认证方法
基于密钥的安全验证方式是指,需要依靠密钥,也就是必须事先建立一对密钥对,然后把公用密钥(锁头)(Public key)放在需要访问的目标服务器上,另外,还需要把私有密钥(钥匙)(Private key)放到SSH的客户端或对应的窖户端服务器上。
私钥不能在网络中传输—私钥可以解密公钥。
公钥可以再网路中传输—公钥不能解密私钥 。
此时,如果要想连接到这个带有公用密钥的SSH服务器,客户端SSH软件或者客户端服务器就会向SSH服务器发出请求,请求用联机的用户密钥进行安全验证。SSH服务器收到请求之后,会先在该SSH服务器上连接的用户的家目录下寻找事先放上去的对应用户的公用密钥,然后把它和连接的SSH客户端发送过来的公用密钥进行比较。如果两个密钥一致,SSH服务器就用公用密钥加密”质询”(challenge)并把它发送给SSH客户端。


1.1 弱口令

弱口令(weak password) 没有严格和准确的定义,通常认为容易被别人(他们有可能对你很了解)猜测到或被破解工具破解的口令均为弱口令。弱口令指的是仅包含简单数字和字母的口令,例如“123”、“abc”等,因为这样的口令很容易被别人破解,从而使用户的计算机面临风险,因此不推荐用户使用。
1.1.1普通型弱口令
普通型弱口令就是常见的密码,比如,目前网络上也有人特地整理了常用的弱口令(Top 100):

123456 a123456 123456a 5201314 111111 woaini1314 qq123456 
123123 000000 1qaz2wsx 1q2w3e4r qwe123 7758521 123qwe 
a123123 123456aa woaini520 woaini 100200 1314520 woaini123 
123321 q123456 123456789 123456789a 5211314 zhang123 aptx4869 
123123a 1q2w3e4r5t 1qazxsw2 5201314a 1q2w3e aini1314 31415926 
q1w2e3r4 123456qq woaini521 1234qwer a111111 520520 iloveyou 
abc123 110110 111111a 123456abc w123456 7758258 123qweasd 159753 
qwer1234 qq5201314 12345678 000000a 456852 as123456 1314521 112233 
521521 qazwsx123 zxc123456 abcd1234 asdasd 666666 love1314 QAZ123 
aaa123 q1w2e3 aaaaaa a123321 123000 11111111 wang123 159357 1A2B3C4D 
asdasd123 584520 753951 147258 1123581321 110120 qq1314520

对于网站后台而言,一般为:

admin、manager、admin123、admin888、admin666…

具体来说,不同的后台类型拥有不同的弱密码:
数据库(phpmyadmin)

账号:root
密码:root、root123、123456

tomcat

账号:admin、tomcat、manager
密码:admin、tomcat、admin123、123456、manager

jboss

账号:admin、jboss、manager
密码:admin、jboss、manager、123456

weblogic

账号:weblogic、admin、manager
密码:weblogic、admin、manager、123456

1.1.1条件型弱口令
条件型弱口令就是和用户信息相关的密码,比如生日+手机号、姓名首字母+生日、爱人姓名首字母+生日+常用字母(520、1314 等)。我们可以使用这个猜密码的网站来生成条件弱口令字典。
这里写图片描述
比如我们知道一个人,他的信息如下:姓名:王小二;邮箱:[email protected];英文名:twowang;手机号:110。那我们就可以在这个网站上输入这些信息,然后点击下方的“提交”。
然后我们就得到了这个最有可能的密码。
这里写图片描述
1.2弱口令漏洞
弱口令(weak password) 没有严格和准确的定义,通常认为容易被别人(他们有可能对你很了解)猜测到或被破解工具破解的口令均为弱口令。
设置密码通常遵循以下原则:
(1)不使用空口令或系统缺省的口令,这些口令众所周之,为典型的弱口令。
(2)口令长度不小于8个字符。
(3)口令不应该为连续的某个字符(例如:AAAAAAAA)或重复某些字符的组合(例如:tzf.tzf.)。
(4)口令应该为以下四类字符的组合,大写字母(A-Z)、小写字母(a-z)、数字(0-9)和特殊字符。每类字符至少包含一个。如果某类字符只包含一个,那么该字符不应为首字符或尾字符。
(5)口令中不应包含本人、父母、子女和配偶的姓名和出生日期、纪念日期、登录名、E-mail地址等等与本人有关的信息,以及字典中的单词。
(6)口令不应该为用数字或符号代替某些字母的单词。
(7)口令应该易记且可以快速输入,防止他人从你身后很容易看到你的输入。
(8)至少90天内更换一次口令,防止未被发现的入侵者继续使用该口令。
1.3弱口令攻击
口令攻击的主要方法
1、社会工程学(social Engineering),通过人际交往这一非技术手段以欺骗、套取的方式来获得口令。避免此类攻击的对策是加强用户意识。
2、猜测攻击。首先使用口令猜测程序进行攻击。口令猜测程序往往根据用户定义口令的习惯猜测用户口令,像名字缩写、生日、宠物名、部门名等。在详细了解用户的社会背景之后,黑客可以列举出几百种可能的口令,并在很短的时间内就可以完成猜测攻击。
3、字典攻击。如果猜测攻击不成功,入侵者会继续扩大攻击范围,对所有英文单词进行尝试,程序将按序取出一个又一个的单词,进行一次又一次尝试,直到成功。据有的传媒报导,对于一个有8万个英文单词的集合来说,入侵者不到一分半钟就可试完。所以,如果用户的口令不太长或是单词、短语,那么很快就会被破译出来。
4、穷举攻击。如果字典攻击仍然不能够成功,入侵者会采取穷举攻击。一般从长度为1的口令开始,按长度递增进行尝试攻击。由于人们往往偏爱简单易记的口令,穷举攻击的成功率很高。如果每千分之一秒检查一个口令,那么86%的口令可以在一周内破译出来。
5、混合攻击,结合了字典攻击和穷举攻击,先字典攻击,再暴力攻击。避免以上四类攻击的对策是加强口令策略。
6、直接破解系统口令文件。所有的攻击都不能够奏效,入侵者会寻找目标主机的安全漏洞和薄弱环节,饲机偷走存放系统口令的文件,然后破译加密的口令,以便冒充合法用户访问这台主机。
7、网络嗅探(sniffer),通过嗅探器在局域网内嗅探明文传输的口令字符串。避免此类攻击的对策是网络传输采用加密传输的方式进行。
8、键盘记录,在目标系统中安装键盘记录后门,记录操作员输入的口令字符串,如很多间谍软件,木马等都可能会盗取你的口述。
9、其他攻击方式,中间人攻击、重放攻击、生日攻击、时间攻击。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Tahir_111/article/details/82389348

智能推荐

18个顶级人工智能平台-程序员宅基地

文章浏览阅读1w次,点赞2次,收藏27次。来源:机器人小妹  很多时候企业拥有重复,乏味且困难的工作流程,这些流程往往会减慢生产速度并增加运营成本。为了降低生产成本,企业别无选择,只能自动化某些功能以降低生产成本。  通过数字化..._人工智能平台

electron热加载_electron-reloader-程序员宅基地

文章浏览阅读2.2k次。热加载能够在每次保存修改的代码后自动刷新 electron 应用界面,而不必每次去手动操作重新运行,这极大的提升了开发效率。安装 electron 热加载插件热加载虽然很方便,但是不是每个 electron 项目必须的,所以想要舒服的开发 electron 就只能给 electron 项目单独的安装热加载插件[electron-reloader]:// 在项目的根目录下安装 electron-reloader,国内建议使用 cnpm 代替 npmnpm install electron-relo._electron-reloader

android 11.0 去掉recovery模式UI页面的选项_android recovery 删除 部分菜单-程序员宅基地

文章浏览阅读942次。在11.0 进行定制化开发,会根据需要去掉recovery模式的一些选项 就是在device.cpp去掉一些选项就可以了。_android recovery 删除 部分菜单

mnn linux编译_mnn 编译linux-程序员宅基地

文章浏览阅读3.7k次。https://www.yuque.com/mnn/cn/cvrt_linux_mac基础依赖这些依赖是无关编译选项的基础编译依赖• cmake(3.10 以上)• protobuf (3.0 以上)• 指protobuf库以及protobuf编译器。版本号使用 protoc --version 打印出来。• 在某些Linux发行版上这两个包是分开发布的,需要手动安装• Ubuntu需要分别安装 libprotobuf-dev 以及 protobuf-compiler 两个包•..._mnn 编译linux

利用CSS3制作淡入淡出动画效果_css3入场效果淡入淡出-程序员宅基地

文章浏览阅读1.8k次。CSS3新增动画属性“@-webkit-keyframes”,从字面就可以看出其含义——关键帧,这与Flash中的含义一致。利用CSS3制作动画效果其原理与Flash一样,我们需要定义关键帧处的状态效果,由CSS3来驱动产生动画效果。下面讲解一下如何利用CSS3制作淡入淡出的动画效果。具体实例可参考刚进入本站时的淡入效果。1. 定义动画,名称为fadeIn@-webkit-keyf_css3入场效果淡入淡出

计算机软件又必须包括什么,计算机系统应包括硬件和软件两个子系统,硬件和软件又必须依次分别包括______?...-程序员宅基地

文章浏览阅读2.8k次。计算机系统应包括硬件和软件两个子系统,硬件和软件又必须依次分别包括中央处理器和系统软件。按人的要求接收和存储信息,自动进行数据处理和计算,并输出结果信息的机器系统。计算机是脑力的延伸和扩充,是近代科学的重大成就之一。计算机系统由硬件(子)系统和软件(子)系统组成。前者是借助电、磁、光、机械等原理构成的各种物理部件的有机组合,是系统赖以工作的实体。后者是各种程序和文件,用于指挥全系统按指定的要求进行..._计算机系统包括硬件系统和软件系统 软件又必须包括

随便推点

进程调度(一)——FIFO算法_进程调度fifo算法代码-程序员宅基地

文章浏览阅读7.9k次,点赞3次,收藏22次。一 定义这是最早出现的置换算法。该算法总是淘汰最先进入内存的页面,即选择在内存中驻留时间最久的页面予以淘汰。该算法实现简单,只需把一个进程已调入内存的页面,按先后次序链接成一个队列,并设置一个指针,称为替换指针,使它总是指向最老的页面。但该算法与进程实际运行的规律不相适应,因为在进程中,有些页面经常被访问,比如,含有全局变量、常用函数、例程等的页面,FIFO 算法并不能保证这些页面不被淘汰。这里,我_进程调度fifo算法代码

mysql rownum写法_mysql应用之类似oracle rownum写法-程序员宅基地

文章浏览阅读133次。rownum是oracle才有的写法,rownum在oracle中可以用于取第一条数据,或者批量写数据时限定批量写的数量等mysql取第一条数据写法SELECT * FROM t order by id LIMIT 1;oracle取第一条数据写法SELECT * FROM t where rownum =1 order by id;ok,上面是mysql和oracle取第一条数据的写法对比,不过..._mysql 替换@rownum的写法

eclipse安装教程_ecjelm-程序员宅基地

文章浏览阅读790次,点赞3次,收藏4次。官网下载下载链接:http://www.eclipse.org/downloads/点击Download下载完成后双击运行我选择第2个,看自己需要(我选择企业级应用,如果只是单纯学习java选第一个就行)进入下一步后选择jre和安装路径修改jvm/jre的时候也可以选择本地的(点后面的文件夹进去),但是我们没有11版本的,所以还是用他的吧选择接受安装中安装过程中如果有其他界面弹出就点accept就行..._ecjelm

Linux常用网络命令_ifconfig 删除vlan-程序员宅基地

文章浏览阅读245次。原文链接:https://linux.cn/article-7801-1.htmlifconfigping <IP地址>:发送ICMP echo消息到某个主机traceroute <IP地址>:用于跟踪IP包的路由路由:netstat -r: 打印路由表route add :添加静态路由路径routed:控制动态路由的BSD守护程序。运行RIP路由协议gat..._ifconfig 删除vlan

redux_redux redis-程序员宅基地

文章浏览阅读224次。reduxredux里要求把数据都放在公共的存储区域叫store里面,组件中尽量少放数据,假如绿色的组件要给很多灰色的组件传值,绿色的组件只需要改变store里面对应的数据就行了,接着灰色的组件会自动感知到store里的数据发生了改变,store只要有变化,灰色的组件就会自动从store里重新取数据,这样绿色组件的数据就很方便的传到其它灰色组件里了。redux就是把公用的数据放在公共的区域去存..._redux redis

linux 解压zip大文件(解决乱码问题)_linux 7za解压中文乱码-程序员宅基地

文章浏览阅读2.2k次,点赞3次,收藏6次。unzip版本不支持4G以上的压缩包所以要使用p7zip:Linux一个高压缩率软件wget http://sourceforge.net/projects/p7zip/files/p7zip/9.20.1/p7zip_9.20.1_src_all.tar.bz2tar jxvf p7zip_9.20.1_src_all.tar.bz2cd p7zip_9.20.1make && make install 如果安装失败,看一下报错是不是因为没有下载gcc 和 gcc ++(p7_linux 7za解压中文乱码