网络安全之渗透(基础知识点).md

一.常见术语

1、 脚本语言

less 复制代码
    脚本语言又被称为扩建的语言,或者动态语言,是一种编程语言,用来控制软件应用程序,脚本通常以文本(如[ASCII](https://baike.baidu.com/item/ASCII))保存,只在被调用时进行解释或编译。
复制代码

2、常见脚本语言

markdown 复制代码
    -   C Shell
    -   JavaScript
    -   Nuva
    -   Perl
    -   PHP
    -   Python
    -   Ruby
    -   Tcl
    -   VBScript
    -   CSS
复制代码

3、静态脚本于动静态脚本的区别:

markdown 复制代码
        静态脚本不会与数据库进行交互,是直接在本地浏览器上运行,且速度很快,但是可以直接查看到源码;

        动态脚本是会与数据库发生交互的,是运行在web服务器上,显示的是执行结果(在浏览器中也可以运行,源码可以看到)
复制代码

3、 HTTP协议,HTTP代理

markdown 复制代码
HTTP协议
    超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在[TCP](https://baike.baidu.com/item/TCP/33012)之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以[ASCII](https://baike.baidu.com/item/ASCII/309296)形式给出;而消息内容则具有一个类似[MIME](https://baike.baidu.com/item/MIME/2900607)的格式。这个简单模型是早期[Web](https://baike.baidu.com/item/Web/150564)成功的有功之臣,因为它使开发和部署非常地直截了当。
HTTP代理
    HTTP代理的[匿名性]
    一般是黑客或红客用的,一般的用户很少机会用得上.跳板这个概念用在代理服务上面偶是在接接触snake的那个代理程序见到的。"代理跳板"一般都是指snake开发的那个sock5代理服务程序。代理跳板好像就是支持connect命令的[http代理](https://baike.baidu.com/item/http%E4%BB%A3%E7%90%86)服务器因为常常被当成黑软使用
HTTP代理小常识

    一、HTTP代理的匿名性

        This is a proxy that hides the original users' IP address and other details from the remote server. 这种代理,对远端服务器隐藏原始用户的IP地址以及其它细节(可能,但不必需)。

        HTTP代理匿名性是指不通过非常技术手段,直接使用时代理的匿名安全性。(说明:这里的匿名与其它如[FTP服务器](https://baike.baidu.com/item/FTP%E6%9C%8D%E5%8A%A1%E5%99%A8)的匿名意义是不一样的,不论匿名与否,[代理服务器](https://baike.baidu.com/item/%E4%BB%A3%E7%90%86%E6%9C%8D%E5%8A%A1%E5%99%A8)均能起到"代理"的作用。只是匿名代理可以确保被访问方不能追溯到源IP,在一定程度上更加安全而已。这并不是一个重要的指标,是否必要则仁者见仁、智者见智。)

        测试自己的http代理是否匿名,简单方法:xxx网站,先看"REMOTE_ADDR"显示的ip,如果不是你本身的ip,说明代理服务器起作用了。再看"HTTP_X_FORWARDED_FOR",如果有,并显示你的ip,为非匿名代理。如果没有显示,则为匿名代理。(Tips:看一下"[HTTP_USER_AGENT](https://baike.baidu.com/item/HTTP_USER_AGENT)"和"HTTP_ACCEPT_LANGUAGE",你就能知道你的代理提供了多大的安全性。)

        HTTP connect代理

    二、HTTP CONNECT代理

        不是所有的HTTP代理都只能代理HTTP的

        HTTP CONNECT代理服务器是一种能够允许用户建立TCP连接到任何端口的代理服务器,这意味着这种代理不仅可用于HTTP,还包括FTP、IRC、RM流服务等,甚至扫描、攻击。

    三、三种代理的区别

        1.全匿名代理 不改变你的request fields,使服务器端看来就像有个真正的客户浏览器在访问它。当然,你的真实IP是隐藏起来的。服务器的网管不会认为你使用了代理。

        2. 普通匿名代理 能隐藏你的真实IP,但会更改你的request fields,有可能会被认为使用了代理,但仅仅是可能,一般说来是没问题的。不过不要受它的名字的误导,其安全性可能比全匿名代理更高,有的代理会剥离你的部分信息(就好比[防火墙](https://baike.baidu.com/item/%E9%98%B2%E7%81%AB%E5%A2%99)的stealth mode),使服务器端探测不到你的*作系统版本和浏览器版本。

        3.[透明代理](https://baike.baidu.com/item/%E9%80%8F%E6%98%8E%E4%BB%A3%E7%90%86)(简单代理) 改编你的request fields,并会传送真实IP。

            跳板是一个程序,也可以说是一种socks5代理的应用吧。

                * 从本地机器连接到远程机器, 中间通过安装的代理跳板。对应用程序而言,相当于普通的sock代理调用。

                * 在跳板之间传输的数据,是已经被动态加密的。加密种子每次不同。

                * 跳板的数目由1到255,不限制,当数目为0时,相当于Sock5代理服务器
复制代码

4、 CMS(B/S)内容管理系统

perl 复制代码
    CMS是Content Management System的缩写,意为"内容管理系统"。 内容管理系统是[企业信息化建设](https://baike.baidu.com/item/%E4%BC%81%E4%B8%9A%E4%BF%A1%E6%81%AF%E5%8C%96%E5%BB%BA%E8%AE%BE/7346628)和电子政务的新宠,也是一个相对较新的[市场](https://baike.baidu.com/item/%E5%B8%82%E5%9C%BA/238002)。对于内容管理,业界还没有一个统一的定义,不同的机构有不同的理解。
复制代码

5、 MD5(不可逆的,常见的MD5解密网站其实是将一些明文进行MD5加密,形成一个库,在查询的时候将密文与库中的信息进行碰撞,最后得到明文)

6、 肉鸡、跳板

perl 复制代码
    肉鸡也称[傀儡机](https://baike.baidu.com/item/%E5%82%80%E5%84%A1%E6%9C%BA/10413334),是指可以被黑客[远程控制](https://baike.baidu.com/item/%E8%BF%9C%E7%A8%8B%E6%8E%A7%E5%88%B6/934368)的机器。比如用"灰鸽子"等诱导客户点击或者电脑被黑客攻破或用户电脑有漏洞被种植了木马,黑客可以随意操纵它并利用它做任何事情。

    肉鸡通常被用作[DDOS](https://baike.baidu.com/item/DDOS)攻击。可以是各种系统,如windows、[linux](https://baike.baidu.com/item/linux/27050)、[unix](https://baike.baidu.com/item/unix/219943)等,更可以是一家公司、企业、学校甚至是政府军队的[服务器](https://baike.baidu.com/item/%E6%9C%8D%E5%8A%A1%E5%99%A8/100571)。
    跳板的原理
        网络跳板,简单来说,就是为了隐藏自己的地址,让别人无法查找到自己的位置。通过跳板的使用,可以减少他人查找到你的可能性,同时也增加了被发现的难度。举个简单例子,你在A朋友家玩儿,发现了通往B朋友家的后门,然后你来到了B朋友家,又发现了C朋友家的厨房是和B朋友家相连的,你就顺便来到了C朋友的家,同时C朋友家的厕所又是和D朋友家相连。你在A朋友家做了一些事情,比如设置和修改。A朋友回家了,他会发现有人进了自己的家,但是他顺着路线可以找到B朋友家,通过长期的寻找,终于找到了C朋友家,但他遇见难题了,他并不知道是B朋友家的人动了自己的东西,还是D朋友家的人动了自己的东西。这时,你就是安全的了。这中间的各种朋友关系,其实就是你的跳板。通过这种跳板的转换,我们可以改变自己上网的IP位置,隐藏自己的真实物理位置。
        跳板,简单来说,就是为了[隐藏](https://baike.baidu.com/item/%E9%9A%90%E8%97%8F/18681)自己的[地址](https://baike.baidu.com/item/%E5%9C%B0%E5%9D%80/80420),让别人无法查找到[自己](https://baike.baidu.com/item/%E8%87%AA%E5%B7%B1/32946)的[位置](https://baike.baidu.com/item/%E4%BD%8D%E7%BD%AE/36166)。
复制代码

7、 一句话、小马、大马、webshell、提权、后门、跳板

markdown 复制代码
    在这里"一句话、小马、大马"我们统称为webshell;

    提权就是我们获得目标的管理权的一个过程;

    跳板就是在我们对目标机进行渗透是为了防止追踪到我们的本机IP,我们控制肉鸡对目标机进行渗透,这个肉鸡就是一个跳板。

8、 源码打包、脱库

9、 嗅探、rookit

10、poc

    简单来说就是一个测试的流程

    比如对一个网站进行SQL注入的检查:

        ?id=1'

        ?id=1 and 1=1

        ?id=1 and 1=2

    这一过程就是一个poc,他只是一个验证过程不需要结果。

11、exp

    就是要实现攻击,得到我们想要的东西,与poc不同的是最后要有一个结果。
复制代码

二、渗透测试

bash 复制代码
渗透测试 (penetration test)并没有一个标准的定义,国外一些安全组织达成共识的通用说法是:渗透测试是通过模拟恶意黑客的攻击方法,来评估计算机网络系统安全的一种评估方法。这个过程包括对系统的任何弱点、技术缺陷或漏洞的主动分析,这个分析是从一个攻击者可能存在的位置来进行的,并且从这个位置有条件主动利用安全漏洞。 换句话来说,渗透测试是指渗透人员在不同的位置(比如从内网、从外网等位置)利用各种手段对某个特定网络进行测试,以期发现和挖掘系统中存在的漏洞,然后输出渗透测试报告,并提交给网络所有者。网络所有者根据渗透人员提供的渗透测试报告,可以清晰知晓系统中存在的安全隐患和问题。 我们通常认为渗透测试还具有的两个显著特点是:渗透测试是一个渐进的并且逐步深入的过程。渗透测试是选择不影响业务系统正常运行的攻击方法进行的测试。(源自百度百科)说的直白点,就是入侵,目的是发现网络隐患。
复制代码

三、流程

明确目标 信息收集 漏洞探测 漏洞验证
编写报告 信息整理 获取所需 信息分析
复制代码

四、环境

虚拟机 目标靶机系统的安装 HTTP协议 网站搭建
复制代码

五、HTTP协议

scss 复制代码
超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。(源自百度百科)说得直白点就是一种规则,公认的约束,要想上网就必须遵循这种规则。 把域名翻译成IP地址的软件称为域名系统,即DNS。它是一种管理名字的方法。这种方法是:分不同的组来负责各子系统的名字。系统中的每一层叫做一个域,每个域用一个点分开。所谓域名服务器(即Domain Name Server,简称Name Server)实际上就是装有域名系统的主机。它是一种能够实现名字解析(name resolution)的分层结构数据库。在我们上网的过程中,会在地址栏里输入地址然后点击确定,就可以连接到相应的页面。在这个过程中,我们输入的那一串字符其实并没有什么意义,重点是将那串字符解析成的IP地址才是重点,那一串字符仅仅是为了方便人们记忆,如果在地址栏里输入相应的IP也一样可以连接到我们想去的网页。


全球有13台DNS根服务器,分布如下:
    美国VeriSign公司 2台
    网络管理组织IANA(Internet Assigned Number Authority) 1台
    欧洲网络管理组织RIPE-NCC(Resource IP Europeens Network Coordination Centre) 1台
    美国PSINet公司 1台
    美国ISI(Information Sciences Institute) 1台
    美国ISC(Internet Software Consortium) 1台
    美国马里兰大学(University of Maryland) 1台
    美国太空总署(NASA) 1台
    美国国防部 1台
    美国陆军研究所 1台
    挪威NORDUnet 1台
    日本WIDE(Widely Integrated Distributed Environments)研究计划 1台
1.http响应状态码
    
复制代码
markdown 复制代码
2、http URL

    url是统一资源定位符,就是我们常说的网址,对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。


    我们可通过地址判断其服务器的操作系统类型

    例如:http://www.xxx.xxx.com/admin/index.php
    对于Windows而言不会区分文件名称的大小写,如果输入index.php和index.PHP都不会报错;
    但是对于Linux系统而言,就是区分大小写的,输入index.php就不会报错,index.PHP就会报错。
3、http头
    200 响应码
    date 日期
    content-type 类型
    Accept-charset 浏览器可接受的字符集
    Content-length 表示请求信息的正文的长度
    Cookie 是很重要的信息之一
    http ?/www.xxx.xxx.com/IPsot=373
4 、http请求
    GET 通过URL传值的方式进行传值,明文的,不安全

    POST

    OPTIONS

    PUT

    MOVE

    DELETE

    TRACE

5、HTTP错误配置会导致安全漏洞

    服务器存在允许PUT方式和MOVE方式,这时可以通过PUT方式传输一个webshell.txt然后通过MOVE方式结合解析漏洞就可以拿到webshell。(同文件夹下MOVE同一个文件就是修改名字)

6、HTTP头文件中安全隐患

    在PHP中通常会使用 S E R V R [ " H T T P C L I E N T I P " ] 或者_SERVER["HTTP_X_FORWARDED_FOR"]来获取IP。

    所以可以通过修改http头中的X-Forwarded-For:、client-ip:来进行攻击。

    突破服务器访限制IP

    http头注入攻击

    注入 X-Forwarded-For:1.1.1.1'

    在对ip进行传输的时候用的是insert into update方式来传输获修改,用上述方式就可能通过报错形成注入攻击。

7、https协议

    https其实就是两部分的组成:http+ssl/TLS

    对HTTP加了一层处理加密信息的模块

8、环境搭建

    Windows:

        Iis+asp/aspx/php/+mysql/sqlserver/access
相关推荐
Mr.Pascal22 分钟前
刚学php序列化/反序列化遇到的坑(攻防世界:Web_php_unserialize)
开发语言·安全·web安全·php
风间琉璃""1 小时前
二进制与网络安全的关系
安全·机器学习·网络安全·逆向·二进制
dot.Net安全矩阵2 小时前
.NET 通过模块和驱动收集本地EDR的工具
windows·安全·web安全·.net·交互
Hacker_Oldv3 小时前
网络安全的学习路线
学习·安全·web安全
黑客Ash3 小时前
计算机中的网络安全
网络·安全·web安全
云卓SKYDROID3 小时前
无人机的激光雷达避障系统阐述!
科技·安全·无人机·云卓科技·激光雷达避障系统
网安-轩逸3 小时前
网络安全、Web安全、渗透测试之笔经面经总结
安全·web安全
follycat4 小时前
信息收集--CDN绕过
网络·安全·网络安全
黑客Ela4 小时前
网络安全问题概述
安全·web安全·php
思通数科多模态大模型5 小时前
10大核心应用场景,解锁AI检测系统的智能安全之道
人工智能·深度学习·安全·目标检测·计算机视觉·自然语言处理·数据挖掘