Linux基础命令(一)

admin 2025年1月22日19:40:43评论17 views字数 4962阅读16分32秒阅读模式

目录

  • Kali linux遵循(FHS)目录结构

  • 帮助手册(man)

  • 目录操作命令

  • Kali Linux 中的服务

  • apt 包管理器

    • 彻底删除软件包

  • openssl(一种思路)

Kali linux遵循(FHS)目录结构

这种目录标准就是以左斜线/为整个目录的根起点
不用将前面的目录都写出来
例如:/home/kali/Desktop/ezpie与./ezpie的效果一样,若是文件夹就进入该文件夹,如果是程序就执行该程序。

./bin:存放普通程序,如 ls、cd、cat 等,是用户日常使用的基本命令所在目录。
./sbin:存放系统程序,像 fdisk、mkfs、sysctl 等,这些程序通常涉及对操作系统的修改配置,一般只有管理员有权限使用,用于操作系统层面的配置管理等操作。
/etc:存放配置文件,系统和各种服务的配置信息都存储在此目录。
/tmp:临时目录,用于存储程序运行时产生的临时文件。
usr/bin:存放应用程序,例如 apt、nact、nmap 等,是用户安装的应用程序的可执行文件所在目录。
/usr/share:存放数据文件和应用程序支持文件,比如应用程序的图标、帮助文档等资源文件。

帮助手册(man)

查看 man 手册
man 命令默认显示 section 1
man passwd
搜索含有关键词 passwd 的所有 section
man -k passwd
基于正则表达式搜索(以什么开头以什么结尾)
man -k ‘^passwd$’
这样就只会有passwd,而不会chgpasswd之类的,这样就更加高效
man 5 passwd 查看 section 5 手册

目录操作命令

ls( -l 每个文件都单行显示 ,-a 显示隐藏文件(这个非常重要))
ls命令,-a参数非常重要,可以把隐藏文件显示出来,在linux命令下输入会把默认文件夹的所有文件输出出来,
ls -l是以竖列的形式把文件列出来,如果加个a会把所有隐藏文件也列出来,隐藏文件都是以点开头如 .bash_history
在做提权的时候,进了一个系统,可以先看看它有没有什么隐藏文件,比如说 root 目录下 , .bash_history 这个文件里面可能保存着一些管理员,之前对这个服务器做的操作输入了哪些命令,这些命令可能就保至 .bash_history 文件中,这个时候就可以先把它识别出来再去看看它的内容 利用 cat .bash_history 查看。
cd <目录路径>,其中 <目录路径> 是你想要切换到的目录的路径,可以是绝对路径,也可以是相对路径。

  • 绝对路径:从根目录 / 开始的完整路径,例如 cd /usr/local/bin 会将当前工作目录切换到 /usr/local/bin 。

  • 相对路径:相对于当前目录的路径,例如当前在 /usr 目录,输入 cd local/bin 会将工作目录切换到 /usr/local/bin 。

mkdir dir1 创建目录
mkdir “xiao yu” 创建名称包含空格的目录
mkdir dir2 dir3 同时创建两个目录
rm -rf dir1/ dir2/ 同时删除两个目录
mkdir -p test/{recon,exploit,report}层级化创建多个目录

Linux基础命令(一)
touch a.txt 创建文件a.txt
echo passwd >> a.txt 将 passwd 写入 a.txt

echo $path 这条命令整体的作用就是把 $path 环境变量存储的内容(也就是那些目录路径)显示在终端上。
它存储了一系列目录路径,这些路径之间用冒号 : 分隔开。当你在终端输入一个命令(比如 ls 、cd 等)去执行某个程序时,系统会按照 PATH 变量中记录的这些目录顺序,依次去这些目录里查找对应的可执行文件。
Linux基础命令(一)

