2023年12月1日发(作者:)

渗透测试——SSH弱⼝令暴破0x02

【信息收集】

⼀、测试对象

攻击机:kali-linux-2017.3-vm-amd64 IP:10.10.10.130

靶机:OWASP Broken Web Apps v0.94 IP:10.10.10.129

⼆、测试⼯具

⼯具名称 描述

1. Nmap

nmap是⼀个⽹络连接端扫描软件,⽤来扫描⽹上电脑开放的⽹络连接端。确定哪些服务运⾏在哪些连接端,并且推断计算机运⾏哪个操作

系统(这是亦称 fingerprinting)。它是⽹络管理员必⽤的软件之⼀,以及⽤以评估⽹络系统安全。本次测试是利⽤此⼯具进⾏主机信息收

集。

2. Metasploit

Metasploit是⼀个免费的、可下载的框架,通过它可以很容易地获取、开发并对计算机软件漏洞实施攻击。它本⾝附带数百个已知软件漏洞

的专业级漏洞攻击⼯具。当H.D. Moore在2003年发布Metasploit时,计算机安全状况也被永久性地改变了。仿佛⼀夜之间,任何⼈都可

⼆、 扫描靶机的操作系统

命令nmap -O 10.10.10.129,得到靶机的操作系统及版本号。

打开成功后,界⾯显⽰。

五、 利⽤msf ssh_login模块暴⼒破解靶机ssh密码

密码长度设为8,全部⼩写英⽂。为了减少爆破时间,密码字典设置少⼀点。

将和⽂件放在kali linux指定⽬录下。

七、 准备进⾏ssh爆破

⼋、 ⼩提⽰

run之后发现,没有显⽰,不要慌;把VERBOSE设置为true,让执⾏过程打印在屏幕上就好了。

【防护措施】

SSH爆破的防护措施

1.1系统及⽹络安全

1、定期检查并修复系统漏洞

2、定期修改SSH密码,或配置证书登陆

3、修改SSH端⼝

4、禁Ping

5、若你长期不需要登陆SSH,请在⾯板中将SSH服务关闭

6、安装悬镜、云锁、安全狗等安全软件(只安装⼀个)

1.2购买企业运维版,开启安全隔离服务

1、宝塔企业运维版的安全隔离功能是专为拦截暴⼒破解⽽开发的功能

2、安全隔离服务好⽐在您的服务器外⾯建⽴⼀道围场,只允许授权IP进来。

1.3⼿动设置建⽴防护措施

1、禁⽌root⽤户ssh登陆;

修改PermitRootLogin项:

[root@localhost ~]# vi /etc/ssh/sshd_config

[root@localhost ~]# grep Root /etc/ssh/sshd_config

PermitRootLogin no ### 将默认的 #PermitRootLogin yes 修改成这样的

the setting of "PermitRootLogin without-password".

重启sshd服务

Stopping sshd: [ OK ]

Starting sshd: [ OK ]

2、修改ssh默认端⼝22;

将默认端⼝22修改为⾃定义的2020端⼝

[root@localhost ~]# vi /etc/ssh/sshd_config

[root@localhost ~]# grep Port /etc/ssh/sshd_config

Port 2020

GatewayPorts no

在防⽕墙中加⼊2020端⼝的策略

[root@localhost ~]# vi /etc/sysconfig/iptables

[root@localhost ~]# grep 2020 /etc/sysconfig/iptables

-A INPUT -p tcp -m state --state NEW -m tcp --dport 2020 -j ACCEPT

重启防⽕墙策略

[root@localhost ~]# /etc/init.d/iptables restart

iptables: Setting chains to policy ACCEPT: nat filter [ OK ]

iptables: Flushing firewall rules: [ OK ]

iptables: Unloading modules: [ OK ]

重点介绍第三个⽅法:denyhosts

3、使⽤denyhosts进程限制ssh嗅探;

开启⼀个终端,root登陆

login as: root

root@192.168.10.131's password:

Last login: Tue Jul 21 18:54:57 2015 from 192.168.10.101

[root@localhost ~]# cat /etc/issue

CentOS release 6.5 (Final)

Kernel r on an m

增加系统⽤户

[root@localhost ~]# useradd leekwen

