Kali基础工具使用(完善中)
Kali是什么
Kali 是一款集成了各种专业工具的渗透测试的基于 Debian 的 Linux 操作系统
Kali中包含 600 多款工具软件,适用于各种信息安全和渗透测试研究
Kali的安装
参考:
- 虚拟机VMware下载与安装教程(详细)_vmware虚拟机-CSDN博客
- 【2022最新Kali Linux安装教程【附安装包/密钥/镜像/Tools】】 https://www.bilibili.com/video/BV1sN4y1u7qv/?share_source=copy_web&vd_source=953a3f63fd0209fc2db3a8225c6e5509
- kali虚拟机安装教程(超详细)_<chrisgan>的博客-CSDN博客
Kali的基础操作命令
sudo [-i]:开启root权限
uname [--help]:用于获取系统规格的详细信息
pwd:显示工作目录的名称
ls:显示当前路径每个文件包含的内容以及它们存储的目录
history:列出先前输入的所有命令(存储在bash shell中,每次重新启动kali都会刷新)
macchanger:更改mac地址(-r 随机一个MAC地址;-l 显示MAC地址厂商;-s 显示当前信息;-m --mac 指定一个MAC地址)
ifconfig:查看当前的网络接口设置
echo:将文本打印到将其定向到的位置(直接使用不带‘>’的echo会创建文件;echo> [file name]在新文件中打印复制的文本;echo >> [file name]将复制的文本打印到现有文件)
cat:读取文件显示文件内容
cd:更改目录
更多详情:kali Linux命令大全_kali linux学习手册txt-CSDN博客
Kali中的工具
扫描主机/IP:
fping [-g] [本机网段中的地址/24]
nmap工具
netdiscover [-r] [本机网段中的地址/24]
NMAP(网络扫描和嗅探工具)
nmap使用命令格式:
nmap [指令] [IP地址]
常用nmap扫描指令:
-p:指定扫描的端口号
-v:显示扫描过程
-F:执行快速扫描
-n:静止反向域名解析
-R:反向域名解析
-6:启动ipv6扫描
-Pn:跳过主机发现的过程进行端口扫描
-A:全面扫描,该命令会扫描ip/域名的操作系统信息,版本信息,路径跟踪等等的内容,不过扫描速度,值得思考。
-sS :TCP SYN扫描
-sU:UDP扫描
-sT:TCP扫描
-sP ping扫描:使用ping主机,得出可响应的主机列表
-sL 列表扫描:可以对主机进行反向域名解析,校验ip或域名是否存在
-sV:扫描系统版本可程序版本号检测
--script=vuln:全面的漏洞扫描
-PA/-PS/-PR:扫描局域网下包含的主机
nmap扫描端口情况:
open:端口开启
close:端口关闭
filtered:端口被防火墙过滤,数据未达主机
unfiltered:端口未被过滤,但无法识别端口当前状态
open|filtered:端口是开放的或者被过滤,端口没有返回值
closed|filtered:端口是关闭的或者被过滤,该情况只发生在IP ID idle扫描
读取文件:
假设有list.txt文件,文件的内容是ip列表,一行一个如:
10.73.31.145
10.73.31.116
输入nmap [-iL] [list.txt]可令nmap自动扫描
nmap漏洞扫描
nmap --script=vuln [目标ip] : 检查是否存在常见漏洞
nmap --script=default:默认脚本扫描
nmap --script=brute 192.168.88.131:提供暴力破解的方式,可对数据库、smb、snmp等进行简单密码的暴力猜解
nmap --script=ftp-brute.nse 192.168.88.131:利用FTP指定脚本对目标特定FTP协议进行密码爆破
nmap --script=external 192.168.88.131:利用第三方的数据库或资源,例如进行whoise解析
arpspoof(arp攻击欺骗工具)
原理:
arpspoof通过伪造的ARP响应包改变局域网中从目标主机(或所有主机)到另一个主机(host)的数据包转发路径
安装指令:
apt-get install -y dsniff ssldump
格式:
arpspoof [-i] [-c] [-t] [-r] host(host是想要截获数据包的主机 (通常是网关))
用法指令:
-i interface:指定要使用的接口(即指定一块网卡)
-c own|host|both:指定在恢复ARP配置时使用的硬件地址;当在清理(cleaning up)时,数据包的源地址可以用自己的也可以用主机(host)的硬件地址
使用伪造的硬件地址可能导致某些配置下的交换网络、AP网络或桥接网络通信中断,然而它比起默认值————使用自己的硬件地址要工作地更为可靠
-t target:指定一个特殊的、将被ARP毒化的主机(如果没有指定,则认为是局域网中所有主机),重复可以指定多个主机
-r :毒化两个主机(目标和主机)以捕获两个方向的网络流量(仅仅在和-t参数一起使用时有效)
MSF(渗透测试工具)
MSF架构
Rex :操作系统级基本库,是MSF的底层依赖
MFS::Core :MSF底层库
MSF::Base :便于用户调用的基本库,提供API (模块功能基于Base库)
MSF::UI :用户界面(最常用MSF console接口)
MSF主目录
auxiliary:主要包含辅助性脚本(扫描、嗅探、注入、爆破,漏洞挖掘)
config:配置文件
db:数据库文件
data:主要包含一些用户接口代码、msfweb、一些其他模块用到的数据文件以及meterpreter,passiveX,vnc,DLLS等工具
encoders:主要包含各种编码工具,用于绕过入侵检测和过滤系统
exploits:漏洞利用,包含主流的漏洞利用脚本,exp命名规则:系统/服务/模块
modules:模块文件
nops:绕过针对溢出攻击滑行字符串的拦截检测
plugins:插件
tools:包含一些脚本和零散的工具
payloads:攻击荷载,主要在目标机器执行代码
post:此目录放着msf的exploit执行成功后,向目标发送的一些功能性指令,如提权,获取hash等
scripts:这个目录下的文件大都是meterpreter这个模块利用的脚本,比如用到migrate来转移到其他进程的指令的源代码就在此
而resource的rc脚本就相当于windows下的批处理文件
modules模块组成:
exploits:利用系统漏洞进行攻击的动作,此模块对应每一个具体漏洞的攻击方法,是一个流程性概念,其利用过程中往往会用到payloads
payloads:成功exploit后,攻击过程中执行的代码或指令。可以是能够反弹shell的shellcode,也可以是直接在目标系统上直接执行的系统命令,默认有三类payloads,分别为:
- singles:要执行的所有代码都放在一个文件中,没有外部依赖,因此文件比较大,可能会因为攻击目标内存空间受限而无法使用
- stagers:传输一个较小的payload用于建立连接,后续再传输具体攻击payload(也就是stages)
- stages:利用stagers建立连接后,后续再传输的代码
auxiliary:没有payload的exploits模块,一般在信息收集阶段使用
encoders:对payloads进行加密
post:取得shell后,进一步运行的攻击指令(运行post模块的方法有两个,一是在取得的shell中直接run运行;二是use相应的post模块,set相应的shell session,然后run运行)
msf基本指令
1、基础流程:
msfconsole:启动MSF console界面
search [漏洞名] :搜索关键词内容对应的模块,用于查找相关漏洞
use [模块名] : 使用use进入模块
info:查看当前模块信息
set payload windows/x64/meterpreter/reverse_tcp :设置攻击载荷
show options :查看模块需要配置的参数
set RHOST 192.168.100.158 :设置参数(设置攻击目标)
exploit / run :运行
2、后渗透操作:
ps:查看进程
getpid:查看当前进程号
sysinfo:查看系统信息
route:查看完整网络设置
getsystem:自动提权
getlwd:查看当前目录
screengrab:截取目标屏幕
其他:
help /? :打印当下窗口的帮助文档
connect :msfconsole界面下的nc工具
edit :编辑模块的ruby文件,与用vim编辑相同
show :查看命令,可以看当前环境下的exploits、auxiliary、payloads等模块,其中Rank表示不同模块的评级(成功率和使用难易程度的重要参考),
- show options:表示当前上下文环境中的选项内容
- show missing:查看当前有哪些必须的配置没有设置
- show advanced:显示一些不会在show options中显示的的高级选项,
set/unset:设置变量/取消变量设置
setg/unsetg :设置全局变量/取消全局变量设置,只会设置当前msf运行环境中的变量,退出msf后设置就复位
save :将设置保存到/root/.msf4/config,msf启动时会读取该文件,这样重新启动msf后设置依然保留
back :从模块上下文退回到msfconsole初始目录
sessions :可以看见当前已经建立的攻击连接,利用`sessions -i id`命令进入指定连接
jobs :查看后台运行的模块
load/unload :连接插件,如load openvas,然后会出现相应的openvas命令,使用时需要用openvas_connect连接外部扫描器
loadpath :调用自己编写的功能模块
route :向session指定路由
resource :调用rc文件的命令并执行,以方便直接取得session
payload与exploit
payload一般是在目标机上执行的,exploit一般在本机上执行命令从而操纵目标机
攻击代码通常会释放攻击载荷(payload),里面包含了攻击者想要执行的代码。exploits利用代码可以在本地也可在远程进行。一个远程攻击利用允许攻击者远程操纵计算机,在理想状态下能够执行任意代码。远程攻击对攻击者非常重要,因为攻击者可以远程控制他人的主机而不需要通过其它手段(让受害者访问网站,点击一个可执行文件,打开一个邮件附件等等),而本地攻击一般都是用来提升权限
其他:【漏洞复现】RDP远程桌面漏洞复现(CVE-2019-0708)_exploit/cve-2019-0708_剑客 getshell的博客-CSDN博客
Ettercap(网络抓包攻击工具)
开启方法:
输入ettercap [-G]命令
或者点击左上角
使用方法:
点击右上角勾键启动
列出主机后可选择目标进行攻击
DIRBUSTER(页面结构扫描工具)
左上角工具栏启动或命令栏输入dirbuster
界面信息:
目标ip地址或域名,默认80端口,特殊端口需要加到后面
请求方式,用get方式或者HEAD加GET自动切换
线程数选择
字典选择(自带字典路径 /usr/share/dirbuster/wordlists)
选择扫描方式(url fuzz可指定目录进行扫描)
结果分析:
200:文件存在;
404:服务器中不存在该文件;
301:这是重定向到给定的URL;
401:访问此文件需要身份验证;
403:请求有效但服务器拒绝响应。
tip:dirsearch -u [目标ip] : 用dirsearch工具进行快速扫描
gobuster dir -u http://192.168.2.123 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php
Netcat(多功能渗透测试工具)
基本功能:
(1)telnet/获取系统banner信息(登陆系统后展示出来的类似欢迎信息即为登陆banner)
(2)传输文本信息
(3)传输文件和目录
(4)加密传输文件
(5)端口扫描
(6)远程控制/正反向shell
(7)加密所有流量
(8)流媒体服务器
(9)远程克隆硬盘
基本参数:
-h: 指令帮助
-l: 开启监听模式,用于入站链接
-p: 开放本地端口
-n: 远程连接(后接端口,不通过域名服务器直接使用IP地址)
-v: 显示指令执行详细信息
-z: 端口扫描
-u: 使用UDP模式
-c: 添加使用权限
-g: 设置路由器跃程通信网关,最多可设置8个
-G: 设置来源路由指向器,其数值为4的倍数
-o: 指定文件名称,把往来传输的数据以16进制字码倾倒成该文件保存
-r: 乱数指定本地与远端主机的通信端口
-s: 设置本地主机送出数据包的IP地址
-w:设置等待连线的时间
-q: 完成操作后退出
基本指令:
nc -nv Targert_IP Targert_Port 连接到远程主机
nc -l -p Local_Port 监听本地端口
使用详情:kali NETCAT NC的使用_kali中nccat使用-CSDN博客
sqlmap(sql漏洞检测利用工具)
基本参数:
-h显示基本帮助信息
-v 详细等级(0-6 默认 1)0:只显示python错误以及重要信息;1:显示信息以及警告;2:显示debug消息;3:显示注入payload;4:显示http请求;5:显示http响应头;6:显示http响应内容
-u:指定目标url
-d:直接连接数据库
-l:从burp代理日志的解析目标
-r:从文件中加载http请求
-g:从google dork的结果作为目标url
常用指令:
sqlmap -u [URL]:检测注入点
sqlmap -u [URL] --dbs 爆出所有数据库信息
sqlmap -u [URL] --current-db 爆出当前数据库信息
sqlmap -u [URL] -D maoshe --tables 指定库名列出所有表
sqlmap -u [URL] -D maoshe -T admin --columns 指定库名表名列出所有字段
sqlmap -u [URL] -D maoshe -T admin -C Id,password,username --dump 指定库名表名dump出指定字段
详情:sqlmap详细使用教程_sqlmap怎么用-CSDN博客 SQLmap使用教程图文教程(非常详细)从零基础入门到精通,看完这一篇就够了。-CSDN博客
Hydra(密码爆破工具)可以通过以下命令进行使用:hydra -l [用户名] -P [密码字典文件路径] [目标主机地址] [协议]
使用方法:
hydra [指令] [IP地址] [服务名] (帮助:hydra -h //查看基本用法)
指令:
-R :继续从上一次进度接着破解
-S :采用SSL链接
-s :PORT 可通过这个参数指定非默认端口
-l :LOGIN 指定破解的用户,对特定用户破解
-L :FILE 指定用户名字典
-p :PASS 小写,指定密码破解,少用,一般是采用密码字典
-P :FILE 大写,指定密码字典
-e :ns 可选选项,n:空密码试探,s:使用指定用户和密码试探
-C :FILE 使用冒号分割格式,例如“登录名:密码”来代替-L/-P参数
-M :FILE 指定目标列表文件一行一条
-o :FILE 指定结果输出文件
-f :在使用-M参数以后,找到第一对登录名或者密码的时候中止破解
-t :TASKS 同时运行的线程数,默认为16
-w :TIME 设置最大超时的时间,单位秒,默认是30s
-v/-V :显示详细过程
server :目标ip
service :指定服务名
OPT :可选项
步骤:
1、需要准备密码字典(kali中自带的密码字典路径/usr/share/wordlists/)
dirb目录下有如下字典:
big.txt :大的字典
small.txt :小的字典
catala.txt :项目配置字典
common.txt :公共字典
euskera.txt :数据目录字典
extensions_common.txt :常用文件扩展名字典
indexes.txt :首页字典
mutations_common.txt :备份扩展名
spanish.txt :方法名或库目录
others :扩展目录,默认用户名、默认密码等
stress :压力测试
vulns :漏洞测试
2、对应要破解服务输入指令
详情:黑客工具之hydra详细使用教程 - 知乎 (zhihu.com)
Lynis
WPScan
Metasploit Framework
Skipfish
King Phisher
John the Ripper(密码破解工具),可以通过以下命令进行使用:john [加密文件路径]
Aircrack-ng(无线网络渗透测试工具)可以通过以下命令进行使用:aircrack-ng [抓包文件路径]
虚拟机需要使用外置网卡,并且支持monitor 监听模式
详情:【精选】使用kali破解WIFI——Aircrack-ng_kali aircrack-ng-CSDN博客