kali ssh报错解决办法

┌──(root㉿kali)-[~]
└─$ mkdir .ssh
┌──(root㉿kali)-[~]
└─$ vim .ssh/config                          //创建ssh配置文件,防止ssh连接报错
Host *
HostkeyAlgorithms +ssh-rsa
PubkeyAcceptedKeyTypes +ssh-rsa

一、部署靶机

靶场网络拓扑
Kali攻击机
安装或打开Kali虚拟机

用户名/密码  kali:kali,root:root

IP地址   192.168.10.224
内存   1G(512M)
Linux靶机
打开Metasploitable2-Linux 虚拟机

用户名/密码     msfadmin :msfadmin

IP地址   192.168.10.143

内存   512M
Windows靶机
打开Windows虚拟机

用户名/密码     administrator :Tedu.cn123

IP地址  192.168.10.142

内存   512M

二、信息收集(踩点)

1、扫描的价值
对攻击者来说:根据扫描结果,来决定进一步的攻击行动;
能够更有针对性地选择攻击方法、攻击工具,节省攻击时间

对防护者来说:根据扫描结果,判断应采取什么样的安全策略;
封堵漏洞、加固系统、完善访问控制

2、nmap
Network Mapper  一款开源的网络探测器

-采用原始报文方式,可以快速扫描单个主机或大型网络

-识别目标的服务类型、程序版本、防火墙等

man:manual  手册
查看nmap手册:
man nmap

1)nmap 命令格式

nmap  [扫描类型]  [选项]  <扫描目标>


2)指定扫描类型

  -sS:TCP半开扫描(只发SYN包,不会产生会话日志),速度更快,但是准确度较低
  s : scan 扫描
  S : SYN

  -sT: TCP全开扫描(尝试全连接),速度较慢,结果更准确
  s : scan 扫描
  T : TCP

  -sU: UDP扫描
  s : scan 扫描
  U : UDP

  -sP : 使用ICMP扫描,仅用于探测目标是否在线
  s : scan 扫描
  P : Ping/ICMP
  

  -O : OS 操作系统  扫描操作系统

  -sV 扫描端口对应的服务版本
  V:VERSION 版本

3)指定目标端口(p:port 端口)

  -p  3389  :扫描指定端口

  -p  20-80 :扫描连续的端口

  -p  22,80 :扫描多个指定端口

