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/
弱⼝令攻击的防护措施


发布评论