网络攻击(一)--安全渗透简介
1. 安全渗透概述
- 目标
- 了解渗透测试的基本概念
- 了解渗透测试从业人员的注意事项
1.1. 写在前面的话
在了解渗透测试之前,我们先看看,信息安全相关的法律是怎么样的
-
中华人民共和国网络安全法
-
《中华人民共和国网络安全法》由全国人民代表大会常务委员会于2016年11月7日发布,自2017年6月1日起施行。
-
中华人民共和国网络安全法 -- 中国人大网官方版本
-
第四十四条 任何个人和组织不得窃取或者以其他非法方式获取个人信息,不得非法出售或者非法向他人提供个人信息。
-
第六十四条 第二款 违反本法第四十四条规定,窃取或者以其他非法方式获取、非法出售或者非法向他人提供个人信息,尚不构成犯罪的,由公安机关没收违法所得,并处违法所得一倍以上十倍以下罚款,没有违法所得的,处一百万元以下罚款。
-
-
《中华人民共和国刑法》
-
《中华人民共和国刑法(修订)》由1997年3月14日第八届全国人民代表大会第五次会议修订,1997年3月14日中华人民共和国主席令第八十三号公布,自1997年10月1日起施行。
-
《中华人民共和国刑法修正案(九)》由2015年8月29日第十二届全国人民代表大会常务委员会第十六次会议通过,自2015年11月1日起施行。(对285条,286条有修订)
-
第二百八十五条: 非法获取计算机信息系统数据罪, 非法获取计算机信息系统数据、非法控制计算机信息系统罪,是指违反国家规定,侵入国家事务、国防建设、尖端科学技术领域以外的计算机信息系统或者采用其他技术手段,获取该计算机信息系统中存储、处理或者传输的数据,情节严重的行为。
-
第二百八十六条:破坏计算机信息系统罪,破坏计算机信息系统罪是指违反国家规定,对计算机信息系统功能或计算机信息系统中存储、处理或者传输的数据和应用程序进行破坏,或者故意制作、传播计算机病毒等破坏性程序,影响计算机系统正常运行,后果严重的行为。
-
1.2. 渗透测试介绍
渗透测试是一门技术,一门用来模拟黑客的攻击方法,对信息系统进行安全评估的测试技术
关于渗透测试(penetration test), 目前并没有一个标准的定义,国外一些安全组织达成共识的通用说法是:渗透测试是通过模拟恶意黑客的攻击方式,用来评估计算机网络系统安全的一种评估手段。
我们可以从如下几点进行理解:
- 渗透测试是一门技术
- 渗透测试是一门用来进行安全态势评估的测试技术t渗透测试这门工作包括善用渗透工具(利用现成的)、开发渗透测试程序(脚本)(开发定制的)等等。
- 由于是模拟恶意黑客的攻击方法, 所以渗透测试带有某种“破坏性”, 要注意风险规避
- 同样是模拟恶意黑客的攻击行为,往往充满了什么色彩
还有的定义给出:渗透测试(Penetration Testing)是一种通过模拟攻击者的技术与方法,挫败目标系统的安全控制措施并获得控制访问权的安全测试方法
-
如何规避法律风险
很简单,获取渗透测试主机的有效授权。
小结
渗透测试是一门技术,一门用于对信息系统进行安全评估的测试技术。 技术本身没有什么正义、邪恶之分。 关键是看你怎么用。
你被授权进行渗透测试,那你就是在保护地球, 维护世界和平, 主持武林正义。。。。
你没有被授权, 或者是没有这种法律意识, 那么。。。。
1.3. PTES标准中的渗透测试阶段
PTES:Penetration Testing Execution Standard, 渗透测试执行标准,已被安全业界中几个领军企业所采纳。
官网地址:The Penetration Testing Execution Standard
PTES标准中的渗透测试阶段是用来定义渗透测试过程,并确保客户组织能够以一种标准化的方式来扩展一次渗透测试,而无论是由谁来执行这种类型的评估。
-
前期交互阶段
-
情报搜集阶段
-
威胁建模阶段
-
漏洞分析阶段
-
渗透攻击阶段
-
后渗透攻击阶段
-
报告阶段
我们重点关注 情报搜集和渗透攻击, 其余前期交互就是“聊天”, 威胁建模和漏洞分析就是确定“从哪儿攻击”, 内容“物虚”较多。实操没有。大家作为简单了解该阶段内容即可。
2. Kali Linux
- 目标
- 了解渗透测试人员的工作平台-kali linux
- 知道kali linux的安装方法。
2.1. Kali Linux 介绍
- Kali Linux是一个基于Debian的Linux发行版,
-
集成了300多个安全和取证方面的相关工具, 专为渗透测试人员准备,
-
Kali Linux的前身是BackTrack Linux发行版。
-
Back Track是基于Ubuntu的一个Linux发行版。(补充: ubuntu也是基于Debian的Linux发型版)
-
它由Offensive Security Ltd维护和资助,最先由Offensive Security的MatiAharoni和Devon Kearns通过重写Back Track来完成。
-
Kali Linux有32位和64位的镜像,可用于x86指令集。同时它还有基于ARM架构的镜像,可用于树莓派和三星的ARM Chromebook。用户可通过硬盘、Live CD或Live USB来运行Kali Linux操作系统。
2.2. 安装Kali Linux
如今Linux的安装过程已经非常“傻瓜”化,只需要轻点几下鼠标,就能够完成整个系统的安装。Kali Linux操作系统的安装也非常简单。本节将分别介绍安装Kali Linux至硬盘、USB驱动器、树莓派、VMware Workstation和Womuare Tods的详细过程。
2.2.1. ISO下载
安装到硬盘是最基本的操作之一。该工作的实现可以让用户不使用DVD,而正常的运行Kali Linux。在安装这个全新的操作系统之前,需要做一些准备工作。例如,从哪里得到Linux?对电脑配置有什么要求?……下面将逐一列出这些要求。
- Kali Linux安装的磁盘空间的最小值是8GB。为了便于使用,这里推荐至少25GB去保存附加程序和文件。
- 内存最好为512MB以上。
- Kali Linux的下载地址,下载界面如图1.1所示。
下载完ISO文件后, 选中安装virtualbox虚拟机管理管理软件。 关于虚拟机安装步骤,本课程就不再详述,课下探讨。
2.2.2. 下载虚拟机镜像
当然也可以直接下载基于virtualbox的虚拟机镜像, 如下图所示:
建议选择64位虚拟机镜像, 如果你选用VMware的话,也可以直接下载VMware虚拟机镜像
2.2.3. 开机界面
Kali Linux系统开机运行后, 界面如下图所示:
点击做上角的应用程序, 会列出如下的渗透测试工具, 见下图
2.3. Kali Linux 系统更新
当用户使用一段时间以后,可能对总是在没有任何变化的系统中工作感到不满,而是渴望能像在Windows系统中一样,不断对自己的Linux进行升级。另外,Linux本身就是一个开放的系统,每天都会有新的软件出现,Linux发行套件和内核也在不断更新。在这样的情况下,学会对Linux进行升级就显得非常迫切了。本节将介绍Kali的更新与升级。
更新与升级Kali的具体操作步骤如下所示。
- 执行lsb_release -a命令查看当前操作系统的所有版本信息
root@Kali-Panda:~# lsb_release -a
No LSB modules are available.
Distributor ID: Kali
Description: Kali GNU/Linux Rolling
Release: kali-rolling
Codename: kali-rolling
- 配置软件源, 国内建议选择“中科大”的源, (综合来书,中科大的源还是比较靠谱)
root@Kali-Panda:~# cat /etc/apt/sources.list.d/ustc.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
- 添加完软件源,需要更新软件包列表后才可以使用。
更新软件包列表,执行命令如下所示:
root@Kali-Panda:~# apt-get update
- 软件更新(软件包升级)
root@Kali-Panda:~# apt-get dist-upgrade root@Kali-Panda:~# apt-get dist-upgrade
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
正在计算更新... 完成
下列软件包是自动安装的并且现在不需要了:acccheck 。。。
使用'apt autoremove'来卸载它(它们)。
y下列软件包将被【卸载】:gnome-shell-extension-workspacestodock 。。。
下列【新】软件包将被安装:apt-config-icons bolt clang-6.0。。。。您希望继续执行吗? [Y/n]
键入y后,选择升级软件包。
2.4. Kali Linux 基本设置
在前面学习了Kali Linux操作系统的安装,安装成功后就可以登录到系统了。登录系统后,就可以使用各种的渗透工具对计算机做测试。为了方便后面章节内容的学习,本节将介绍一下Kali Linux的基本设置。
- 启动默认的服务
Kali Linux自带了几个网络服务,它们是非常有用的。但是默认是禁用的。在这里,将介绍使用各种方法设置并启动每个服务。
- 启动Secure Shell(SSH)服务
启动Secure Shell(SSH)服务。执行命令如下所示:
root@Kali-Panda:~# systemctl start ssh.service
看到以上的输出表示SSH服务已经启动。为了确认服务的端口是否被监听,执行如下所示的命令:
root@Kali-Panda:~# netstat -apn | grep ":22"
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 2507/sshd
tcp6 0 0 :::22 :::* LISTEN 2507/sshd
当然也可以用systemclt查看ssh的状态
root@Kali-Panda:~# systemctl status ssh.service
● ssh.service - OpenBSD Secure Shell serverLoaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: disabled)Active:** active (running)** since Mon 2018-07-23 12:28:00 CST; 4min 21s agoProcess: 593 ExecReload=/bin/kill -HUP $MAINPID (code=exited, status=0/SUCCESS)Process: 591 ExecReload=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)Process: 2506 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)Main PID: 2507 (sshd)Tasks: 1 (limit: 1916)Memory: 1.8MCGroup: /system.slice/ssh.service└─2507 /usr/sbin/sshd -D7月 23 12:28:00 Kali-Panda systemd[1]: Starting OpenBSD Secure Shell server...
7月 23 12:28:00 Kali-Panda sshd[2507]: Server listening on 0.0.0.0 port 22.
7月 23 12:28:00 Kali-Panda sshd[2507]: Server listening on :: port 22.
7月 23 12:28:00 Kali-Panda systemd[1]: Started OpenBSD Secure Shell server.
- 停止ssh服务
停止一个服务的语法格式:systemctl stop <servicename>
表示用户想要停止的服务。
停止ssh服务,执行命令如下所示:
root@Kali-Panda:~# systemctl stop ssh.service
可以通过查看ssh.service的状态信息, 已经变为inactive (dead)
, 可以看到ssh服务停止成功。
root@Kali-Panda:~# systemctl status ssh.service
● ssh.service - OpenBSD Secure Shell serverLoaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: disabled)Active: inactive (dead) since Mon 2018-07-23 12:35:07 CST; 17s agoProcess: 593 ExecReload=/bin/kill -HUP $MAINPID (code=exited, status=0/SUCCESS)Process: 591 ExecReload=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)Process: 2507 ExecStart=/usr/sbin/sshd -D $SSHD_OPTS (code=exited, status=0/SUCCESS)Process: 2506 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)Main PID: 2507 (code=exited, status=0/SUCCESS)7月 23 12:28:00 Kali-Panda systemd[1]: Starting OpenBSD Secure Shell server...
7月 23 12:28:00 Kali-Panda sshd[2507]: Server listening on 0.0.0.0 port 22.
7月 23 12:28:00 Kali-Panda sshd[2507]: Server listening on :: port 22.
7月 23 12:28:00 Kali-Panda systemd[1]: Started OpenBSD Secure Shell server.
7月 23 12:35:07 Kali-Panda systemd[1]: Stopping OpenBSD Secure Shell server...
7月 23 12:35:07 Kali-Panda sshd[2507]: Received signal 15; terminating.
7月 23 12:35:07 Kali-Panda systemd[1]: Stopped OpenBSD Secure Shell server.
- 设置服务开机启动
设置服务开机启动的语法格式如下所示: systemctl enable <servicename>
表示用户想要开机启动的服务。
设置SSH服务开启自启动:
root@Kali-Panda:~# systemctl enable sshd.service
Synchronizing state of ssh.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable ssh
- 查看当前系统开机自启列表
root@Kali-Panda:~# systemctl list-unit-files | grep enabled
accounts-daemon.service enabled
anacron.service enabled
autovt@.service enabled
binfmt-support.service enabled
console-setup.service enabled
...
ssh.service enabled
sshd.service enabled
2.5. 随堂练习
- 判断题: 传统中所用的渗透测试平台Back Track 现在可以用Kali Linux替代 ()
3. 前期交互阶段
- 目标
- 了解前期交互阶段需要完成的工作
3.1. 前期交互阶段的工作
前期交互阶段通常是由你与客户组织进行讨论,来确定渗透测试的范围和目标。
这个阶段最为关键的是需要让客户组织明确清晰地了解渗透测试将设计哪些目标,而这个阶段也为你提供了机会,来说服客户走出全范围渗透测试的理想化远景,选择更加现实可行的渗透测试目标来进行实际实施。
简单的说,就是解决一个问题: 我N月(年、月、日)就干完这N项的活儿,您老到时给钱儿痛快点。
这个阶段的工作把评估项目的每一个需求参数都落实到项目的测试计划、限定因素、业务指标、和进度安排中。
-
收集需求: 以口头交流和书面询问的形式,积累目标环境的有关信息
-
筹划工作: 测试计划的准备工作收许多因素的影响, 包括合同协议、成本分析、资源分配等
-
边界分析: 明确渗透测试任务限制因素的工作
-
明确业务指标: 在渗透测试项目中,该阶段工作使技术目标与业务目标保持一致。
-
项目管理和统筹调度: 此过程旨在使渗透测试过程中的每个步骤与其他步骤形成时间上的配合
相关文章:

