网络安全从小白到专家

第一篇KALI的基础操作

你的每一次点赞都是我更新的动力

第一章网络安全渗透测试的基本概念

1.1 何为网络安全渗透测试

网络安全的前景

下图是16年-22年中国网络信息安全市场规模的分析及预测,可以看出网络安全产业经济每年都在高速增长,市场潜力巨大。整个行业还处于一片蓝海!图片源于网络 再说网络安全的现状。 我国网民规模已经突破10亿人口;截至2021年6月,我国国民规模为10.11亿,现在连家里的老人 都开始用起了智能手机。然而互联网的开放性和安全漏洞带来的风险也无处不在,最普遍的像账号被盗、钓鱼网站、木马病毒等等,直接危及个人安全。而随着大数据、物联网、人工智能等新技术的发展,现阶段网络空间安全建设已达到了刻不容缓的地步!除此之外,前几年,网络安全基本只服务于国家的一些重要机构,而近两年随着互联网行业的迅速发展,从全球范围来看,网络安全带来的风险正变得日益突出,并不断向政治、经济、文化、社会、国防等多个领域传导渗透。 2017 年 6 月 1 日,《网络安全法》正式颁布实施,其中第二十条规定“国家支持企业和高等学校、职业学校等教育培训机构开展网络安全相关教育与培训,采取多种方式培养网络安全人才,促进网络安全的人才发展。”。 据新华社报道,截至目前,全国已有近200所高校开设了信息安全或网络空间安全专业,高校每年大概培养两万余人,但这仍然不能满足社会对相关人才的需求。 然而,在这一背景下,网络安全人才短缺问题日益突出,网络安全人才严重匮乏,可谓一将难求。 18年缺口高达95%,超过70万,20年突破232%,缺口达140万,21年缺口飙升285%… 目前北京、深圳、上海、成都、广州、武汉是网络安全人才需求量最大的城市,这五个城市对网络安全人才需求的总量预计占全国需求总量的近一半。图片源于网络 关于网络安全工程师的薪资待遇,安妹随手在智联招聘网上输入网络安全工程师,展示的招聘信息如下。(区域以成都为例)图片截图于智联招聘网站网络安全的前景虽然一片光明,但是,并不是每个人都适合学网络安全,打算学网络安全的学员至少要满足以下的条件:1.专科及以上学历,准备转行的安全小白;有没有基础不是转行网络安全的硬性要求,但学历是硬性指标,从各大招聘网站上可以看出,企业对网络安全人才的最低学历要求是专科。所以,学网络安全,学历必须满足全日制专科及以上学历(这个是没有商量的);2.2021年即将毕业的大学毕业生,虽然大学里面学的不是相关专业,但是自己的职业规划是想就业于网络领域;3.对网络安全感兴趣的技术发烧友,通过自学,但是很难学成体系化的安全知识;4.想跳槽职业瓶颈的运维从业者,运维人员,在一家公司薪资待遇相比开发类的,要低几个level,但是要做的工作,要加的班不一定比开发人员少。除了薪资待遇差以外,运维人员每天除了和服务器打交道,做些桌面运维的工作外,晋升空间小,所以,目前越来越多的运维人员选择网络安全作为新的发展职业;5.偏安全方向的网络工程师,网络工程师≠网络安全工程师;符合以上条件,又有转岗网络安全想法的朋友们,要抓住目前的契机中国网安是是中央直接管理的十大军工集团之一,是中国电子科技集团公司 (简称中国电科)根据国家安全战略发展需要,以深耕信息安全和物理安全领域的中国电科第三十研究所、第三十三研究所为核心,汇聚中国电科内部资源重点打造的网络信息安全子集团。多年来,凭借在密码保密、信息安全和物理安全领域深厚的技术积淀,奠定了在网络安全领域的国家队行业地位。中国信息安全第一股”卫士通信息产业股份有限公司,1998年成立,国内知名密码产品、网络安全产品、安全运维服务和行业安全解决方案综合提供商,国内最早专业从事网络信息安全的上市企业。作为同属兄弟单位,和国信安学校都坐落在“国家西部信息安全产业基地”。多年以来,基于中国电科、中国网安、卫士通的有力支撑和资源支持,国信安深耕网络安全教育培训领域,经过多年发展,国信安网络安全培训已实现集安全认证、安全竞赛、安全实践和校企合作为一体的国信安多维培训服务体系。经过长期深耕发展,形成了从理论考试、实训实验、资质认证到企业实习的人才能力认定体系标准,创新网络安全人才培养办学模式、人才招募方式、人才培养模式,创新网络安全人才能力考评体系标准的国信安项目+培训+认证新模式,提供丰富的网络安全项目人才就业渠道,每年输出大量优秀的网络安全人才。

1.2 网络安全渗透测试的基本框架ATT&CK框架

1.2.1 Threat Intelligence 威胁情报

如何开始使用 ATT&CK?
旨在回答四个关键用例的问题:
威胁情报
检测和分析
对手仿真和红队
评估和工程

ATT&CK 对于任何想要转向以威胁为导向的防御的组织都非常有用,因此我们希望分享有关如何开始的想法,无论您的团队多么复杂。
我们将把这些帖子分成不同的级别:
Level 1 适用于那些刚开始可能没有很多资源的人
Level 2 中级团队开始成熟
Level 3适用于更高级的网络安全团队和资源

我们从谈论威胁情报开始,因为它是最好的用例
2018 年,我对如何使用 ATT&CK 推进网络威胁进行了高级概述
情报(CTI)。 在本章中,我将以此为基础,分享一些实用的入门建议。

LEVEL 1

网络威胁情报就是要知道你的对手做了什么并使用它的信息以改进决策。对于一个只有几个分析师想要开始使用 ATT&CK 进行威胁情报的组织,您可以开始的一种方法是选择一个您关心的小组,并按照 ATT&CK 的结构查看他们的行为。
您可以根据我们在网站上映射的组中选择一个组他们以前针对的组织。 或者,许多威胁情报订阅
供应商也映射到 ATT&CK,因此您可以使用他们的信息作为参考。

https://attack.mitre.org/groups/

示例:如果您是一家制药公司,您可以在我们的搜索栏中搜索或在我们的群组页面上确定 APT19 是一个针对您所在行业的群组
在这里插入图片描述

从那里,您可以调出该组的页面以查看他们使用的技术(仅基于我们绘制的开源报告),因此您可以了解更多关于他们。 如果您因为不熟悉而需要有关该技术的更多信息,请不要担心——它就在 ATT&CK 网站上。 您可以对每个我们使用该组映射的软件样本,我们在ATT&CK 网站。
示例:APT19 使用的一种技术是注册表运行键/启动文件夹

https://attack.mitre.org/groups/G0073/
https://attack.mitre.org/techniques/T1547/001/

在这里插入图片描述
那么,我们如何使这些信息具有可操作性,这就是威胁情报的全部意义所在?让我们与我们的捍卫者分享它,因为这是一个针对我们部门的团体,我们想要防御他们。执行此操作时,您可以查看 ATT&CK 网站以获取一些想法,以帮助您开始使用检测和缓解技术。
示例:让您的防御者了解 APT19 使用的特定注册表运行密钥。
但是,他们可能会改变这一点并使用不同的运行密钥。 如果您查看有关该技术的检测建议,您会看到一个建议是监视注册表以查找您不希望在您的环境中看到的新运行键。 这将是与你的防守者进行的一次很棒的对话。

