Kali 软件管理

kali 更新

1. 查看发行版本

┌──(root㉿kali)-[~]
└─# lsb_release -a
No LSB modules are available.
Distributor ID: Kali
Description:    Kali GNU/Linux Rolling
Release:        2023.2
Codename:       kali-rolling

2. 查看内核版本

┌──(root㉿kali)-[~]
└─# uname -r 
6.3.0-kali1-amd64

3. 软件仓库配置文件(.list结尾)

软件存储库存储在 /etc/apt/sources.list 文件中

还可以把一些自定义或单独的应用配置文件放在 /etc/apt/sources.list.d/*.list 中

配置文件

4. 更新工具(apt-get 命令)

──(root㉿kali)-[~]
└─# apt-get -h         
apt 2.6.1 (amd64)
用法: apt-get [选项] 命令apt-get [选项] install|remove 软件包1 [软件包2 ...]apt-get [选项] source 软件包1 [软件包2 ...]apt-get 可以从认证软件源下载软件包及相关信息,以便安装和升级软件包,
或者用于移除软件包。在这些过程中,软件包依赖会被妥善处理。常用命令:update - 取回更新的软件包列表信息upgrade - 进行一次升级install - 安装新的软件包(注:软件包名称应当类似 libc6 而非 libc6.deb)reinstall - 重新安装软件包(注:软件包名称应当类似 libc6 而非 libc6.deb)remove - 卸载软件包purge - 卸载并清除软件包的配置autoremove - 卸载所有自动安装且不再使用的软件包dist-upgrade - 发行版升级,见 apt-get(8)dselect-upgrade - 根据 dselect 的选择来进行升级build-dep - 为源码包配置所需的编译依赖关系satisfy - 使系统满足依赖关系字符串clean - 删除所有已下载的包文件autoclean - 删除已下载的旧包文件check - 核对以确认系统的依赖关系的完整性source - 下载源码包文件download - 下载指定的二进制包到当前目录changelog - 下载指定软件包,并显示其变更日志(changelog)

Kali 的更新步骤:

1. apt-get update 更新软件包的列表 (索引)

解决更新软件包列表失败: apt-get update --fix-missing

┌──(root㉿kali)-[~]
└─# apt-get update
获取:1 http://mirrors.ustc.edu.cn/kali kali-rolling InRelease [41.2 kB]
获取:2 http://mirrors.ustc.edu.cn/kali kali-rolling/main Sources [15.8 MB]
获取:3 http://mirrors.ustc.edu.cn/kali kali-rolling/contrib Sources [78.0 kB]                 
获取:4 http://mirrors.ustc.edu.cn/kali kali-rolling/non-free Sources [129 kB]                 
获取:5 http://mirrors.ustc.edu.cn/kali kali-rolling/main amd64 Packages [19.4 MB]             
获取:6 http://mirrors.ustc.edu.cn/kali kali-rolling/main amd64 Contents (deb) [45.7 MB]       
获取:7 http://mirrors.ustc.edu.cn/kali kali-rolling/non-free amd64 Packages [218 kB]          
获取:8 http://mirrors.ustc.edu.cn/kali kali-rolling/non-free amd64 Contents (deb) [907 kB]    
获取:9 http://mirrors.ustc.edu.cn/kali kali-rolling/contrib amd64 Packages [115 kB]           
获取:10 http://mirrors.ustc.edu.cn/kali kali-rolling/contrib amd64 Contents (deb) [220 kB]    
已下载 82.6 MB,耗时 414(325 kB/s)                                                      
正在读取软件包列表... 完成

2. apt-get upgrade更新软件包(进行一次升级)

┌──(root㉿kali)-[~]
└─# apt-get upgrade
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成                 
正在计算更新... 完成
下列软件包是自动安装的并且现在不需要了:

3. apt-get dist-upgrade将系统升级到最新版本

┌──(root㉿kali)-[~]
└─# apt-get dist-upgrade
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成                 
正在计算更新... 完成

4. apt-get clean #清除更新痕迹//可选

搜索 - 安装 - 删除软件

Advanced Packaging Tool, or apt 主要的命令就是apt-get,通过软件仓库实现对软件包的管理,可以很好地解决软件包之间的相互依赖关系

1. 搜索

apt-cache 可以查询和显示已安装和可安装软件包的可用信息它专门工作在本地的数据缓存上,而这些缓存可以通过比如apt-get 的“update’命令来更新

┌──(root㉿kali)-[~]
└─# apt-cache -h               
apt 2.7.3 (amd64)
用法: apt-cache [选项] 命令apt-cache [选项] show 软件包1 [软件包2 ...]apt-cache 可以查询和显示已安装和可安装软件包的可用信息。
它专门工作在本地的数据缓存上,而这些缓存可以通过比如
apt-get'update' 命令来更新。如果距离上一次更新的时间太久,
那么它显示的信息可能就会过时。不过作为交换,apt-cache 不依赖
当前软件源的可用性(比如:离线状态)。常用命令:showsrc - 显示源文件的各项记录search - 根据正则表达式搜索软件包列表depends - 显示该软件包的依赖关系信息rdepends - 显示所有依赖于该软件包的软件包名字show - 以便于阅读的格式介绍该软件包pkgnames - 列出所有软件包的名字policy - 显示软件包的安装设置状态

常用的命令选项

  • search- 根据正则表达式搜索软件包列表
  • show-以便于阅读的格式介绍该软件包
┌──(root㉿kali)-[~]
└─# apt-cache search vsftpd    
ccze - robust, modular log coloriser
resource-agents - Cluster Resource Agents
vsftpd - lightweight, efficient FTP server written for security
vsftpd-dbg - lightweight, efficient FTP server written for security (debug)
yasat - simple stupid audit tool## 正则表达式
┌──(root㉿kali)-[~] ## ^ 开始
└─# apt-cache search ^vsftpd
vsftpd - lightweight, efficient FTP server written for security
vsftpd-dbg - lightweight, efficient FTP server written for security (debug)┌──(root㉿kali)-[~] ## 查看
└─# apt-cache show vsftpd   
Package: vsftpd
Source: vsftpd (3.0.3-13)
Version: 3.0.3-13+b2
Installed-Size: 343
Maintainer: Keng-Yu Lin <kengyu@debian.org>
Architecture: amd64
Replaces: ftp-server
Provides: ftp-server
Depends: debconf (>= 0.5) | debconf-2.0, libc6 (>= 2.34), libcap2 (>= 1:2.10), libpam0g (>= 0.99.7.1), libssl3 (>= 3.0.0), libwrap0 (>= 7.6-4~), adduser, libpam-modules, lsb-base (>= 3.0-6), netbase, procps, sysvinit-utils (>= 2.96)

管理工具 dpkg

Debian的软件包格式 *.deb (管理工具是dpkg) dpkg - package manager for

┌──(root㉿kali)-[~]
└─# dpkg --help
用法:dpkg [<选项>...] <命令>命令:-i|--install       <.deb 文件名> ... | -R|--recursive <目录> ...--unpack           <.deb 文件名> ... | -R|--recursive <目录> ...-A|--record-avail  <.deb 文件名> ... | -R|--recursive <目录> ...--configure        <软件包名>    ... | -a|--pending--triggers-only    <软件包名>    ... | -a|--pending-r|--remove        <软件包名>    ... | -a|--pending-P|--purge         <软件包名>    ... | -a|--pending-V|--verify <软件包名> ...       检查包的完整性。--get-selections [<表达式> ...]  把已选中的软件包列表打印到标准输出。--set-selections                 从标准输入里读出要选择的软件。--clear-selections               取消选中所有非必需的软件包。--update-avail <软件包文件>      替换现有可安装的软件包信息。--merge-avail  <软件包文件>      把文件中的信息合并到系统中。--clear-avail                    清除现有的软件包信息。--forget-old-unavail             忘却已被卸载的不可安装的软件包。-s|--status      <软件包名> ...  显示指定软件包的详细状态。-p|--print-avail <软件包名> ...  显示可供安装的软件版本。-L|--listfiles   <软件包名> ...  列出属于指定软件包的文件。-l|--list  [<表达式> ...]        简明地列出软件包的状态。-S|--search <表达式> ...         搜索含有指定文件的软件包。-C|--audit [<表达式> ...]        检查是否有软件包残损。--yet-to-unpack                  列出标记为待解压的软件包。--predep-package                 列出待解压的预依赖。--add-architecture    <体系结构> 添加 <体系结构> 到体系结构列表。--remove-architecture <体系结构> 从体系结构列表中移除 <体系结构>。--print-architecture             显示 dpkg 体系结构。--print-foreign-architectures    显示已启用的异质体系结构。--assert-<特性>                  对指定特性启用断言支持。--validate-<属性> <字符串>       验证一个 <属性><字符串>。--compare-versions <a> <关系> <b> 比较版本号 - 见下。--force-help                     显示本强制选项的帮助信息。-Dh|--debug=help                 显示有关出错调试的帮助信息。-?, --help                       显示本帮助信息。--version                    显示版本信息。可验证的属性:pkgname, archname, trigname, version.调用 dpkg 并带参数 -b, --build, -c, --contents, -e, --control, -I, --info,-f, --field, -x, --extract, -X, --vextract, --ctrl-tarfile, --fsys-tarfile
是针对归档文件的。 (输入 dpkg-deb --help 获取帮助)选项:--admindir=<目录>          使用指定 <目录> 而非 /var/lib/dpkg。--root=<目录>              安装到另一个根目录下。--instdir=<目录>           改变安装目录的同时保持管理目录不变。--pre-invoke=<命令>        设置调用前钩子。--post-invoke=<命令>       设置调用后钩子。--path-exclude=<表达式>    不要安装匹配Shell表达式的路径。--path-include=<表达式>    在排除模式后再包含一个模式。-O|--selected-only         跳过没有被选中安装或升级的软件包。-E|--skip-same-version     跳过版本与已安装软件版本相同的软件包。-G|--refuse-downgrade      跳过版本早于已安装软件版本的的软件包。-B|--auto-deconfigure      就算会损坏其他软件包,也要安装。--[no-]triggers            跳过或强制随之发生的触发器处理。--verify-format=<格式>     检查输出格式(支持的值:'rpm')--no-pager                 禁用任何分页器。--no-debsig                不去尝试验证软件包的签名。--no-act|--dry-run|--simulate仅报告要执行的操作 - 但是不执行。-D|--debug=<八进制数>      开启调试(参见 -Dhelp 或者 --debug=help)。--status-fd <n>            发送状态更新到文件描述符<n>。--status-logger=<命令>     发送状态更新到 <命令> 的标准输入。--log=<文件名>             将状态更新和操作信息到 <文件名>。--ignore-depends=<软件包>[,...]忽略关于 <软件包> 的所有依赖关系。--force-<项目>...          忽视遇到的问题(参见 --force-help)。--no-force-<项目>[,...]    遇到指定问题时停止。--refuse-<项目>[,...]      同上。--abort-after <n>          累计遇到 <n> 个错误后中止。--robot                    对某些命令使用机器可读的输出。可供--compare-versions 使用的比较运算符有:lt le eq ne ge gt        (如果版本号为空,那么就认为它先于任意版本号);lt-nl le-nl ge-nl gt-nl  (如果版本号为空,那么就认为它后于任意版本号)< << <= = >= >> >        (仅仅是为了与主控文件的语法兼容)'apt''aptitude' 提供了更为便利的软件包管理。

DebianCentos、RedHat的软件包格式*.rpm (管理工具是rpm)

┌──(root㉿kali)-[~]
└─# dpkg -l      
期望状态=未知(u)/安装(i)/删除(r)/清除(p)/保持(h)
| 状态=未安装(n)/已安装(i)/仅存配置(c)/仅解压缩(U)/配置失败(F)/不完全安装(H)/触发器等待(W)/触 >
|/ 错误?=()/须重装(R) (状态,错误:大写=故障)
||/ 名称                                           版本                                 体系结>
+++-==============================================-====================================-======>
ii  acl                                            2.3.1-3                              amd64 >
ii  adduser                                        3.137                                all   >
ii  adwaita-icon-theme                             43-1                                 all   >
ii  aircrack-ng                                    1:1.7-5                              amd64 >
ii  alsa-topology-conf                             1.2.5.1-2                            all   >
ii  alsa-ucm-conf                                  1.2.9-1                              all   >
ii  amass                                          4.1.0-0kali1                         amd64 >
ii  amass-common                                   4.1.0-0kali1                         all   >
ii  amd64-microcode                                3.20230808.1.1                       amd64 >
ii  apache2                                        2.4.57-2                             amd64 >
ii  apache2-bin                                    2.4.57-2                             amd64 >
ii  apache2-data                                   2.4.57-2                             all   >
ii  apache2-utils                                  2.4.57-2                             amd64 >
ii  apparmor                                       3.0.8-3                              amd64 >
ii  apt                                            2.7.3                                amd64 >## 查询 dpkg -l | grep less┌──(root㉿kali)-[~]
└─# dpkg -l | grep less
ii  aircrack-ng                                    1:1.7-5                              amd64        wireless WEP/WPA cracking utilities
ii  default-jre-headless                           2:1.17-74                            amd64        Standard Java or Java compatible Runtime (headless)
ii  firmware-ath9k-htc                             1.4.0-108-gd856466+dfsg1-2+kali2     all          firmware for AR7010 and AR9271 USB wireless adapters
ii  firmware-atheros                               20230515-3+kali1                     all          Binary firmware for Qualcomm Atheros wireless cards
ii  firmware-brcm80211                             20230515-3+kali1                     all          Binary firmware for Broadcom/Cypress 802.11 wireless cards
ii  firmware-iwlwifi                               20230515-3+kali1                     all          Binary firmware for Intel Wireless cards
ii  firmware-libertas                              20230515-3+kali1                     all          Binary firmware for Marvell wireless cards

2. 安装软件

## 查询 dpkg -l | grep vsftpd
┌──(root㉿kali)-[~]
└─# dpkg -l | grep vsftpd## 安装 apt-get install vsftpd                                                                                               
┌──(root㉿kali)-[~]
└─# apt-get install vsftpd
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成   ┌──(root㉿kali)-[~]
└─# dpkg -l | grep vsftpd 
ii  vsftpd                                         3.0.3-13+b2                          amd64        lightweight, efficient FTP server written for security

3. 删除软件包

ot㉿kali)-[~]
└─# apt-get remove vsftpd## 以上命令删除 软件后还会存在配置文件
┌──(root㉿kali)-[~]
└─# dpkg -L vsftpd       
/etc
/etc/ftpusers
/etc/init.d
/etc/init.d/vsftpd
/etc/logrotate.d
/etc/logrotate.d/vsftpd
/etc/pam.d
/etc/pam.d/vsftpd
/etc/vsftpd.conf┌──(root㉿kali)-[~]
└─# dpkg -l | grep vsftpd
rc  vsftpd                                         3.0.3-13+b2                          amd64        lightweight, efficient FTP server written for security## 删除2 apt-get purge vsftpd
┌──(root㉿kali)-[~]
└─# apt-get purge vsftpd  
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成                 
下列软件包是自动安装的并且现在不需要了 ┌──(root㉿kali)-[~]
└─# dpkg -L vsftpd        
dpkg-query: 软件包 vsftpd 没有被安装
通过 dpkg --contents (= dpkg-deb --contents) 来列出档案文件清单。┌──(root㉿kali)-[~]
└─# dpkg -l | grep vsftpd 

4. 搜索 apt-file

apt-file 可以根据命令搜索软件包

┌──(root㉿kali)-[~]
└─# apt-file -h    apt-file [options] action [pattern]
apt-file [options] -f action <file>
apt-file [options] -D action <debfile>Pattern options:
================--fixed-string     -F               Do not expand pattern--from-deb         -D               Use file list of .deb package(s) aspatterns; implies -F--from-file        -f               Read patterns from file(s), one per line(use '-' for stdin)--ignore-case      -i               Ignore case distinctions--regexp           -x               pattern is a regular expression--substring-match                   pattern is a substring (no glob/regex)Search filter options:
======================--architecture     -a  <arch>       Use specific architecture [L]--index-names      -I  <names>      Only search indices listed in <names> [L]--filter-suites        <suites>     Only search indices for the listed <suites> [L](E.g. "unstable")--filter-origins       <origins>    Only search indices from <origins> [L](E.g. "Debian")Other options:
==============--config           -c <file>        Parse the given APT config file [R]--option           -o <A::B>=<V>    Set the APT config option A::B to "V" [R]--package-only     -l               Only display packages name--stream-results                    Emit results immediately (without deduplication)--verbose          -v               run in verbose mode [R]--help             -h               Show this help.--               End of options (necessary if patternstarts with a '-')[L]: Takes a comma-separated list of values.
[R]: The option can be used repeatedlyAction:list|show          <pattern>        List files in packageslist-indices                        List indices configured in APT.search|find        <pattern>        Search files in packagesupdate                              Fetch Contents files from apt-sources.
  • Step0: apt-get install apt-file .

  • Step1: 更新缓存:apt-file update

┌──(root㉿kali)-[~]
└─# apt-file update
命中:1 http://mirrors.ustc.edu.cn/kali kali-rolling InRelease
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成                 
所有软件包均为最新。
  • Step2: 举例 :apt-file search arpspoof.//搜索 arpspoof 命令由哪个软件包提供
┌──(root㉿kali)-[~]
└─# apt-file search arpspoof
bash-completion: /usr/share/bash-completion/completions/arpspoof
dsniff: /usr/sbin/arpspoof
dsniff: /usr/share/man/man8/arpspoof.8.gz

Ps: arpspoof ,arp 欺骗的工具

正则表达式

正则表达式(regular expression),可简写为 regex或re,是一种指定字符串模式的简洁方式即一种用来描述文本模式的特殊语法。由普通字符(例如字符 a 到2)以及特殊字符(称为元字符,如/、*、?等) 组成,常用于字符串的搜索与替换操作。.例如,下面的一组字符串

  • 例如:

    • 作为正则表达式,可以使用 xiao[123]表示:
      xiao1 、xiao2 、xiao3 .
  • 很多UNIX工具都使用正则表达式来强化其自身的功能,例如:

    • (1)查找匹配文本的grep 家族(grep/egrep/agrep)
    • (2)大名鼎鼎的流编辑器 sed
    • (3)字符串程序处理语言 awk、perl 等
    • (4)文本查看程序,例如 more、less 等
    • (5)文本编辑器,例如 vi、emacs、jed 等
  • 特殊的元字符

    • . :除新行(如换行)字符外,匹配任意的单个字符,即一定有一个任意字符
    • ^ :锚:匹配行的开头
    • $ :锚:匹配行的末尾
    • \< :锚:匹配单词的开头 (\b)
    • \> :锚:匹配单词的末尾 (\b)
    • [list] :字符类:匹配 list 列表中的任一字符字符类
    • [^list] :字符类:匹配不在 list 列表中的任何字符
    • ( ) :分组:视为一个单独的单元
    • | :交替:匹配选择之一,为 ERE 运算符里优先级最低
    • \ :引用:从字面上解释元字符,通常用以关闭后续字符的特殊含义。
    • * :匹配在它之前的任何数目《或没有)的单个字符,重复前一个0到无穷多注

注 1:锚(anchor), 用来匹配在字符串的开头或末尾的位置。

注 2:分组,由于()–圆括号提供分组功能,让运算符可以被应用到“前置的正则表达式”

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/88225.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android Studio升级到Android API 33版本后,XML布局输入没有提示

低版本的Android Studio升级到Android API 33版本后&#xff0c;XML布局输入没有提示。查一下我目前使用的Android Studio 是2021年发布&#xff0c;而Android API 33是2022年发布的&#xff0c;这是由低版本升级到高版本造成不兼容的问题。解决方法有两种&#xff1a; 第一种…

广州华锐互动:VR垃圾分类虚拟科普系统让学习过程更加丰富有趣

在我们的日常生活中&#xff0c;垃圾分类已成为一项重要的公民责任。然而&#xff0c;由于缺乏对垃圾分类的深入理解和相关知识&#xff0c;许多人在实践中往往感到困惑和挫败。为了解决这个问题&#xff0c;一种创新的解决方案应运而生&#xff1a;垃圾分类VR虚拟仿真教学系统…

计算机网络aaaaaaa

差错检测 在一段时间内&#xff0c;传输错误的比特占所传输比特总数的比率称为误码率BER(Bit Error Rate) 11111111111111111111111111111111111111111111111111111111111111111111111111111111 11111111111111111111111111111111111111111111111111111111111111111111111111…

【JavaWeb 专题】15个最经典的JavaWeb面试题

文章目录 HTTP长连接和短连接HTTP/1.1 与 HTTP/1.0 的区别可扩展性缓存带宽优化长连接消息传递Host 头域错误提示 AjaxAjax 的优势&#xff1a; JSP 和 servlet 有什么区别&#xff1f;定义区别 JSP 的9大内置对象及作用JSP 的 4 种作用域&#xff1f;session 和 cookie 有什么…

微信小程序报错: SyntaxError: Cannot use import statement outside a module

微信小程序数据绑定&#xff0c;导包出现了: “SyntaxError: Cannot use import statement outside a module” 排查问题步骤记录&#xff0c;共勉 1.出现问题代码&#xff1a; import {createStoreBindings} from "mobx-miniprogram-bindings"import {store} from …

CVE-2023-36874 Windows错误报告服务本地权限提升漏洞分析

CVE-2023-36874 Windows错误报告服务本地权限提升漏洞分析 漏洞简介 Windows错误报告服务在提交错误报告前会创建wermgr.exe进程&#xff0c;而攻击者使用特殊手法欺骗系统创建伪造的wermgr.exe进程&#xff0c;从而以system权限执行代码。 影响版本 Windows10 1507 * Wind…

clickhouse(十四、分布式DDL阻塞及同步阻塞问题)

文章目录 一、分布式ddl 阻塞、超时现象验证方法解决方案 二、副本同步阻塞现象验证解决方案 一、分布式ddl 阻塞、超时 现象 在clickhouse 集群的操作中&#xff0c;如果同时执行一些重量级变更语句&#xff0c;往往会引起阻塞。 一般是由于节点堆积过多耗时的ddl。然后抛出…

开源项目-数据可视化分析平台

哈喽,大家好,今天给大家带来一个开源项目-数据可视化分析平台。项目通过SpringBoot实现 数据可视化分析平台主要有数据源管理,项目管理,数据集管理,图表管理,看板管理等功能 登录 数据源管理 数据源管理功能可以添加MySQL,Oracle,PostgreSQL等类型的数据源信息 项目…

MySQL学习笔记(八)—— 锁

首先要说明&#xff0c;有的锁是我们自己想加的时候加的&#xff0c;比如全局锁要靠我们自己用命令去加。而有的锁是mysql默认就给你加上了&#xff0c;因为mysql要保证自己最起码的安全性。 InnoDB默认加的是行级锁。 一、全局锁 1.1 用途 全局锁就是把所有的表都给锁了&am…

Ceph源码解析:PG peering

集群中的设备异常(异常OSD的添加删除操作)&#xff0c;会导致PG的各个副本间出现数据的不一致现象&#xff0c;这时就需要进行数据的恢复&#xff0c;让所有的副本都达到一致的状态。 一、OSD的故障和处理办法&#xff1a; 1. OSD的故障种类&#xff1a; 故障A&#xff1a;一…

微服务(多级缓存)

目录 多级缓存 1.什么是多级缓存 2.JVM进程缓存 2.2.初识Caffeine 2.3.实现JVM进程缓存 2.3.1.需求 2.3.2.实现 3.Lua语法入门 3.1.初识Lua 3.1.HelloWorld 3.2.变量和循环 3.2.1.Lua的数据类型 3.2.2.声明变量 3.2.3.循环 3.3.条件控制、函数 3.3.1.函数 3.3.…