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、nmapNetwork 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)端口状态(STATE)
open : 开放的
filtered :探测报文被目标服务器的防火墙过滤和阻止了
closed :关闭的
服务:SERVICE
扫描结果中常见的服务能扫描出来
但是不常见的端口服务结果可能会出现unknown(未知)结果
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)端口状态(STATE) open : 开放的 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”)
密码破解指攻击者猜解目标密码或用户名的攻击行为 暴力破解,也称为“密码穷举”,列出各种可能的密码,用来尝试去访问目标系统, 理论上任何密码都可以用这种方法来破解,不过越复杂的密码破解耗时也越长 字典破解,实施破解时采用“可能”的密码,比如生日、单词、常用数字,可手动或通过工具编写, 也可以通过分享获取社工密码库(最常见的密码是“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暴力破解
下载密码本(下载后复制粘贴到kali的root目录下):
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)设置黑客想不到的(防字典破解),设置够长够复杂的(防暴力破解),定期修改密码,不要用老密码 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泛洪
通过各种手段,最终导致目标系统崩溃、失去响应,从而使目标系统不能为正常的用户提供 资源或对应的功能(拒绝服务) 常见的DoS攻击方式: SYN Flood泛洪 Ping Flood泛洪 UDP Flood泛洪
2、hping3测试工具可向目标主机发送任意TCP/IP协议数据包的一款开源的安全工具,
也用于扫描/防火墙测试/路由追踪/协议分析等场景
格式: hping3 主机 [选项]
常用选项:
--syn:设置SYN标记(-S)
-p:指定目标端口
-a:伪造源地址欺骗
-d: 指定数据包的大小
--flood:泛洪,尽最快发送数据包,不显示回复
--rand-source:随机源地址模式
可向目标主机发送任意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 回车 输入IP:192.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)渗透报告
1)前期交互 2)信息收集 3)威胁建模 4)漏洞分析 5)渗透攻击 6)后渗透攻击 7)渗透报告