1.2.2 武器化(制作渗透测试工具)
1.2.3 传输
1.2.4 挖掘
1.2.5 植入
1.2.6 命令和控制

什么是Linux

Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux有上百种不同的发行版,如基于社区开发的debian、archlinux,和基于商业开发的Red Hat Enterprise Linux、SUSE、Oracle Linux等。
Linux创始人林纳斯·本纳第克特·托瓦兹

常见的Linux发行版

1.Debian

广义的Debian是指一个致力于创建自由操作系统的合作组织及其作品,由于Debian项目众多内核分支中以Linux宏内核为主,而且Debian开发者 所创建的操作系统中绝大部分基础工具来自于GNU工程 ,因此 “Debian” 常指Debian GNU/Linux。
非官方内核分支还有只支持x86的Debian GNU/Hurd(Hurd微内核),只支持amd64的Dyson(OpenSolaris混合内核)等。这些非官方分支都存在一些严重的问题,没有实用性,比如Hurd微内核在技术上不成熟,而Dyson则基础功能仍不完善。
“Debian” 正式发音为 /ˈdɛ.bi.ən/ ,Debian 是国际化协作项目,官方未指定任何非英文名称。
Debian GNU/Linux(简称Debian)是目前世界最大的非商业性Linux发行版之一,是由世界范围1000多名计算机业余爱好者和专业人员在业余时间制做。KaliLinux就是基于Debian的Linux系统。

2.Centos

CentOS是Community Enterprise Operating System的缩写,也叫做社区企业操作系统。是企业Linux发行版领头羊Red Hat Enterprise Linux(以下称之为RHEL)的再编译版本(是一个再发行版本),而且在RHEL的基础上修正了不少已知的 Bug ,相对于其他 Linux 发行版,其稳定性值得信赖。

3.Ubuntu

Ubuntu是一个以桌面应用为主的Linux操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu"一词,意思是“人性”“我的存在是因为大家的存在",是非洲传统的一种价值观。Ubuntu基于Debian发行版和Gnome桌面环境,而从11.04版起,Ubuntu发行版放弃了Gnome桌面环境,改为Unity。从前人们认为Linux难以安装、难以使用,在Ubuntu出现后这些都成为了历史。Ubuntu也拥有庞大的社区力量,用户可以方便地从社区获得帮助。 自Ubuntu 18.04 LTS起,Ubuntu发行版又重新开始使用GNOME3桌面环境。
在这里插入图片描述

4.Deepin(国产)

深度操作系统是基于Linux内核,以桌面应用为主的开源GNU/Linux操作系统,支持笔记本、台式机和一体机。深度操作系统(deepin)包含深度桌面环境(DDE)和近30款深度原创应用,及数款来自开源社区的应用软件,支撑广大用户日常的学习和工作。另外,通过深度商店还能够获得近千款应用软件的支持,满足您对操作系统的扩展需求。深度操作系统由专业的操作系统研发团队和深度技术社区共同打造,其名称来自深度技术社区名称“deepin”一词,意思是对人生和未来深刻的追求和探索。
深度操作系统(deepin)是中国第一个具备国际影响力的Linux发行版本,截止至2019年7月25日,深度操作系统支持33种语言,用户遍布除了南极洲的其它六大洲。深度桌面环境(DDE)和大量的应用软件被移植到了包括Fedora、Ubuntu、Arch等十余个国际Linux发行版和社区。

安装Centos7

下载Centos7镜像

下载地址

国外 https://www.centos.org/download/
国内 https://mirrors.ustc.edu.cn/centos/7.9.2009/isos/x86_64/CentOS-7-x86_64-DVD-2009.iso

由于Centos7的下载地址在国外,下载速度很慢,我们可以使用国内的镜像仓库来进行下载

  1. 中科大 http://mirrors.ustc.edu.cn/
    我们以中科大镜像仓库为例进行下载
    在这里插入图片描述
    在文件列表找到Centos打开
    找到7.9版本
    在这里插入图片描述
    选择ISOS
    在这里插入图片描述
    选择x86-64
    在这里插入图片描述
    选择第一项
    在这里插入图片描述
    即可开始下载
    这里分为3个版本
    CentOS-7-x86_64-DVD-2009.iso
    DVD版本:默认大下,含有常用的软件
    CentOS-7-x86_64-Everything-2009.iso
    Everything版本:含有所有软件
    CentOS-7-x86_64-Minimal-2009.iso
    Minimal版本:只包含系统和基础软件
    CentOS-7-x86_64-NetInstall-2009.iso
    NetInstall版本:通过网络进行安装,安装过程需要联网

下载虚拟机软件

虚拟机是借助于CPU虚拟化功能实现的如要使用虚拟机需要进入BIOS打开CPU虚拟化,部分笔记本默认打开。常见的虚拟机软件有 WindowsHyper-V Oracle VM VirtualBox (开源免费,界面比较复杂,不适合新手)VMware Workstation Player (免费不开源)且有商业版本VMware Workstation Pro 而两者差别不大此教程所使用的软件为VMware Workstation Pro ,建议大家支持正版,下载正版有三十天的试用期(下载Pro版本会自带VMware Workstation Player无需重新下载)
VMware Workstation Pro下载:

https://www.vmware.com/cn/products/workstation-pro.html

VMware Workstation Player版本下载:

https://www.vmware.com/cn/products/workstation-player.html

下载完成后创建虚拟机
在这里插入图片描述
在这里插入图片描述
选择稍后安装操作系统
在这里插入图片描述

版本选择centos7(64位)
在这里插入图片描述
在这里插入图片描述
选择ISO文件在这里插入图片描述
创建完成后开启虚拟机
开机后选择第一项,安装centos7
在这里插入图片描述
在这里插入图片描述
进入安装程序后语言选择英语
在这里插入图片描述
选择时区
在这里插入图片描述
选择asia,shanghai
在这里插入图片描述
选择需要安装的软件
在这里插入图片描述
我们把基本的软件和开发工具给选择上
在这里插入图片描述
选择安装磁盘
选择自动分区
在这里插入图片描述
开启网络
在这里插入图片描述
在这里插入图片描述
打开后会显示你的IP地址
在这里插入图片描述
点击开始安装即可
在这里插入图片描述
设置root密码
在这里插入图片描述
在这里需要多点两下done
在这里插入图片描述
创建一个普通用户
在这里插入图片描述
在这里插入图片描述
出现Reboot按钮代表安装完成,点击reboot按钮即可重启
在这里插入图片描述
重启后选择第一项回车
在这里插入图片描述
出现这个界面就代表已经安装完成了
在这里插入图片描述
接下来输入用户名root
密码就是你安装时设置的密码
这样就已经成功登录了
在这里插入图片描述
接下来我们会进行一些基础配置
1.安装常用软件
yum install 后面的四个就是软件名,输入下面的命令回车即可执行