网络攻击(一)--安全渗透简介
1. 安全渗透概述 目标 了解渗透测试的基本概念了解渗透测试从业人员的注意事项 1.1. 写在前面的话 在了解渗透测试之前,我们先看看,信息安全相关的法律是怎么样的 中华人民共和国网络安全法 《中华人民共和国网络安全法》由全国人民代表大会常务委员会…...

视频号小店资金需要多少?
我是电商珠珠 视频号团队于22年7月发展了自己的电商平台-视频号小店,相比于抖音电商来讲,可以有效的将公域流量转化为私域,对于商家来说,是一件利好的事情。 可以有效的提高客户的黏性,增加店铺回头客。 有很多想要…...

机器学习项目精选 第一期:超完整数据科学资料合集
大噶吼,不说废话,分享一波我最近看过并觉得非常硬核的资源,包括Python、机器学习、深度学习、大模型等等。 1、超完整数据科学资料合集 地址:https://github.com/krishnaik06/The-Grand-Complete-Data-Science-Materials Pytho…...

档案数字化管理可以提供什么服务?
档案数字化管理提供了便捷、高效和安全的档案管理服务,帮助组织更好地管理和利用自己的档案资源。 具体来说,专久智能档案数字化管理可以提供以下服务: 1. 档案扫描和数字化:将纸质档案通过扫描仪转换为数字格式,包括文…...

