目录
[2.、弱口令(Weak Password)](#2.、弱口令(Weak Password))
[3、木马(Trojan Horse)](#3、木马(Trojan Horse))
[4、拒绝服务攻击(Denial of Service, DoS)](#4、拒绝服务攻击(Denial of Service, DoS))
[6、防火墙 (Firewall):](#6、防火墙 (Firewall):)
[7、恶意软件 (Malware):](#7、恶意软件 (Malware):)
[8、漏洞 (Vulnerability):](#8、漏洞 (Vulnerability):)
12、漏洞扫描 (Vulnerability Scanning)
[14、双因素认证 (Two-factor Authentication, 2FA):](#14、双因素认证 (Two-factor Authentication, 2FA):)
[4.1、ssh 弱口令漏洞](#4.1、ssh 弱口令漏洞)
前言
博主现从事网络安全行业,在工作之余自己从网上、书籍以及自己总结出一些关于网络安全的知识,特分享给大家。本文采用理论和实践相结合方式进行讲解,首先对网络安全进行理论介绍,最后再结合一个安全渗透小案例实践讲解;供从事计算机软件、网络信息安全领域以及网络安全爱好者学习、交流。
一、什么是网络安全?
网络安全,通常指计算机网络的安全,实际上也可以指计算机通信网络的安全。计算机通信网络是将若干台具有独立功能的计算机通过通信设备及传输媒体互连起来,在通信软件的支持下,实现计算机间的信息传输与交换的系统。而计算机网络是指以共享资源为目的,利用通信手段把地域上相对分散的若干独立的计算机系统、终端设备和数据设备连接起来,并在协议的控制下进行数据交换的系统。计算机网络的根本目的在于资源共享,通信网络是实现网络资源共享的途径,因此,计算机网络是安全的,相应的计算机通信网络也必须是安全的,应该能为网络用户实现信息交换与资源共享。
安全的基本含义:客观上不存在威胁,主观上不存在恐惧。即客体不担心其正常状态受到影响。可以把网络安全定义为:一个网络系统不受任何威胁与侵害,能正常地实现资源共享功能。要使网络能正常地实现资源共享功能,首先要保证网络的硬件、软件能正常运行,然后要保证数据信息交换的安全。
总结:网络安全是指系统或网络架构中存在的一种缺陷,该缺陷可能被攻击者利用,从而导致未经授权的访问、数据泄露、服务中断或其他恶意行为。
二、网络安全的重要性
网络安全的重要性不言而喻,它直接关系到个人、组织甚至国家的信息资产和运行安全。随着信息技术的快速发展,网络安全问题也变得日益复杂和普遍。以下是几个网络安全的重要性方面:
1、保护数据安全和隐私
网络安全确保数据在传输、存储和处理过程中不被未授权的访问、修改或泄露。这对于个人的隐私保护以及组织的商业机密至关重要。
2、防止服务中断和数据丢失
网络攻击可能导致服务中断、系统崩溃或数据丢失,给个人和企业造成巨大损失。良好的网络安全措施可以降低这些风险。
3、防止经济损失和法律责任
网络攻击可能导致财务损失、诉讼风险以及信誉受损,影响企业的经济健康和可持续发展。
4、维护公共安全和国家安全
网络安全对于保护国家的基础设施、关键信息基础和国防系统至关重要。政府和国家机构需要确保网络安全,以防范敌对国家和非国家行为的威胁。
5、提升技术发展和创新
良好的网络安全环境有助于鼓励企业和个人投资于新技术的开发和应用,促进经济的增长和社会的进步。
综上所述,网络安全不仅仅是技术问题,更是社会、经济和国家安全的重要保障。通过合理的网络安全策略和实施措施,可以有效应对不断演变的网络威胁,确保信息社会的稳定和可持续发展。
三、网络安全等级保护
根据上章节网络安全的重要性按照重要性等级分级别进行保护的一种工作,当网络系统在国家安全、经济建设、社会生活中的重要程度,以及网络系统遭到破坏后,对国家安全、社会秩序、公共利益及公民、法人和其他组织的合法权益级别划分。分为五个等级,其中一级最低,五级最高,如下图所示:
1、第一级(自主保护级)
会对公民、法人和其他组织的合法权益造成损害,但不损害国家安全、社会秩序和公共利益;
2、第二级(指导保护级)
会对公民、法人和其他组织的合法权益产生严重损害,或者对社会秩序和公共利益造成损害,但不损害国家安全;
3、第三级(监督保护级)
会对社会秩序和公共利益造成严重损害,或者对国家安全造成损害;
4、第四级(强制保护级)
会对社会秩序和公共利益造成特别严重损害,或者对国家安全造成严重损害;
5、第五级(专控保护级)
会对国家安全造成特别严重损害。
四、网络安全层次
网络安全通常可以分为不同的层次或者领域,每个层次都涉及不同的技术和实践方法。以下是一般情况下网络安全的几个层次:
1、物理安全层次
物理安全是指保护网络设备、服务器和数据中心免受物理上的入侵或破坏。包括使用门禁系统、摄像头监控、机柜锁定等措施。
2、网络安全层次
网络安全关注网络基础设施(如路由器、防火墙)、协议(如SSL/TLS)、以及网络流量的安全性和完整性。常见的措施包括防火墙设置、入侵检测系统(IDS)、虚拟专用网络(VPN)等。
3、主机安全层次
主机安全是指保护个别计算机系统免受未经授权的访问、恶意软件和数据泄露。包括操作系统的更新、安全配置、反病毒软件的安装等。
4、应用程序安全层次
应用程序安全涉及开发和部署安全的应用程序,以防止应用层面的攻击,如跨站点脚本(XSS)、SQL注入、跨站请求伪造(CSRF)等。开发安全编码实践和安全审查是关键措施。
5、数据安全层次
数据安全包括保护数据的机密性、完整性和可用性,确保数据不被未经授权的访问或篡改。加密、访问控制和备份是常见的数据安全措施。
6、人员安全层次
人员安全涉及培训员工和用户,提高他们对安全威胁的认识,避免社会工程学攻击和内部威胁。
五、网络安全的属性
1、保密性
1.1、定义
确保数据在传输过程中不被未授权的实体或进程窃取,就算被拦截窃取也无法获取真实的内容信息。如下图所示:
1.2、示例
数据发送端首先将明文数据"hello"进行加密成"6F8D271218B8A",然后传输到接收端,接收端再将接收到的密文"6F8D271218B8A"进行解密得出明文"Hello",在这过程中就算传输过程被截取的也是密文数据,截取者无法获取真实的内容信息,以达到保证数据保密性的作用。
1.3、解决方案
对于数据保密性常见的处理方法是使用https安全协议传输,将传输内容使用特定加密算法进行加密,如对称加密、非对称加密等。
2、完整性
2.1、定义
保证数据在传输过程中内容是完整的,未被篡改,如下图所示:
2.2、示例
数据发送端将内容"Hello"发送出去,在数据传输过程中黑客将内容修改为"Good Morning.",在数据接收端收到的内容为修改之后的"Good Morning.",这样就会造成数据完整性不一致的问题。
2.3、解决方案
对于数据完整性常见的处理方法有使用签名验证。
3、可用性
3.1、定义
就是确保对已授权的实体提供服务,同时拒绝未授权的实体的请求,如下图所示:
3.2、示例
当未授权的用户A对系统进行访问时系统将拒绝请求,已授权的用户B进来访问时则进行响应接收请求。
3.3、解决方案
对于数据可用性常见的处理方法就是通过访问授权认证。
4、可控性
4.1、定义
可控性是人们对信息的传播路径、范围及其内容所具有的控制能力,即不允许不良内容通过公共网络进行传输,使信息在合法用户的有效掌控之中,如下图所示:
4.2、示例
当合法内容和非法内容同时经过系统时只要合法内容可以供用户访问,非法内容则会被拦截掉。
4.3、解决方案
对于可控性常见的处理方法是在服务中加入审视机制。
5、不可抵赖性
5.1、定义
不可抵赖性也称不可否认性。在信息交换过程中,确信参与方的真实同一性,即所有参与者都不能否认和抵赖曾经完成的操作和承诺。简单地说,就是发送信息方不能否认发送过信息,信息的接收方不能否认接收过信息。利用信息源证据可以防止发信方否认已发送过信息,利用接收证据可以防止接收方事后否认已经接收到信息。如下图所示:
5.2、示例
用户的请求在经过安全网关时会记录一份到审计日志中,以作为后续审计中的调查依据。
5.3、解决方案
对于不可抵赖性常见的处理方法是加入审计日志、使用数据签名。
六、网络安全术语
1、后门(Backdoor)
在网络安全领域中是指一种故意留下的安全漏洞或秘密访问点,允许未经授权的访问或控制系统。后门通常由软件开发人员或恶意攻击者利用,目的可能是为了方便远程访问系统或绕过正常的认证和安全控制。这种安全漏洞可能会被利用来窃取敏感信息、安装恶意软件或者控制受感染的系统。
2.、弱口令(Weak Password)
是指易于被破解或猜测的密码,通常由于密码简单、短小或者缺乏复杂性而容易被攻击者利用。比如密码设置成123456、abcd等。
3、木马(Trojan Horse)
木马指的是伪装成正常程序的的程序,它可以捆绑在任何正常的软件中,看起来让你感兴趣去打开,当运行后回在你的电脑上安装客户端或者执行特定的任务。之后黑客就能轻松地利用正在运行的木马程序来取得你的电脑控制权。
4、拒绝服务攻击(Denial of Service, DoS)
是一种恶意的网络攻击,旨在使目标系统无法提供正常的服务或资源给合法用户。攻击者通常通过消耗目标系统的资源(如带宽、处理能力或存储空间)来实现这一目的,从而使得合法用户无法访问或使用该系统的服务。
5、WebShell
WebShell就是以.asp、.php、.jsp或者.cgi等网页文件形式存在的一种命令执行环境,也可以将其称作是一种网页后门。
6、防火墙 (Firewall):
监控和控制网络流量的安全系统,防止未经授权的访问和有害数据包的传输。
7、恶意软件 (Malware):
设计用来对计算机系统造成损害、偷窃数据或进行未经授权操作的软件,如病毒、木马、间谍软件等。
8、漏洞 (Vulnerability):
系统或应用程序中的安全弱点,可能被攻击者利用来实施攻击或未经授权访问。
9、加密 (Encryption)
将信息转换为难以理解或解析的形式,以保护信息的机密性和完整性。
10、身份验证 (Authentication)
确认用户或设备身份的过程,以确保只有授权用户可以访问系统或数据。
11、授权 (Authorization)
确定用户或设备被允许访问系统、资源或数据的过程。
12、漏洞扫描 (Vulnerability Scanning)
自动检测系统中可能存在的安全漏洞和弱点的过程,以便及时修复和加固。
13、社会工程 (Social Engineering)
通过欺骗或利用人类心理弱点来获取未经授权的访问或信息的攻击方式。
14、双因素认证 (Two-factor Authentication, 2FA):
使用两个不同的身份验证因素(如密码和手机验证码)来确认用户身份,提高账户安全性。
15、钓鱼(Phishing)
是主通过欺骗手段获取个人或组织的敏感信息,如用户名、密码、信用卡信息等。攻击者通常会伪装成可信任的实体,如银行、电子邮件提供者或社交媒体平台,诱导受害者点击恶意链接或打开附件,进而泄露信息或安装恶意软件。
七、常见的攻击类别
按攻击的类别分为主动攻击和被动攻击,如下图所示:
1、主动攻击
这类攻击是指攻击者直接采取措施来尝试获取未经授权的信息或访问权限。主动攻击通常是有意识和有目的的,攻击者会采取积极的措施来渗透目标系统或网络,例如使用恶意软件、利用漏洞进行入侵、执行钓鱼攻击等。这些攻击往往需要攻击者积极介入和操作,以达成其目的。
2、被动攻击
相对而言,被动攻击通常是更隐蔽和不易察觉的。攻击者不直接与目标系统交互,而是通过监听、监视或收集信息来搜集有价值的数据或获取目标系统的弱点。被动攻击可能包括网络监听、流量分析、信息收集等技术手段,攻击者不会主动发起交互或操作,而是依赖系统或网络中的传输和交换来获取所需信息。
总结:主动攻击通常更直接和具有破坏性,需要实施有效的安全策略和技术来防御。而被动攻击则需要依赖于监测和检测技术,以及数据加密和安全传输措施来防范未经授权的信息获取。
八、网络安全渗透测试实践
下面将结合一个小案例模拟黑客是如果进行安全渗透。
特别说明:本次实验仅供学习以及帮忙大家提高网络安全防御意识,切勿做非法用途,如读者用于非法用途将与博主无关,一切法律责任则读者自行承担!
1、确定目标对象
这个比较好理解,就是找到哪些可能被攻击的机器、服务作为本次测试的目标。
2、分析目标
下面将对目标的主机、端口进行扫描分析。
2.1、主机扫描
本文主机扫描将通过Nessus工具进行演示。
2.1.1、下载Nessus
https://www.tenable.com/downloads/api/v2/pages/nessus/files/Nessus-10.8.2-el7.x86_64.rpm
2.1.2、安装
rpm -ivh Nessus-10.8.2-el7.x86_64.rpm
2.1.3、启动Nessus
service nessusd start
2.1.4、访问Nessus
访问地址:https://服务器ip:8834
2.1.5、申请试用授权
地址:Tenable Nessus Essentials 漏洞扫描程序 | Tenable®
登录界面后选择在线试用,输入账号、邮件(工作邮件)信息即可试用一周.
注意:如果授权失败,可后台执行以下命令:/opt/nessus/sbin/nessuscli update 。
以及将Nessus服务关闭重启试试。
2.1.6、等待插件初始化
2.1.7、创建主机扫描任务
进入Nessus配置界面后开始创建主机扫描任务。
注意:需要等待插件初始化完成后才能创建。
2.1.8、启动扫描任务
2.1.9、检查扫描结果
如下所示,可以找到171个HOST对应的主机IP信息。
2.2、端口扫描
本文端口扫描将通过nmap工具进行演示。
2.2.1、安装nmap工具
yum install nmap -y
2.2.2、端口扫描
nmap 目标IP
如下图所示,发现目标主机暴露出3个端口。
3、寻找突破口
对攻击目标分析完成之后找到合适的突破口,比如可以通过服务器暴露出来的端口猜测出可能存在安全漏洞,常见的默认端口对应如下:
端口号 | 默认对应服务 | 可能存在漏洞 |
---|---|---|
22 | ssh | 弱口令。 |
80 | http | 弱口令、未授权访问、SQL注入等。 |
443 | https | 同上。 |
3306 | mysql | 弱口令。 |
3679 | redis | 未授权访问。 |
5432 | PostgreSQL | 弱口令。 |
8080 | tomcat服务器 | 弱口令、未授权访问、SQL注入、文件上传漏洞等。 |
9200 | ElasticSearch | 弱口令、未授权访问. |
4、发起攻击
找到突破口之后可以利用这些突破口做入侵操作,下面将通过弱口令、SQL注入以及未授权访问三个漏洞来进行演示。
4.1、ssh 弱口令漏洞
通过命令 root@目标IP ,然后再密码中输入 123456 等一简单内容,这时惊喜出现,居然能连接服务器后台,如下图所示:
4.2、SQL注入
下面将通过SQL注入漏洞演示查询未授权数据以及删除全部数据。
4.2.1、获取未授权数据
正常情况下在查询某一用户信息的接口时通过 http://IP:端口/query?name=Daniel 来查询,如下图所示:
后台执行SQL如下:
如果使用SQL注入方式可通过查询某一用户信息的接口将请求参数修改为:http://IP:端口/query?name=Daniel or 1=1 后,则会查询到所有用户的数据,如下图所示:
后台执行SQL如下:
4.2.2、删除全部数据
同理,正常调用删除用户接口 http://IP:端口/delete 一次只能删除一个用户,如下图所示:
后台执行SQL:
如果将请求的参数name修改{name:"Daniel or 1=1"},则会将整个表的数据给全部删除掉,如下图所示:
后台执行SQL:
这时发现整个表为空,数据被全部删除,是非常危险的!
4.3、redis未授权访问
通过以下命令远程连接暴露出来的redis服务,
./redis-cli -h 目标IP -p 6379
之后发现居然没设密码,如下图所示:
接下来就可以随心所欲的对redis数据进行增删改查操作了,哈哈^_^
5、扫尾清痕
在完成目的之后需要及时清除操作痕迹,以免管理员容易发现被攻击,下面介绍一些常规的清痕方法,如果真想查的话还有办法可以查到了,所以再次提醒大家千万不要做违法的事情!
5.1、清除操作命令记录
在Linux系统中默认情况会记录系统中操作的历史命令,可通过 history 命令进行查看,如下图所示:
为了不留痕则需要将操作历史命令清除且不再保留,则通过执行以下命令完成配置:
export HISTFILE=/dev/null export HISTSIZE=0
这样就不会再看到命令记录了,如下图所示:
5.2、删除系统日志
系统日志一般保存在 /var/log 目录下,需要将这些系统日志文件给删除,如下图所示:
5.3、删除应用日志
这个得根据入侵的应用涉及的服务,找到其对应的日志文件目录,再将其删除,比如常见的应用有nginx、网关、Web服务等。
更多精彩技术分享请浏览本人博客:
不甘于平凡的溃败的博客_CSDN博客-java,数据库,IDEA领域博主
----------------------------------------------------- the end -----------------------------------------------------