[root@localhost ~]# passwd leekwen

Changing password for user leekwen.

New password:

BAD PASSWORD: it is based on a dictionary word

Retype new password:

passwd: all authentication tokens updated successfully.

开启另⼀终端,⾮root登陆

login as: leekwen

leekwen@192.168.10.131's password:

Last login: Tue Apr 28 21:27:26 2015 from 192.168.10.100

切换为root账号

[leekwen@localhost ~]$ su - root

Password:

下载DenyHosts⽂件

[root@localhost ~]# wget -c /project/denyhosts/denyhosts/2.6/

[root@localhost ~]# ls

DenyHosts-2.6.

解压并安装

[root@localhost ~]# tar zxf

[root@localhost ~]# cd DenyHosts-2.6

[root@localhost DenyHosts-2.6]# python install

[root@localhost DenyHosts-2.6]# cd /usr/share/denyhosts/

[root@localhost denyhosts]# ls

CHANGELOG.txt -dist plugins scripts

daemon-control-dist LICENSE.txt README.txt

修改DenyHosts启动所需的⽂件(进程⽂件及配置⽂件)

.1、⽣成配置⽂件:

[root@localhost denyhosts]# cat -dist |grep -v "#" |grep -v "^$" >

2、修改对应策略⽂件:

[root@localhost denyhosts]# cat

SECURE_LOG = /var/log/secure

HOSTS_DENY = /etc/

PURGE_DENY = 20m

BLOCK_SERVICE = sshd

DENY_THRESHOLD_INVALID = 1

DENY_THRESHOLD_VALID = 10

DENY_THRESHOLD_ROOT = 5

DENY_THRESHOLD_RESTRICTED = 1

WORK_DIR = /usr/share/denyhosts/data

SUSPICIOUS_LOGIN_REPORT_ALLOWED_HOSTS=YES

HOSTNAME_LOOKUP=NO

LOCK_FILE = /var/lock/subsys/denyhosts

ADMIN_EMAIL = leekwen@

SMTP_HOST = localhost

SMTP_PORT = 25

SMTP_FROM = DenyHosts

SMTP_SUBJECT = DenyHosts Report

AGE_RESET_VALID=5d

AGE_RESET_ROOT=25d

AGE_RESET_RESTRICTED=25d

AGE_RESET_INVALID=10d

DAEMON_LOG = /var/log/denyhosts

DAEMON_SLEEP = 30s

DAEMON_PURGE = 1h

[root@localhost denyhosts]# mkdir -p /etc/denyhosts/

[root@localhost denyhosts]# cp /etc/denyhosts/

3、修改denyhosts进程⽂件:

修改权限后,并指定配置⽂件指定到/etc/denyhosts⽬录下

[root@localhost denyhosts]# cp daemon-control-dist daemon-control

[root@localhost denyhosts]# chown root daemon-control

[root@localhost denyhosts]# chmod 700 daemon-control

[root@localhost denyhosts]# vi daemon-control

[root@localhost ~]# grep DENYHOSTS_CFG daemon-control

DENYHOSTS_CFG = "/etc/denyhosts/"

("--config=%s" % DENYHOSTS_CFG)

将denyhosts作为系统服务启动:

[root@localhost denyhosts]# cp daemon-control /etc/init.d/denyhosts

[root@localhost denyhosts]# chkconfig --add denyhosts

[root@localhost denyhosts]# chkconfig denyhosts on

[root@localhost denyhosts]# /etc/init.d/denyhosts start

starting DenyHosts: /usr/bin/env python /usr/bin/ --daemon --config=/usr/share/denyhosts/denyhosts.cfg

查看⿊名单中的主机IP地址:

[root@localhost denyhosts]# cd

[root@localhost ~]# tail -n 2 /etc/

DenyHosts: Thu Aug 20 14:45:00 2015 | sshd: 118.187.17.119

sshd: 118.187.17.119

为主机增加⽩名单地址:

如果你需要将特定的IP增加为⽩名单的话,那么请修改/etc/。

例:我在⾃⼰的⽂件中增加202.101.172.46地址到我系统的⽩名单中:

[root@localhost ~]# echo "sshd: 202.101.172.46" >> /etc/

弱⼝令攻击的防护措施