WEB安全-渗透测试技术手册

来源:安界网-WEB安全-渗透测试技术


前言

        根据周老板及热月科技提供的课程资源进行学习并整理成本篇,以起到夯实基础之效。


一、渗透测试概述

  • 什么是渗透测试?

        渗透测试是通过模拟恶意黑客的攻击方法,来评估计算机网络系统安全的一种评估方法。这个过程包括对系统的任何弱点、技术缺陷或漏洞主动分析,这个分析是从一个攻击者可能存在的位置来进行的,并且从这个位置有条件地主动利用安全漏洞。

        区分测试和黑客攻击的区别在于攻击的程度,例如搞垮测试点的服务器等标准,其次要时刻牢记中华人民共和国刑法第285和286条法律。切莫触犯法律红线。

  • 渗透测试的流程

  • 信息收集(DNS信息,路由关系,电子邮件,电话,网站所有人),
  • 目标识别(网络中的有哪些联网的设备以及通信地址),
  • 服务枚举(找到开放的端口及端口上提供的服务),
  • 漏洞映射(通过手动或工具发现漏洞),
  • 漏洞利用(在可接受范围内利用漏洞进行一些操作),
  • 权限提升(获取更高的权限,尝试进一步攻击及漏洞发现),
  • 权限维护(埋后门,留管理员账号,维护测试人员的访问权限),
  • 文档报告(将报告提交给客户)

二、扫描与信息收集

  • DNS信息收集

        DNS(Domain Name System域名系统),在此处是域名解析之意,一般访问网站都是通过访问域名,域名可以购买,但并不是购买之后即可使用,如果想令他人在公网上也可以访问域名,需要在公网进行域名解析。而解析的时候需要一些相关相关所有者的信息,这些信息就是我们要收集的东西。

        首先进入站长工具网(tool.chinaz.com),该网站可以查询一个网站各种各样的信息,本次我们从Whois查询开始,查询testfire.net网站的Whois信息,如下图所示:

         下滑后有更多信息,可以自行查阅。

        另外也可以使用专门的工具,kali虚拟机,里面集成了很多渗透测试的相关工具。

        下载地址:www.kali.org

        安装成功后在控制台通过Whois 域名命令进行查询。


  • 子域名查询

        当一个网站搭建起来后,该网站使用的域名可能不止一个。 以百度为例,不同的模块对应不同的子域名。

baidu.com:  www.baidu.com image.baidu.com zhidao.baidu.com等等

         为了保证测试结果的完整,要尽量根据客户的需求进行子域名的查询。通过一下方法进行:

网址查询工具: searchdns.netcraft.com 

PS:在搜索的时候不要输入www的前缀,因为www开头的也是子域名的一部分。

例如:testfire.net 诸如此类才是主域名

子域名挖掘机

        Layer子域名挖掘机,按照以下地址下载,直接解压缩即可使用。

链接: https://pan.baidu.com/s/19jz0vpeR7D2h2kOr7OQccw 提取码: xnnj

在左侧域名处输入所要查询的域名,点击右侧启动即可,通过暴力枚举的方法进行查询。

原理是通过字典进行查询,通过常见的前缀进行搜索,字典文件需要自行丰富以达到更好的暴力枚举效果,存放在文件夹内的dic.txt文件中      

如果字典不够完善,可能会出现查询不到的结果。


  • DNS2IP

        找到域名后,我们还需要域名对应的IP地址,因为IP地址决定了网站所在位置和访问路径。

        查询方法:

方法一:通过cmd窗口

先摁下ctrl+R键,然后输入cmd后单击回车,输入ping  域名的命令:

         该命令不仅可以测试自己所使用的计算机是否可以与对应地址进行通信,同时也会显示所ping地址的IP地址。

方法二:站长工具

(        站长工具 - 站长之家)网址中的热门工具中点击ping检测,也可以直接进入多个地点ping服务器-网站测速-站长工具

 

站长工具的ping会通过不同的线路去进行响应测试,也可以查询其响应速度。

方法三:kali虚拟机进行查询

        类似于方法一:

        以及nslookup 域名的方法:

        此外,还有dig 域名的方法:不仅会显示域名对应的IP地址显示出,还会显示子域名。

        并且dig命令可以指定服务器进行解析域名,当某一个网站做的比较大的时候,通常会把同样的内容部署到不同的服务器上作为镜像,不仅可以保证一台服务器出问题后别的服务器仍然可以访问,也可以通过服务器地理位置的不同让不同地理位置的用户都获取较快的访问速度。

        所以测试的时候通过指定不同的服务器进行解析就可以获得不同的地址。

        具体方法为:

dig @服务器地址 域名
dig @8.8.8.8 www.testfire.net

         此外还有dnsenum命令,来获取域名对应的IP地址和整个访问过程中经历转发的服务器全部都显示出来。


  • nmap扫描

        nmap在kali虚拟机中有集成,在cmd窗口中输入nume -sP IP地址:

nmap -sP 192.168.9.179
此处是自己物理机的地址

        和ping命令相比,二者都可以显示可以ping通与否和一些基本的信息,而nmap不仅是对应一台机子,其可以扫描整个局域网,当我们做渗透测试的时可能会发现某一个服务器存在漏洞,那么我们就可以控制该服务器,而该服务器可能处于一个局域网中,该局域网一般又有其他设备, 而在局域网之间设备彼此通信会比公网更加容易,所以当局域网中的某台服务器被攻陷的时候,攻击者可能通过该服务器攻击局域网下的其他设备,那么会导致一台服务器就攻下一个局域网。

        那么作为渗透测试人员,我们应该提前发现这种潜在的威胁,那么需要提前知道被测试的服务器所在的局域网存在哪些设备,这时候便用到了nmap命令的变式

查询局域网的设备
nmap -sP 192.168.9.0/24
24表示子网掩码,表示192.168.9前三位固定,而最后一位不固定并依次测试。

        该命里可以发现该网络对应有几台设备,而所对应设备的安全隐患一般与设备的服务有关,而服务又与对应的端口有关,所以我们可以用nmap来扫描对应涉笔开放的端口。

扫描局域网对应设备开放的端口
nmap 192.168.9.0/24

        其会显示不同设备对应的不同的端口,例如445端口是一个毁誉参半的端口,有了它我们可以在局域网中轻松访问各种共享文件夹或共享打印机,但也正是因为有了它,黑客们才有了可乘之机,他们能通过该端口偷偷共享你的硬盘,甚至会在悄无声息中将你的硬盘掉。

        以及3389端口可以控制远程桌面,可能会导致桌面在不知情的情况下被黑掉。

        以及一些其余的指令,搜到一了一篇大佬的文章,很全面很细致,在此补充:nmap扫描端口命令详解linux网络探测之网络安全_有勇气的牛排的博客-CSDN博客_nmap扫描端口命令


  • Web漏洞扫描

        使用工具Acunetix Web Vulnerabillity Scanner(AWVS)

        链接:https://pan.baidu.com/s/1mH0SOaDeElZ_NTuK2NSArw  提取码:zgqq

        在windows上解压后将awvs安装包复制到kali系统的root目录下面。

三、SQL注入

  • SQL注入的原理和万能密码

        阿斯顿

1.引入库

代码如下(示例):

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings('ignore')
import  ssl
ssl._create_default_https_context = ssl._create_unverified_context

2.读入数据

代码如下(示例):

data = pd.read_csv(
    'https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv')
print(data.head())

该处使用的url网络请求的数据。


总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

猜你喜欢

转载自blog.csdn.net/m0_61409069/article/details/127145222