第一周:AI产品经理跳槽准备工作
一、筛选意向行业 因素1:行业发展情况 1. 行业发展情况和政策 待补充 2. AI人才市场情况 报告下载:待补充 2023年2⽉,ChatGPT爆⽕在脉脉引发各界搜索和热议,当⽉,“AIGC”、“⼈⼯智能”、“ChatGPT”、“⼤模型”等相关词汇搜索指数达到459.31,同⽐增⻓超5.4倍,内…...
基于核心素养高中物理“深度学习”策略及其教学研究课题论证设计方案
目录 一、课题的提出及意义 二、课题的核心概念及其界定...
通过 Java 17、Spring Boot 3.2 构建 Web API 应用程序
本心、输入输出、结果 文章目录 通过 Java 17、Spring Boot 3.2 构建 Web API 应用程序前言Spring Boot 3.2 更新了哪些内容Java 17 新特性构建步骤花有重开日,人无再少年实践是检验真理的唯一标准通过 Java 17、Spring Boot 3.2 构建 Web API 应用程序 编辑:简简单单 Online…...

go原生http开发简易blog(一)项目简介与搭建
文章目录 一、项目简介二、项目搭建前置知识三、首页- - -前端文件与后端结构体定义四、配置文件加载五、构造假数据- - -显示首页内容 代码地址:https://gitee.com/lymgoforIT/goblog 一、项目简介 使用Go原生http开发一个简易的博客系统,包含一下功能…...

