Kali基础工具使用(完善中)

Kali是什么


 Kali 是一款集成了各种专业工具的渗透测试的基于 Debian 的 Linux 操作系统

Kali中包含 600 多款工具软件,适用于各种信息安全和渗透测试研究

 

Kali的安装


 参考:

 

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博客

 

 

 

posted @ 2023-11-03 13:31  goodsir  阅读(703)  评论(0编辑  收藏  举报