kali linux渗透测试技术详解综合笔记1

第一章 kali Linux简介

1.Linux操作系统的基础知识

  1. Linux 的起源和发展:了解 Linux 操作系统的起源、发展和主要的发行版,如Linux 内核的诞生、GNU项目的贡献以及常见的 Linux 发行版如Ubuntu、Debian、CentOS 等。

    Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

    Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。

    严格来讲,Linux操作系统指的是“linux内核+各种软件”,Linux这个词只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。

  2. Linux 文件系统:熟悉 Linux 文件系统的层次结构和常见的目录结构:

    • 根目录(/)

    • 用户目录(/home)

    • 系统配置目录(/etc)

      • Linux文件系统中的文件是数据的集合,文件系统不仅包含着文件中的数据而且还有文件系统的结构,所有Linux用户和程序看到的文件、目录、软连接及文件保护信息等都存储在其中。

      • 常用的文件系统有以下几种EXT3、swap、vfat、nfs等。

      • 深入理解

      • 文件系统是操作系统用于明确存储设备(常见的是磁盘,也有基于NAND Flash的固态硬盘)或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。文件系统由三部分组成:文件系统的接口,对对象操纵和管理的软件集合,对象及属性。从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等。

      • Windows和Linux对比

        1、Windows和Linux的文件权限

        在Windows系统中,用户分为两类:计算机管理员和受限用户。Windows常常设置为管理员身份,结果大家都可以随意安装和修改系统软件,导致病毒软件防不胜防,导致Windows的安全性相对较差。

        在Linux中,用户分为4类:root(超级用户)、普通用户、同一组用户和其他用户。root用户拥有最高权限,可以对计算机系统进行任何操作。但root用户一般只在对系统进行维护时,如添加新用户、安装应用程序时,才进行登录,一般都是以普通用户的身份进行登录,普通用户不能修改系统文件夹下的文件,因此病毒软件想修改系统程序的可能性就大大降低了,这样就增加了系统的安全性和可靠性。

        2、Windows和Linux的目录结构

        在Windows下,整个硬盘被分成几个区。Linux也有分区的概念,但它是将所有系统安装在一棵树上,即从树根"/"开始。Linux中有一些重要的系统目录,它们都有特定的用途。

        /home存放系统中登录用户的主目录

        /bin存放系统中的可执行文件

        /etc存放系统中大部分配置文件

        /root超级用户的主目录

        /var存放内容经常变动的文件

        /usr存放与系统的用户直接相关的程序和文件

2.1 Linux文件系统根目录下的主要目录介绍

image-20230528221926071

/bin:保存系统命令,如ls、cd、pwd等常用命令

/dev:存放设备文件,特殊文件保存目录(不可以随意修改)

/home:用户目录,存放普通用户相关文件的用户,是我们常用的目录

/lost+found:存放临时文件。此文件夹大多数情况下都是空的,当突然停电或非正常关机后,有些文件就临时存放在这里。

/mnt:缺省挂载点,挂载U盘、移动硬盘目录(常用)

/sbin:用来存放管理员才能使用的命令,即具有一定权限才可以使用的命令

/proc:进程,该目录不能直接操作,其保存的是内存的过载点

/srv: 系统启动服务时可以访问的数据库目录

/tmp:临时目录

/var:系统相关文档内容目录,存放经常被修改的文件,包括各种日志、数据文件。

/boot:存放引导的相关文件,保存系统的启动数据(不可随意操作)

/etc:用来存放配置相关文件

/lib:存放系统动态链接共享库,几乎所有的应用程序都会用到该目录下的共享库。

/media:存放挂载和自动挂载设备的标准位置。如远程文件系统和可移动介质。

/opt:存放第三方软件。第三方软件在安装时默认会找到这个目录,所以如果你没有安装此类软件时,它是空的,但如果你一旦把它删除,以后再安装此类软件可能会碰到麻烦。

/root:存放root用户(即管理员用户)相关文件的目录

/sys:该目录不能直接操作,存放类似于/proc的文件系统,在Linux2.6内核中最新出现,包含的文件用于获得硬件状态并反映内核看到的系统设备树。它使用了/proc中的很多帮助。

/selinux:selinux是一种基于域-类型模型(domain-type)的强制访问控制(MAC)安全系统,它由NSA编写并设计成内核模块包含到内核中,相应的某些安全相关的应用也被打了SELinux的补丁,最后还有一个相应的安全策略。

/usr:系统软件资源目录,存放默认安装文件的目录,存放用户的应用程序和文件

/usr/bin:众多的应用程序

/usr/sbin:超级用户的一些管理程序

/usr/include:Linux下开发和编译应用程序所需要的头文件

/usr/lib:常用的动态链接库和软件包的配置文件

/usr/src:源代码,Linux内核的源代码就放在这里

/usr/local/bin:本地增加的命令

/usr/local/lib:本地增加的库

3.用户和权限管理:了解 Linux 中的用户和用户组的概念,以及权限管理访问控制,包括用户的创建、删除、权限的分配和修改等。

在 Linux 操作系统中,任何文件都归属于某一特定的用户,而任何用户都隶属于至少一个用户组。全部的用户信息保存为普通的文本文件。/ etc /passwd 文件是 UNIX 安全的关键文件之一。系统使用 UID 而不是用户名区别用户。任何 UID 值为0的用户都有 root 用户(系统管理员)访问权限,具备对系统的完全控制。/ etc / group 文件包含关于用户组信息。/etc/shadow包含用户密码文件(影子文件)

Linux用户管理

  • 用户是Linux系统工作中重要的一环,用户管理包括用户与组账号的管理。

  • 账号管理是指账号的新增、删除和修改、账号规划以及权限的授予等问题。

  • 在Linux系统中,不论是由本机或是远程登录系统,每个系统都必须拥有一个账号,并且对于不同的系统资源拥有不同的使用权限

    Linux用户权限

  • Linux下有两种用户:超级用户(root)、普通用户。

  • Linux系统中的root账号通常用于系统的维护和管理,它对Linux操作系统的所有部分具有不受限制的访问权限。在大多数版本的Linux中,都不推荐直接使用root账号登录系统。

  • Linux普通用户在系统下的操作是受限的。

  • 超级用户的命令提示符是“#”,普通用户的命令提示符是“$”

useradd     #建立用户账户
-c:加上备注文字,备注文字保存在passwd的备注栏中。
-d:指定用户登入时的启始目录。
-D:变更预设值。
-e:指定账号的有效期限,缺省表示永久有效。
-f:指定在密码过期后多少天即关闭该账号。
-g:指定用户所属的起始群组。
-G:指定用户所属的附加群组。
-m:自动建立用户的登入目录。
-M:不要自动建立用户的登入目录。
-n:取消建立以用户名称为名的群组。
-r:建立系统账号。
-s:指定用户登入后所使用的shell。
-u:指定用户ID号
usermod     #修改用户账户
-c         <备注>  修改用户帐号的备注文字。
-d         <登入目录>  修改用户登入时的目录。
-e         <有效期限>  修改帐号的有效期限。
-f         <缓冲天数>  修改在密码过期后多少天即关闭该帐号。
-g         <群组>  修改用户所属的群组。
-G         <群组>  修改用户所属的扩展、附加群组。
-l         <帐号名称>  修改用户帐号名称。
-L        锁定用户密码,使密码无效。
-s         <shell>  修改用户登入后所使用的shell。
-u         <uid>  修改用户ID。
-U        解除密码锁定。
userdel     #删除用户账户

groupadd    #建立用户组
-g          GID 指定新用户组的组标识号(GID)。
-o          一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。
groupdel    #删除用户组
groupmod    #更改组群识别码或名称
-g          GID 为用户组指定新的组标识号。
-o          与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
-n          新用户组 将用户组的名字改为新名字

> # groupmod –g 10000 -n group3 group2
>此命令将组group2的标识号改为10000,组名修改为group3。

gpasswd     #管理组群
-a	添加用户到组。
-d	从组删除用户。
-A	指定管理员。
-M	指定组成员和 -A 的用途差不多。
-r	删除密码。
-R	限制用户登入组,只有组中的成员才可以用 newgrp 加入该组。

4.命令行界面:掌握 Linux 命令行界面的基本操作和常用命令,如文件和目录的操作(ls、cd、mkdir、rm 等)、文件权限管理(chmod、chown 等)、文本编辑器(vi、nano)的使用等。

4.1目录操作命令

  • 切换目录:cd
绝对路径:绝对路径一定是由根目录 / 开始写起。例如,使用绝对路径的表示方式指明 bin 文件所在的位置,该路径应写为 /usr/bin

相对路径:和绝对路径不同,相对路径不是从根目录 / 开始写起,而是从当前所在的工作目录开始写起。例如cd .. (.表示当前目录、..表示上一级目录)
命令格式:cd 目录名
cd /    #切换到根目录      
cd ~    #切换到主目录      
cd -    #切换到上次访问的目录 
cd ..   #返回上一级目录
  • 查看目录:ls 和 pwd
pwd 查看当前工作路径(绝对路径)
ls 查看当前目录下的目录和文件
命令格式:ls [-选项] 目录名
选项:     -a:列出当前目录所有文件和目录(包括隐藏文件,以 .开头的为隐藏文件)
          -l:以列表的形式显示文件和目录
示例:
    ls -a   查看该目录下所有文件或目录
    ls -l(简写ll) 以列表形式查看文件或目录
  • 目录操作【增、删、改、查】
    • 创建目录【增】 mkdir
命令格式:mkdir [-选项] 目录名
选项: -p:递归创建目录。
示例:
    mkdir  data/    在当前目录下创建一个名为aaa的目录
    mkdir  -p  hadoop/data/   在当前目录下创建hadoop一并创建子目录data
    mkdir  /tmp/bigdata  在指定目录tmp下创建一个名为bigdata的目录
  • 删除目录或文件【删】rm和rmdir
命令格式:rmdir 目录名 (只能删除空目录)
示例:
    rmdir bigdata   #删除bigdata这个目录(bigdata为空的目录)
命令格式:rm [-rf] 目录名或文件名
选项:     -f:不提示,强制删除文件或目录;
                -i:删除已有文件或目录之前先询问用户;
                -r,-R:递归删除,将指定目录下的所有文件与子目录一并删除;
                -v:显示指令的详细执行过程。