[足式机器人]Part4 南科大高等机器人控制课 Ch09 Dynamics of Open Chains
本文仅供学习使用 本文参考: B站:CLEAR_LAB 笔者带更新-运动学 课程主讲教师: Prof. Wei Zhang 南科大高等机器人控制课 Ch09 Dynamics of Open Chains 1. Introduction1.1 From Single Rigid Body to Open Chains1.2 Preview of Open-Chain …...

概率论复习
第一章:随机概率及其概率 A和B相容就是 AB 空集 全概率公式与贝叶斯公式: 伯努利求概率: 第二章:一维随机变量及其分布: 离散型随机变量求分布律: 利用常规离散性分布求概率: 连续性随机变量…...

ES客户端RestHighLevelClient的使用
1 RestHighLevelClient介绍 默认情况下,ElasticSearch使用两个端口来监听外部TCP流量。 9200端口:用于所有通过HTTP协议进行的API调用。包括搜索、聚合、监控、以及其他任何使用HTTP协议的请求。所有的客户端库都会使用该端口与ElasticSearch进行交互。…...
GitHub入门命令介绍
GitHub是当今最受欢迎的代码托管平台之一,它提供了强大的版本控制和协作功能。 对于初学者来说,熟悉GitHub的基本命令非常重要。下面介绍一些常用的GitHub命令。 一、安装Git 1. Windows系统:在Windows上使用GitHub之前,您需要先…...