例如which nmap
如果你想在当前系统的定义路径里,去找一下文件,可以用 which 命令查询,如果搜到了,这个目标路径有这个文件的话就可以搜出来
Linux基础命令(一)
但是这并不是全盘搜索而是范围搜索,如果想进行全盘搜索可以使用locate命令
locate <文件名或目录名>
其中 <文件名或目录名> 是你想要查找的文件或目录的名称
例如,要查找名为 example.txt 的文件,输入 locate example.txt ,locate 会在其数据库中查找包含 example.txt 的文件路径,并将结果输出到终端。
常用参数

  • -i:执行不区分大小写的查找。例如,输入 locate -i EXAMPLE.TXT ,会找到名称为 example.txt 或 EXAMPLE.TXT 等大小写不同但名称相似的文件或目录。

  • -b:仅匹配文件或目录的基本名称,而不考虑其所在的路径。例如,输入 locate -b example ,会查找文件或目录名为 example 的项,而不考虑 example 出现在路径中的情况,如 /home/user/example 或 /var/example 等。

  • -c:仅输出匹配的文件或目录的数量,而不输出具体路径。例如,输入 locate -c example.txt 会显示匹配 example.txt 的文件或目录的数量。
    find 命令
    你可以基于文件的很多特征属性,去进行搜索,你可以按照时间去搜,比如说最近 24 小时发生过修改这样的文件,可以 find 从根目录开始搜,搜所有的 24 小时修改过的这些文件,或者 24 小时内,访问过的文件,或者 24 小时发生过变更的文件等。
    find 命令用于在文件系统中进行全面搜索,支持基于名称、时间、大小、所有者、时间戳、权限等多种条件搜索文件和目录。
    常用参数及示例

  • 时间相关

    • -mtime :按修改时间搜索,find / -mtime 0 搜索根目录下最近 24 小时修改过的文件。

    • -atime :按访问时间搜索。

    • -ctime :按变更时间搜索。

    • -mmin :按分钟计算修改时间,find. -type f -iname ‘*.sh’ -mmin -30 -ls 搜索当前目录下最近 30 分钟修改过的后缀为 .sh 的文件,并列出详细信息。

  • 类型相关

    • -type f :指定搜索文件,如 find / -type f 搜索根目录下所有文件。

    • -type d :指定搜索目录,如 find / -type d 搜索根目录下所有目录。

  • 名称相关

    • -name :按名称搜索,区分大小写,如 find. -name.svn 搜索当前目录及其子目录下名为 .svn 的文件或目录。

    • -iname :按名称搜索,不区分大小写,find. -iname ‘*.sh’ 搜索当前目录及其子目录下所有后缀为 .sh 的文件。

  • 权限相关:find / -type f -perm -u=s -ls 2>/dev/null 搜索根目录下启用 SUID 权限的文件,并列出详细信息,同时将报错信息输出到空设备,不在终端显示。
    对搜索结果执行操作

  • find. -name.svn -exec rm -rf {} ; :在当前目录及其子目录下查找名为 .svn 的文件或目录,并对找到的结果执行 rm -rf 命令(强制递归删除)。

  • find. -name.svn | xargs rm -rf :同样是在当前目录及其子目录下查找名为 .svn 的文件或目录,将找到的结果作为参数传递给 rm -rf 命令,强制递归删除。
    管理系统服务

Kali Linux 中的服务

Kali Linux 作为一个专门用于渗透测试和网络安全的操作系统,预装了多种系统服务,如 MySQL 数据库、Apache 服务、PHP 语言解析环境、SSH 服务等,方便用户进行各种测试和操作。
默认情况下,许多服务处于关闭状态,需要手动启动。
服务的启动和验证
启动服务

  • sudo systemctl start ssh:使用 sudo 权限通过 systemctl 命令启动 SSH 服务。SSH 服务常用于远程登录和建立安全隧道,端口通常是 22。

  • sudo systemctl start apache2:启动 Apache2 服务,这是一个常用的 Web 服务,可用于搭建网站等,常用于文件传输等操作。

验证服务启动

  • sudo ss -antlp | grep sshd:使用 ss 命令查看系统的套接字信息,并通过 grep sshd 筛选出与 SSH 服务相关的信息,以此来验证 SSH 服务是否已启动。
    服务的自动启动

  • sudo systemctl enable ssh:将 SSH 服务设置为开机自启,这样每次系统重启后,该服务会自动启动,而不是像 sudo systemctl start ssh 那样仅临时启动。
    查看系统可用服务

  • systemctl list-unit-files:列出系统中的所有服务单元文件,包括每个服务的当前状态,让用户了解系统中可用的服务及它们的启用情况。