yum install curl wget vim lrzsz
*yum( Yellow dog Updater, Modified)是一个在 Fedora 和 RedHat 以及 SUSE 中的 Shell 前端软件包管理器。
基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
yum 提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。*

执行命令后他会询问你是否要下载,输入y回车代表同意,n代表不同意,我们选择y
在这里插入图片描述
在这里他问你是否要安装选择y
在这里插入图片描述
看到complete代表安装完成
在这里插入图片描述
clear命令进行清屏
在这里插入图片描述

VIM的使用方法

Vim(Vi[Improved])编辑器是功能强大的跨平台文本文件编辑工具,继承自Unix系统的Vi编辑器,支持Linux/Mac OS X/Windows系统,利用它可以建立、修改文本文件。
使用vim创建文件可以直接输入

vim 【文件名称】

例如创建一个study.txt的文件

vim study.txt

执行该命令后就会进入到vim的程序窗口
在这里插入图片描述
vim分为三种模式

命令模式:

用户刚刚启动 vi/vim,便进入了命令模式。

输入模式:

在命令模式按i键即可进入输入模式(部分人也叫做编辑模式)按esc键退出编辑模式回到命令模式
如查看是否处于输入模式,进入输入模式后左下角会出现insert单词
在这里插入图片描述
在这个模式下就可以直接对文件的内容进行修改
例如进入输入模式后输入linux study直接输入即可
例如我们输入

linux study
is 
very
easy

我们按esc键退出输入模式

底线命令模式:

在命令模式输入:即可进入底线命令模式
那么如何对写入的内容进行保存呢?只是就需要进入底线命令模式了
如果您当前处在输入模式需要先退出输入模式,进入命令模式,再通过命令模式进入底线命令模式
如何查看是否处于底线命令模式呢?
底线命令模式会在左下角出现一个:(冒号)
在这里插入图片描述
在底线命令模式下可以显示行号
在底线命令模式下输入

set nu

回车即可显示行号
在这里插入图片描述
在这里插入图片描述
讲了这么多大家是否有个疑惑,那命令模式能干什么呢?
我们普遍使用命令模式来搜素内容
例如我们在底线命令模式下需要先退出底线命令模式,按esc键,退出后我们发现左下角什么都没有了,
这时我们只需输入

/[搜索内容]

即可进行搜索。
例如我们搜索is

/is

我们发现is就已经标红了,但是由于内容太少,左下角会报一个小的错误,不用管
那么如何对文件进行保存内
我们需要进入底线命令模式

:w

代表保存

:wq

保存并退出

:q

退出

q!

强制退出

查看当前目录下的文件

lLinux ls 命令
Linux ls(英文全拼:list files)命令用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)。

ls

执行后我们就看到了我们刚刚创建的study.txt文件

ls -l

查看文件的详细信息
在这里插入图片描述

ls -a

查看当前目录下的所有文件
在这里插入图片描述
.[文件名]
文件名前有一个.代表是隐藏文件

Linux文件权限

当我们执行ls -l时发现前面这一串-和字母,那这个就是代表着Linux的文件权限
每个Linux文件具有四种访问权限:可读®、可写(w)、可执行(x)和无权限(-)。
利用ls -l命令可以看到某个文件或目录的权限,它以显示数据的第一个字段为准。第一个字段由10个字符组成,如下:

-rwxr-xr-x
第一位表示文件类型,-表示文件,d表示目录
2-4位:  表示文件所有者的权限,u权限
5-7位:  表示文件所有者所属组成员的权限,g权限
8-10位:  表示所有者所属组之外的用户的权限,o权限
2-10位:  的权限总和有时称为a权限
以上例子中,表示这是一个文件(非目录),文件所有者具有读、写和执行的权限,所有者所属组成员和所属组之外的用户具有读和执行的权限而没有写的权限。
二、文件权限修改----chmod
用数字表示法修改权限
所谓数字表示法,是指将r、w和x分别用4、2、1来代表,没有授予权限的则为0,然后把权限相加,如下:

原始权限 转换为数字 数字表示法
rwxrwxr-x (421)(421)(401) 775
rwxr-xr-x (421)(401)(401) 755

修改权限的例子:将文件test的权限修改为所有者和组成员具有读写的权限,其他人只有读权限

chmod 664 test
用文本表示法修改权限
  文本表示法用4个字母表示不同的用户:

u:所有者
g:组成员
o:其他成员
a:所有人
  权限仍用r、w和x表示

和数字表示法不同,文本表示法不仅可以重新指定权限,也可以在原来权限的基础上增加或减少权限,如下:

=:重新制定权限
-:对目前的设置减少权限
+:对目前的设置增加权限
例子:讲上述例子中,所有者加上执行权限,组成员减少执行权限,其他成员设置为执行权限,执行以下命令:chmod u+x,g-x,o=x test
注意:逗号前后不能有空格

三、目录权限
目录权限的修改和文件权限修改不同,只是四种权限代表的含义如下:

r:可列出目录中的内容
w:可在目录中创建、删除和修改文件
x:可以使用cd命令切换到此目录
-:没有任何此目录的访问权限
注意:目录可以使用通配符"*"来表示目录中的所有文件,如将/test目录中的所有文件的权限设置为任何人都可以读写