4)端口状态(STATEopen  : 开放的

  filtered  :探测报文被目标服务器的防火墙过滤和阻止了

  closed :关闭的 
  
   服务:SERVICE
  扫描结果中常见的服务能扫描出来
  但是不常见的端口服务结果可能会出现unknown(未知)结果



1.扫描目标主机所在网段所有存活的主机
nmap -sP 192.168.10.0/24

结果:
192.168.10.224(kali主机的地址)
192.168.10.142(win2008地址)

2.扫描目标主机的操作系统
nmap -O 192.168.10.142

结果:
Running: Microsoft Windows 7|2008|8.1
不是精确的结果,显示大概的操作系统范围
可能是Microsoft Windows 7,可能是windows 2008,还有可能是windows8.1
可以确定的是,主机是Windows


3.扫描目标主机所有开放的端口
nmap -sS 192.168.10.142

端口对应状态(STATE):
open : 代表端口开放
closed : 代表端口关闭
filtered : 被过滤的(被防火墙拦截)



4.扫描目标主机20-100之间的端口开放情况
nmap -sS -p 20-100 192.168.10.142

5.扫描目标主机21,22,23,80,3306端口开放情况
nmap -sS -p 21,22,23,80,3306 192.168.10.142

结果:
PORT     STATE  SERVICE
21/tcp   open   ftp
22/tcp   closed ssh
23/tcp   open   telnet
80/tcp   open   http
3306/tcp closed mysql

21,23,80端口是开放的
22,3306端口是关闭的

6.扫描目标主机所有开放端口对应的服务和软件版本 
 nmap -sV 192.168.10.142 


 练习:扫描kali主机
1.扫描192.168.10.0/24存活的主机
nmap -sP 192.168.10.0/24

2.扫描kali主机的开放的端口
nmap -sS 192.168.10.224

3.扫描kali主机开放端口对应的服务和软件版本
nmap -sV 192.168.10.224


4.扫描kali的操作系统
namp -O 192.168.10.224

三、密码暴力破解

1、什么是暴力破解
密码破解指攻击者猜解目标密码或用户名的攻击行为
暴力破解,也称为“密码穷举”,列出各种可能的密码,用来尝试去访问目标系统,
理论上任何密码都可以用这种方法来破解,不过越复杂的密码破解耗时也越长
字典破解,实施破解时采用“可能”的密码,比如生日、单词、常用数字,可手动或通过工具编写,
也可以通过分享获取社工密码库(最常见的密码是“password”、“123456”、“123456789”)

2、crunch密码字典工具


基本用法:crunch     最小长度     最大长度    素材字符 -o 输入的文件名

示例1:crunch  3   4   0123456789    //随机组成3-4位纯数字密码

示例2:crunch  6   8    Abc1234    //由Abc1234随机组成的6~8位密码

示例3:crunch  4   4   -t  A%%%    -o  pass.txt  // 以A开头后面跟3位数字组成的4位密码,保存为pass.txt文件

特殊匹配字符:
@   --> 代表小写字母
,   --> 代表大写字母
%   --> 代表数字
^   --> 代表标点及特殊字符

逸晨的弱密码本:

3、hydra暴力破解


下载密码本(下载后复制粘贴到kaliroot目录下):

hydra:海德拉,一款功能强大的开源密码攻击工具,支持多种协议的破解

格式:hydra  [选项]   目标地址  服务类型

 -l 指定用户名

 -L 指定用户名字典文件

 -P 指定密码字典文件

 -o 将结果输出到指定文件

 -v 显示破解过程

 -t 同时执行的任务数,默认16个
 

示例1:破解windows靶机远程桌面密码

第一步:生成密码字典 (使用上面下载的pass.txt)


第二步:执行暴力破解(使用RDP-3389进行爆破)

┌──(root💀kali)-[~]

└─# hydra  -l  Administrator  -P  pass.txt  192.168.10.142  rdp

[DATA] attacking rdp://192.168.10.142:3389/

[3389][rdp] host: 192.168.10.142   login: Administrator   password: Tedu.cn123


第三步:在kali系统中远程登录windows2008

┌──(root💀kali)-[~]

└─# rdesktop   192.168.10.142

输入: yes


练习:hydra破解Linux靶机SSH登录密码
已知:
1.Linux靶机登录用户名:msfadmin
2.Linux 靶机IP地址:192.168.10.143
3.密码本pass.txt

要求:192.168.10.143的ssh协议进行密码的爆破


1.信息收集,扫描10网段存活的主机:
nmap -sP 192.168.10.0/24
192.168.10.142(win2008)
192.168.10.143(Linux靶机)
192.168.10.224(kali)

2.扫描Linux靶机端口,ssh服务是否开启
nmap -sS 192.168.10.143

结果:
PORT     STATE SERVICE
21/tcp   open  ftp
22/tcp   open  ssh
23/tcp   open  telnet

分析得出:22端口对应的ssh服务是开启的
可以尝试对它进行爆破

3.爆破192.168.10.143,ssh协议,用户名msfadmin
hydra -l msfadmin -P pass.txt 192.168.10.143 ssh

结果:
[22][ssh] host: 192.168.10.143   login:  msfadmin    password:  msfadmin 

 如果爆破失败:
1.检查命令和密码本
2.hydra版本过高,Linux版本过低,会导致攻击失败
查看hydra版本:hydra -v
如果这个版本高于v9.3,可能就会爆破失败
解决办法:降低自己的hydra版本

4.验证
使用Moba进行连接192.168.10.143 
 用户名:msfadmin
密码:msfadmin 

 能够建立ssh连接,代表爆破成功 

ssh爆破失败及报错解决思路:
查看hydra版本:
kali中输入:hydra -v
如果版本是v9.3,没问题
如果版本过高,还原快照到初始化位置

4、防暴破
1)设置黑客想不到的(防字典破解),设置够长够复杂的(防暴力破解),定期修改密码,不要用老密码

2)禁用管理员账号或改名,如:Administrator、root

3)做系统加固,设置登录次数限制、启用账户锁定阈值(针对普通用户)

4)修改端口号

5)指定哪些IP地址可以远程连接到本电脑
操作:
1)设置黑客想不到的(防字典破解),设置够长够复杂的(防暴力破解),定期修改密码,不要用老密码

  改管理员administrator的密码为:dnNtd@2211$

