01-基础部分(上)
一、知识科普
简介
本人是一名小白,以下是我的学习笔记,欢迎大家来补充和纠正。我们一起共同努力。
这是我的博客:https://honkerdynamo.wordpress.com/
黑客
算是比较好的黑客,大部分都是申请获得授权之后才开始渗透测试的。
黑客可以说包含所有网络安全专业的测试人员,只是大部分黑客是遵守法律通过授权来开展渗透测试的测试人员。
骇客
属于未经允许开展渗透测试的坏黑客。
骇客来自英文Hacker,即闯入计算机系统/软件,后来被称为Cracker的一类人。他们从事恶意破解商业软件、恶意入侵别人的服务器、计算机、网站等事务。
他们未必具有很高的技术,通常是一些简单的攻击手段去打到一些炫耀、恶作剧、搞破坏的目的。
红客
红客(Honker)是中国大陆具有政治积极行动主义和激进民族主义激進民族主義的黑客。反对者一般认为它是一种网路激进主义。红客以维护国家利益,维护正义,不利用网路技术入侵自己国家的电脑,为祖国争光为宗旨。
中国红客联盟是中国的一个红客组织,英文简写为HUC。该组织成立于2000年底,由中国黑客Lion牵头组建,吸纳了全国众多黑客。其成员曾达到8万多人,是世界排名第五的黑客组织。该组织主要反击国外一些黑客的攻击,其中以2001年反攻美国白宫网站最为著名。
二、黑客传奇
- 理查德·马修·斯托曼:传统型大黑客,斯托曼在1971年受聘成为美国麻省理工学院人工智能实验室程序员。
- 史蒂夫·我兹尼亚克:苹果计算机创办人之一,现任职小学教师。
- 林纳斯·托瓦兹:他与1991年开发了著名的Linux系统内核,当时他是芬兰赫尔辛基大学计算机系的学生。
- 肯·汤普生和丹尼斯·利奇:贝尔实验室的计算机科学操作组程序员。两人在1969年发明了Unix操作系统。
三、专业术语
1、脚本
脚本语言(英语:Scripting language)是为了缩短传统的“编写、编译、链接、运行”(edit-compile-link-run)过程而创建的计算机编程语言。
ASP脚本: ASP全称是Active Server Pages(动态服务器页面)。是一项微软公司的技术。
JSP脚本: JSP全称是Java Server Pages,是一种动态网页开发技术。它使用JSP标签在HTML网页中插入java代码。标签通常以<%开头以%>结束。
PHP脚本: PHP全称是PHP : Hypertext Preprocessor,即"PHP : 超文本预处理器"是一种通用开源的脚本语言。
2、Web网页
web(World Wide Web)即全球广域网,也称为万维网,它是一种基于超文本和HTTP的、全球性的、动态交互的、跨平台的分布式图形信息系统。是建立在Internet上的一种网络服务,为浏览者在Internet上查找和浏览信息提供了图形化的、易于访问的直观界面,其中的文档及超级链接将Internet上的信息节点组织成一个互为关联的网状结构。
HTML语言:超文本标记语言(英语:Hyper Text Markup Language,简称:HTML)是一种用于创建网页的标准标记语言。HTML是一种基础技术,常与CSS、JavaScript一起被众多网站用于设计网页、网页应用程序一级移动应用程序的用户界面。网页浏览器可以读取HTML文件,并将其渲染成可视化网页。HTML描述了一个网站的结构语义随着线索的呈现,使之成为一种标记语言而非编程语言。
HTML5语言:HTML5是HTML最新的修订版本,由万维网联盟(W3C)于2014年10月完成标准制定。目标是取代1999年所制定的HTML 4.01和XHTML 1.0标准,以期能在网际网路应用迅速发展的时候,使网路标准达到符合当代的网路需求。广义论及HTML5时,实际指的是包括HTML、CSS和JavaScript在内的一套技术组合。它希望能够减少网页浏览器对于需要外挂程式的丰富性网路应用服务(Plug-in-Based Rich Internet Application,RIA),例如:Adobe Flash、Microsoft Silverlight与Oracle JavaFX的需求,并且提供更多能有效加强网路应用的标准集。
3、HTTP/HTTPS协议
HTTP/HTTPS协议都是浏览器和服务器之间的通讯服务。专门进行数据传输工作。
HTTP协议:超文本传输协议(英语:Hyper Text Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。通过HTTP或者HTTPS协议请求的资源由统一资源标识符(Uniform Resource Identifiers,URI)来标识。
HTTPS协议:超文本传输安全协议(英语:Hyper Text Transfer Protocol Secure,缩写:HTTPS;常称为HTTP over TLS、HTTP over SSL或HTTP Secure)是一种通过计算机网络进行安全通信的传输协议。HTTPS经由HTTP进行通信,但利用SSL/TLS来加密数据包。HTTPS开发的主要目的,是提供对网站服务器的身份认证,保护交换资料的隐私与完整性。这个协议由网景公司(Netscape)在1994年首次提出,随后扩展到互联网上。
CMS(B/S):内容管理系统(英语:content management system ,缩写为 CMS)是指在一个合作模式下,用于管理工作流程的一套制度。该系统可应用于手工操作中,也可以应用到电脑或网络里。作为一种中央储存器(central repository),内容管理系统可将相关内容集中储存并具有群组管理、版本控制等功能。版本控制是内容管理系统的一个主要优势。内容管理系统在物品或文案或数据的存储、掌管、修订(盘存)、语用充实、文档发布等方面有着广泛的应用。现在流行的开源CMS系统有WordPress、Joomla!、Drupal、Xoops、CmsTop等。
5、加密
在密码学中,加密(英语:Encryption)是将明文信息改变为难以读取的密文内容,使之不可读的过程。只有拥有解密方法的对象,经由解密过程,才能将密文还原为正常可读的内容。理想情况下,只有经授权的人员能够读取密文所要传达的信息。加密本身并不能防止信息传输被截取,但加密能防止截取者理解其内容。因为种种技术原因,加密方法通常使用一个通过算法生成的伪随机密钥。虽然任何加密后的消息都可能被破解,但对于一个良好的加密算法而言,破解需要相当多的技术和算力。授权读取信息的人可以轻松通过发信人所提供的密钥解密信息,但未经授权的人员则不行。密码学历史中有众多加密方法;早期的加密方法常用于军事通讯。从此开始,现代计算中也出现了众多加密技术,并且加密在现代计算中也变得越来越常见。现代的加密方式通常使用公钥或对称密钥。现代加密技术依赖现代计算机在破解密钥上并不高效的事实来保证其安全性。
MD5加密:MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。MD5由美国密码学家罗纳德·李维斯特(Ronald Linn Rivest)设计,于1992年公开,用以取代MD4算法。这套算法的程序在 RFC 1321 中被加以规范。将数据(如一段文字)运算变为另一固定长度值,是散列算法的基础原理。
SHA-2加密:SHA-2,名称来自于安全散列算法2(英语:Secure Hash Algorithm 2)的缩写,一种密码散列函数算法标准,由美国国家安全局研发,由美国国家标准与技术研究院(NIST)在2001年发布。属于SHA算法之一,是SHA-1的后继者。其下又可再分为六个不同的算法标准,包括了:SHA-224、SHA-256、SHA-384、SHA-512、SHA-512/224、SHA-512/256。
6、肉鸡:僵尸电脑(英语:Zombie computer),简称:”僵尸(zombie)“,又称”肉鸡“,是指接入互联网受到恶意软件感染后,受控于黑客的电脑。其可以随时按照黑客的命令与控制(C&C,command and control)指令展开拒绝服务(Dos)攻击或发送垃圾信息。通常,一部被侵占的电脑只是僵尸网络里面众多中的一个,会被用来去运行一连传的或者远端控制的恶意程序。一般电脑的拥有者都没有察觉到自己的电脑系统已经被”僵尸化“,就仿佛是没有自主意思的僵尸一般。
7、抓鸡:“抓鸡”是黑客界的一种流行语言.这里所说的"鸡",是指电脑肉鸡 网络摄像头 路由器 等联网设备。这就是受别人控制的远程联网设备。"肉鸡"可以是各种系统,如2000,2003,2008,xp,win7,win8,linux等;更可以是一家公司\企业\学校甚至是政府军队的服务器。黑客们经常用80,8080,135,445,1433,1521,3306,3389 ,4899,5900之类的端口来抓鸡。肉鸡一般被黑客以不同的系统 硬件配置 联网带宽等条件区分不同的价格批发给需要的人。说到肉鸡,就要讲到远程控制。远程控制软件例如灰鸽子、上兴、凤凰ABC、ghost、白金等等。肉鸡不是吃的那种,是中了木马,或者留了后门,可以被远程操控的机器,许多人把有WEBSHELL 权限的可执行网页脚本也叫肉鸡。谁都不希望自己的设备被他人控制,但是很多人的设备是几乎不设防的,很容易被远程攻击者完全控制。你的设备就因此成为别人砧板上的肉,别人想怎么吃就怎么吃,肉鸡(机)一名由此而来。通常情况下跟互联网连接的设备都存在有弱口令,这样就给黑客有可趁之机,通过工具批量扫描破解入侵这样你就成为黑客手中的“肉鸡”,他们这样的方式也就称之为“抓鸡”。
8、WebShell: webshell就是以asp、php、jsp或者cgi等网页文件形式存在的一种代码执行环境,也可以将其称做为一种网页后门。黑客在入侵了一个网站后,通常会将asp或php后门文件与网站服务器WEB目录下正常的网页文件混在一起,然后就可以使用浏览器来访问asp或者php后门,得到一个命令执行环境,以达到控制网站服务器的目的。
9、漏洞:
漏洞或脆弱性(英语:Vulnerability),是指计算机系统安全方面的缺陷,使得系统或其应用数据的保密性、完整性、可用性、访问控制等面临威胁。
-
常见漏洞
- 零日漏洞:在电脑领域中,零日漏洞或零时差漏洞(英语:zero-day vulnerability、0-day vulnerability)通常是指还没有补丁的安全漏洞,而零日攻击或零时差攻击(英语:zero-day exploit、zero-day attack)则是指利用这种漏洞进行的攻击。提供该漏洞细节或者利用程序的人通常是该漏洞的发现者。零日漏洞的利用程序对网络安全具有巨大威胁,因此零日漏洞不但是黑客的最爱,掌握多少零日漏洞也成为评价黑客技术水平的一个重要参数。
- SQL注入:(英语:SQL injection),也称SQL注入或SQL注码,是发生于应用程序与数据库层的安全漏洞。简而言之,是在输入的字符串之中注入SQL指令,在设计不良的程序当中忽略了字符检查,那么这些注入进去的恶意指令就会被数据库服务器误认为是正常的SQL指令而运行,因此遭到破坏或是入侵。
- 缓冲区溢出:(buffer overflow),在电脑学上是指针对程序设计缺陷,向程序输入缓冲区写入使之溢出的内容(通常是超过缓冲区能保存的最大数据量的数据),从而破坏程序运行、趁著中断之际并获取程序乃至系统的控制权。
- 跨站脚本:(英语:Cross-site scripting,通常简称为:XSS)是一种网站应用程序的安全漏洞攻击,是代码注入的一种。它允许恶意用户将代码注入到网页上,其他用户在观看网页时就会受到影响。这类攻击通常包含了HTML以及用户端脚本语言。
- 死亡之ping:,(英文:ping of death, POD),是一种向目标电脑发送错误封包的或恶意的ping指令的攻击方式。通常,一次ping大小为32字节(若考虑IP标头则为84字节)。在当时,大部分电脑无法处理大于IPv4最大封包大小(65,535字节)的ping封包。因此发送这样大小的ping可以令目标电脑崩溃。
- ARP欺骗:(英语:ARP spoofing),又称ARP毒化(ARP poisoning,网络上多译为ARP病毒)或ARP攻击,是针对以太网地址解析协议(ARP)的一种攻击技术。此种攻击可让攻击者获取局域网上的数据包甚至可篡改数据包,且可让网络上特定电脑或所有电脑无法正常连线。最早探讨ARP欺骗的文章是由Yuri Volobuev所写的《ARP与ICMP转向游戏》(ARP and ICMP redirection games)。
- FREAK缺陷:(全称:Factoring RSA Export Keys,中文:分解RSA出口级密钥)是SSL/TLS协议中的密码学安全缺陷。20世纪90年代,此缺陷随着美国加密出口法规的出台而引入。
- Badlock:Badlock是于2016年4月12日披露的安全漏洞,其影响Windows和Samba服务器所支持的安全帐户管理器(SAM)和本地安全认证(域策略)(LSAD)远程协议。
10、一句话【木马】:一句话木马短小精悍,而且功能强大,隐蔽性非常好,在入侵中始终扮演着强大的作用。
黑客在注册信息的电子邮箱或者个人主页等中插入类似如下代码:
<%execute request("value")%>
其中value是值,所以你可以更改自己的值,前面的request就是获取这个值
<%eval request("value")%>
现在比较多见的,而且字符少,对表单字数有限制的地方特别的实用。
当知道了数据库的URL,就可以利用本地一张网页进行连接得到Webshell。(不知道数据库也可以,只要知道<%eval request("value")%>这个文件被插入到哪一个ASP文件里面就可以了。)
这就被称为一句话木马,它是基于CMS的B/S结构的。
11、提权:提权,顾名思义就是提高自己在服务器中的权限,就比如在windows中你本身登录的用户是guest,然后通过提权后就变成超级管理员,拥有了管理Windows的所有权限。提权是黑客的专业名词,一般用于网站入侵和系统入侵中。
12、后门程序:后门程序一般是指那些绕过安全性控制而获取对程序或系统访问权的程序方法。在软件的开发阶段,程序员常常会在软件内创建后门程序以便可以修改程序设计中的缺陷。但是,如果这些后门被其他人知道,或是在发布软件之前没有删除后门程序,那么它就成了安全风险,容易被黑客当成漏洞进行攻击。
13、旁站入侵(旁站注入【旁注】):旁注是一种入侵方法,在字面上解释就是-"从旁注入",利用同一主机上面不同网站的漏洞得到webshell,从而利用主机上的程序或者是服务所暴露的用户所在的物理路径进行入侵。
14、C段注入:旁注与 C 段嗅探的意义,旁注的意思就是从同台服务器上的其他网站入手,提权,然后把服务器端了,就自然把那个网站端了。C 段嗅探,每个 IP 有 ABCD 四个段,举个例子,192.168.0.1,A 段就是 192,B 段是 168,C 段是 0,D 段是 1,而 C 段嗅探的意思就是拿下它同一 C 段中的其中一台服务器,也就是说是 D 段1-255 中的一台服务器,然后利用工具嗅探拿下该服务。
15、APT攻击:即高级可持续威胁攻击,也称为定向威胁攻击,指某组织对特定对象展开的持续有效的攻击活动。这种攻击活动具有极强的隐蔽性和针对性,通常会运用受感染的各种介质、供应链和社会工程学等多种手段实施先进的、持久的且有效的威胁和攻击。
四、两种渗透测试的区别
1、黑盒测试
在未授权的情况下,模拟黑客的攻击方法和思维方式,来评估计算机网络系统可能存在的安全风险。黑盒测试不同于黑客入侵,并不等于黑站。黑盒测试考验的是综合的能力(OS、Datebase、Script、code、思路、社工等)思路与经验累计往往决定成败。
黑盒测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。
2、白盒测试
白盒测试相对黑盒测试,白盒测试基本是从内部发起。
白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,即清楚盒子内部的东西以及里面是如何运作的。"白盒"法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。"白盒"法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。贯穿程序的独立路径数是天文数字。
3、渗透测试和入侵的最大区别
- 渗透测试:更全面的找出服务器的问题,更倾向于保护。
- 入侵:不择手段(包含具有破坏性的手段)拿到权限。
五、一般渗透测试流程
1、明确目标
2、信息收集
- 基础信息
- 系统信息
- 应用信息
- 版本信息
- 服务信息
- 人员信息
- 防护信息
3、漏洞探测
- 系统漏洞
- Web Server漏洞
- Web应用漏洞
- 其他端口服务漏洞
4、漏洞验证
- 自动化验证
- 手工验证
- 试验验证
- 登录猜解
- 业务漏洞验证
- 公开资源的利用
- 精准打击
- 绕过防御机制
- 定制攻击路径
- 绕过检测机制
- 实施攻击
- 获取内部信息
- 进一步渗透
- 持续性存在
- 清理痕迹
- 整理渗透工具
- 整理收集信息
5、形成报告
- 按需整理
- 补充介绍
- 修补建议
6、信息整理
7、获取所需
8、信息分析