chmod 666 /test/*
四、指定文件的默认权限掩码-----umask
权限掩码有4个八进制的数字组成,讲现有的权限减掉权限掩码后,即可产生此文件建立时的默认权限。
一般来说,新建文件的默认值是0666,新建目录的默认值是0777,如果将全线掩码设置为0002,则每个新建文件的默认权限为0666-0002=0664,而目录的默认权限则为775。可以直接输入umask命令来检查目前的默认权限掩码,或输入"umask 权限掩码"来指定默认权限掩码。
用umask的方式指定默认权限掩码,可以避免添加访问权限过大的文件或目录。

Linux目录结构

linux系统中有一句话,一切皆文件。
/ 代表根目录,跟windows中的C盘是一样的
在linux中,我们默认所在的文件夹为用户的家目录,由于我们使用的是root用户也就是系统管理员用户,进行登录,所以我们的家目录为单独的root文件夹,而在我们安装系统时还创建了一个普通用户test,而test用户的家目录在/home/test目录
我们可以执行pwd查看当前的路径
在这里插入图片描述
那么如何进入根目录呢?

cd /

cd(英文全拼:change directory)命令用于切换当前工作目录。
在这里插入图片描述

/bin:
bin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令。

/boot:
这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。

/dev :
dev 是 Device(设备) 的缩写, 该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。

/etc:
etc 是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录。

/home:
用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的,如上图中的 alice、bob 和 eve。

/lib:
lib 是 Library(库) 的缩写这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。

/lost+found:
这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。

/media:
linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下。

/mnt:
系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在 /mnt/ 上,然后进入该目录就可以查看光驱里的内容了。

/opt:
opt 是 optional(可选) 的缩写,这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。

/proc:
proc 是 Processes(进程) 的缩写,/proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
/root:
该目录为系统管理员,也称作超级权限者的用户主目录。

/sbin:
s 就是 Super User 的意思,是 Superuser Binaries (超级用户的二进制文件) 的缩写,这里存放的是系统管理员使用的系统管理程序。

/selinux:
 这个目录是 Redhat/CentOS 所特有的目录,Selinux 是一个安全机制,类似于 windows 的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。

/srv:
 该目录存放一些服务启动之后需要提取的数据。

/sys:

这是 Linux2.6 内核的一个很大的变化。该目录下安装了 2.6 内核中新出现的一个文件系统 sysfs 。

sysfs 文件系统集成了下面3种文件系统的信息:针对进程信息的 proc 文件系统、针对设备的 devfs 文件系统以及针对伪终端的 devpts 文件系统。

该文件系统是内核设备树的一个直观反映。

当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。

/tmp:
tmp 是 temporary(临时) 的缩写这个目录是用来存放一些临时文件的。

/usr:
 usr 是 unix shared resources(共享资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录。

/usr/bin:
系统用户使用的应用程序。

/usr/sbin:
超级用户使用的比较高级的管理程序和系统守护程序。

/usr/src:
内核源代码默认的放置目录。

/var:
var 是 variable(变量) 的缩写,这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。

/run:
是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。
1.4 网络基础

第二章 KALI的安装与基础配置

2.1什么是KALI为什么要使用KALI

kali官方的简介
最先进的
渗透测试发行版
Kali Linux 是一个基于 Debian 的开源 Linux 发行版,适用于各种信息安全任务,例如渗透测试、安全研究、计算机取证和逆向工程。
官网:https://www.kali.org/
安装kali的方法有很多,但最常用的是在虚拟机,物理机,和docker中安装KALI系统

而我们推荐在虚拟机安装kali系统,利用虚拟机可以借助虚拟机的快照功能,用来备份恢复kali系统。

**KALI的官方网站: Kali Linux | Penetration Testing and Ethical Hacking Linux Distribution **

我们选择downloads选项,向下滑动即可看到KALI系统的iso镜像,其中包含4个版本,

请添加图片描述

分别为Installer(通过自定义完成脱机安装)Weekly(每周更新具有最新的未经测试的镜像—可能不稳定)Everything(包含所有可能的工具)NetInstaller(网络镜像—所有的软件包都在安装过程中下载)

由于KALI的镜像存放在国外的服务器中下载较慢可以使用国内的克隆网站例如中科大开源镜像站( USTC Open Source Software Mirror ),清华大学开源镜像站。中科大开源镜像站速度快于清华大学开源镜像站,而且界面明显,在主界面点击获取安装镜像,选择kali linux 和发行版本,建议下载Installer版本。
在这里插入图片描述

2.2安装KALI系统

下载Kali系统的方法
1.从官网下载
下载链接:https://cdimage.kali.org/kali-2022.3/kali-linux-2022.3-installer-amd64.iso
2.国内镜像仓库
由于Kali的镜像仓库在国外,所以下载速度很慢。
可以从国内的镜像仓库下载
笔者推荐
中国科技大学开源软件镜像
https://mirrors.ustc.edu.cn/
下载链接:https://iso.mirrors.ustc.edu.cn/kali-images/current/kali-linux-2022.3-installer-amd64.iso
其他常见的镜像站:
清华大学开源软件镜像站
https://mirror.tuna.tsinghua.edu.cn/
阿里云开源镜像站
https://developer.aliyun.com/mirror/
还有很多大家可以参考这篇文章
https://blog.csdn.net/hxt159753/article/details/123484426

2.2.1 在VMware中安装

Vmware分为两个版本一个为免费的player版本和付费的workation pro版本(付费版本包含player版本)
专业版下载:https://www.vmware.com/cn/products/workstation-pro.html
在这里插入图片描述

免费版本下载:https://www.vmware.com/cn/products/workstation-player.html
在这里插入图片描述

打开VMware,选择创建新的虚拟机
选择典型:在这里插入图片描述
选择Linux
版本为Debian 11 64位
在这里插入图片描述
为虚拟机命名
在这里插入图片描述
分配磁盘大小,这种分配方式是用多少占用多少,最多50GB,因为我使用的是ESXI的虚拟化,大家可能看到的界面有一点不一样,但其他的都是相同的。
在这里插入图片描述
选择自定义硬件
在这里插入图片描述
选择新CD/DVD使用ISO影响文件,选择你下载的KALI镜像点击关闭即可。
在这里插入图片描述
关闭之后点击完成
如果没有创建后开启此虚拟机选项,创建完成后点击开启此虚拟机即可
在这里插入图片描述
打开之后就会出现系统的引导
在这里插入图片描述

选择第一项Graphical install 图形化安装回车即可进入安装程序
语言选择英文,因为Armitage软件无法在中文下运行
在这里插入图片描述
点击Continue(继续)
选择你现在的位置
在这里插入图片描述
选择other >Asia> China >
在这里插入图片描述
在这里插入图片描述
出现这个页面直接回车即可
在这里插入图片描述
默认即可。
在这里插入图片描述
设置hostname
在这里插入图片描述
设置域名。随便填
在这里插入图片描述
设置用户名
在这里插入图片描述
设置密码
在这里插入图片描述
磁盘分区选择第一项使用整块硬盘
在这里插入图片描述
这就是我们设置的50GB的虚拟硬盘
在这里插入图片描述
这边出现了三个选项
1.将所有文件放在一起适合新手
2.单独把/home分出来
3.把/home /var /tmp分出来
我建议选择第一项
在这里插入图片描述
这句翻译过来是创建完成并写入硬盘
在这里问你是否要写入硬盘要选择yes。默认是no
在这里插入图片描述
如果选择no将会重新进入上一步
接下来开始安装基本系统
在这里插入图片描述
这里选择软件默认即可
第一个是问你是否需要桌面环境,默认是勾选的
下面三个Xfce,gnome ,KDE只能选择一个如果都选择则无法进入系统
把最底下的三个选项都选择上,默认是选择上的
分别为信息收集工具,最受欢的十个工具,推荐的工具。
在这里插入图片描述
继续即可
在这里插入图片描述
选择yes安装grub引导
在这里插入图片描述
选择第二项在这里插入图片描述
出现这个界面代表安装完成,点击reboot重启就可以进入系统
在这里插入图片描述
这种安装方式比较麻烦大家可以去KALI官网下载虚拟机版本的系统直接导入就可以用了
虚拟机版本的下载链接https://kali.download/virtual-images/kali-2022.3/kali-linux-2022.3-vmware-amd64.7z

2.2.2 在Docker中安装
2.2.3 在云服务器中安装
2.3定制属于自己的KALI
2.3.1 KALI配置SSH连接

配置SSH之前首先要设置静态IP。
打开Kali输入你设置的账号密码进行登录
在Kali中打开终端。快捷键ctrl + alt + t
在这里插入图片描述
我们首先设置Root用户的密码

sudo passwd root

回车后需要首先输入用户的密码
这个密码是不会显示的,输入完后回车就可以
接下来设置root的密码,需要输入两遍
在这里插入图片描述
通过su - root 切换到root用户
在这里插入图片描述
编辑IP需要用到VIM工具,在这里先简单介绍一下
vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。
进入vim默认就是命令模式
按i键进入输入模式
按esc键退出输入模式进入命令模式
按:键进入底线命令模式
在终端输入vim后出现这个界面代表有vim工具
在这里插入图片描述
如果读者按照笔者的方式安装的Kali,是默认带有vim工具的
打开之后我们进入底线命令模式退出
按:q代表退出
:q!强制退出
:wq 保存退出
看最底下的一行就是底线命令模式
在这里插入图片描述
在终端进行操作时鼠标是无法对终端进行操作
退出后查看自己的IP地址

ip a

在这里插入图片描述
由于我们的网卡是由VMware虚拟出来的我们要从虚拟机中查看ip网段
编辑>虚拟网络编辑器
在这里插入图片描述

选择VMnet8记住你的子网IP的网段和子网掩码,192.168.245是网段所以我们要设置IP的话需要在网段后加上一个地址例如可以设置为192.168.245.1,我们还需要查看网关,选择vment8,点击DHCP设置就可以看到网关了。你的虚拟网络也有可能与笔者的不同,如果不同的话将子网IP和子网掩码改为与笔者相同即可。
在这里插入图片描述

使用vim编辑编辑/etc/network/interfaces 文件,添加以下几行:

auto eth0

iface eth0 inet static
# 将eth0改为静态
address 192.168.245.1
#设置IP地址
netmask 255.255.255.0
#设置子网掩码
gateway 192.168.245.x

设置网关

首先在终端中输入

vim /etc/network/interfaces

在这里插入图片描述
按i键进入编辑模式
输入配置信息

auto eth0

iface eth0 inet static
# 将eth0改为静态
address 192.168.245.1
#设置IP地址
netmask 255.255.255.0
#设置子网掩码
gateway 192.168.245.x
设置网关

在这里插入图片描述
按esc退出编辑模式按:wq回车保存退出
重启后输入

ip a

即可查看ip为192.168.245.1
在终端输入

ping baidu.com

查看是否能ping通按ctrl + c结束ping
在这里插入图片描述
切换到root用户
在这里插入图片描述

修改SSH配置文件允许root登录

 vim /etc/ssh/sshd_config

将PermitRootLogin prohibit-password前面的#删除
可以在命令模式输入/PermitRootLogin prohibit-password进行搜索回车按i键直接编辑这一行
将PermitRootLogin prohibit-password改成 PermitRootLogin yes
在这里插入图片描述
按esc退出编辑模式,按:wq保存退出即可
重启ssh 使配置生效
systemctl restart ssh

设置开机自启动ssh
systemctl enable ssh
输入systemctl status ssh查看是否运行
Active一行有active表示已运行
在这里插入图片描述
下载连接工具进行连接
连接工具有Xshell,Putty,finalshell
在这里推荐使用xshell,xshell的下载
进入xshell官网https://www.xshell.com/zh/xshell/
点击下载
在这里插入图片描述
点击免费授权页面
在这里插入图片描述
输入你的姓名和邮箱,选择两者,xftp可以是我们将windows的文件传输到kali中
接下来去邮箱就可以看到下载链接
打开Xshell
在这里插入图片描述
点击新建
在这里插入图片描述
名称填KALI主机填kali的ip地址,点击连接
在这里插入图片描述
选择接受并保存
在这里插入图片描述
用户名为root

在这里插入图片描述
填写你设置的root密码点击确定
在这里插入图片描述
这就成功连接了

2.3.2 为KALI进行更新

由于kali的软件仓库在国外,更新很慢,我们需要将kali的软件源更换为国内的软件源,推荐中科大的源
编辑 /etc/apt/sources.list 文件, 在文件最前面添加以下条目:

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

更改完 sources.list 文件后请运行 sudo apt-get update 更新索引以生效。
我们已经配置了ssh可以直接通过ssh进行更换

vim  /etc/apt/sources.list 

按i键进入编辑模式,在文件的最前面粘贴

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

即可
按esc退出编辑模式,按:wq保存退出
接下来输入

apt update

更新源

┌──(root㉿192)-[~]
└─# apt update          
Get:1 https://mirrors.ustc.edu.cn/kali kali-rolling InRelease [30.6 kB]
Get:2 https://mirrors.ustc.edu.cn/kali kali-rolling/main Sources [14.7 MB]
Get:4 https://mirrors.ustc.edu.cn/kali kali-rolling/non-free Sources [129 kB]   
Get:5 https://mirrors.ustc.edu.cn/kali kali-rolling/contrib Sources [70.9 kB]
Get:6 https://mirrors.ustc.edu.cn/kali kali-rolling/main amd64 Packages [18.3 MB]
Get:3 http://kali.download/kali kali-rolling InRelease [30.6 kB]                        
Get:7 http://kali.download/kali kali-rolling/main amd64 Packages [18.3 MB]                 
Get:8 https://mirrors.ustc.edu.cn/kali kali-rolling/main amd64 Contents (deb) [42.5 MB]
Get:9 http://kali.download/kali kali-rolling/main amd64 Contents (deb) [42.5 MB]                   
Get:10 http://kali.download/kali kali-rolling/contrib amd64 Packages [108 kB]                                  
Get:11 http://kali.download/kali kali-rolling/contrib amd64 Contents (deb) [155 kB]                            
Get:12 http://kali.download/kali kali-rolling/non-free amd64 Packages [224 kB]                                 
Get:13 http://kali.download/kali kali-rolling/non-free amd64 Contents (deb) [952 kB]                           
Get:14 https://mirrors.ustc.edu.cn/kali kali-rolling/non-free amd64 Packages [224 kB]                          
Get:15 https://mirrors.ustc.edu.cn/kali kali-rolling/non-free amd64 Contents (deb) [952 kB]                    
Get:16 https://mirrors.ustc.edu.cn/kali kali-rolling/contrib amd64 Packages [108 kB]                           
Get:17 https://mirrors.ustc.edu.cn/kali kali-rolling/contrib amd64 Contents (deb) [155 kB]                     
Fetched 139 MB in 30s (4,669 kB/s)                                                                             
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
228 packages can be upgraded. Run 'apt list --upgradable' to see them.
                                                                          

接下来输入

apt upgrade 

进行更新会更新全部的软件以及系统。
在这里插入图片描述
在这里他会询问你是否要进行更新输入y回车即可

2.4搭建靶场环境

我们将通过Docker来搭建靶场
首先我们需要下载Centos7来安装Docker,下载链接https://mirrors.ustc.edu.cn/centos/7.9.2009/isos/x86_64/CentOS-7-x86_64-DVD-2009.iso
下载完成后创建虚拟机
版本选择centos7(64位)
在这里插入图片描述
在这里插入图片描述
选择ISO文件在这里插入图片描述
在这个页面选择第一项安装centos虚拟机
在这里插入图片描述
在这个页面按回车才会继续
在这里插入图片描述
语言选择英文
在这里插入图片描述
在这里选择软件源
在这里插入图片描述
在这里插入图片描述
选择安装的磁盘
在这里插入图片描述
在这里插入图片描述
选择网络
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
登录账号root
密码你在安装时设置的密码
在这里插入图片描述
配置常用软件

yum install vim curl wget lrzsz

在这里插入图片描述
在这里插入图片描述
设置静态IP

ip a

查看网卡名称
可以看到笔者的网卡名为ens33
在这里插入图片描述

在这里插入图片描述
使用vim编辑网卡文件网卡文件的名字为ifcfg-[你的网卡名称]
例如笔者的网卡文件为ifcfg-ens33
在这里插入图片描述
使用vim编辑网卡文件

vim /etc/sysconfig/network-scripts/[你的网卡文件]

在这里插入图片描述
在这里插入图片描述
保存退出重启网卡即可
重启网卡

service network restart

在这里插入图片描述
开启ssh服务

systemctl start sshd

设置ssh开机自启动

systemctl enable sshd

查看ssh的状态

systemctl status sshd

在这里插入图片描述
通过xshell连接
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
安装Docker

yum install -y docker

开启docker

systemctl start docker

设置开机自启动

systemctl enable docker

查看docker当前的状态

systemctl status docker 

在这里插入图片描述
配置docker国内镜像仓库(免费的)
打开阿里云https://cn.aliyun.com/
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["你的阿里云加速网址"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

在这里插入图片描述
输入docker info即可看到自己换的源

docker info

在这里插入图片描述

2.4.1搭建DVWA,SQL注入,Pikachu靶场

什么是DVWA
DAMN VULNERABLE WEB APPLICATION
Damn Vulnerable Web Application (DVWA)(译注:可以直译为:"该死的"不安全Web应用网站),是一个编码糟糕的、易受攻击的 PHP/MySQL Web应用程序。 它的主要目的是帮助安全专业人员在合法的环境中,测试他们的技能和工具,帮助 Web 开发人员更好地了解如何增强 Web 应用程序的安全性,并帮助学生和教师在受控的课堂环境中,了解 Web 应用程序的安全。

DVWA的具体目标是通过简单明了的界面,来演练一些最常见的 Web 漏洞,这些漏洞具有不同的难度级别。 请注意,此软件存在说明和未说明的漏洞。 这是故意的。 我们鼓励您尝试并发现尽可能多的安全问题。

警告!
DVWA十分易受攻击! 不要将其上传到您的云服务器的公共 html 文件夹或任何面向 Internet 的服务器,因为它们会受到危害。 建议使用虚拟机(如VirtualBox 或VMware),设置为NAT组网方式。在客机(guest machine)中,您可以下载并安装 XAMPP 作为 Web 服务器和数据库。

免责声明
我们不对任何人使用此应用程序 (DVWA) 的方式负责。 我们已经明确了应用程序的目的,不应被恶意使用。 我们已发出警告并采取措施防止用户将 DVWA 安装到实际生产运行的 Web 服务器上。 如果您的 Web 服务器因安装 DVWA 而受到损害,这不是我们的责任,而是上传和安装它的人的责任。

许可
该文件是Damn Vulnerable Web Application (DVWA) 的一部分。

Damn Vulnerable Web Application (DVWA)是自由软件:您可以根据自由软件基金会发布的 GNU 通用公共许可证(许可证的第 3 版,或(由您选择的)任何更高版本)重新分发和/或修改。

Damn Vulnerable Web Application (DVWA) 的发布是为了希望它有用,但不(对"有用性")做任何保证; 甚至不对适销性(MERCHANTABILITY)或针对特定目的的适用性(FITNESS FOR A PARTICULAR PURPOSE)的做任何暗示保证。 有关更多详细信息,请参阅 GNU 通用公共许可证。

您应该已经随Damn Vulnerable Web Application (DVWA)收到一份GNU通用公共许可证。 如果没有,请参阅 https://www.gnu.org/licenses/。

通过Docker拉取DVWA镜像

docker pull vulnerables/web-dvwa

在这里插入图片描述
执行

docker images

查看是否拉取成功
在这里插入图片描述
运行DVWA靶场

docker run --rm -it -p 80:80 vulnerables/web-dvwa

出现这个页面代表运行成功
在浏览器输入你的IP:80即可打开DVWA靶场
在这里插入图片描述
账号名为:admin
密码为:password
进入该页面后点击Create/Reset Database
在这里插入图片描述
点击之后会自动跳转到登录界面
输入账号密码登录即可
来到这个界面我们的DVWA靶机就已经搭建完成了
在这里插入图片描述
搭建pilachu靶场
下载pikachu靶场的文件

git clone https://github.com/zhuifengshaonianhanlu/pikachu.git

在这里插入图片描述
进入pikachu靶场文件目录

ls
cd pikachu/

在这里插入图片描述
编译pikachu文件

docker build -t "pikachu" .

在这里插入图片描述
运行pikachu
在这里插入图片描述

docker run -d -p8080:80 pikachu

在浏览器中输入http://Centos7IP:8080/即可打开
在这里插入图片描述
这里提示还没有初始化点击即可初始化
在这里插入图片描述
在这里插入图片描述
至此pikachu靶场搭建完成

2.4.2搭建OWASP靶机

OWASP靶机下载地址https://sourceforge.net/projects/owaspbwa/files/
在这里插入图片描述
由于下载地址在国外,速度很慢笔者上传到了阿里云盘(不限速),https://www.aliyundrive.com/s/79YqoGsMkWx
大家下载之后在Vmware中打开即可
在这里插入图片描述
选择.vmx文件打开
在这里插入图片描述
点击开启此虚拟机
在这里插入图片描述
选择我已复制该虚拟机
在这里插入图片描述
账号名为root,
密码为owaspbwa
登陆后执行

ip a

查看ip地址
在这里插入图片描述
这样我们的owasp靶机就已经搭建成功了。
在浏览器输入靶机地址即可访问。
在这里插入图片描述
点击+号即可查看靶场的详细信息。

2.4.3搭建Metasploitable3靶机

由于部分因素本小节暂定

第二篇 Web渗透测试

第三章 侦察阶段
主动扫描

可能会执行主动侦察扫描以收集可在定位期间使用的信息。主动扫描是对手通过网络流量探测受害者基础设施的扫描,而不是其他不涉及直接交互的侦察形式。

攻击者可能会根据他们寻求收集的信息执行不同形式的主动扫描。这些扫描也可以通过各种方式执行,包括使用网络协议的本机功能,例如 ICMP。来自这些扫描的信息可能会揭示其他形式的侦察机会(例如:搜索开放网站/域或搜索开放技术数据库)、建立运营资源(例如:开发能力或获得能力)和/或初始访问(例如:外部远程服务或利用面向公众的应用程序)。
常用的扫描工具。Appscan,nmap,nessues,Awvs

开源情报(OSINT)
3.1主动信息收集
3.1.1利用nmap进行信息收集

利用nmap对其进行端口扫描
在Kali中默认安装了Nmap,可以在终端中输入nmap查看其详细用法

┌──(kali㉿kali)-[~]
└─$ nmap
Nmap 7.92 ( https://nmap.org )
Usage: nmap [Scan Type(s)] [Options] {target specification}
TARGET SPECIFICATION:
  Can pass hostnames, IP addresses, networks, etc.
  Ex: scanme.nmap.org, microsoft.com/24, 192.168.0.1; 10.0.0-255.1-254
  -iL <inputfilename>: Input from list of hosts/networks
  -iR <num hosts>: Choose random targets
  --exclude <host1[,host2][,host3],...>: Exclude hosts/networks
  --excludefile <exclude_file>: Exclude list from file
HOST DISCOVERY:
  -sL: List Scan - simply list targets to scan
  -sn: Ping Scan - disable port scan
  -Pn: Treat all hosts as online -- skip host discovery
  -PS/PA/PU/PY[portlist]: TCP SYN/ACK, UDP or SCTP discovery to given ports
  -PE/PP/PM: ICMP echo, timestamp, and netmask request discovery probes
  -PO[protocol list]: IP Protocol Ping
  -n/-R: Never do DNS resolution/Always resolve [default: sometimes]
  --dns-servers <serv1[,serv2],...>: Specify custom DNS servers
  --system-dns: Use OS's DNS resolver
  --traceroute: Trace hop path to each host
SCAN TECHNIQUES:
  -sS/sT/sA/sW/sM: TCP SYN/Connect()/ACK/Window/Maimon scans
  -sU: UDP Scan
  -sN/sF/sX: TCP Null, FIN, and Xmas scans
  --scanflags <flags>: Customize TCP scan flags
  -sI <zombie host[:probeport]>: Idle scan
  -sY/sZ: SCTP INIT/COOKIE-ECHO scans
  -sO: IP protocol scan
  -b <FTP relay host>: FTP bounce scan
PORT SPECIFICATION AND SCAN ORDER:
  -p <port ranges>: Only scan specified ports
    Ex: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9
  --exclude-ports <port ranges>: Exclude the specified ports from scanning
  -F: Fast mode - Scan fewer ports than the default scan
  -r: Scan ports consecutively - don't randomize
  --top-ports <number>: Scan <number> most common ports
  --port-ratio <ratio>: Scan ports more common than <ratio>
SERVICE/VERSION DETECTION:
  -sV: Probe open ports to determine service/version info
  --version-intensity <level>: Set from 0 (light) to 9 (try all probes)
  --version-light: Limit to most likely probes (intensity 2)
  --version-all: Try every single probe (intensity 9)
  --version-trace: Show detailed version scan activity (for debugging)
SCRIPT SCAN:
  -sC: equivalent to --script=default
  --script=<Lua scripts>: <Lua scripts> is a comma separated list of
           directories, script-files or script-categories
  --script-args=<n1=v1,[n2=v2,...]>: provide arguments to scripts
  --script-args-file=filename: provide NSE script args in a file
  --script-trace: Show all data sent and received
  --script-updatedb: Update the script database.
  --script-help=<Lua scripts>: Show help about scripts.
           <Lua scripts> is a comma-separated list of script-files or
           script-categories.
OS DETECTION:
  -O: Enable OS detection
  --osscan-limit: Limit OS detection to promising targets
  --osscan-guess: Guess OS more aggressively
TIMING AND PERFORMANCE:
  Options which take <time> are in seconds, or append 'ms' (milliseconds),
  's' (seconds), 'm' (minutes), or 'h' (hours) to the value (e.g. 30m).
  -T<0-5>: Set timing template (higher is faster)
  --min-hostgroup/max-hostgroup <size>: Parallel host scan group sizes
  --min-parallelism/max-parallelism <numprobes>: Probe parallelization
  --min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout <time>: Specifies
      probe round trip time.
  --max-retries <tries>: Caps number of port scan probe retransmissions.
  --host-timeout <time>: Give up on target after this long
  --scan-delay/--max-scan-delay <time>: Adjust delay between probes
  --min-rate <number>: Send packets no slower than <number> per second
  --max-rate <number>: Send packets no faster than <number> per second
FIREWALL/IDS EVASION AND SPOOFING:
  -f; --mtu <val>: fragment packets (optionally w/given MTU)
  -D <decoy1,decoy2[,ME],...>: Cloak a scan with decoys
  -S <IP_Address>: Spoof source address
  -e <iface>: Use specified interface
  -g/--source-port <portnum>: Use given port number
  --proxies <url1,[url2],...>: Relay connections through HTTP/SOCKS4 proxies
  --data <hex string>: Append a custom payload to sent packets
  --data-string <string>: Append a custom ASCII string to sent packets
  --data-length <num>: Append random data to sent packets
  --ip-options <options>: Send packets with specified ip options
  --ttl <val>: Set IP time-to-live field
  --spoof-mac <mac address/prefix/vendor name>: Spoof your MAC address
  --badsum: Send packets with a bogus TCP/UDP/SCTP checksum
OUTPUT:
  -oN/-oX/-oS/-oG <file>: Output scan in normal, XML, s|<rIpt kIddi3,
     and Grepable format, respectively, to the given filename.
  -oA <basename>: Output in the three major formats at once
  -v: Increase verbosity level (use -vv or more for greater effect)
  -d: Increase debugging level (use -dd or more for greater effect)
  --reason: Display the reason a port is in a particular state
  --open: Only show open (or possibly open) ports
  --packet-trace: Show all packets sent and received
  --iflist: Print host interfaces and routes (for debugging)
  --append-output: Append to rather than clobber specified output files
  --resume <filename>: Resume an aborted scan
  --noninteractive: Disable runtime interactions via keyboard
  --stylesheet <path/URL>: XSL stylesheet to transform XML output to HTML
  --webxml: Reference stylesheet from Nmap.Org for more portable XML
  --no-stylesheet: Prevent associating of XSL stylesheet w/XML output
MISC:
  -6: Enable IPv6 scanning
  -A: Enable OS detection, version detection, script scanning, and traceroute
  --datadir <dirname>: Specify custom Nmap data file location
  --send-eth/--send-ip: Send using raw ethernet frames or IP packets
  --privileged: Assume that the user is fully privileged
  --unprivileged: Assume the user lacks raw socket privileges
  -V: Print version number
  -h: Print this help summary page.
EXAMPLES:
  nmap -v -A scanme.nmap.org
  nmap -v -sn 192.168.0.0/16 10.0.0.0/8
  nmap -v -iR 10000 -Pn -p 80
SEE THE MAN PAGE (https://nmap.org/book/man.html) FOR MORE OPTIONS AND EXAMPLES

翻译

Nmap 7.92 (https://nmap.org)
用法:nmap [扫描类型] [选项] {目标规范}
目标规格:
  可以传递主机名、IP 地址、网络等。
  例如:scanme.nmap.org、microsoft.com/24、192.168.0.1; 10.0.0-255.1-254
  -iL <inputfilename>:来自主机/网络列表的输入
  -iR <num hosts>:选择随机目标
  --exclude <host1[,host2][,host3],...>:排除主机/网络
  --excludefile <exclude_file>:从文件中排除列表
主机发现:
  -sL:列表扫描 - 简单地列出要扫描的目标
  -sn:Ping 扫描 - 禁用端口扫描
  -Pn:将所有主机视为在线——跳过主机发现
  -PS/PA/PU/PY[portlist]:到给定端口的 TCP SYN/ACK、UDP 或 SCTP 发现
  -PE/PP/PM:ICMP 回显、时间戳和网络掩码请求发现探测
  -PO[协议列表]:IP 协议 Ping
  -n/-R:从不做 DNS 解析/总是解析 [默认:有时]
  --dns-servers <serv1[,serv2],...>:指定自定义 DNS 服务器
  --system-dns:使用操作系统的 DNS 解析器
  --traceroute:跟踪每个主机的跃点路径
扫描技术:
  -sS/sT/sA/sW/sM:TCP SYN/Connect()/ACK/Window/Maimon 扫描
  -sU:UDP 扫描
  -sN/sF/sX:TCP Null、FIN 和 Xmas 扫描
  --scanflags <flags>:自定义 TCP 扫描标志
  -sI <僵尸主机[:probeport]>:空闲扫描
  -sY/sZ:SCTP INIT/COOKIE-ECHO 扫描
  -sO:IP协议扫描
  -b <FTP 中继主机>:FTP 反弹扫描
端口规格和扫描顺序:
  -p <端口范围>:只扫描指定的端口
    例如:-p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9
  --exclude-ports <端口范围>:从扫描中排除指定端口
  -F:快速模式 - 扫描比默认扫描更少的端口
  -r:连续扫描端口——不要随机化
  --top-ports <number>:扫描<number>个最常用的端口
  --port-ratio <ratio>:扫描比<ratio>更常见的端口
服务/版本检测:
  -sV:探测开放端口以确定服务/版本信息
  --version-intensity <level>:设置从 0(轻)到 9(尝试所有探针)
  --version-light:限制最可能的探测(强度 2)
  --version-all:尝试每一个探测(强度 9)
  --version-trace:显示详细的版本扫描活动(用于调试)
脚本扫描:
  -sC:相当于--script=default
  --script=<Lua scripts>: <Lua scripts> 是一个逗号分隔的列表
           目录、脚本文件或脚本类别
  --script-args=<n1=v1,[n2=v2,...]>:为脚本提供参数
  --script-args-file=filename:在文件中提供 NSE 脚本参数
  --script-trace:显示所有发送和接收的数据
  --script-updatedb:更新脚本数据库。
  --script-help=<Lua 脚本>:显示有关脚本的帮助。
           <Lua scripts> 是以逗号分隔的脚本文件列表或
           脚本类别。
操作系统检测:
  -O:启用操作系统检测
  --osscan-limit:将操作系统检测限制为有希望的目标
  --osscan-guess:更积极地猜测操作系统
时间和性能:
  需要 <time> 的选项以秒为单位,或附加“ms”(毫秒),
  's'(秒)、'm'(分钟)或 'h'(小时)到值(例如 30m)。
  -T<0-5>:设置时序模板(越高越快)
  --min-hostgroup/max-hostgroup <size>:并行主机扫描组大小
  --min-parallelism/max-parallelism <numrobes>:探针并行化
  --min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout <时间>:指定
      探测往返时间。
  --max-retries <tries>:限制端口扫描探测重传的次数。
  --host-timeout <time>: 这么长时间后放弃目标
  --scan-delay/--max-scan-delay <time>:调整探针之间的延迟
  --min-rate <number>:每秒发送数据包不低于 <number>
  --max-rate <number>:每秒发送数据包的速度不超过 <number>
防火墙/IDS 逃避和欺骗:
  -F; --mtu <val>: 分片数据包(可选地 w/给定的 MTU)
  -D <decoy1,decoy2[,ME],...>:使用诱饵隐藏扫描
  -S <IP_Address>:欺骗源地址
  -e <iface>:使用指定接口
  -g/--source-port <portnum>:使用给定的端口号
  --proxies <url1,[url2],...>: 通过 HTTP/SOCKS4 代理中继连接
  --data <hex string>:将自定义有效负载附加到发送的数据包
  --data-string <string>:将自定义 ASCII 字符串附加到发送的数据包中
  --data-length <num>:将随机数据附加到发送的数据包中
  --ip-options <options>:发送带有指定ip选项的数据包
  --ttl <val>:设置 IP 生存时间字段
  --spoof-mac <mac地址/前缀/供应商名称>:欺骗你的MAC地址
  --badsum:发送带有虚假 TCP/UDP/SCTP 校验和的数据包
输出:
  -oN/-oX/-oS/-oG <file>:输出扫描正常,XML,s|<rIpt kIddi3,
     和 Grepable 格式,分别为给定的文件名。
  -oA <basename>:一次输出三种主要格式
  -v:增加详细程度(使用 -vv 或更多以获得更好的效果)
  -d:增加调试级别(使用 -dd 或更多以获得更好的效果)
  --reason:显示端口处于特定状态的原因
  --open:仅显示打开(或可能打开)的端口
  --packet-trace:显示所有发送和接收的数据包
  --iflist:打印主机接口和路由(用于调试)
  --append-output:附加到而不是破坏指定的输出文件
  --resume <文件名>:恢复中止的扫描
  --noninteractive:通过键盘禁用运行时交互
  --stylesheet <path/URL>:将 XML 输出转换为 HTML 的 XSL 样式表
  --webxml:参考 Nmap.Org 的样式表以获得更便携的 XML
  --no-stylesheet:防止 XSL 样式表与 XML 输出相关联
杂项:
  -6:启用 IPv6 扫描
  -A:启用操作系统检测、版本检测、脚本扫描和跟踪路由
  --datadir <dirname>:指定自定义 Nmap 数据文件位置
  --send-eth/--send-ip:使用原始以太网帧或 IP 数据包发送
  --privileged:假设用户拥有完全特权
  --unprivileged:假设用户缺乏原始套接字权限
  -V:打印版本号
  -h:打印此帮助摘要页。
例子:
  nmap -v -A scanme.nmap.org
  nmap -v -sn 192.168.0.0/16 10.0.0.0/8
  nmap -v -iR 10000 -Pn -p 80
有关更多选项和示例,请参见手册页 (https://nmap.org/book/man.html)

利用namp绕过防火墙

将nmap的结果导出

3.1.2利用Nessues进行漏洞扫描
3.1.3利用Wireshark对数据包进行分析
3.2被动信息收集
3.2.1什么是被动信息收集
3.2.2利用GoogleHacking进行被动信息收集
3.2.3利用Shodan进行被动信息收集
3.2.4利用Maltego对目标进行收集
3.3利用社会工程学对目标进行信息收集
3.3.1什么是社会工程学
3.3.2常见的社会工程学攻击方式
3.3.3从社交账户中寻找蛛丝马迹
3.3.4利用SET工具克隆对方的网站获取管理员信息
3.3.5实战利用社会工程学查找目标的详细信息
3.3.6实战利用Kali对网络进行攻击进入内网

第四章 对网站的渗透

对于网站渗透应知的知识
4.1常见的网站漏洞
4.2怎样进行SQL注入
4.3利用文件上传漏洞进行渗透
4.4怎样进行XSS漏洞注入
4.5怎样进行XXE漏洞注入
4.6对网站中间件进行攻击
4.7实战利用Apache log4j漏洞进行攻击

第三篇 对物理机的渗透测试

第五章 Metasploit漏洞利用框架

第六章 木马的制作与免杀

第七章 对无线网络的攻击

第八章 针对服务器的压力测试

第九章 利用Python编写渗透工具

第十章 网络安全的前沿项目

10.1内生安全
10.2零信任网络
  • 22
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值