示例:
     rm -rf data/    #删除当前目录下data这个目录
     rm -rf *   #删除当前目录下所有文件和目录,慎用~
     rm -rf /*  #【自杀命令!慎用!慎用!慎用!】将根目录下的所有文件全部删除
 注意:rm默认删除文件,使用-r选项可以删除目录,也可以删除其他文件或压缩包,为了方便大家的记忆,无论删除任何目录或文件,都直接使用 rm -rf 目录/文件/压缩包。
  • 目录修改【改】mv 和 cp

    • 目录重命名

      命令格式:mv 旧目录名 新目录名
      示例:
          mv  hadoop/  hadoop01/      #将hadoop名改为hadoop01
      注意:mv的语法不仅可以对目录进行重命名而且也可以对各种文件,压缩包等进行重命名的操作
      
    • 剪切(移动)目录

      命令:mv 目录名称 目录的新位置
      示例:
          mv  data  Data/     # 将data这个目录移动到Data这个目录下
      注意:mv语法不仅可以对目录进行剪切操作,对文件和压缩包等都可执行剪切操作
      
    • 拷贝(复制)目录或文件

      命令格式:cp [-选项] 目录名称 目录拷贝的目标位置
      选项: -r:表示递归复制
      示例:
      	cp  -r  apps/  Data/ 	#将apps目录复制到Data目录下
      注意:cp命令在复制目录是一定加上选项参数“-r”,cp命令不仅可以拷贝目录还可以拷贝文件,压缩包等,拷贝文件和压缩包时不用写-r递归。
      
  • 搜索目录【查】find

    命令格式:find 目录 参数 文件名称或者目录名
    
    示例:
    	find  /tmp  -name  'a*'  查找/tmp目录下的所有以a开头的目录或文件。
    
  • 文件操作命令【增,删,改,查】

    • 文件操作新建文件【增】touch

      命令格式:touch 文件名
      示例:
      	 touch a.txt	            #在当前目录创建一个名为aa.txt的文件
           touch b.txt c.txt d.txt		#在当前目录下创建多个文件b.txt、c.txt、d.txt
      注意:使用vi 命令也可以创建新文件
      
    • 删除文件 【删】 rm

      命令格式:rm -rf 文件名
      示例:
      	rm -rf  /tmp/a.txt       删除/tmp目录下的a.txt文件
      
    • 修改文件内容【改】 vi或vim

      命令格式:vi 文件名
      示例:
      	vi a.txt 进入a.txt进行编辑
      
    • 文件移动或重命名:mv

      命令格式:mv 文件名 新文件名
      示例:
      	mv  hello.txt  hi.txt	#将当前目录下的hello.txt重命名为hi.txt
      	mv  /tmp/a.txt  /tmp/b.txt	#将/tmp目录下的a.txt重命名为b.txt
      
    • 文件的复制:cp

      命令格式:cp 原文件名 指定目录
      
      示例: 
      	cp a.txt  hadoop/  	#将当前目录下的a.txt复制到hadoop目录下
      	cp a.txt  hadoop/b.txt	#将当前目录下的a.txt复制到hadoop目录下重命名为b.txt
      注意:可以复制的时候重命名
      
    • 查看文件内容【查】

      文件的查看命令:cat、more、less、head、tail
      
      cat:查看文件内容,看最后一屏
      命令格式:cat [选项] 文件名
      选项: -n :显示行号
      示例:
      	cat /etc/sudo.conf  #使用cat查看/etc/sudo.conf文件,只能显示最后一屏内容
      
      more:百分比显示
      示例:
      	more /etc/sudo.conf  #使用more查看/etc/sudo.conf文件,可以显示百分比,回车可以向下一行,空格可以向下一页,q可以退出查看
      
      less:翻页查看
      示例:
      	less /etc/sudo.conf   #使用less查看/etc/sudo.conf文件,可以使用键盘上的PgUp和PgDn向上和向下翻页,q结束查看
      
      head:默认查看文件前十行内容
      示例:
      	head -5 /etc/sudo.conf    #使用head -5 查看/etc/sudo.conf文件的前5行内容
      
      tail:默认查看文件后十行内容
      示例:
      	tail -5 /etc/sudo.conf 		#使用tail -5 查看/etc/sudo.conf文件的后5行内容 
      
    • 创建链接文件:ln

      命令格式:ln [-选项] 源文件 目标文件
      选项: -s :创建软连接(相当于快捷键)
      示例:
      	ln data.txt d   #创建data.txt文件的硬链接d
      示例:
      	ln -s data.txt da   #创建data.txt的软连接文件da
      注意:加-s创建软链接,不加-s则创建硬链接,软链接前面是 l 开头的(link),而硬链接是 - 开头,表示文件;软链接类似与 windows 的快捷方式,有一个明显的箭头指向,而指向的是源文件;硬链接文件除了文件名与源文件不一样,其余所有信息都是一样的。类似于 cp 复制操作。但是又和复制不一样,硬链接可以同步更新。
      

      4.2 文件权限管理

    • 文件的权限包括读、写、执行

每个文件的权限针对三类对象进行定义:

文件和文件目录的所有者:u—User

文件和文件目录的所有者所在的组的用户:g—Group

其它用户(除所有者和所有组的用户):o—Others

所有用户(用 a 表示)

每个文件针对每类访问者定义了三种主要权限:

  • 读(由 r 表示)

  • 写(或修改,用 w 表示)

  • 执行(由 x 表示)

  • rwx r-- r–

  • 421 400 400

  • 7 4 4

  • 文件类型

    d:文件夹
    -:普通文件
    l:软链接(类似Windows的快捷方式)
    b:块设备文件(例如硬盘、光驱等)
    p:管道文件
    c:字符设备文件(例如屏幕等串口设备)
    s:套接口文件
    
  • 基本权限

    读(r/4): Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
    写(w/2): Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
    执行(x/1): execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
    “—”表示不具有该项权限
    
  • 文件权限值的表示方法

    • 字符表示方法

      Linux表示说明
      r- -只读
      -w-仅可写
      - -x仅可执行
      rw-可读可写
      r-x可写可执行
      rwx可读可写可执行
      - - -无权限
    • 8进制数值表示方法

      权限符号八进制二进制
      r- -4100
      -w-2010
      - -x1001
      rw-6110
      r-x5101
      -wx3011
      rwx7111
      - - -0000
      • 文件访问权限的相关设置方法与命令

      • 修改文件权限:chmod

        chmod 修改文件权限的方法有两种: 字母法与数字法。

        • 字母法: chmod u/g/o/a +/-/=rwx 文件名

          [ u/g/o/a ]含义
          uuser 表示该⽂件的所有者
          ggroup 表示与该⽂件的所有者属于同⼀组( group )者, 即⽤户组
          oother 表示其他以外的⼈
          aall 表示这三者皆是
          [ ±= ]含义
          +增加权限
          -撤销权限
          =设定权限
          rwx含义
          rread 表示可读取, 对于⼀个目录, 如果没有r权限, 那么就意味着不能通过ls查看这个⽬录的内容。
          wwrite 表示可写入, 对于⼀个目录, 如果没有w权限, 那么就意味着不能在目录下创建新的文件。
          xexcute 表示可执行, 对于⼀个目录, 如果没有x权限, 那么就意味着不能通过cd进⼊这个目录。

          执行该命令时,我们可以仅对用户或用户组等进行权限操作,也可以同时对用户、用户组等进行权限操作

          • 数字法:rwx也可以用8进制数值表示法
            如执⾏: chmod u=rwx,g=rx,o=r filename 就等同于: chmod u=7,g=5,o=4 filename
            chmod 754 filename

          • 修改文件的拥有者:chown

          • 修改文件的所属组:chgrp

          • 查看或修改文件掩码: umask

            Linux下对于新建的文件和目录的默认权限如下

            • 新建文件默认权限=0666

            • 新建目录默认权限=0777

              但实际上我们所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到umask的影响

              这里假设默认权限是default,则实际创建的出来的文件权限是:

              default & ~umask
              

nano是一个字符终端的文本编辑器,可以打开指定文件进行编辑

语法:nano [选项] [[+行,列] 文件名]
-h, -? --help 显示此信息
-A --smarthome 启用智能 HOME 键
-B --backup 储存既有文件的备份
-U --quickblank 状态行快速闪动
-V --version 显示版本资讯并离开
-W --wordbounds 更正确地侦测单字边界

**vi编辑器是Linux系统下标准的编辑器。**那么简单的理解,就像是Windows下的记事本。

补充:vim是vi的升级版,代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。

  • 一、vi 命令的使用
命令格式: vi 文件名
示例: vi a.txt
注意:直接输入vi,可以查看vi的版本等信息,还可以直接编辑,但是退出时需要加上文件名,例如 :wq a.txt,将输入的内容保存到a.txt文件中。
  • 二、vi编辑器的三种模式

vi 编辑器有三种模式:命令模式、插入(编辑)模式、底行模式

image-20230605230047390

1、命令模式

直接用命令(vi 文件名)打开一个文件的话,默认是在命令模式下。

例如:(base) [root@defense ~]# vi test.txt

image-20230605230416127

此时处于命令模式下。

2、插入(编辑)模式

在命令模式下输入a、A、i、I、o、O中任何一个字符即可进入插入模式,在此模式下才可以对文件进行编辑,输入内容。在此模式下按 ESC键 退出到命令模式

image-20230605230755093

a、A、i、I、o、O字符作用如下:
a:在当前光标下一位开始编辑          
A:在当前光标所在行行尾开始编辑
i:在当前光标开始编辑               
I:在当前光标所在行行首开始编辑
o:在当前光标的下一行开始编辑        
O:在当前光标的上一行开始编辑

3、底行模式

在命令模式下,通过输入 **:**(英文冒号)即可切换到底行模式,底行模式下可以做一些保存,字符替换等操作,底行模式下命令以回车结束,退出或者返回命令模式,或者**双击Esc**返回命令模式。

image-20230605230949269

常用的底行模式下的命令如下::
set nu      显示行号                       
:set nonu    取消显示行号
:q    只退出,不保存                 
:wq   保存退出
:q!   强制退出                       
:wq!  强制保存退出
:%s/old/new 将old替换成new          
:/string  查找字符串
:n   定位到n行(n指数字)
  • 三、快捷键的使用

命令模式下的快捷键

dd      删除(剪切)光标所在行整行       
ndd     删除光标所在行起向下n行(5dd,删除5行)
yy      复制光标所在行 
nyy     复制光标所在行向下n行
p       粘贴 复制或剪切的内容(粘贴到下一行)
x       向后删除当前光标所在字符            
X       向前删除当前光标所在字符
gg      把光标跳转到本文件的第一行       
G       把光标跳转到本文件的最后一行
Shift+^ (shift+6)       把光标跳转到所在行的行首        
shift+$ (shift+4)       把光标跳转到所在行的行尾    
u       撤销,返回上一步                    
r       替换当前光标所在位置(一个字母)    
R       向后连续替换
  • 四、补充终端快捷键的使用

shell终端快捷键的使用:

Ctrl + a :移到行首
Ctrl + e :移到行尾
Ctrl+L:一键清屏(向上隐藏)
Clear:清屏(上面无内容)
Ctrl+u:删除光标所在行
Ctrl+d:向后删除光标所在位置字符
Ctrl+c:终止当前任务(执行的命令)
Ctrl+z:将任务挂起,放入后台
dpkg用于:管理系统里的deb包,可以对其安装、卸载、deb打包、deb解压等操作,与之相关apt-get工具可以在线下载 deb包 安装
-i:安装软件包; 
-r:删除软件包; 
-P:删除软件包的同时删除其配置文件; 
-L:显示于软件包关联的文件; 
-l:显示已安装软件包列表; 
--unpack:解开软件包; 
-c:显示软件包内文件列表; 
--confiugre:配置软件包。

5.包管理器:熟悉 Linux 发行版的包管理系统,如apt、yum、dnf 等,以及常用的包管理命令,如软件的安装、更新、卸载等。

5.1 pm包 - (Fedora, Redhat及类似系统)

rpm -ivh package.rpm 安装一个rpm包
rpm -ivh --nodeeps package.rpm 安装一个rpm包而忽略依赖关系警告
rpm -U package.rpm 更新一个rpm包但不改变其配置文件
rpm -F package.rpm 更新一个确定已经安装的rpm包
rpm -e package_name.rpm 删除一个rpm包
rpm -qa 显示系统中所有已经安装的rpm包
rpm -qa | grep httpd 显示所有名称中包含 “httpd” 字样的rpm包
rpm -qi package_name 获取一个已安装包的特殊信息
rpm -qg “System Environment/Daemons” 显示一个组件的rpm包
rpm -ql package_name 显示一个已经安装的rpm包提供的文件列表
rpm -qc package_name 显示一个已经安装的rpm包提供的配置文件列表
rpm -q package_name --whatrequires 显示与一个rpm包存在依赖关系的列表
rpm -q package_name --whatprovides 显示一个rpm包所占的体积
rpm -q package_name --scripts 显示在安装/删除期间所执行的脚本l
rpm -q package_name --changelog 显示一个rpm包的修改历史
rpm -qf /etc/httpd/conf/httpd.conf 确认所给的文件由哪个rpm包所提供
rpm -qp package.rpm -l 显示由一个尚未安装的rpm包提供的文件列表
rpm --import /media/cdrom/RPM-GPG-KEY 导入公钥数字证书
rpm --checksig package.rpm 确认一个rpm包的完整性
rpm -qa gpg-pubkey 确认已安装的所有rpm包的完整性
rpm -V package_name 检查文件尺寸、 许可、类型、所有者、群组、MD5检查以及最后修改时间
rpm -Va 检查系统中所有已安装的rpm包- 小心使用
rpm -Vp package.rpm 确认一个rpm包还未安装
rpm2cpio package.rpm | cpio --extract --make-directories bin 从一个rpm包运行可执行文件
rpm -ivh /usr/src/redhat/RPMS/arch/package.rpm 从一个rpm源码安装一个构建好的包
rpmbuild --rebuild package_name.src.rpm 从一个rpm源码构建一个 rpm 包

5.2 yum 软件包升级器 - (Fedora, RedHat及类似系统)

yum install package_name 下载并安装一个rpm包
yum localinstall package_name.rpm 将安装一个rpm包,使用你自己的软件仓库为你解决所有依赖关系
yum update package_name.rpm 更新当前系统中所有安装的rpm包
yum update package_name 更新一个rpm包
yum remove package_name 删除一个rpm包
yum list 列出当前系统中安装的所有包
yum search package_name 在rpm仓库中搜寻软件包
yum clean packages 清理rpm缓存删除下载的包
yum clean headers 删除所有头文件
yum clean all 删除所有缓存的包和头文件

5.3 deb 包 (Debian, Ubuntu 以及类似系统)

dpkg -i package.deb 安装/更新一个 deb 包
dpkg -r package_name 从系统删除一个 deb 包
dpkg -l 显示系统中所有已经安装的 deb 包
dpkg -l | grep httpd 显示所有名称中包含 “httpd” 字样的deb包
dpkg -s package_name 获得已经安装在系统中一个特殊包的信息
dpkg -L package_name 显示系统中已经安装的一个deb包所提供的文件列表
dpkg --contents package.deb 显示尚未安装的一个包所提供的文件列表
dpkg -S /bin/ping 确认所给的文件由哪个deb包提供

5.4 apt 软件工具 (Debian, Ubuntu 以及类似系统)

apt-get install package_name 安装/更新一个 deb 包
apt-cdrom install package_name 从光盘安装/更新一个 deb 包
apt-get update 升级列表中的软件包
apt-get upgrade 升级所有已安装的软件
apt-get remove package_name 从系统删除一个deb包
apt-get check 确认依赖的软件仓库正确
apt-get clean 从下载的软件包中清理缓存
apt-cache search searched-package 返回包含所要搜索字符串的软件包名称

5.5 DNF(Dandified Yum)是新一代的RPM软件包管理器。他首先出现在 Fedora 18 这个发行版中。而最近,它取代了yum,正式成为 Fedora 22 的包管理器。DNF包管理器克服了YUM包管理器的一些瓶颈,提升了包括用户体验,内存占用,依赖分析,运行速度等多方面的内容。DNF使用 RPM, libsolv 和 hawkey 库进行包管理操作。尽管它没有预装在 CentOS 和 RHEL 7 中,但你可以在使用 YUM 的同时使用 DNF 。在centos8中已经默认安装DNF,可以同时使用YUM。

#为了安装 DNF ,您必须先安装并启用 epel-release 依赖。
yum install epel-release
yum install dnf
# 查看版本
dnf –version
#查看系统中可用的 DNF 软件库
dnf repolist
#查看系统中可用和不可用的所有的 DNF 软件库
dnf repolist all
#列出系统中所有 RPM 包
dnf list
#列出所有安装了的 RPM 包
dnf list installed
#搜索软件库中的 RPM 包
dnf search git
#查看软件包详情
dnf info git
#安装软件包
dnf install git
#升级软件包
dnf update git
#检查系统软件包的更新
dnf check-update
#升级所有软件包
dnf update
#删除软件包
dnf remove git
#删除无用孤立的软件包
#用处:当没有软件再依赖它们时,某一些用于解决特定软件依赖的软件包将会变得没有存在的意义,该命令就是用来自动移除这些没用的孤立软件包。
dnf autoremove
#删除缓存的无用软件包
dnf clean all
#获取有关某条命令的使用帮助
dnf help clean
#查看 DNF 命令的执行历史
dnf history

6.进程管理和系统监控:了解 Linux 中的进程管理和系统监控工具,如ps、top、htop 等,用于查看和管理运行的进程、系统资源的使用情况等。

7.网络配置和管理:熟悉 Linux 网络配置和管理,包括网络接口的设置、IP 地址的配置、网络服务的启动和停止等。

8.Shell 脚本编程:掌握 Shell 脚本编程的基础知识,能够编写简单的脚本来实现自动化任务和批处理操作。

2. 命令行界面的基础知识

  1. 命令提示符(Prompt):命令行界面通常显示一个特殊字符作为命令提示符,表示用户可以输入命令

了。常见的提示符包括 “$”、“#” 或用户名等。

  1. 命令和参数:在命令行中,可以输入命令和相关参数来执行各种操作。命令是要执行的动作,而参数则

提供了命令所需的额外信息。命令和参数之间通常使用空格分隔。

  1. 命令的语法:每个命令都有自己的语法规则,包括命令本身和可选或必需的参数。要正确使用命令,需

要熟悉该命令的语法,并按照正确的格式输入命令和参数。

  1. 文件和目录路径:在命令行界面中,文件和目录使用路径表示。绝对路径是从根目录()开始的完整

路径,而相对路径是相对于当前工作目录的路径。

  1. 命令补全:命令行界面通常提供命令补全功能,可以通过按下 Tab 键来自动补全命令或文件名。这可

以帮助减少输入错误和提高效率。

  1. 历史记录:命令行界面会保存执行过的命令的历史记录,我们可以使用向上和向下箭头键浏览历史记

录,并重新执行之前执行过的命令。

  1. 管道和重定向:使用管道符号(|)可以将一个命令的输出作为另一个命令的输入,实现命令之间的数

据传输。重定向符号(>、>>、<)允许将命令的输出重定向到文件或从文件中获取输入。

  1. 帮助文档:大多数命令都提供了帮助文档,可以使用命令后面加上 --help 或者 -h 参数来查看命令的帮

助信息,了解命令的使用方式和可用选项。

3. Kali Linux 的介绍

  • 什么是 Kali Linux

Kali Linux 是一个基于 Debian Linux 操作系统的开源渗透测试和安全评估工具集。它是由 Offensive

Security 团队维护和开发的,其中包含了一系列的渗透测试工具和安全评估工具。Kali Linux 旨在提供一个

完整的渗透测试平台,方便安全专业人员、渗透测试人员、黑客和安全研究人员等使用。

Kali Linux 拥有一个庞大的社区,其中有很多开发者和用户为 Kali Linux 的发展做出了重要的贡献。Kali

Linux 的代码是开源的,用户可以通过 GitHub [ https://github.com/offensive-security/kali-linux-2021.2]

获得完整的源代码和文档。

  • 什么是Offsec

Offensive Security(Offsec)是一个安全培训和咨询公司,致力于提供高质量的渗透测试和安全培训课程。

Offsec 在安全行业拥有广泛的声誉,是渗透测试和信息安全领域的权威之一。

Kali Linux 是 Offensive Security 团队开发和维护的一个基于 Debian 的 Linux 发行版,它主要用于渗透测试

和安全评估。Kali Linux 包含了大量的渗透测试工具和安全评估工具,使得安全专业人员、渗透测试人员、

黑客和安全研究人员等能够方便地进行渗透测试和安全评估工作。

因此,Offensive Security 公司和 Kali Linux 有着密切的关系。Offensive Security 团队维护和开发 Kali

Linux,并在其培训和咨询课程中广泛使用该平台进行演示和实践。同时,Kali Linux 的使用者也可以通过

Offensive Security 公司的培训和咨询课程来获得更深入的知识和技能。

4. Kali Linux 的下载与安装

kali推荐的下载方式有两种,分别为:

  • ISO镜像【Installer Images】

  • 虚拟机镜像【Vitural Machines】

本次课程使用的是虚拟机镜像,下载完后文件名为【kali-linux-2023.1-vmware-amd64.7z】,大小为:

2.72GB,解压后大小为14.3GB

  • 硬件要求(至少>=)

    • 1 GHz x86 processor

    • 1 GB RAM (system memory)

    • 20 GB of hard-drive space

    • CD-DVD drive / USB boot support

5. Kali Linux 的基础知识

登录

  • 用户名:kali

  • 密码:kal

image-20230523151026830

换源

  1. 编辑/etc/apt/sources.list软件源配置文件,命令vi /etc/apt/sources.list(告诉系统从哪里下载软件包)
#开头表示注释,生效的内容为第二行,含义为:
从http.kali.org下载Kali Linux软件包,其中包括main、contrib、non-free和non-free-firmware 组件
因为国内访问http.kali.org网速较慢,故需要将软件包的下载地址修改至国内网站:

具体操作如下:

1.打开终端并输入以下命令以备份原始源列表:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

2.打开源列表文件:
sudo vim /etc/apt/sources.list

3.将以下行完全替换文件内容:
deb http://mirrors.aliyun.com/kali kali-rolling main non-free contrib
deb-src http://mirrors.aliyun.com/kali kali-rolling main non-free contrib
4.保存并关闭文件。

即,将原来的kali官方源注释掉,然后向其中加入源,我这里加的是阿里云源

image-20230523152257789

kali官方源
deb http://http.kali.org/ moto main non-free contrib 
deb-src http://http.kali.org/ moto main non-free contrib
deb http://security.kali.org/ moto/updates main contrib non-free 
deb-src http://security.kali.org/ moto/updates main contrib non-free

中科大kali源

deb http://mirrors.ustc.edu.cn/kali kali main non-free contrib 
deb-src http://mirrors.ustc.edu.cn/kali kali main non-free contrib 
deb http://mirrors.ustc.edu.cn/kali-security kali/updates main contrib non-free
新加坡kali源
deb http://mirror.nus.edu.sg/kali/kali/ kali main non-free contrib 
deb-src http://mirror.nus.edu.sg/kali/kali/ kali main non-free contrib 
deb http://security.kali.org/kali-security kali/updates main contrib non-free 
deb http://mirror.nus.edu.sg/kali/kali-security kali/updates main contrib non-free 
deb-src http://mirror.nus.edu.sg/kali/kali-security kali/updates main contrib non-free
163 Kali源
deb http://mirrors.163.com/debian wheezy main non-free contrib 
deb-src http://mirrors.163.com/debian wheezy main non-free contrib 
deb http://mirrors.163.com/debian wheezy-proposed-updates main non-free contrib 
deb-src http://mirrors.163.com/debian wheezy-proposed-updates main non-free contrib 
deb-src http://mirrors.163.com/debian-security wheezy/updates main non-free contrib 
deb http://mirrors.163.com/debian-security wheezy/updates main non-free contrib 
阿里云kali源
deb http://mirrors.aliyun.com/kali kali-rolling main non-free contrib 
deb-src http://mirrors.aliyun.com/kali kali-rolling main non-free contrib 
中科大
deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib 
deb-src http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
清华大学
deb http://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free 
deb-src https://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free 

注意:其中有些源可能用不了,选择可用的添加即可

使用命令apt-get update更新源

使用命令apt-get upgrade更新软件,输入Y按回车后进行更新,这步可能需要花费较多时间,也可以直接省略掉

然后使用命令apt-get clean清理,再用命令reboot重启虚拟机

image-20230523153915877

查看系统版本(若干命令)

  • 查看内核版本号
uname -r
>> 6.1.0-kali5-amd64
  • 包含操作系统标识数据的文件
cat /etc/os-release
>>
PRETTY_NAME="Kali GNU/Linux Rolling"
NAME="Kali GNU/Linux"
VERSION="2023.1"
VERSION_ID="2023.1"
VERSION_CODENAME="kali-rolling"
ID=kali
ID_LIKE=debian
HOME_URL="https://www.kali.org/"
SUPPORT_URL="https://forums.kali.org/"
BUG_REPORT_URL="https://bugs.kali.org/"
ANSI_COLOR="1;31"
  • 查看 Linux 发行版操作系统的具体版本
lsb_release -a
>>
No LSB modules are available.
Distributor ID: Kali
Description:    Kali GNU/Linux Rolling
Release:        2023.1
Codename:       kali-rolling

image-20230523154544425

  • 显示系统的主机名、操作系统版本和架构,以及其他相关信息
hostnamectl
>>
Static hostname: kali
       Icon name: computer-vm
         Chassis: vm 🖴
      Machine ID: 551962710fa64f83ba27f6f73428c0d9
         Boot ID: eb600149bfa24e4aacfec87fe7ca140e
  Virtualization: vmware
Operating System: Kali GNU/Linux Rolling          
          Kernel: Linux 6.1.0-kali5-amd64
    Architecture: x86-64
 Hardware Vendor: VMware, Inc.
  Hardware Model: VMware Virtual Platform
Firmware Version: 6.00

image-20230523154733666

根据上述输出信息,正在运行 Kali GNU/Linux Rolling 版本,版本号为 2023.1,发行代号为 kali-rolling。这表明正在使用最新版本的 Kali Linux,并且处于滚动更新的状态,意味着系统会持续更新并添加新的功能和补丁。Kali Linux Rolling 是一个持续更新的版本,提供了最新的渗透测试工具和安全评估工具,以确保能够使用最新的技术进行渗透测试和安全研究。

  • 显示当前系统的发行版信息和版本号
cat /etc/issue
>>
Kali GNU/Linux Rolling \n \l

image-20230523154930821

6.Kali Linux 默认的服务

(1)apache2

  • 简介

Apache2 是 Apache HTTP Server 的第二个主要版本,也被称为 Apache 2.x。它是 Apache Software Foundation 开发的一种用于提供 Web 服务的开源软件。

与早期的 Apache 版本相比,Apache2 在性能、安全性和可扩展性方面有了很大的改进。它支持多线处理请求,可以处理大量的并发连接,同时还提供了许多模块和功能来增强服务器的能力。

Apache2 在许多操作系统上都可用,并且被广泛用作 Web 服务器。它的安装和配置相对简单,并且有丰富的文档和社区支持。

使用 Apache2,您可以轻松地托管网站、提供静态和动态内容、支持各种 Web 技术(如 PHP、Python 和 Ruby),以及配置许多其他服务器功能,如虚拟主机、SSL 加密、反向代理等。

总的来说,Apache2 是一种强大而受欢迎的 Web 服务器软件,适用于各种规模的网站和应用程序。

  • 服务启动
service apache2 start
  • 服务状态查看
service apache2 status

apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; disabled; preset: disabled)
Active: active (running) since Thu 2023-06-08 06:08:00 EDT; 7s ago
Docs: https://httpd.apache.org/docs/2.4/
Process: 7536 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
Main PID: 7553 (apache2)
Tasks: 6 (limit: 2261)
Memory: 19.4M
CPU: 91ms
CGroup: /system.slice/apache2.service
├─7553 /usr/sbin/apache2 -k start
├─7555 /usr/sbin/apache2 -k start
├─7556 /usr/sbin/apache2 -k start
├─7557 /usr/sbin/apache2 -k start
├─7558 /usr/sbin/apache2 -k start
└─7559 /usr/sbin/apache2 -k start

6月 08 06:08:00 kali systemd[1]: Starting apache2.service - The Apache HTTP Server…
6月 08 06:08:00 kali apachectl[7552]: AH00558: apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1. Set the ‘ServerName’ directive globally to suppress this message
6月 08 06:08:00 kali systemd[1]: Started apache2.service - The Apache HTTP Server.

image-20230523155522299

按q退出

image-20230608181156445

通过使用主机访问Kali虚拟机IP地址显示如上图所示,即证明服务启动成功。

(2)SSH (Secure Shell)

SSH (Secure Shell) 是一种网络协议和加密技术,用于安全地远程登录到计算机或服务器,并在网络上进行加密的数据通信。

使用 SSH,您可以通过一个安全的通道在本地计算机和远程计算机之间进行加密的通信。这种加密通道可以防止第三方窃听或篡改数据,并提供了身份验证机制以确保连接的安全性。

SSH 是通过客户端和服务器之间的交互实现的。当您使用 SSH 客户端连接到远程服务器时,客户端会与服务器进行身份验证,然后建立一个加密的通信通道。一旦连接建立,您可以在终端中执行命令、传输文件或执行其他操作,就像在本地计算机上一样。

SSH 还支持其他功能,如端口转发和代理设置,这使得它不仅可以用于远程登录,还可以用于安全地访问远程计算机上的应用程序或服务。

SSH 通常使用 TCP/IP 协议,运行在默认的端口 22 上。它是一种广泛使用的安全远程管理工具,被广泛应用于服务器管理、远程维护和安全文件传输等领域。

  • 服务启动
service ssh start
  • 服务状态查看
service ssh status

image-20230523155937534

  • 服务端口查看
netstat -tpan | grep 22
>>
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      10438/sshd: /usr/sb 
tcp        0      0 192.168.18.133:60280    52.222.236.48:443       ESTABLISHED 8875/firefox-esr    
tcp        0      0 192.168.18.133:45228    152.195.38.76:80        TIME_WAIT   -                   
tcp6       0      0 :::22                   :::*                    LISTEN      10438/sshd: /usr/sb                        

image-20230523160043271

“netstat -tpan | grep 22” 命令用于显示活动的网络连接,并通过过滤器只显示与端口22相关的连接,而端口22是SSH默认使用的端口。

这是命令的解释:

  • “netstat” 是一个命令行工具,用于显示活动的网络连接、路由表和各种网络接口的统计信息。

  • “-tpan” 是传递给 netstat 的选项:

  • “-t” 指定显示 TCP 连接。

  • “-p” 显示与连接相关的进程ID和名称。

  • “-a” 显示监听和非监听的套接字/连接。

  • “-n” 确保显示 IP 地址和端口号,而不是将其解析为主机名和服务名。

  • “|” 是管道符号,用于将一个命令的输出重定向到另一个命令。

  • “grep 22” 过滤 netstat 的输出,只显示包含数字 22 的行,这代表端口 22 上的连接(通常是SSH 连接)。

总而言之,“netstat -tpan | grep 22” 命令用于查找和显示与端口 22 相关的活动 TCP 连接,通常表示SSH 连接。

(3)安装vsftpd

  • 安装
sudo apt install vsftpd

image-20230523160238926

  • 配置
sudo vim /etc/vsftpd.conf
  • 使用vim过滤注释信息。

要使用Vim过滤以 # 开头的注释行,可以使用以下步骤:

  1. 打开要编辑的文件:
vim [文件名] 即vim /etc/vsftpd.conf
  1. 进入命令行模式,按下冒号 : 键。

  2. 在命令行中输入以下命令来过滤注释行:

:g/^#/d

这个命令中的 g 表示全局匹配, ^# 表示以 # 开头的行, d 表示删除匹配的行。

  1. 按下回车键执行命令。所有以 # 开头的注释行将被删除。

  2. 若要保存更改并退出Vim编辑器,可以输入 :wq ,然后按下回车键。

现在,您应该看到已经过滤掉以 # 开头的注释行,并且文件中只剩下非注释的内容。请注意,在进行任何修改之前,最好先备份您的文件以防止意外数据丢失

  • 回显非注释内容。

    cat /etc/vsftpd.conf | grep -v "^#"
    

    listen=NO
    listen_ipv6=YES
    anonymous_enable=NO
    local_enable=YES
    dirmessage_enable=YES
    use_localtime=YES
    xferlog_enable=YES
    connect_from_port_20=YES
    secure_chroot_dir=/var/run/vsftpd/empty
    pam_service_name=vsftpd
    rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
    rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
    ssl_enable=NO

image-20230523160544903

  • 配置文件解析:
  • listen=NO : 这表示vsftpd不会监听任何网络接口的IPv4连接,因为该选项设置为"NO"。如果要允许IPv4连接,可以将其设置为"YES"。

  • listen_ipv6=YES : 这表示vsftpd将监听IPv6连接,因为该选项设置为"YES"。这意味着它将接受来自IPv6地址的连接。

  • anonymous_enable=NO : 这意味着匿名访问已禁用,因为该选项设置为"NO"。这将要求用户提供有效的凭据才能进行FTP连接。

  • local_enable=YES : 这表示本地用户访问已启用,因为该选项设置为"YES"。本地用户可以使用其系统凭据进行FTP连接。

  • dirmessage_enable=YES : 这表示启用目录消息功能,因为该选项设置为"YES"。当用户进入目录时,服务器可以发送目录消息。

  • use_localtime=YES : 这意味着服务器将使用本地时间,因为该选项设置为"YES"。在文件传输日志和其他情况下,服务器将使用本地时间而不是UTC时间。

  • xferlog_enable=YES : 这表示启用传输日志,因为该选项设置为"YES"。传输日志记录了文件传输的详细信息,如上传和下载的文件。

  • connect_from_port_20=YES : 这表示启用主动模式的传输,因为该选项设置为"YES"。在主动模式下,服务器使用端口20主动连接客户端的数据端口。

  • secure_chroot_dir=/var/run/vsftpd/empty : 这是一个安全的 chroot 目录,限制了 FTP 用户的访问权限。

  • pam_service_name=vsftpd : 这是与 PAM(Pluggable Authentication Modules)相关的服务名称,用于验证用户身份。

  • rsa_cert_filersa_private_key_file : 这些是使用 SSL/TLS 加密所需的 RSA 证书和私钥的文件路径。当前的配置显示未启用 SSL/TLS ( ssl_enable=NO )。

  • ssl_enable=NO : 这表示未启用 SSL/TLS 加密连接,因为该选项设置为"NO"。如果要启用SSL/TLS 加密,可以将其设置为"YES"。

补充:

修改系统语言为中文

(1)打开终端(root模式)

打开设置

命令:dpkg-reconfigure locales

(2)修改设置

en_US.UTF-8 UTF-8改为不勾选

  • 下面这种有个*属于已经勾选了image-20230523163943745

通过上下箭头按键我们把红点(表示当前选中的选项)移动到en_US.UTF-8 UTF-8,按下空格表示不勾选/勾选

  • 使用空格勾选[ ]zh_CN.GBK_GBK[ ] zh-CN.UTF-8.UTF-8两个选项,这里有部分虚拟机会找不到[ ]zh_CN.GBK_GBK,这两个选项是紧跟着的,找不到就算了,问题不大。(按Enter健)

image-20230523164128809

光标下移,按下enter 表示ok,选择语言zh_CN.UTF-8

image-20230523164241936

image-20230523164442488

  • 重启:终端输入reboot

重启生效

重启后会有个提示,建议你选择保留旧名称,以后路径敲代码敲英文肯定比敲中文方便很多!

image-20230523165015251

现在就是中文啦!

中文输入法安装(以googlepinyin为例,部分kali Linux系统搜狗输入法不支持切换中文)

(1)换源

deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
deb-src http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib

执行命令apt-get update
执行命令apt-get upgrade

因本机前面已做过示范,此处不再展示…

(2)

  • 安装fcitx框架
sudo apt install fcitx

image-20230523161738399

(3)

  • 安装Google输入法(前提是先修改系统语言为中文)
sudo apt install fcitx-googlepinyin

image-20230523161847108

(4)然后使用命令reboot重启虚拟机。

(安装完成后重启,打开终端,按Ctrl+空格键开启中文输入法,ctrl+空格键键切换中英文;
在任何需要输入的地方都使用ctrl+空格键来开启中英文输入法,有时也不一定)

(5)搜索fcitx configuration

image-20230523162307757

image-20230523165201123

  • 选择Google拼音

image-20230523165516995

image-20230523170224118

image-20230523170136510

【至此,kali设置使用中文输入法实验完成啦!】

第二章 Nessus的使用

Nessus是一款广泛使用的网络漏洞扫描器,用于评估计算机系统、网络设备和应用程序的安全性。它由Tenable Network Security开发和维护,可以帮助管理员和安全专业人员发现系统中存在的安全漏洞和弱点。

  1. Nessus可以扫描目标系统,识别潜在的漏洞,并生成报告,以帮助组织了解其网络安全状况。它使用一系列预定义的漏洞检测规则和模式,对目标系统进行全面扫描,并提供漏洞的详细描述、风险评估和建议的修复措施。
  2. Nessus支持扫描各种操作系统、网络设备和应用程序,包括Windows、Linux、UNIX、网络路由器、防火墙和Web应用程序等。它还可以执行漏洞利用尝试,以验证系统的安全性,并识别可能导致系统遭受攻击的弱点。
  3. Nessus是一个功能强大的安全工具,被广泛用于企业和组织中,以帮助他们发现和解决系统中的安全问题,从而提高网络的安全性。
  4. Nessus 是全球部署最广泛的网络安全技术之一,针对现代攻击面而量身打造。每个功能都旨在让漏洞评估简单、轻松且直观。利用 Nessus,只需投入更少的时间和精力即可评估漏洞,并进行优先级分析和修复,始终领先攻击者一步。

1.安装Nessus

image-20230524104033177

点击Register Now(注册)

必须填真实的邮箱,用于接收激活码。

稍等一下,进入到下载页面,下载链接:Download Nessus | Tenable®

image-20230524105642398

选择你要下载的版本和系统

image-20230611111821202

我们选择的是:Nessus-10.5.2-debian10_amd64.deb,用于kali linux

邮箱收到的激活码

image-20230611115912822

  • 开启kali linux虚拟机,将我们下载好的Nessus-10.5.2-debian10_amd64.deb文件拖进来

image-20230611120403484

  • 桌面右键,以root身份打开

image-20230524111033978

  • 右键选择:在这里打开终端

!image-20230611120439115

  • 执行安装命令(kali linux中,复制:Ctrl+Shift+C,粘贴:Ctrl+Shift+V)
dpkq -i +‘安装包名称’
dpkg -i Nessus-10.5.2-debian10_amd64.deb

image-20230524111436410

  • 复制输入下面一段码

!image-20230611120508142

image-20230524115821375

  • 点击这个链接右键:打开链接

image-20230611120605338

  • 进入该页面

image-20230524120257663

翻译如下:

  • 选择继续

image-20230611120707353

  • 选择:Register for Nessus Essentials

image-20230524120907416

image-20230611120735593

  • 注册Nessus网站(注意这里的邮箱使用真实邮箱,用来接收激活码,前提是你没有去官网注册)

image-20230524121751313

我们前面注册、下载Nessus-10.5.2-debian10_amd64.deb时已注册过,不用再注册,可以点击Skip(跳过)

image-20230611120757817

将我们邮箱收到的激活码输入即可

image-20230524122255662

  • 创建一个Nessus账号

用户名:admin

密码:***,点击submit

image-20230611120829364

设置完成后,会开始下载nessus中的插件(插件是国外网站的,如果网络不稳定,将会导致下载失败)

image-20230524122625502

我在这里的安装完成后直接就进入了Nessus,网上有其他人安装需要初始化

image-20230611120920435

我们可以在settings里查看许可证等信息

image-20230524123144706

Nessus正在进行插件的编译和更新。插件是Nessus用于检测和评估系统漏洞的组件。

在编译过程中,一些Nessus的功能可能会受到限制或无法使用,直到编译完成为止。这是因为插件需要更新,以包含最新的漏洞检测和安全测试。

编译的时间取决于插件的数量和您系统的速度。建议在编译过程完成之前等待一段时间,然后再尝试使用Nessus进行扫描或评估。一旦编译完成,Nessus将具备最新的插件并恢复完全功能。

请注意,编译过程是Nessus操作的正常部分,重要的是确保插件定期更新,以保持漏洞扫描的有效性

注:免费版Nessus只可以扫描16个IP

至此,Nessus的安装完成。

kali本地浏览器打开如下任意一个网址:https://127.0.0.1:8834

或IP改成你自己的kali本地IP:https://ip:8834/

或https://localhost:8834/

就可以访问Nessus了

2.漏洞扫描:

新建扫描任务

首先打开终端,启动nessus

命令如下:

/bin/systemctl start nessusd.service

使用命令ifconfig查看kali的IP地址。

在kali Linux中,打开火狐浏览器,输入如下任意一个网址:https://127.0.0.1:8834

或IP改成你自己的kali本地IP:https://ip:8834/或https://localhost:8834/就可以访问Nessus了

image-20230605165542411

输入用户名和密码

进入界面

image-20230605165927678

新建扫描

选择My Scans-------Create a new scan.

点击Advanced Scan ,配置扫描。

image-20230605170824556

配置项目名称,对项目的描述,以及最重要的目标地址。169.254.218.205

如果有目标的登录账号或密码可以在Credentials选项中进行配置,Windows就填Windows,Linux就填Linux。(可省略)

image-20230605171603178

我们可以在Plugins选项中查看使用的插件信息。

配置完成后我们点击save保存。

image-20230605171929686

点击三角号按钮开始扫描,点击本条任务即可查看扫描详细信息。

用鼠标点击On Demand就能看到详细信息。

image-20230605172807317

image-20230605174010588

我们点击"Vulnerables",就能看见我们发现的漏洞。

2.安装WordPress Turnkey Linux

1.打开官网:http://www.turnkeylinux.org

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5Mh11XFF-1686463217659)(https://yanger.com/images/image-20230525144117203.png)]

往下滑,选择WordPress

image-20230525144406704

进入该页面,选择V 16.1版的466MB VM(根据个人情况而定)

页面跳转之后会自动下载turnkey-wordpress-16.1-buster-amd64.ova文件,如果没有自动下载,选择如下:

image-20230525145857501

我这里是浏览器自动下载的

image-20230611121434814

2.打开VMware,导入我们下载好的turnkey-wordpress-16.1-buster-amd64.ova

新建虚拟机名称:turnkey-wordpress,修改存储路径

image-20230525153717784

然后启动此虚拟机,将显示如图所示的界面。

image-20230611121544355

配置

这个界面是为root用户设置一个密码,设置密码必须是8位以上字母、数字组合,还要有大小写。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4JyTrWLf-1686463217661)(https://yanger.com/images/image-20230525154429841.png)]

再次输入设置的密码

image-20230525154654955

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kwJMRrw4-1686463217661)(https://yanger.com/images/image-20230525154923057.png)]

设置MySQL密码

image-20230525155023821

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kZUiA9MG-1686463217662)(https://yanger.com/images/image-20230525155359417.png)]

确认密码

image-20230525155748064

设置WordPress密码

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-selRxSML-1686463217663)(https://yanger.com/images/image-20230525160041314.png)]

image-20230525160115067

确认密码

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nty57ysX-1686463217664)(https://yanger.com/images/image-20230525160158841.png)]

image-20230525160242631

该界面提示为WordPress用户admin设置一个邮箱地址,这里使用默认的admin@example.com。然后点击Apply进行下一步。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QEAPOWNK-1686463217664)(https://yanger.com/images/image-20230525160346518.png)]

这个界面显示初始化Hub服务信息,在这个界面我们选择跳过:点击**“skip”**

image-20230525160522402

选择跳过,点击**“skip”**

image-20230611121643638

接下来会提示是否安装安全更新,点击Install

image-20230525161026180

失败,出现这种情况是因为我们的网络适配器没有配置好,先关机。

image-20230611121720103

image-20230611121740589

更改网络适配器为NAT模式

image-20230611121759908

再次启动虚拟机,如图所示

image-20230525163453474

这个界面很重要,这是你的WordPress应用服务的详细信息,如Web地址、Web shel地址和端口、Webmin地址、PHPMydmin地址和端口等。此时,表明WordPress Turnkey Linux就可以使用了。点击按Enter键进入登录

image-20230525162949605

输入root账户和前面设置的密码完成登录。

image-20230525163711841

4.攻击WordPress应用程序

wpscan在Kali Linux中已经默认安装。它的语法格式如下所示:
wpscan [选项] [测试]
常用的选项如下所示:
--update:更新到最新版本。
--url|-u <target url>:指定扫描WordPress的URL(统一资源定位符)或域名。
--force |-f如果远程站点正运行WordPress,强制WPScan不检查。
--enumerate |-e [option(s)]:计算。
该参数可用的选项有u、u[10-20]、p、vp、ap、tt、t、vt、at。
其中u表示用户名从id1到10;
u[10-20]表示用户名从id10到20([]中的字符必须写);
p表示插件程序;
vp表示仅漏洞插件程序;
ap表示所有插件程序(可能需要一段时间);
tt表示timthumbs;
t表示主题;
vt表示仅漏洞主题;
at表示所有主题(可能需要一段时间)。

【实例3-1】使用WPScan攻击WordPress程序。

  • 开启kali linux虚拟机

image-20230525164948601

  • 打开终端

image-20230525165028312

(1)在Kali Linux下,查看WPScan的帮助信息。

root@localhost:~# wpscan -h

image-20230525165108905

(2)使用WPScan攻击WordPress虚拟机。

root@localhost:~# wpscan -u 192.168.18.135(这是我的turnkey的IP地址)
或wpscan --url http://192.168.18.135 

image-20230525203213570

(3)列出用户名列表。

root@localhost:~# wpscan -u 192.168.18.135 -e u vp
或wpscan --url http://192.168.18.135 -e u vp

image-20230525203447207

(4)为WPScan指定一个wordlist文件,使用–wordlist 选项。

root@localhost:~# wpscan -u 192.168.18.135 -e u --wordlist /root/wordlist.txt 
wpscan --url http://192.168.18.135 -e u --wordlist /root/wordlist.txt

我的不行

image-20230525183631257

补充:WPScan简介

1.WPScan是Kali Linux默认自带的一款漏洞扫描工具, 它采用Ruby编写,能够扫描WordPress网站中的多种安全漏洞,其中包括WordPress本身的漏洞、插件漏洞和主题漏洞。最新版本WPScan的数据库中包含超过18000种插件漏洞和2600种主题漏洞,并且支持最新版本的WordPress。值得注意的是,它不仅能够扫描类似robots. txt这样的敏感文件,而且还能够检测当前已启用的插件和其他功能.

2.常用命令

  1. 查看帮助信息
 wpscan -h

image-20230525212120049

  1. 更新漏洞库

      wpscan --update
    

image-20230525212253775

3.扫描目标站点

wpscan --url http://192.168.18.135

image-20230525212644495

4.对目标网页主题进行扫描

wpscan --url http://192.168.18.135 --enumerate t

image-20230525213242104

发现目标网页主题为 20201

image-20230525213318401

  1. 扫描目标网页使用的主题中存在的漏洞

     wpscan --url http://192.168.18.135 --enumerate vt
    

    image-20230525214054407

没有发现主题漏洞

image-20230525214151688

  1. 扫描目标网页中安装的插件
wpscan --url http://192.168.18.135 --enumerate p

image-20230525214430223

没有发现安装的插件

image-20230525214510944

  1. 扫描安装的插件的漏洞

      wpscan --url http://192.168.18.135 --enumerate vp
    

    image-20230525215048574

没发现有安装的插件,自然也就没插件的漏洞

image-20230525215212527

8.命令集合

  wpscan --url http://192.168.18.135 --enumerate vp,vt,tt,u

image-20230525215537609

第三章 基本网络服务

1. DNS

DNS代表域名系统(Domain Name System),它是互联网中用于将域名转换为相应IP地址的分

布式命名系统。

在互联网上,每个设备(如计算机、服务器、路由器等)都被分配一个唯一的IP地址,用于在网络上进行通信。然而,IP地址是一串数字(如192.168.0.1),不易记忆和识别。为了简化互联网使用体验,域名系统将易于记忆的域名(如www.example.com)映射到对应的IP地址。

DNS的工作方式是通过将域名查询发送到DNS服务器来进行解析。当用户在Web浏览器中输入一个域名时,计算机会首先向本地DNS服务器发出查询请求。如果本地DNS服务器缓存了这个域名的IP地址,它会直接返回该地址。否则,本地DNS服务器将向根DNS服务器发送查询请求,根DNS服务器将指导本地DNS服务器继续查询下一级的DNS服务器,最终找到负责管理该域名的DNS服务器。一旦找到域名对应的IP地址,本地DNS服务器将返回给用户,用户的设备就可以通过这个IP地址与目标服务器建立连接。

除了将域名解析为IP地址,DNS还提供其他功能,如反向解析(将IP地址转换为域名)、邮件服务器查找(将电子邮件域名映射到邮件服务器)等。

总之,DNS是一种重要的互联网基础设施,它允许用户通过易于记忆的域名访问互联网上的各种资源,并在后台负责将域名转换为对应的IP地址。

记录类型描述示例
A将域名映射到IPv4地址example.com IN A 192.0.2.1
AAAA将域名映射到IPv6地址example.com IN AAAA 2001:db8::1
CNAME为域名创建别名www.example.com IN CNAME example.com
MX指定接收域名邮件的邮件服务器example.com IN MX 10 mail.example.com
NS指定域名的授权域名服务器example.com IN NS ns1.example.com
TXT存储与域名关联的任意文本信息example.com IN TXT "Some text information"
SRV指定提供特定服务的服务器_http._tcp.example.com IN SRV 10 0 80 www.example.com
SOA指定管理域名的权威服务器example.com IN SOA ns1.example.com admin.example.com

2. SNMP

简介

SNMP代表简单网络管理协议(Simple Network Management Protocol)。它是一种用于网络设备管理和监控的协议,允许网络管理员远程监视和管理网络设备的性能、状态和配置。

SNMP的主要功能是收集和管理网络设备的信息。它通过网络管理系统(NMS)与网络设备进行通信。SNMP定义了一组标准的管理对象和管理信息库(MIB),这些MIB包含了关于网络设备的各种信息,如设备状态、性能指标、配置参数等。网络设备通过SNMP代理程序实现对这些信息的访问,并通过SNMP协议将这些信息发送给NMS。

SNMP使用客户端-服务器模型进行通信。NMS充当客户端,向网络设备发送SNMP请求(如获取设备信息、修改设备配置等),而网络设备上的SNMP代理程序则充当服务器,接收并响应这些请求。SNMP协议使用UDP作为传输协议,通常使用161端口进行通信。

SNMP定义了一组基本的操作命令,用于管理和监控网络设备。常见的操作命令包括获取 (GET)、设置(SET)、轮询(GETNEXT)、陷阱(TRAP)等。通过这些操作命令,管理员可以获取设备的状态信息、配置参数,对设备进行配置和修改,并接收设备发送的警报和事件通知。

SNMP是一个广泛应用于网络管理的标准协议,它使网络管理员能够远程监视和管理网络设备,实现设备的集中管理、故障排除和性能优化。

环境部署
Windows

先在Windows主机上添加功能,步骤如下:

==步骤1.==右键点击左下角的开始,选择“设置”。

image-20230531153215847

找到并点击“应用”。

image-20230531153351603

左侧栏选择“应用和功能”,右侧栏点击“可选功能”。

image-20230531153428925

点击可选功能下的“添加功能”。

image-20230531153539637

搜索框输入“snmp”,然后勾选“简单网络管理协议 (SNMP)”,最后点击“安装”即可。

image-20230531153831169

image-20230531153716413

步骤2

左下角搜索“服务”,打开

image-20230531165707097

往下滑,找到”SNMP服务

image-20230531165923729

单击SNMP,右键,选择属性

image-20230531170319374

在属性中打开:安全 ,并添加社区”public “ 下方选择 “接受来自任何而主机的SNMP数据包”,之后点确定便可。

image-20230531170700263

OK,Windows主机的设置到此结束

打开kalil inux

使用 Snmpwalk 命令测试 Windows 主机

执行命令如下所示:

IP地址是你自己宿主机的ip地址(win+r,输入cmd,输入命令:ipconfig)

root@kali:~# snmpwalk -c public 169.254.218.205 -v 2c
snmpwalk -v 2c -c public 169.254.218.205

image-20230606120033628

image-20230606120234024

CentOS

要在CentOS上搭建SNMP服务,可以按照以下步骤进行操作:

1.确保CentOS系统已经安装了snmp软件包。

使用以下命令检查是否已安装:

rpm -qa | grep net-snmp

如果没有输出结果,则表示未安装SNMP软件包。可以使用以下命令安装:

sudo vi /etc/snmp/snmpd.conf

2.配置SNMP设置。编辑SNMP的主配置文件 /etc/snmp/snmpd.conf ,可以使用任何文本编辑器打 开:

sudo vi /etc/snmp/snmpd.conf

在文件中,你可以配置SNMP团体字符串、允许的主机访问等设置。根据需求进行相应的修改。

启动SNMP服务。使用以下命令启动SNMP服务:

sudo systemctl start snmpd

我的步骤:

1.使用联网的yum 安装组件

需要安装的大概有一下几个:

yum install -y net-snmp

yum install -y net-snmp-devel

yum install -y net-snmp-libs

yum install -y net-snmp-perl

yum install -y net-snmp-utils

yum install -y mrtg
yum install -y net-snmp

yum install -y net-snmp-devel

image-20230605202555842

yum install -y net-snmp-libs

image-20230605203235788

yum install -y net-snmp-perl

image-20230605203415006

yum install -y net-snmp-utils

image-20230605203508893

yum install -y mrtg

image-20230605203718412

查看是否安装成功!

rpm -qa |grep snmp

image-20230605203838422

2.启动SNMP

输入 service snmpd start 并用 service snmpd status 查看服务状态。

image-20230606140814804

3.配置SNMP

命令如下:

vi /etc/snmp/snmpd.conf

配置snmpd.conf文件需要更改四个地方(默认配置基础上):

(1)配置snmp团体名(默认是public): com2sec notConfigUser default public 建议更改public为您使用的团体名称(也可以不修改)

image-20230606142208426

添加内容:

允许本机访问用于测试 社区名称为 public

com2sec notConfigUser default public修改为:com2sec notConfigUser 127.0.0.1 public

允许ip为192.168.18.133的管理主机访问 社区名称为 public(192.168.18.133为kali Linux的ip地址

com2sec notConfigUser 192.168.18.133 public

image-20230606143231252

(2)将access notConfigGroup "" any noauth exact systemview none none更改为access notConfigGroup "" any noauth exact all none none

image-20230606143828594

image-20230606143729883

(3)将如下两行前面的注释去掉

# view all included .1 80

# view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc

image-20230606144232113

(4)将下面俩行前面的注释去掉

# access MyROGroup "" any noauth 0 all none none

# access MyRWGroup "" any noauth 0 all all all

image-20230606144545006

配置文件修改完后,保存。

image-20230606145057070

4.重启服务

命令如下:

systemctl start snmpd.service  #启动SNMP服务
systemctl enable snmpd.service  #开机启动SNMP服务

查看服务状态:

service snmpd status
>>
Redirecting to /bin/systemctl status snmpd.service
● snmpd.service - Simple Network Management Protocol (SNMP) Daemon.
   Loaded: loaded (/usr/lib/systemd/system/snmpd.service; enabled; vendor preset: disabled)
   Active: active (running) since 四 2023-06-08 17:55:45 CST; 31min ago
 Main PID: 1171 (snmpd)
    Tasks: 1
   CGroup: /system.slice/snmpd.service
           └─1171 /usr/sbin/snmpd -LS0-6d -f
6月 08 17:55:44 defense snmpd[1171]: /etc/snmp/snmpd.conf: line 77: Error:...ed
6月 08 17:55:44 defense snmpd[1171]: /etc/snmp/snmpd.conf: line 80: Error:...ay
6月 08 17:55:44 defense snmpd[1171]: /etc/snmp/snmpd.conf: line 81: Error:...ay
6月 08 17:55:44 defense snmpd[1171]: /etc/snmp/snmpd.conf: line 95: Error:...ay
6月 08 17:55:44 defense snmpd[1171]: /etc/snmp/snmpd.conf: line 96: Error:...ay
6月 08 17:55:44 defense snmpd[1171]: /etc/snmp/snmpd.conf: line 129: Error...id
6月 08 17:55:45 defense snmpd[1171]: /etc/snmp/snmpd.conf: line 130: Error...id
6月 08 17:55:45 defense snmpd[1171]: net-snmp: 8 error(s) in config file(s)
6月 08 17:55:45 defense snmpd[1171]: NET-SNMP version 5.7.2
6月 08 17:55:45 defense systemd[1]: Started Simple Network Management Prot.....
Hint: Some lines were ellipsized, use -l to show in full.

image-20230606150016588

5.验证

可以使用一个简单命令判断snmp服务是否已经成功启动:

netstat -ln | grep 161
>>
udp        0      0 0.0.0.0:161             0.0.0.0:* 

image-20230606150259808

6.设置防火墙

命令如下:

  • 关闭防火墙
systemctl stop firewalld.service
  • 禁止firewall开机启动
systemctl disable firewalld.service
>>
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
  • 查看默认防火墙状态
firewall-cmd --state
>>
not running

image-20230606150826519

6.测试

使用SNMP v2c版本,使用公共的SNMP团体字符串(示例中为"public")来获取本地主机的SNMP信息。

打开kali Linux

在终端输入如下命令:

snmpwalk -v 2c -c public 192.168.18.142

image-20230606151232901

看到了一些关于系统和网络的SNMP数据输出。

至此,你已经成功搭建了SNMP服务并进行了基本配置。你可以根据具体需求进一步定制SNMP设置,如

添加更多的SNMP团体字符串、配置SNMP Trap等。

请注意,安装和配置SNMP服务涉及到系统安全性和访问控制,建议仔细评估安全需求,并采取适当的安

全措施来保护系统免受潜在的安全风险。

7.关闭snmp服务:

systemctl stop snmpd 停止服务
systemctl disable snmpd 关闭服务

用途

随着网络技术的飞速发展,在网络不断普及的同时也给网络管理带来了一些问题:

  • 网络设备数量成几何级数增加,使得网络管理员对设备的管理变得越来越困难;同时,网络作为一个复杂的分布式系统,其覆盖地域不断扩大,也使得对这些设备进行实时监控和故障排查变得极为困难。
  • 网络设备种类多种多样,不同设备厂商提供的管理接口(如命令行接口)各不相同,这使得网络管理变得愈发复杂。

在这种背景下,SNMP应运而生,SNMP是广泛应用于TCP/IP网络的网络管理标准协议,该协议能够支持网络管理系统,用以监测连接到网络上的设备是否有任何引起管理上关注的情况。通过“利用网络管理网络”的方式:

  • 网络管理员可以利用SNMP平台在网络上的任意节点完成信息查询、信息修改和故障排查等工作,工作效率得以提高。
  • 屏蔽了设备间的物理差异,SNMP仅提供最基本的功能集,使得管理任务与被管理设备的物理特性、网络类型相互独立,因而可以实现对不同设备的统一管理,管理成本低。
  • 设计简单、运行代价低,SNMP采用“尽可能简单”的设计思想,其在设备上添加的软件/硬件、报文的种类和报文的格式都力求简单,因而运行SNMP给设备造成的影响和代价都被最小化。

Windows 10中不默认安装SNMP服务的主要原因是出于安全考虑。

SNMP服务本身是一个强大的管理工具,可以提供远程访问和管理网络设备的能力。然而,它也存在一些安全风险。开放SNMP服务可能导致未经授权的访问和潜在的安全漏洞。攻击者可以利用SNMP协议中的弱点来获取敏感信息、修改设备配置或进行其他恶意活动。

在 Windows 10 1803 及更高版本(1809、1903、1909、2004)中,SNMP 服务被视为已弃用,并且未列在控制面板列表的 Windows 功能中。

由于与此协议相关的安全风险,Microsoft 计划在下一个 Windows 版本中完全删除 SNMP 服务。建议使用 Windows 远程管理支持的公共信息模型 (CIM),而不是 SNMP。在 Windows 10 的当前版本中,SNMP 服务是隐藏的。

指令

操作类型描述备注
GetGet操作可以从Agent中提取一个或多个参数值。
GetNextGetNext操作可以从Agent中按照字典序提取下一个参数值。
SetSet操作可以设置Agent的一个或多个参数值。
ResponseResponse操作可以返回一个或多个参数值。这个操作是由Agent发出的,它是GetRequest、GetNextRequest、SetRequest和GetBulkRequest四种操作的响应操作。Agent接收到来自NMS的Get/Set指令后,通过MIB完成相应的查询/修改操作,然后利用Response操作将信息回应给NMS。
TrapTrap信息是Agent主动向NMS发出的信息,告知管理进程设备端出现的情况。
GetBulkGetBulk操作实现了NMS对被管理设备的信息群查询。SNMPv1版本不支持GetBulk操作
InformInformRequest也是被管理设备向NMS主动发送告警。与Trap告警不同的是,被管理设备发送Inform告警后,需要NMS回复InformResponse来进行确认。SNMPv1版本不支持Inform操作

3. SMTP

简介

SMTP代表简单邮件传输协议(Simple Mail Transfer Protocol)。它是一种用于电子邮件传输的标准协议,用于发送和接收电子邮件。SMTP协议定义了电子邮件在网络上的传输方式和交换格式。

SMTP协议的工作原理是通过建立一个与电子邮件服务器之间的连接来传输电子邮件。发送方使用SMTP客户端将电子邮件发送到电子邮件服务器,然后电子邮件服务器将电子邮件转发给接收方的电子邮件服务器。接收方使用POP3(邮局协议3)或IMA(Internet邮件访问协议)从自己的邮件服务器上接收电子邮件。

SMTP协议使用TCP/IP网络进行通信,默认使用25端口。它定义了一系列命令和响应规则,用于建立连接、验证身份、传输邮件和处理错误。SMTP协议还支持传输附件、多个收件人和抄送、主题和正文等邮件元数据。

需要注意的是,SMTP协议只负责电子邮件的传输,而不负责电子邮件的格式、安全性或存储。这

些方面由其他协议和技术(如MIME和SSL/TLS)负责处理。

环境部署
Windows

在SMTP服务上启动用户的SMTP枚举。

  • 安装smtp-user-enum (需在root模式下)

    命令如下:

     sudo apt install smtp-user-enum
    

    image-20230531174212083

  • 测试

    smtp-user-enum -M VRFY -u root -t 169.254.218.205
    smtp-user-enum -M VRFY -u root -t 192.168.18.142
    

    image-20230606155231022

image-20230610183827718

CentOS

如果你想在CentOS上搭建SMTP服务器来发送电子邮件,你可以按照以下步骤进行操作:

  1. 安装和配置邮件传输代理(MTA)。在CentOS上,常用的MTA软件是Postfix。使用以下命令安装 Postfix:
sudo yum install postfix
  1. 配置Postfix。编辑Postfix的主配置文件 /etc/postfix/main.cf ,可以使用任何文本编辑器打 开:
sudo vi /etc/postfix/main.cf

根据你的需求,可以修改以下配置参数:

img myhostname:设置你的主机名或域名。

img mydomain:设置你的域名。

img myorigin:设置邮件的发件人域名。

img mydestination:设置邮件的目标域名。

img mynetworks:设置允许使用SMTP服务的网络段。

保存并关闭文件。

  1. 启动Postfix服务。使用以下命令启动Postfix服务:
sudo systemctl start postfix

也可以设置开机自启动:

udo systemctl enable postfix
  1. 验证SMTP服务器是否正常工作。你可以使用命令行工具(如 telnet )来测试SMTP服务器的连通 性。以下是一个示例命令:
telnet localhost 25

这将连接到本地主机的25端口(SMTP端口)。你可以执行SMTP命令(如 HELOMAIL FROMRCPT TO )来模拟发送邮件的过程。

如果一切正常,你已经成功搭建了SMTP服务器。你可以在你的应用程序或邮件客户端中配置SMTP设 置,以使用你的SMTP服务器来发送电子邮件。

请注意,配置SMTP服务器涉及到邮件传输和网络安全性,建议仔细评估安全需求,并采取适当的安全措 施来保护服务器免受潜在的垃圾邮件或滥用行为。此外,为了提高邮件送达率,还需要进行适当的反垃圾邮件配置和域名验证设置。

我的步骤:

  1. 安装Postfix
 yum -y install postfix
  • 启动postfix服务
systemctl start postfix
  • 设置开机自启动
systemctl enable postfix
  • 查看服务是否启动成功
netstat -tnlp | grep :25

image-20230610161450082

  1. 更改主机名

CentOs主机默认名为localhost.localdomain,此处将其更改为test.com,具体操作为:

第一步: 修改/etc/sysconfig/network文件

添加或修改: NETWORKING=yes HOSTNAME=test.com

打开终端:

进入cd /etc/sysconfig文件夹

查看当前文件

image-20230610162304232

修改network 配置文件

vi network 

添加或修改:

NETWORKING=yes 
HOSTNAME=test.com

image-20230610162740535

第二步:修改/etc/hosts文件,添加节点映射

vi /etc/hosts
127.0.0.1 localhost test.com
:1 localhost test.com

image-20230610163312077

第三步 :修改/etc/hostname文件,删除文件中的所有文字,在第一行添加test.com

vi /etc/hostname

image-20230610163758697

第四步: 重启并验证

reboot -f  (强制重启)

重启之后,在终端输入hostname命令进行查看

修改成功

image-20230610164225003

3、配置Postfix

通过修改主配置文件/etc/postfix/main.cf可更改Postfix 的主要配置,按照下列内容对Postfix的主配置文件进行更改。

vi /etc/postfix/main.cf
myhostname=mail.test.com
mydomain=test.com
myorigin=$mydomain
mydestination = $myhostname, localhost.$mydomain, localhost,$mydomaininet 
interfaces = all
home_mailbox = Maildir/

image-20230610165918901

image-20230610170150675

image-20230610170604516

image-20230610170944656

4、使用Postfix发送信件

yum -y install telnet
telnet 0 25
helo mail.test.com   //向服务器表明身份
mail from:chan@test.com  //设置寄件人
rcpt to:test@test.com  //设置收件人
data     //编辑文本内容
Quit    //退出
  • 安装远程客户端
yum -y install telnet

image-20230610171817116

  • 登录客户端
telnet 0 25

image-20230610172320255

  • 常见的响应码与其含义如表所示:
响应码说明
220服务器就绪
250要求的邮箱操作完成
354开始邮件输入,以“ , ”结束
450要求的邮件操作未完成,邮箱不可用
452系统存储不足,要求的操作未执行
454临时认证失败,可能账号被临时冻结
550要求的邮件操作未完成,邮箱不可用
  • SMTP的基础命令的具体用法与其他常用SMTP命令如表所示:
命令说明
helo/ehlo 客户端主机名向服务器表明自己的身份
mail from:发件人邮箱设置发件人身份
rcpt to:收件人邮箱设置收件人邮箱地址,若需将邮件发送给多人,可重复使用此命令,设置多个收件地址
data使用此命令,开始输入邮件正文,以.结束正文输入
vrfy邮箱地址验证指定邮箱是否存在,考虑到安全问题,此命令一般被禁用
noop空操作,要求服务器返回OK应答,一般用作测试
rset重置会话,取消当前传输
  • 向服务器表明自己的身份
helo mail.test.com    按Enter键

image-20230610175100915

  • 设置发件人身份
mail from:yanger@test.com       按Enter键

image-20230610175517201

  • 设置收件人邮箱地址
rcpt to:3525300989@qq.com          按Enter键
  • 使用data命令,开始输入邮件正文
Dear Yang, how are you doing recently? Recently I often think of our sweet time together, do you still remember me? No matter what the future holds, please remember that you will always be my best friend. Looking forward to your reply.

按"回车键.回车键",输入"quit",退出。

截图如下:

image-20230610181341643

QQ邮箱收到的信息:

image-20230610181502311

如果您的邮件服务器被防火墙保护,请先打开TCP端口25。测试完成后,您应该可以在收件人的收件箱中看到测试邮件。

4. TCP/UDP

TCPUDP
连接面向连接无连接
可靠性可靠传输,提供错误检测和重传机制不可靠传输,不提供错误检测和重传机制
有序性提供数据包按顺序交付的保证不保证数据包按顺序交付
首部开销首部较大(至少20字节),带有序列号、确认号等控制信息首部较小(至少8字节节),仅包含源端口、目标端口等基本信息
传输效率传输效率较低,由于连接管理、重传等机制的开销传输效率较高,不需要连接管理和重传机制
适用场景适用于可靠性要求较高的应用,如文件传输、网页浏览、电子邮件等适用于实时性要求较高、数据包丢失可容忍的应用,如音频/视频流传输、DNS查询等
示例协议HTTP、FTP、SMTP、SSH等DNS、DHCP、TFTP、SNMP等

这个表格简要比较了TCP和UDP在连接、可靠性、有序性、首部开销、传输效率和适用场景等方面的差异。请注意,每种协议都有自己的优点和适用场景,具体使用取决于应用需求和设计考虑。

第四章 Kali Linux信息收集

1.Kali Linux信息收集

(1)DNSenum

  • 版本号:1.2.6
  • 描述:

DNSenum是一个用于枚举目标域名系统(DNS)的工具。DNS枚举是指通过查询目标域名的DNS服务器,收集与该域名相关的信息的过程。DNSenum的目标是通过自动化地查询域名服务器,收集尽可能多的关于目标域名的信息,这些信息可以用于渗透测试、漏洞评估和网络侦察等任务。

DNSenum的功能包括:

  1. 域名解析:DNSenum可以查询域名的各种DNS记录,如A记录(主机IP地址)、CNAME记录(别名)、MX记录(邮件服务器)、NS记录(域名服务器)等。

  2. 子域名收集:它可以通过暴力破解或字典攻击的方式,尝试找到目标域名的子域名。

  3. 主机扫描:DNSenum可以对目标域名的IP地址范围进行扫描,以发现主机的开放端口和服务。

  4. DNS区域传输:它可以尝试获取目标域名的DNS区域传输记录,这可能会暴露域名服务器上的敏感信息。

  5. Whois查询:DNSenum可以查询目标域名的Whois信息,包括域名所有者、注册商、注册日期等。

DNSenum是一个强大的工具,但需要注意,在进行任何DNS枚举活动之前,请确保遵守法律和道德规范,并获得适当的授权,以避免违法行为或侵犯他人的隐私。

  • 用法usage:
dnsenum [options] target
选项描述
--dnsserver <server>使用指定的DNS服务器进行A、NS和MX查询
--enum快捷选项,相当于 --threads 5 -s 15 -w
-h, --help打印帮助信息
--noreverse跳过反向查找操作
--nocolor禁用ANSIColor输出
--private在文件 domain_ips.txt 的末尾显示并保存私有IP地址
--subfile <file>将所有有效的子域名写入指定的文件中
-t, --timeout<value>TCP和UDP的超时时间,单位为秒(默认为10秒)
--threads <value>执行不同查询的线程数
-v, --verbose冗长模式:显示所有进展和错误消息
-p, --pages <value>谷歌搜索页面的数量(用于抓取名称),默认为5页,必须指定 -s参数
-s, --scrap <value>从谷歌最多抓取的子域名数量(默认为15个)
-f, --file <file>从指定文件中读取子域名进行暴力破解(优先级高于默认的dns.txt )
`-u, --update<ag
-d, --delay <value>在whois查询之间等待的最大秒数,值为随机定义,默认为3秒
-w, --whois在C类网络范围上执行whois查询
-e, --exclude<regexp>从反向查找结果中排除与正则表达式匹配的PTR记录,适用于无效的主机名
-o, --output <file>以XML格式输出结果,可导入到MagicTree中
  • 用例
  1. 查询目标域名的基本信息:
dnsenum ynkg.com

dnsenum VERSION:1.2.6

----- ynkg.com -----

Host’s addresses:


ynkg.com. 5 IN A 221.213.63.52

Name Servers:


ce2.xincache.com. 5 IN A 120.241.130.98
ce2.xincache.com. 5 IN A 117.89.178.184
ce2.xincache.com. 5 IN A 1.12.0.1
ce2.xincache.com. 5 IN A 223.166.151.21
ce2.xincache.com. 5 IN A 129.211.176.224
ce1.xincache.com. 5 IN A 112.80.181.45
ce1.xincache.com. 5 IN A 129.211.176.187
ce1.xincache.com. 5 IN A 183.47.126.178
ce1.xincache.com. 5 IN A 183.192.164.117
ce1.xincache.com. 5 IN A 1.12.0.4
ce1.xincache.com. 5 IN A 61.151.180.52

Mail (MX) Servers:


mail.ynkg.com. 5 IN A 221.213.63.8

尝试执行DNS区域传输以获取ynkg.com域名的详细信息和BIND版本信息

Trying Zone Transfers and getting Bind Versions:


Trying Zone Transfer for ynkg.com on ce2.xincache.com …
AXFR record query failed: corrupt packet

Trying Zone Transfer for ynkg.com on ce1.xincache.com …
AXFR record query failed: corrupt packet

使用字典文件进行强力破解(暴力破解)操作,尝试找到ynkg.com域名的子域名

Brute forcing with /usr/share/dnsenum/dns.txt:


dev.ynkg.com. 5 IN A 221.213.63.3 mail.ynkg.com. 5 IN A 221.213.63.8
pan.ynkg.com. 5 IN A 221.213.63.42
smtp.ynkg.com. 5 IN A 61.138.197.203
www.ynkg.com. 5 IN A 221.213.63.52

ynkg.com class C netranges:


61.138.197.0/24 221.213.63.0/24

Performing reverse lookup on 512 ip addresses:


0 results out of 512 IP addresses.

ynkg.com ip blocks:


done.

image-20230608190018310

  1. 使用自定义端口查询目标域名:
dnsenum -p 5353 yangeryu.com.cn

dnsenum VERSION:1.2.6

----- yangeryu.com.cn -----

Host’s addresses:


yangeryu.com.cn. 5 IN A 118.193.46.232

Name Servers:


cormorant.dnspod.net. 5 IN A 117.89.178.184
cormorant.dnspod.net. 5 IN A 112.80.181.111
cormorant.dnspod.net. 5 IN A 1.12.0.1
cormorant.dnspod.net. 5 IN A 36.155.149.176
cormorant.dnspod.net. 5 IN A 129.211.176.224
cow.dnspod.net. 5 IN A 129.211.176.187
cow.dnspod.net. 5 IN A 1.12.0.4
cow.dnspod.net. 5 IN A 112.80.181.45
cow.dnspod.net. 5 IN A 61.151.180.44
cow.dnspod.net. 5 IN A 120.241.130.98

Mail (MX) Servers:


Trying Zone Transfers and getting Bind Versions:


Trying Zone Transfer for yangeryu.com.cn on cormorant.dnspod.net …
AXFR record query failed: corrupt packet

Trying Zone Transfer for yangeryu.com.cn on cow.dnspod.net …
AXFR record query failed: corrupt packet

Brute forcing with /usr/share/dnsenum/dns.txt:


www.yangeryu.com.cn. 5 IN A 118.193.46.232

yangeryu.com.cn class C netranges:


118.193.46.0/24

Performing reverse lookup on 256 ip addresses:


0 results out of 256 IP addresses.

yangeryu.com.cn ip blocks:


done.

image-20230608191057905

  1. 使用字典文件进行子域名收集
dnsenum -f subdomains.txt ynkg.com

dnsenum -f subdomains.txt ynkg.com
dnsenum VERSION:1.2.6

----- ynkg.com ----- Host’s addresses:


ynkg.com. 5 IN A 221.213.63.52

Name Servers:


ce1.xincache.com. 5 IN A 183.47.126.178 ce1.xincache.com. 5 IN A 183.192.164.117
ce1.xincache.com. 5 IN A 1.12.0.4
ce1.xincache.com. 5 IN A 61.151.180.52
ce1.xincache.com. 5 IN A 112.80.181.45
ce1.xincache.com. 5 IN A 129.211.176.187
ce2.xincache.com. 5 IN A 117.89.178.184
ce2.xincache.com. 5 IN A 1.12.0.1
ce2.xincache.com. 5 IN A 223.166.151.21
ce2.xincache.com. 5 IN A 129.211.176.224
ce2.xincache.com. 5 IN A 120.241.130.98

Mail (MX) Servers:


mail.ynkg.com. 5 IN A 221.213.63.8

Trying Zone Transfers and getting Bind Versions:


Trying Zone Transfer for ynkg.com on ce1.xincache.com …
AXFR record query failed: corrupt packet

Trying Zone Transfer for ynkg.com on ce2.xincache.com …
AXFR record query failed: corrupt packet

Brute forcing with subdomains.txt:


Error: make sure that the file subdomains.txt exists and has a size greater than zero.

image-20230608192526247

在执行 dnsenum -f subdomains.txt example.com 命令时,DNSenum将使用 subdomains.txt 文件中的子域名选项对 example.com 域名进行枚举,以发现可能存在的子域名。

www mail ftp admin test blog shop api dev support forum

  1. 查询目标域名的特定记录类型:
dnsenum -r records.txt yangeryu.com.cn

dnsenum VERSION:1.2.6

----- records.txt -----

Host’s addresses:


Name Servers:


records.txt NS record query failed: NXDOMAIN

image-20230608191550680

记录类型描述示例
A将域名映射到IPv4地址example.com IN A 192.0.2.1
AAAA将域名映射到IPv6地址example.com IN AAAA 2001:db8::1
CNAME为域名创建别名www.example.com IN CNAME example.com
MX指定接收域名邮件的邮件服务器example.com IN MX 10 mail.example.com
NS指定域名的授权域名服务器example.com IN NS ns1.example.com
TXT存储与域名关联的任意文本信息example.com IN TXT "Some text information"
SRV指定提供特定服务的服务器_http._tcp.example.com IN SRV 10 0 80 www.example.com
SOA指定管理域名的权威服务器example.com IN SOA ns1.example.com admin.example.com

(2)fierce

选项描述
-h, --help显示帮助信息并退出
--domain DOMAIN要测试的域名
--connect尝试与非 RFC 1918 主机建立 HTTP 连接
--wide扫描所有发现记录的整个 C 类网段
--traverse TRAVERSE扫描靠近发现记录的 IP,但不进入相邻的 C 类网段
--search SEARCH [SEARCH ...]在扩展查找时筛选这些域名
--range RANGE扫描内部 IP 范围,使用 CIDR 表示法
--delay DELAY查询之间等待的时间
--subdomains SUBDOMAINS [SUBDOMAINS ...]使用这些子域名
--subdomain-file SUBDOMAIN_FILE使用指定文件中指定的子域名(每行一个)
--dns-servers DNS_SERVERS [DNS_SERVERS ...]用于反向查找的 DNS 服务器
--dns-file DNS_FILE使用指定文件中指定的 DNS 服务器进行反向查找 (每行一个)
--tcp使用 TCP 而不是 UDP
  1. 发现目标域名的子域名:通过指定域名来运行 fierce ,它将查找目标域名的子域名并列出它们。 例如: fierce --domain example.com
fierce --domain ynkg.com
>>
NS: ce2.xincache.com. ce1.xincache.com.
SOA: ce1.xincache.com. (183.192.164.117)
Zone: failure
Wildcard: failure
Found: app.ynkg.com. (221.213.63.36)
Found: bi.ynkg.com. (119.62.0.61)
Found: dev.ynkg.com. (221.213.63.3)
Found: m.ynkg.com. (119.62.0.22)
Found: mail.ynkg.com. (221.213.63.8)
Found: pop3.ynkg.com. (61.138.197.203)
  1. 扩大子域名范围:使用 --wide 选项可以扫描整个Class C的IP地址空间,以便更全面地发现与目标 域名相关的子域名。例如: fierce --domain example.com --wide
fierce --domain ynkg.com --wide
>>
NS: ce2.xincache.com. ce1.xincache.com.
SOA: ce1.xincache.com. (1.12.0.4)
Zone: failure
Wildcard: failure
Found: app.ynkg.com. (221.213.63.36)
Found: bi.ynkg.com. (119.62.0.61)
Found: dev.ynkg.com. (221.213.63.3)
Found: m.ynkg.com. (119.62.0.22)
Found: mail.ynkg.com. (221.213.63.8)
Found: pop3.ynkg.com. (61.138.197.203)
  1. 使用自定义子域名列表:如果你有一个自定义的子域名列表,可以将其保存在文件中,然后使用 -- subdomain-file 选项指定该文件进行扫描。例如: fierce --domain example.com -- subdomain-file subdomains.txt

    fierce --domain yynkg.com -- subdomain-file subdomains.txt
    
  2. 指定自定义DNS服务器:使用 --dns-servers 选项可以指定用于反向查找的自定义DNS服务器。 例如: fierce --domain example.com --dns-servers 8.8.8.8 8.8.4.4

fierce --domain ynkg.com --dns-servers 8.8.8.8 8.8.4.4
>>
S: ce2.xincache.com. ce1.xincache.com.
SOA: ce1.xincache.com. (183.192.164.117)
Zone: failure
Wildcard: failure
Found: app.ynkg.com. (221.213.63.36)
Found: bi.ynkg.com. (119.62.0.61)
Found: dev.ynkg.com. (221.213.63.3)
Found: m.ynkg.com. (119.62.0.22)
Found: mail.ynkg.com. (221.213.63.8)
Found: pop3.ynkg.com. (61.138.197.203)
  1. 扫描内部IP范围:如果你想扫描内部IP范围,可以使用 --range 选项指定CIDR表示法的范围。例 如: fierce --range 192.168.0.0/24
fierce --range 121.213.63.0/24

image-20230608200010365

CIDR (Classless Inter-Domain Routing) 是一种IP地址分配和路由的标准方法。它替代了传统的IP 地址分配方法,即基于类别的网络划分(Classful Networking),并引入了更加灵活和高效的地 址分配方案。

在CIDR中,IP地址由两部分组成:网络前缀和主机标识。网络前缀表示了一个IP地址所属的网络, 而主机标识标识了该网络中的具体主机。CIDR采用了"IP地址/前缀长度"的表示方式,其中前缀长 度表示了网络前缀中连续的位数。

CIDR中的前缀长度可以是介于0到32之间的整数。较小的前缀长度表示较大的网络,而较大的前缀 长度表示较小的网络。例如,前缀长度为24的CIDR表示一个包含256个IP地址的网络,而前缀长度 为16的CIDR表示一个包含65536个IP地址的网络。

CIDR的使用使得IP地址的分配更加灵活和高效。它允许网络管理员更精细地划分IP地址空间,避免 了浪费和不必要的地址空间分配。此外,CIDR还简化了路由表的管理,提高了路由器的性能和路 由器之间的路由选择。

以下是一些CIDR表示的示例:

  • 192.168.0.0/24 :表示以192.168.0.0作为网络前缀,前缀长度为24,即包含256个IP地址 的网络。
  • 10.0.0.0/16 :表示以10.0.0.0作为网络前缀,前缀长度为16,即包含65536个IP地址的网 络。
  • 172.16.0.0/12 :表示以172.16.0.0作为网络前缀,前缀长度为12,即包含1048576个IP地 址的网络。

使用CIDR表示法可以更清晰地描述和理解IP地址分配和路由。它在互联网中广泛应用于网络规划、 路由配置和安全策略等方面

(3)snmpwalk

选项参数描述
h, --help显示帮助信息
-H显示理解的配置文件指令
-v1 |2c| 3指定要使用的SNMP版本
-V, --version显示软件包版本号
-cCOMMUNITY设置社区字符串(仅适用于SNMP版本1或2c)
-aPROTOCOL设置认证协议(MD5
-APASSPHRASE设置认证协议的密码短语(仅适用于SNMP版本3)
-eENGINE-ID设置安全引擎ID(例如800000020109840301)(仅适用于SNMP版本3)
-EENGINE-ID设置上下文引擎ID(例如800000020109840301)(仅适用于SNMP版本3)
-lLEVEL设置安全级别(noAuthNoPriv|authNoPriv|authPriv)(仅适用于SNMP版本 3 )
-nCONTEXT设置上下文名称(例如bridge1)(仅适用于SNMP版本 3 )
-uUSER-NAME设置安全名称(例如bert)(仅适用于SNMP版本 3 )
-xPROTOCOL设置加密协议(DES|AES|AES-192|AES-256)(仅适用于SNMP版本 3 )
-XPASSPHRASE设置加密协议的密码短语(仅适用于SNMP版本 3 )
-ZBOOTS,TIME设置目标引擎启动次数/时间(仅适用于SNMP版本 3 )
-rRETRIES设置重试次数
-tTIMEOUT设置请求超时时间(以秒为单位)
-d以十六进制格式显示输入/输出数据包
-D[TOKEN[,…]]打开指定TOKEN的调试输出(使用"ALL"可以获得非常详细的调试输出)
-mMIB[:…]加载给定的MIB文件(使用"ALL"加载所有MIB文件)
-MDIR[:…]在给定的目录中查找MIB文件(默认为$HOME/.snmp/mibs:/usr/share/snmp/mibs:/usr/share/snmp/mibs/iana:/usr/share/snmp/mibs/ietf)
-PMIBOPTS切换控制MIB解析的各种默认值
u:允许在MIB符号中使用下划线
c:不允许使用"–"来终止注释
d:保存MIB对象的描述
e:禁用MIB符号冲突时的错误
w:在MIB符号冲突时启用警告
W:在MIB符号冲突时启用详细警告
R:用最新模块替换MIB符号
-OOUTOPTS切换控制输出显示的各种默认值:
0:对于单个十六进制字符,打印前导0
a:以ASCII格式打印所有字符串
b:不将OID索引分解
e:以数字方式打印枚举值
E:在字符串索引中转义引号
f:在输出中打印完整OID
n:以数字方式打印OID
p PRECISION:使用指定的PRECISION(printf格式字符串)显示浮点数值
q:快速打印以便更容易解析
Q:快速打印使用等号
s:仅打印OID的最后一个符号元素
S:打印MIB模块ID和最后一个元素
t:以未解析的数字整数形式打印时间戳
T:打印人类可读的文本和十六进制字符串
u:使用UCD样式前缀抑制打印OID
U:不打印单位
v:仅打印值(不包括OID = 值)
x:以十六进制格式打印所有字符串
X:扩展索引格式
-IINOPTS切换控制输入解析的各种默认值:
b:使用最佳/正则表达式匹配来查找MIB节点
h:不应用DISPLAY-HINTs
r:不检查值的范围/类型合法性
R:随机访问OID标签
u:顶级OID必须以’.'前缀(UCD样式)
s SUFFIX:在解析之前将所有文本OID附加SUFFIX
S PREFIX:在解析之前将所有文本OID添加PREFIX
-LLOGOPTS切换控制日志记录的各种默认值:
e:记录到标准错误输出
o:记录到标准输出
n:不记录日志
f file:记录到指定的文件
s facility:记录到syslog(通过指定的facility)
(变体)
[EON] pri:对于级别’pri’及以上,记录到标准错误输出、输出或/dev/null
[EON] p1-p2:对于级别’p1’到’p2’,记录到标准错误输出、输出或/dev/null
[FS] pri token:对于级别’pri’及以上,记录到文件/syslog
[FS] p1-p2 token:对于级别’p1’到’p2’,记录到文件/syslog
-CAPPOPTS设置各种特定应用行为:
p:打印找到的变量数量
i:在搜索范围内包括给定的OID
I:即使没有返回结果,也不包括给定的OID
c:不检查返回的OID是否递增
t:显示完成walk的墙上时间
T:显示完成每个请求的墙上时间
E {OID}:在指定的OID处结束walk

(4)snmptrap

简介

snmptrap 命令是一个用于发送SNMP陷阱(Trap)的工具。SNMP陷阱是一种事件通知机制,用于将网 络设备的状态变化通知到SNMP管理系统。

基本用法

snmptrap [options] agent trap-oid [variable-bindings]

其中, agent 是接收SNMP陷阱的主机或设备的IP地址或主机名。 trap-oid 是陷阱的OID(对象标识 符),用于标识特定的陷阱类型。 variable-bindings 是可选的,用于指定陷阱中包含的变量绑定。

选项

  • -v <SNMP版本>:指定SNMP版本(1、2c或3)。
  • -c <community> :指定SNMP社区字符串(仅适用于SNMPv1和SNMPv2c)。
  • -u <securityName> :指定安全名称(仅适用于SNMPv3)。
  • -a <authProtocol>:指定认证协议(MD5或SHA,仅适用于SNMPv3)。
  • -A <authPassword>:指定认证密码(仅适用于SNMPv3)。
  • -x <privProtocol> :指定加密协议(DES或AES,仅适用于SNMPv3)。
  • -X <privPassword>:指定加密密码(仅适用于SNMPv3)。
  • -l <securityLevel>:指定安全级别(noAuthNoPriv、authNoPriv或authPriv,仅适用于 SNMPv3)。

这只是 snmptrap 命令的一些常见选项和参数,使用 man snmptrap 命令在终端上查看完整的命令文档。

(5)nmap

简介:

Nmap也叫网络映射器(Network Mapper)是一个广泛使用的开源网络扫描工具。它用于探测和扫描计算机网络 上的主机和服务,以获取有关网络拓扑、开放端口、操作系统类型等信息。Nmap提供了灵活的扫 描技术,包括TCP、UDP、ICMP等多种扫描方式,可以快速地扫描大型网络。

Nmap具有许多功能,包括:

  1. 端口扫描:Nmap可以识别目标主机上开放的端口,从而帮助确定哪些服务正在运行。
  2. 操作系统识别:Nmap可以通过分析网络通信特征尝试识别目标主机的操作系统类型。
  3. 服务和版本探测:Nmap可以探测目标主机上正在运行的具体服务及其版本信息。
  4. 漏洞扫描:Nmap可以与漏洞扫描工具结合使用,帮助发现网络上存在的安全漏洞。
  5. 脚本扫描:Nmap支持使用Nmap脚本引擎(NSE)执行自定义脚本,以便执行更复杂的网络 扫描和自动化任务。
用法:
功能命令行选项说明
目标规范
主机发现-sL列出要扫描的目标
-sn禁用端口扫描,只进行Ping扫描
-Pn将所有主机视为在线 - 跳过主机发现
-PS/PA/PU/PY[portlist]TCP SYN/ACK,UDP或SCTP发现给定端口
-PE/PP/PMCMP回显,时间戳和网络掩码请求发现探测
-PO[protocol list]IP协议Ping
-n/-R永远不进行DNS解析/始终解析[默认:有时]
-dns-servers指定自定义DNS服务器
–system-dns使用操作系统的DNS解析器
–traceroute跟踪到每个主机的跳跃路径
扫描技术-sS/sT/sA/sW/sMTCP SYN/Connect()/ACK/Window/Maimon扫描
-sUUDP扫描
-sN/sF/sXTCP Null,FIN和Xmas扫描
–scanflags自定义TCP扫描标志
-sI<zombie host[:probeport]>空闲扫描
-sY/sZSCTP INIT/COOKIE-ECHO扫描
-sOIP协议扫描
-bFTP弹跳扫描
端口规范和扫描顺序-p仅扫描指定的端口
–exclude-ports从扫描中排除指定的端口
-F快速模式 - 扫描比默认扫描更少的端口
-r连续扫描端口 - 不随机排序
–top-ports扫描最常见的个端口
–port-ratio扫描比更常见的端口
-sV探测开放端口以确定服务/版本信息
–version-intensity设置从0(轻量级)到9(尝试所有探测)的探测强 度
–version-light限制在最有可能的探测(强度2)
–version-all尝试每个探测(强度9)
–version-trace显示详细的版本扫描活动(用于调试)
脚本扫描-sC等效于–script=default
–script=是以逗号分隔的目录、脚本文件或脚本类别
–script-args= <n1=v1,[n2=v2,…]>为脚本提供参数
–script-args-file=filename在文件中提供NSE脚本参数
–script-trace显示发送和接收的所有数据
–script-updatedb更新脚本数据库。
–script-help=显示有关脚本的帮助信息。 是以逗号分隔的脚本文 件或脚本类别列表。
操作系统检测-O启用操作系统检测
–osscan-limit限制操作系统检测到有希望的目标
–osscan-guess更积极地猜测操作系统
时序和性能-T<0-5>设置时序模板(值越高,扫描速度越快)
–min-hostgroup/max-hostgroup并行主机扫描组大小
–min-parallelism/max-parallelism探针并行化
–min-rtt-timeout/max-rtttimeout/initial-rtt-timeou指定探测往返时间。
–max-retries限制端口扫描探针的重传次数。
–host-timeout在经过这么长时间后放弃目标
–scan-delay/–max-scan-delay调整探测之间的延迟
–min-rate每秒发送不少于个数据包
–max-rate每秒发送不超过个数据包
防火墙/IDS 回避和欺骗-f; --mtu分片数据包(可选使用给定的MTU)
-D <decoy1,decoy2[,ME],…>使用伪装扫描
-S <IP_Address>伪装源地址
-e使用指定的接口
-g/–source-port使用给定的端口号
–proxies <url1,[url2],…>通过HTTP/SOCKS4代理中继连接
–data在发送的数据包中添加自定义有效负载
–data-string在发送的数据包中添加自定义ASCII字符串
–data-length在发送的数据包中添加随机数据
–ip-options发送具有指定IP选项的数据包
–ttl设置IP生存时间字段
–spoof-mac <macaddress/prefix/vendor name>伪装您的MAC地址
–badsum发送具有伪造的TCP/UDP/SCTP校验和的数据包
输出-oN/-oX/-oS/-oG将扫描结果以正常、XML、s
-oA同时以三种主要格式输出
-v增加详细程度 (使用-vv或更高级别可获得更大效 果)
-d增加调试级别 (使用-dd或更高级别可获得更大效果
–reason显示端口处于特定状态的原因
–open仅显示开放的 (或可能开放的)端口
–packet-trace显示发送和接收的所有数据包
–iflist打印主机接口和路由 (用于调试)
–append-output追加而不是覆盖指定的输出文件
–resume恢复中断的扫描
–noninteractive禁用通过键盘的运行时交互
–stylesheet <path/URL>XSL样式表 ,用于将XML输出转换为HTML
–webxml引用Nmap.Org上的样式表 ,以获取更便携的XML
–no-stylesheet不要引用任何样式表
–append-output追加而不是覆盖指定的输出文件
–resume恢复中断的扫描
–noninteractive禁用通过键盘的运行时交互
–stylesheet <path/URL>XSL样式表 ,用于将XML输出转换为HTML
–webxml引用Nmap.Org上的样式表 ,以获取更便携的XML
–no-stylesheet不要引用任何样式表
用例:
  • 运行基本的端口扫描命令:
  • target_ip:目标ip
nmap -p 1-100 target_ip
nmap -p 1-100 169.254.218.205
>>
Starting Nmap 7.93 ( https://nmap.org ) at 2023-06-08 09:20 EDT
Nmap scan report for 169.254.218.205
Host is up (0.0011s latency).
Not shown: 99 filtered tcp ports (no-response)
PORT   STATE SERVICE
25/tcp open  smtp
Nmap done: 1 IP address (1 host up) scanned in 1.88 seconds
nmap -p 1-100 118.193.46.232
>>Starting Nmap 7.93 ( https://nmap.org ) at 2023-06-08 09:20 EDT
Nmap scan report for 118.193.46.232
Host is up (0.0096s latency).
Not shown: 97 filtered tcp ports (no-response)
PORT   STATE SERVICE
22/tcp open  ssh
25/tcp open  smtp
80/tcp open  http
Nmap done: 1 IP address (1 host up) scanned in 11.92 seconds

image-20230608212313036

这将扫描目标 IP 地址的端口范围 1-100,并报告开放的端口。

  • 进行操作系统识别:
nmap -O target_ip
nmap -O 169.254.218.205
>>
Starting Nmap 7.93 ( https://nmap.org ) at 2023-06-08 09:25 EDT
Nmap scan report for 169.254.218.205
Host is up (0.0013s latency).
Not shown: 991 filtered tcp ports (no-response)
PORT     STATE SERVICE
25/tcp   open  smtp
110/tcp  open  pop3
135/tcp  open  msrpc
139/tcp  open  netbios-ssn
445/tcp  open  microsoft-ds
902/tcp  open  iss-realsecure
3306/tcp open  mysql
7000/tcp open  afs3-fileserver
8000/tcp open  http-alt
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: general purpose
Running: Microsoft Windows XP|7|2012
OS CPE: cpe:/o:microsoft:windows_xp::sp3 cpe:/o:microsoft:windows_7 cpe:/o:microsoft:windows_server_2012
OS details: Microsoft Windows XP SP3, Microsoft Windows XP SP3 or Windows 7 or Windows Server 2012

OS detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 11.66 seconds
nmap -O 118.193.46.232
>>Starting Nmap 7.93 ( https://nmap.org ) at 2023-06-08 09:26 EDT
Nmap scan report for 118.193.46.232
Host is up (0.018s latency).
Not shown: 993 filtered tcp ports (no-response)
PORT     STATE SERVICE
22/tcp   open  ssh
25/tcp   open  smtp
80/tcp   open  http
110/tcp  open  pop3
888/tcp  open  accessbuilder
3306/tcp open  mysql
8888/tcp open  sun-answerbook
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: WAP|phone
Running: Linux 2.4.X|2.6.X, Sony Ericsson embedded
OS CPE: cpe:/o:linux:linux_kernel:2.4.20 cpe:/o:linux:linux_kernel:2.6.22 cpe:/h:sonyericsson:u8i_vivaz
OS details: Tomato 1.28 (Linux 2.4.20), Tomato firmware (Linux 2.6.22), Sony Ericsson U8i Vivaz mobile phone

OS detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 9.87 seconds

image-20230608212744234

该命令将尝试对目标 IP 地址进行操作系统识别,以确定其运行的操作系统类型。

  • 进行服务和版本探测:
nmap -sV target_ip
nmap -sV 118.193.46.232
>>
Starting Nmap 7.93 ( https://nmap.org ) at 2023-06-08 09:28 EDT
Nmap scan report for 118.193.46.232
Host is up (0.0077s latency).
Not shown: 992 filtered tcp ports (no-response)
PORT     STATE  SERVICE  VERSION
22/tcp   open   ssh      OpenSSH 8.0 (protocol 2.0)
25/tcp   open   smtp?
80/tcp   open   http     Apache httpd
110/tcp  open   pop3?
443/tcp  closed https
888/tcp  open   http     Apache httpd
3306/tcp open   mysql    MySQL (unauthorized)
8888/tcp open   ssl/http Ajenti http control panel
Service Info: Host: 0b842aa5.phpmyadmin

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 280.35 seconds

image-20230608213513982

使用此命令,Nmap将探测目标 IP 地址上运行的服务和相应的版本信息。

  • 执行 Nmap 脚本:
nmap --script vuln target_ip

nmap --script vuln 118.193.46.232
>>
Starting Nmap 7.93 ( https://nmap.org ) at 2023-06-08 09:36 EDT
Nmap scan report for 118.193.46.232
Host is up (0.0071s latency).
Not shown: 992 filtered tcp ports (no-response)
PORT     STATE  SERVICE
22/tcp   open   ssh
25/tcp   open   smtp
80/tcp   open   http
|_http-stored-xss: Couldn't find any stored XSS vulnerabilities.
|_http-dombased-xss: Couldn't find any DOM based XSS.
|_http-csrf: Couldn't find any CSRF vulnerabilities.
|_http-vuln-cve2014-3704: ERROR: Script execution failed (use -d to debug)
110/tcp  open   pop3
443/tcp  closed https
888/tcp  open   accessbuilder
3306/tcp open   mysql
8888/tcp open   sun-answerbook

Nmap done: 1 IP address (1 host up) scanned in 754.78 seconds

image-20230608215046420

nmap --script vuln 169.254.218.205
>>
Starting Nmap 7.93 ( https://nmap.org ) at 2023-06-08 09:44 EDT
Nmap scan report for 169.254.218.205
Host is up (0.023s latency).
Not shown: 992 filtered tcp ports (no-response)
PORT     STATE  SERVICE
25/tcp   open   smtp
110/tcp  open   pop3
135/tcp  open   msrpc
139/tcp  open   netbios-ssn
445/tcp  open   microsoft-ds
1111/tcp closed lmsocialserver
3306/tcp open   mysql
5102/tcp closed admeng

Host script results:
|_smb-vuln-ms10-054: false
|_samba-vuln-cve-2012-1182: Could not negotiate a connection:SMB: Failed to receive bytes: ERROR
|_smb-vuln-ms10-061: Could not negotiate a connection:SMB: Failed to receive bytes: ERROR

Nmap done: 1 IP address (1 host up) scanned in 104.80 seconds

image-20230608215141126

这将运行名为 “vuln” 的 Nmap 脚本,用于检测目标 IP 地址上的漏洞。

  • 设置扫描速度/时间:
nmap -T4 target_ip
nmap -T4 169.254.218.205
>>
Starting Nmap 7.93 ( https://nmap.org ) at 2023-06-08 09:52 EDT
Warning: 169.254.218.205 giving up on port because retransmission cap hit (6).
Nmap scan report for 169.254.218.205
Host is up (0.072s latency).
Not shown: 982 closed tcp ports (reset)
PORT      STATE    SERVICE
25/tcp    open     smtp
110/tcp   open     pop3
135/tcp   open     msrpc
139/tcp   open     netbios-ssn
445/tcp   open     microsoft-ds
514/tcp   filtered shell
902/tcp   open     iss-realsecure
912/tcp   open     apex-mesh
1007/tcp  filtered unknown
1026/tcp  filtered LSA-or-nterm
1038/tcp  filtered mtqp
1455/tcp  filtered esl-lm
1862/tcp  filtered mysql-cm-agent
3306/tcp  open     mysql
5050/tcp  filtered mmcc
5989/tcp  filtered wbem-https
32771/tcp filtered sometimes-rpc5
50003/tcp filtered unknown

Nmap done: 1 IP address (1 host up) scanned in 162.75 seconds

image-20230608215631499

nmap -T4 118.193.46.232
>>
Starting Nmap 7.93 ( https://nmap.org ) at 2023-06-08 09:53 EDT
Nmap scan report for 118.193.46.232
Host is up (0.0087s latency).
Not shown: 994 filtered tcp ports (no-response)
PORT     STATE SERVICE
22/tcp   open  ssh
25/tcp   open  smtp
80/tcp   open  http
110/tcp  open  pop3
3306/tcp open  mysql
8888/tcp open  sun-answerbook

Nmap done: 1 IP address (1 host up) scanned in 49.26 seconds

image-20230608215702013

使用此命令,您可以设置 Nmap 的扫描速度/时间。在示例中,使用级别 4 表示较快的扫描速度。

  • 启用操作系统识别、版本探测和脚本扫描:
nmap -A target_ip
nmap -A 118.193.46.232
>>Starting Nmap 7.70 ( https://nmap.org ) at 2023-06-08 09:58 EDT
Nmap scan report for 118.193.46.232
Host is up (0.020s latency).
Not shown: 995 filtered ports
PORT    STATE SERVICE    VERSION
22/tcp  open  tcpwrapped
25/tcp  open  tcpwrapped
|_smtp-commands: Couldn't establish connection on port 25
80/tcp  open  tcpwrapped
110/tcp open  tcpwrapped
888/tcp open  tcpwrapped
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: specialized|WAP|phone
Running: iPXE 1.X, Linux 2.4.X|2.6.X, Sony Ericsson embedded
OS CPE: cpe:/o:ipxe:ipxe:1.0.0%2b cpe:/o:linux:linux_kernel:2.4.20 cpe:/o:linux:linux_kernel:2.6.22 cpe:/h:sonyericsson:u8i_vivaz
OS details: iPXE 1.0.0+, Tomato 1.28 (Linux 2.4.20), Tomato firmware (Linux 2.6.22), Sony Ericsson U8i Vivaz mobile phone

TRACEROUTE (using port 80/tcp)
HOP RTT    ADDRESS
1   ... 30

OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 58.75 seconds

image-20230608220525490

该命令启用了操作系统识别、版本探测和脚本扫描功能,提供了更全面的信息收集和分析。

  • 指定输出文件的前缀:

    nmap -oA output_file_prefix target_ip
    
    • nmap的-oA选项允许同时将三种格式的输出文件存储到一个文件名相同的目录中,即在一个操作中生成nmap格式、grepable文件格式和XML格式的输出文件。
    • -oN:指定nmap格式的输出文件,格式为[文件前缀].nmap
    • -oG:指定grepable格式的输出文件,格式为[文件前缀].gnmap
    • -oX:指定XML格式的输出文件,格式为[文件前缀].xml
    • 使用-oA选项可以一次性将所有文件都生成,并且它们会出现在同一个目录中,命名格式为[文件前缀].nmap[文件前缀].gnmap[文件前缀].xml

以下是使用-oA选项的语法:

nmap -oA [输出文件前缀] [目标IP地址]

例如,如果要扫描192.168.1.1 IP地址,并将扫描结果以“output_scan”为文件前缀保存在“/home/user/output/”文件夹中,则可以使用以下命令:

nmap -oA /home/user/output/output_scan 192.168.1.1

扫描结果将保存为/home/user/output/output_scan.nmap/home/user/output/output_scan.gnmap/home/user/output/output_scan.xml这三个文件。

使用-oA选项可以方便地将扫描结果保存到一个目录中,并且能够方便地比较和分析不同格式的输出文件。

  • 操作
nmap -oA test_A 118.193.46.232
>>
Starting Nmap 7.93 ( https://nmap.org ) at 2023-06-08 10:33 EDT
Nmap scan report for 118.193.46.232
Host is up (0.013s latency).
Not shown: 994 filtered tcp ports (no-response)
PORT     STATE SERVICE
22/tcp   open  ssh
25/tcp   open  smtp
80/tcp   open  http
110/tcp  open  pop3
3306/tcp open  mysql
8888/tcp open  sun-answerbook

Nmap done: 1 IP address (1 host up) scanned in 4.80 seconds

image-20230608225104057

image-20230608230737598

使用此命令,您可以指定输出文件的前缀,Nmap 将生成多个输出文件,包括文本、XML 和 nmap 格式 的文件。

  • 显示详细输出信息:
nmap -v target_ip
nmap -v 118.193.46.232

image-20230608225743361

使用此命令,Nmap 将显示更详细的扫描输出信息,包括每个扫描步骤的进展情况和结果。

ltered sometimes-rpc5
50003/tcp filtered unknown

Nmap done: 1 IP address (1 host up) scanned in 162.75 seconds


[外链图片转存中...(img-sXxdw5dZ-1686463217698)]

nmap -T4 118.193.46.232

Starting Nmap 7.93 ( https://nmap.org ) at 2023-06-08 09:53 EDT
Nmap scan report for 118.193.46.232
Host is up (0.0087s latency).
Not shown: 994 filtered tcp ports (no-response)
PORT STATE SERVICE
22/tcp open ssh
25/tcp open smtp
80/tcp open http
110/tcp open pop3
3306/tcp open mysql
8888/tcp open sun-answerbook

Nmap done: 1 IP address (1 host up) scanned in 49.26 seconds


[外链图片转存中...(img-SzpwTuKI-1686463217699)]

使用此命令,您可以设置 Nmap 的扫描速度/时间。在示例中,使用级别 4 表示较快的扫描速度。

- 启用操作系统识别、版本探测和脚本扫描:

nmap -A target_ip


nmap -A 118.193.46.232

Starting Nmap 7.70 ( https://nmap.org ) at 2023-06-08 09:58 EDT
Nmap scan report for 118.193.46.232
Host is up (0.020s latency).
Not shown: 995 filtered ports
PORT STATE SERVICE VERSION
22/tcp open tcpwrapped
25/tcp open tcpwrapped
|_smtp-commands: Couldn’t establish connection on port 25
80/tcp open tcpwrapped
110/tcp open tcpwrapped
888/tcp open tcpwrapped
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: specialized|WAP|phone
Running: iPXE 1.X, Linux 2.4.X|2.6.X, Sony Ericsson embedded
OS CPE: cpe:/o:ipxe:ipxe:1.0.0%2b cpe:/o:linux:linux_kernel:2.4.20 cpe:/o:linux:linux_kernel:2.6.22 cpe:/h:sonyericsson:u8i_vivaz
OS details: iPXE 1.0.0+, Tomato 1.28 (Linux 2.4.20), Tomato firmware (Linux 2.6.22), Sony Ericsson U8i Vivaz mobile phone

TRACEROUTE (using port 80/tcp)
HOP RTT ADDRESS
1 … 30

OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 58.75 seconds


[外链图片转存中...(img-0Qsh70ug-1686463217700)]

该命令启用了操作系统识别、版本探测和脚本扫描功能,提供了更全面的信息收集和分析。

- 指定输出文件的前缀:

nmap -oA output_file_prefix target_ip


- nmap的`-oA`选项允许同时将三种格式的输出文件存储到一个文件名相同的目录中,即在一个操作中生成`nmap`格式、`grepable`文件格式和`XML`格式的输出文件。
- `-oN`:指定nmap格式的输出文件,格式为`[文件前缀].nmap`。
- `-oG`:指定grepable格式的输出文件,格式为`[文件前缀].gnmap`。
- `-oX`:指定XML格式的输出文件,格式为`[文件前缀].xml`。
- 使用`-oA`选项可以一次性将所有文件都生成,并且它们会出现在同一个目录中,命名格式为`[文件前缀].nmap`, `[文件前缀].gnmap`和`[文件前缀].xml`。


以下是使用`-oA`选项的语法:

nmap -oA [输出文件前缀] [目标IP地址]


例如,如果要扫描192.168.1.1 IP地址,并将扫描结果以“output_scan”为文件前缀保存在“/home/user/output/”文件夹中,则可以使用以下命令:

nmap -oA /home/user/output/output_scan 192.168.1.1


扫描结果将保存为`/home/user/output/output_scan.nmap`,`/home/user/output/output_scan.gnmap`和`/home/user/output/output_scan.xml`这三个文件。

使用`-oA`选项可以方便地将扫描结果保存到一个目录中,并且能够方便地比较和分析不同格式的输出文件。

- 操作

nmap -oA test_A 118.193.46.232

Starting Nmap 7.93 ( https://nmap.org ) at 2023-06-08 10:33 EDT
Nmap scan report for 118.193.46.232
Host is up (0.013s latency).
Not shown: 994 filtered tcp ports (no-response)
PORT STATE SERVICE
22/tcp open ssh
25/tcp open smtp
80/tcp open http
110/tcp open pop3
3306/tcp open mysql
8888/tcp open sun-answerbook

Nmap done: 1 IP address (1 host up) scanned in 4.80 seconds


[外链图片转存中...(img-miCHpRSd-1686463217700)]

[外链图片转存中...(img-0OBIXeMq-1686463217701)]

使用此命令,您可以指定输出文件的前缀,Nmap 将生成多个输出文件,包括文本、XML 和 nmap 格式 的文件。

- 显示详细输出信息:

nmap -v target_ip


nmap -v 118.193.46.232


[外链图片转存中...(img-glpnKCgX-1686463217701)]

使用此命令,Nmap 将显示更详细的扫描输出信息,包括每个扫描步骤的进展情况和结果。

  • 1
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
├─第1章 课程介绍 │ 任务001:Kali Linux渗透测试介绍.mp4 │ ├─第2章 Kali安装 │ 任务002:Kali Linux安装-硬盘安装、虚拟机安装.mp4 │ 任务003:Kali Linux 安装-持久加密USB安装、熟悉环境、熟悉BASH命令.mp4 │ 任务004:Kali Linux安装-熟悉环境.mp4 │ ├─第3章 工作环境优化 │ 任务005:网络配置、更新升级、安装软件包、浏览器插件.mp4 │ 任务006:安装Java、安装显卡驱动、安装网卡补丁、并发线程限制、电源优化.mp4 │ 任务007:.mp4 │ 任务008:.mp4 │ ├─第4章 实验环境 │ 任务009:实验环境.mp4 │ ├─章 基本工具 │ 任务010:基本工具-NETCAT(telnet-banner、传输文本信息).mp4 │ 任务011:基本工具-NETCAT(传输-目录、流媒体服务、端口扫描、远程克隆硬盘).mp4 │ 任务012:基本工具-远程控制、NCAT、WIRESHARK、WIRESHARK-筛选器、常见协议.mp4 │ 任务013:基本工具-常见协议包、WIRESHARK-TCP.mp4 │ 任务014:WIRESHARK-信息统计、实践.mp4 │ 任务015:TCPDUMP-抓包、筛选、高级筛选、过程文档记录.mp4 │ ├─章 信息收集 │ 任务016:被动信息收集:信息收集内容、信息用途、信息收集DNS、DNS信息收集-NSLOOKUP.mp4 │ 任务017:DNS信息收集-DIGmp4.mp4 │ 任务018:DNS区域传输、DNS字典爆破、DNS信息.mp4 │ 任务019:搜索引擎、SHODAN.mp4 │ 任务020:SHODAN.mp4 │ 任务021:google搜索:实例.mp4 │ 任务022:其他途径.mp4 │ 任务023:RECON-NG.mp4 │ ├─章 主动信息收集 │ 任务024:主动信息收集-发现.mp4 │ 任务025:主动信息收集-发现(二).mp4 │ 任务026:主动信息收集-发现(三).mp4 │ 任务027:主动信息收集-发现(四).mp4 │ 任务028:主动信息收集-发现(五).mp4 │ 任务029:端口扫描.mp4 │ 任务030:端口扫描(二).mp4 │ 任务031:服务扫描.mp4 │ 任务032:操作系统识别.mp4 │ 任务033:SMB扫描.mp4 │ 任务034:SMTP扫描.mp4 │ ├─章 弱点扫描 │ 任务035:弱点扫描.mp4 │ 任务036:NMAP.mp4 │ 任务037:NESSUS.mp4 │ 任务038:NEXPOSE.mp4 │ ├─章 缓冲区溢出 │ 任务039:缓冲区溢出.mp4 │ 任务040:POP3.mp4 │ 任务041:FUZZING.mp4 │ 任务042:Linux缓冲区溢出.mp4 │ 任务043:选择和修改EXP.mp4 | ├─章 提权 │ 任务45: 抓包嗅探.mp4 │ 任务46: WCE.mp4 │ 任务47: 利用漏洞提权.mp │ 任务48: 利用配置不当提权.mp4 │ 任务49: 收集敏感数据、隐藏痕迹.mp4 │ ├─章 无线 │ 任务050:无线渗透.mp4 │ 任务051:无线网运行模式和无线网硬件设备及基本概念.mp4 │ 任务052:无线技术概念.mp4 │ 任务053:Linux 无线协议栈及配置命令.mp4 │ 任务054:RADIOTAP头部.mp4 │ 任务055:CONTROL FRAME.mp4 │ 任务056:MANAGEMENT FRAME 管理帧.mp4 │ 任务057:REASSOCIATION REQUEST FRAME.mp4 │ 任务058:WEP加密、RC4算法.mp4 │ 任务059:WPA安全系统.mp4 │ 任务060:交换、无线渗透实操:AIRCRACK-NG基础、AIRODUMP-NG排错.mp4 │ 任务061:AIREPLAY-NG.mp4 │ 任务062:Mac地址绑定.mp4 │ 任务063:WPA.mp4 │ 任务064:COWPATTY 密码.mp4 │ 任务065:WPS.mp4 │ 任务066:WPS及其他工具.mp4 │ 任务067:EVIL TWIN AP、ROGUE AP.mp4 │ 任务068:AIRRACK-NG SUITE.mp4 │ 任务069:AIRRACK-NG(二).mp4 │ ├─章 补充 │ 任务070:协议分析.mp4 │ ├─第13章 Web渗透 │ 任务071:HTTP协议基础.mp4 │ 任务072:扫描工具-Nikto.mp4 │ 任务073:vega.mp4 │ 任务074:skipfish.mp4 │ 任务075:w3af.mp4 │ 任务076:w3af-身份认证.mp4 │ 任务077:w3af-截断.mp4 │ 任务078:Arachni.mp4 │ 任务079:OWASP_ZAP.mp4 │ 任务080:Burpsuite.mp4 │ 任务081:Burpsuite-intruder.mp4 │ 任务082:Burpsuite-repeater,Sequencer,编码,截断工具.mp4 │ 任务083:ACUNETIX WEB VULNERABILITY SCANNER.mp4 │ 任务084:APPSCAN.mp4 │ 任务085:答疑(Conky、、Linux4.4内核发布),手动漏洞挖掘.mp4 │ 任务086:手动漏洞挖掘(二).mp4 │ 任务087:手动漏洞挖掘(三).mp4 │ 任务088:手动漏洞挖掘(四).mp4 │ 任务089:KALI版本更新(第一个ROLLING RELEASE)和手动漏洞挖掘(SQL注入).mp4 │ 任务090:手动漏洞挖掘-SQL注入.mp4 │ 任务091:手动漏洞挖掘-SQL注入.mp4 │ 任务092:手动漏洞挖掘-SQL盲注.mp4 │ 任务093:SQLMAP- 自动注入.mp4 │ 任务094:SQLMAP自动注入-REQUEST.mp4 │ 任务095:SQLMAP自动注入(二)-REQUEST和SQLMAP自动注入(三)-OPTIMIZATION.mp4 │ 任务096:SQLMAP自动注入-INHECTION、DETECTION、TECHNIQUES、FINGERPRINT.mp4 │ 任务097:SQLMAP自动注入-ENUMERATION、BRUTE FORCE、UDF INJECTION、FILE SYSTEM、OS、WINDOWS REGISTORY、GENERAL、MISCELLANEOUS.mp4 │ 任务098:XSS-简介、跨站脚本检测和常见的利用手段.mp4 │ 任务099:XSS- 键盘记录器和反射型XSS.mp4 │ 任务100:存储型XSS和BEEF浏览器框架.mp4 │ 任务101:CSRF.mp4 │ 任务102:WEBSHELL.mp4 │ 任务103:HTTPS.mp4 │ 任务104:SSL、TLS中间人.mp4 │ 任务105:SSL、TLS拒绝服务和补充概念.mp4 │ ├─第14章 密码 │ 任务106:思路、身份认证方法、密码方法、字典.mp4 │ 任务107:字典、在线密码-hydra.mp4 │ 任务108:在线密码-hydra、在线密码-medusa、离线密码.mp4 │ 任务109:离线密码、离线密码-Hashcat.mp4 │ 任务110:离线密码.mp4 │ 任务111:密码嗅探(第四版剪辑版).mp4 │ 任务112:密码嗅探、中间人.mp4 │ 任务113:中间人、ARP MITM、中间人、Pass the Hash.mp4 │ ├─第15章 流量操控与隧道 │ 任务114:流量操控技术、重定向.mp4 │ 任务115:SSH隧道和SSH本地端口转发.mp4 │ 任务116:SSH远程端口转发和动态端口转发以及X协议转发.mp4 │ 任务117:DNS协议隧道、DNS协议隧道-dns2tcp.mp4 │ 任务118:DNS协议隧道-dns2tcp.mp4 │ 任务119:DNS协议隧道-iodine、NCAT.mp4 │ 任务120:SOCAT.mp4 │ 任务121:ptunnle.mp4 │ 任务122:proxytunnle.mp4 │ 任务123:sslh.mp4 │ 任务124:补充Proxytunnel、stunnel4.mp4 │ ├─第16章 拒绝服务 │ 任务125:拒绝服务介绍、DoS分类、个人DoS分类方法.mp4 │ 任务126:Syn-Flood、IP地址欺骗.mp4 │ 任务127:Smurf、Sockstress.mp4 │ 任务128:TearDrop.mp4 │ 任务129:DNS放大.mp4 │ 任务130:SNMP放大.mp4 │ 任务131:NTP放大.mp4 │ 任务132:应用层Dos.mp4 │ 任务133:拒绝服务工具-RUDY、Hping3、LAND、Siege.mp4 │ 任务134:拒绝服务工具-NMAP、匿名者拒绝服务工具包(匿名者发布的DoS工具)、其他拒绝服务工具-XOIC、HULK、DDOSIM、GoldenEye.mp4 │ ├─第17章 免杀 │ 任务135:恶意软件、防软件、免杀技术、当前现状.mp4 │ 任务136:当前现状、软件保护,自己编写后门.mp4 │ 任务137:Veil-evasion.mp4 │ 任务138:Veil-catapult.mp4 │ 任务139:Veil-catapult总结、另一种免杀思路、shellter.mp4 │ 任务140:Backdoor-f
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@杨星辰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值