2)禁用管理员账号或改名,如:Administrator、root
修改如下:
ntd2211真管理员改名

administrator 新建的普通用户,不属于任何组,用来测试密码爆破
3)做系统加固,设置登录次数限制、启用账户锁定阈值(针对普通用户)
开始 — 管理工具 — 本地安全策略
4)修改端口号

  运行regedit打开注册表编辑器,修改**两个**位置

HKEY_ LOCAL MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp 找到PortNumber改成52011
HKEY_ LOCAL MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp 找到PortNumber改成52011
5)指定哪些IP地址可以远程连接到本电脑
启用防火墙:开始 — 控制面板 — Windows防火墙 — 高级设置 — 入站规则

新建规则 如下图:

  允许端口 52011

  作用域:远程IP地址 192.168.10.1


四、拒绝服务

1、什么是拒绝服务:
通过各种手段,最终导致目标系统崩溃、失去响应,从而使目标系统不能为正常的用户提供
资源或对应的功能(拒绝服务)

常见的DoS攻击方式:

  SYN Flood泛洪

  Ping Flood泛洪

  UDP Flood泛洪

2、hping3测试工具
可向目标主机发送任意TCP/IP协议数据包的一款开源的安全工具,
也用于扫描/防火墙测试/路由追踪/协议分析等场景

格式: hping3  主机  [选项]

常用选项:

  --syn:设置SYN标记(-S-p:指定目标端口

  -a:伪造源地址欺骗

  -d:  指定数据包的大小

  --flood:泛洪,尽最快发送数据包,不显示回复

  --rand-source:随机源地址模式

3、DoS攻击案例

测试机:kali,使用hping3工具

靶机:windows靶机(192.168.10.142),开启3389远程桌面服务

场景演示:针对靶机的3389端口发起攻击,使其失去响应


第一步:正常访问Windows靶机远程桌面

windows10物理机下,win+r,输入mstsc 回车
输入IP192.168.10.142(win2008靶机IP)
用户名:Administrator
点击连接
输入密码:Tedu.cn123

第二步:kali 主机对windows靶机发起攻击

┌──(root💀kali)-[~]

└─# hping3  192.168.10.142 --syn --flood -p 3389
// 使用hping3工具对win2008发起攻击,针对的是3389端口 发送泛洪模式的syn包
// (短时间内发送大量的syn包过去,目的是阻塞3389端口)

HPING 192.168.10.145 (eth0 192.168.10.142): S set, 40 headers + 0 data bytes

hping in flood mode, no replies will be shown

.. ..

//需要停止时,按Ctrl + C快捷键



第三步:验证:在攻击过程中,远程windows2008,发现无法连接远程


第四步:再次验证

停止攻击,稍等1~3分钟,可以正常远程

4、DDoS,分布式拒绝服务( Distributed Denial of Service)

1)什么是分布式拒绝服务:
  一种典型的流量攻击,放大版的DoS攻击,攻击方的主机数量呈现规模化;
  通常由分布在不同网络、不同位置的成千上万的主机组成攻击方(通常称为botnet僵尸网络),
  被同一发起者所控制,攻击强度更大,防御的难度也更大。


2)如何防御DoS/DDoS攻击:
  2.1)
    提高服务方的交付能力
    减少服务配置的等待时间
    优化单一客户机的并发响应策略
    更换高性能设备
    增加网络带宽
    负载均衡架构
    部署CDN内容分发网络

  2.2)
    部署专用软硬件防御产品
    冰盾防火墙
    流量清洗、 DDoS高防IP
    IDS入侵检测设备
    抗DDoS专用防火墙设备
    识别源IP,植入黑名单

五、渗透测试流程

1、渗透测试是什么

是一种通过模拟攻击的技术与方法,打破目标系统的安全防御,
并获得目标系统控制访问权的安全测试方法.

2、渗透测试的目标分类

针对主机操作系统渗透:Windows、Linux···
针对数据库系统渗透:MySQL、MS-SQL···
针对应用系统渗透:PHP组成的网站···
针对网络设备渗透:防火墙、路由器、交换机···

3、渗透测试的7个阶段
1)前期交互
2)信息收集
3)威胁建模
4)漏洞分析
5)渗透攻击
6)后渗透攻击
7)渗透报告