apt 包管理器

缓存官方软件仓库的目录(包含软件包版本,描述等)
软件仓库概念
类似于苹果的 App Store 和安卓手机厂商的应用商店,Linux 发行版也有自己的官方软件仓库,它包含了大量官方收录的软件包,方便用户安装所需软件,Kali Linux 的官方软件仓库中的软件大多与安全和渗透攻击相关,这些软件包会不断更新、迭代和淘汰。
sudo apt update
该命令会连接到官方软件仓库,下载最新的软件包目录信息,包括软件包的版本、描述等更新信息,存储在本地缓存中。
sudo apt upgrade
将系统中已安装的软件包升级到最新版本。它会检查已安装软件包的更新,并将它们升级到最新可用版本。
注意:它会根据 apt update 更新的软件包列表进行操作,所以在执行 apt upgrade 之前,通常先执行 apt update 。
sudo apt upgrade metasploit-framework 更新单个包
apt-cache search pure-ftpd 与 apt search pure-ftpd
通过关键字搜索软件包(包括秒速信息),并包括软件包的描述信息,这两个命令都可以搜索软件包,搜索结果会显示包含关键字的软件包及其描述,方便找到所需软件包。
apt show resource-agents
显示软件包的详细信息,包括版本、依赖关系、描述等 以此来确定是否符合需求。
sudo apt install pure-ftpd
以超级用户权限使用 apt 安装 pure-ftpd 软件包。它会根据软件包的依赖关系自动安装所需的依赖包,确保软件包正常运行。

彻底删除软件包

sudo apt remove --purge pure-ftpd (包括修改过的配置文件)
不仅删除软件包本身,还会删除其相关的配置文件,比单纯的sudo apt remove pure-ftpd 更彻底,确保系统中不再残留软件包的相关信息。
离线安装软件包
不安装依赖包的情况:
sudo dpkg -i man-db_2.0.2-5_amd64.deb

使用 dpkg 命令离线安装 man-db_2.0.2-5_amd64.deb 软件包,但不安装其依赖包。dpkg 通常不处理依赖关系,可能导致软件无法正常运行,需手动解决依赖问题。
同时安装依赖包的情况:
sudo apt install./man-db_2.7.0.2-5_amd64.deb
使用 apt 离线安装 man-db_2.7.0.2-5_amd64.deb 软件包,并自动处理依赖关系,确保软件包及其依赖都能正确安装,是更可靠的离线安装方式。

openssl(一种思路)

Linux基础命令(一)
利用 openssl 把 yzy 生成一个 md5 的密文,把这串密文就可以写到/etc/passwd,的这个文件里面作为一个用户账号它的密码来使用。
盐值被添加在原始密码之前参与哈希计算,增加密码破解难度,即使原始密码相同,因盐值不同,最终哈希值也不一样。
$ 1 $代表 MD5 算法,AgX0DpWA 就是随机生成的盐值。
$ 5 $代表 SHA - 256 算法,pn6sWKU4 就是随机生成的盐值。
$ 6 $代表 SHA - 512 算法,GX8DeyBe79yzvW.W就是随机生成的盐值。
所以在我们做渗透攻击的时候,尤其在做内网提权的时候,如果你发现你当前取得的这个账号的,它是具有修改passwd,/etc/paawd文件的权限的时候,这种权限有可能是介于普通和root权限之间的权限,或者说你已经取得root权限想要下次直接登录就是root就这样修改,如果对这个文件具有写权限的话就可以自己先生成一个123456等针对这些明文字符,生成一个它对应密码的密文,再写入sudo gedit/etc/passwd,用了x占位,我们直接把x删了,直接把密文写进去。
下次如果想用 root 账号登录系统的话,它对应的密码的明文就是123456,可以通过利用这种改密码的方式来做提权。

原文始发于微信公众号(泷羽Sec-临观):Linux基础命令(一)

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年1月22日19:40:43
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Linux基础命令(一)http://cn-sec.com/archives/3661399.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息