EasyExcel 简单导入
前边写过使用easyexcel进行简单、多sheet页的导出。今天周日利用空闲写一下对应简单的导入。 重点:springboot、easyExcel、桥接模式; 说明:本次使用实体类student:属性看前边章节内容; 1、公共导入service public …...
Termux搭建nodejs环境
安装nodejs ~ $ pkg install nodejs使用http-server搭建文件下载服务 先安 http-server 并启动 # 安装 http-server 包 ~ $ npm install -g http-server# 启动 http-server 服务 ~ $ http-server Starting up http-server, serving ./http-server version: 14.1.1http-serve…...

喜报丨迪捷软件入选2023年浙江省信息技术应用创新典型案例
12月6日,浙江省经信厅公示了2023年浙江省信息技术应用创新典型案例入围名单。本次案例征集活动,由浙江省经信厅、省密码管理局、工业和信息化部网络安全产业发展中心联合组织开展,共遴选出24个优秀典型解决方案,迪捷软件“基于全数…...
C语言连接zookeeper客户端(不能完全参考官网教程)
准备过程 1.通过VStudio 远程连接linux的开发环境; 2.g环境,通过MingW安装; 3.必须要安装好pthread.h的环境,不管是windows端(linux 可视化端开发就不管这个)还是linux端; 4.需要准备zookeeper…...
python排序
0. 背景 Python排序功能十分强大,可以进行基本排序或自定义排序。Python中提供两种不同的排序方法对各种各样的数据类型进行排序。 1. 使用sorted()函数排序 排序主要是对相同数据类型的元素进行的,包括数值和字符串两种数据类型。 1.1 对数值进行排…...

【Spark精讲】Spark Shuffle详解
目录 Shuffle概述 Shuffle执行流程 总体流程 中间文件 ShuffledRDD生成 Stage划分 Task划分 Map端写入(Shuffle Write) Reduce端读取(Shuffle Read) Spark Shuffle演变 SortShuffleManager运行机制 普通运行机制 bypass 运行机制 Tungsten Sort Shuffle 运行机制…...

【C++初阶】八、初识模板(泛型编程、函数模板、类模板)
相关代码gitee自取: C语言学习日记: 加油努力 (gitee.com) 接上期: 【C初阶】七、内存管理 (C/C内存分布、C内存管理方式、operator new / delete 函数、定位new表达式) -CSDN博客 目录 一 . 泛型编程 二 . 函数模板 函数模板…...

珠海数字孪生赋能工业智能制造,助力制造业企业数字化转型
珠海数字孪生赋能工业智能制造,助力制造业企业数字化转型。数字孪生是利用物理模型、传感器更新及运行历史数据,集成多物理量、多尺度的仿真过程。巨蟹数科数字孪生通过构建物理车间与虚拟车间之间的有效映射并实时反馈机制,实现物理车间与虚…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析
今天聊的内容,我认为是AI开发里面非常重要的内容。它在AI开发里无处不在,当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗",或者让翻译模型 "将这段合同翻译成商务日语" 时,输入的这句话就是 Prompt。…...
SciencePlots——绘制论文中的图片
文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了:一行…...

循环冗余码校验CRC码 算法步骤+详细实例计算
通信过程:(白话解释) 我们将原始待发送的消息称为 M M M,依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)(意思就是 G ( x ) G(x) G(x) 是已知的)࿰…...
vue3 定时器-定义全局方法 vue+ts
1.创建ts文件 路径:src/utils/timer.ts 完整代码: import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...

深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南
🚀 C extern 关键字深度解析:跨文件编程的终极指南 📅 更新时间:2025年6月5日 🏷️ 标签:C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言🔥一、extern 是什么?&…...

【Oracle】分区表
个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...

html-<abbr> 缩写或首字母缩略词
定义与作用 <abbr> 标签用于表示缩写或首字母缩略词,它可以帮助用户更好地理解缩写的含义,尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时,会显示一个提示框。 示例&#x…...

GitFlow 工作模式(详解)
今天再学项目的过程中遇到使用gitflow模式管理代码,因此进行学习并且发布关于gitflow的一些思考 Git与GitFlow模式 我们在写代码的时候通常会进行网上保存,无论是github还是gittee,都是一种基于git去保存代码的形式,这样保存代码…...

HubSpot推出与ChatGPT的深度集成引发兴奋与担忧
上周三,HubSpot宣布已构建与ChatGPT的深度集成,这一消息在HubSpot用户和营销技术观察者中引发了极大的兴奋,但同时也存在一些关于数据安全的担忧。 许多网络声音声称,这对SaaS应用程序和人工智能而言是一场范式转变。 但向任何技…...
用鸿蒙HarmonyOS5实现中国象棋小游戏的过程
下面是一个基于鸿蒙OS (HarmonyOS) 的中国象棋小游戏的实现代码。这个实现使用Java语言和鸿蒙的Ability框架。 1. 项目结构 /src/main/java/com/example/chinesechess/├── MainAbilitySlice.java // 主界面逻辑├── ChessView.java // 游戏视图和逻辑├──…...