百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

网络安全日常学习之渗透测试思路总结

zhezhongyun 2024-12-16 17:34 64 浏览

一、说明

《Metasploit渗透测试魔鬼训练营》等书已经对渗透测试的步骤流程划分得比较合理透彻了,但感觉在多次通读该类书藉之后仍总感觉不得要领----要对一台给定的主机进行渗透还是不懂到底该如何着手。想来主要是存在以下两个问题。

第一个是在渗透操作系统时,最为关键的是从漏洞分析到渗透攻击这一步很难跨越。因为按书中漏洞分析基本只有openvas等漏洞扫描器一条途径,漏洞利用只有Metasploit搜索一条途径;而漏洞扫描器扫出漏洞Metasploit中又正好有利用模块更是少之又少。

第二个是在渗透web系统时,还是和其他很多书籍一样只讲漏洞,而并不能很明确地指出面对一个web系统我怎么知道在哪我应该检测哪些漏洞。

本文一是肯定和总结现在主流的渗透测试的步骤,二是拓展渗透操作系统时从漏洞分析到渗透攻击的途径,三是指出渗透web系统可采用“功能–功能对应检测点”这种触发式渗透方式。

渗透流程可参考下图

二、渗透操作系统

操作系统类漏洞一般都是大神们通过代码审计/逆向分析挖掘的漏洞,这需要高深的知识储备,对于一般的渗透而言利用已知漏洞即可,不用也不要自己去挖掘这类漏洞。而查找操作系统类漏洞最关键的操作就是确定端口后边的软件及软件版本,然后得用得到的软件名+软件版本到各漏洞库去查找其存在的漏洞乃至exp。

2.1 获取正在监听端口的软件及该软件的版本号

比如假设我们探测到8080端口为tomcat监听,版本号为8.5.14

2.2 搜索已有漏洞库,获取该软件及相应版本存在的漏洞列表

2.2.1 搜索CVE漏洞库,获取软件及相应版本存在的漏洞列表

http://www.cvedetails.com/version-search.php

就这样我们就找到了tomcat 8.5.14版本存在的几个漏洞,后边以CVE-2017-12617为例

【一>所有资源关注我,私信回复“资料”获取<一】
1、很多已经买不到的绝版电子书
2、安全大厂内部的培训资料
3、全套工具包
4、100份src源码技术文档
5、网络安全基础入门、Linux、web安全、攻防方面的视频
6、应急响应笔记 7、 网络安全学习路线
8、ctf夺旗赛解析
9、WEB安全入门笔记

2.3 查看CVE具体信息

2.3.1 在cvedetails查看CVE具体信息

https://www.cvedetails.com/

2.3.2 在mitre查看CVE具体信息

http://cve.mitre.org/cve/search_cve_list.html

2.4 通过CVE查找EXP

2.4.1 在上边的cvedetails或mitre结果中拉到后边的References For CVE-xxx参考区里边有可能有exp链接

在上边已经可看到CVE-2017-12617对应的exploit-db和metasploit中的exp链接

2.4.2 在上边的cvedetails中直接点击搜索twitter/youtube/google

2.4.3 到metasploit数据库查找exp(msfconsole中search可能需要更新)

https://www.rapid7.com/db/modules/

2.4.4 到exploit数据库查找exp(不爬墙验证码一般出不来,那只能kali中searchsploit了)

https://www.exploit-db.com/search/](https://www.exploit-db.com/search/

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OlE2RQqa-1651670529886)(https://upload-images.jianshu.io/upload_images/26472780-a5b1f827d89de94b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

2.4.5 到github查找exp

https://github.com/search](https://github.com/search

2.4.6 openvas等系统漏洞扫描器

三、渗透web系统(功能触发式检测法)

web系统也可以利用现成的漏洞,如各类CMS的漏洞(比如ecshop)、各类插件的漏洞(比如wordpress的各类插件漏洞)、各类框架的漏洞(比如struts反序列化)、各类中间件漏洞(比如weblogic反序列化),这类漏洞在确认web系统使用了该CMS、该插件、该框架、该中间件之后和操作系统类漏洞一样到各漏洞库去找利用方式即可。web渗透更多地是自己去挖掘出其存在的漏洞。

web漏洞我个个喜欢分为业务逻辑漏洞和技术性漏洞两类,业务逻辑漏洞的定性是每套系统都有自己实现无统一的漏洞签名无法使用通用扫描器发现的漏洞,技术型漏洞的定性是因一致的实现或使用一致的第三方组件导致有相对统一的漏洞签名可以使用通用扫描器发现的漏洞(其实看下也没分得那么清还没想得很清楚)。

很多教程都是东一榔头西一棒槌讲各类漏洞也讲得挺清楚,但要去渗透时总感觉一是给定一类漏洞不知道可以去哪些位置找二是给定一个位置又不知道可能会存在哪些漏洞。结合自己的经验我觉得可以自己构建一个“功能----功能对应检测点”的表,以后自己去渗透只要看到web系统有某个功能就去检测其对应检测点即可。这里暂且称之为“功能触发式检测法”。

3.1 信息收集(信收集的目地是锁定可用手段的范围)



网站真实IP

站长、nslookup、dig、www.cz88.net、tcroute

操作系统

TTL、index.PHP、访问不存在页面

网站语言

index等一众页面的后缀、respone包头

服务器

访问不存在页面、respone包头、whatweb

数据库

注入报错、telnet端口

主机端口

Nmap、arp_swwep、portscan

子域名查询

subdomain.chaxun.la

网站CMS

Power By、site+“CMS”;百度”xxx CMS漏洞“

攻击面解析

awvs等爬虫式发现页面、御剑/dirb等爆破式发现隐藏页面、如果是某种标准协议则查看协议查找隐藏接口或隐藏参数

3.2 业务漏洞检测(各项业务都可攻击)

阶段

功能

功能对应检测点

身份认证

用户注册

是否可以重复注册

身份认证

密码修改

修改密码逻辑是否有问题

身份认证

密码重置

重置密码逻辑是否有问题

身份认证

短信验证码

短信炸弹

身份认证

短信验证码

短信验证码是否可爆破

身份认证

图片验证码

验证码是否可以重复使用

身份认证

登录

登录逻辑是否有问题

身份认证

用户凭证存储

登录凭证是否存在localStore或sessionStore中

会话管理

登录

会话ID生成机制是否有问题

会话管理

登录

是否有自动退出机制

会话管理

退出

退出后会话ID是否真的失效

访问控制

用户信息查看

是否可以水平越权访问其他用户页面

访问控制

具有管理员界面

是否可以垂直越权访问管理员页面

访问控制

具有管理员接口

普通用户直接发包是否也会响应

业务逻辑

购买

修改价格后端是否会再次校验

业务逻辑

多步功能

能否跳过其中某些步

业务逻辑

请求次数限制

服务端如何限制是否可以绕过

业务逻辑

好友查询类

查询自己好友是否把好友的密码等都返回来

3.3 技术型漏洞检测

功能

功能对应检测点

测试基本代码

相关工具

从数据库读取数据

是否存在sql注入

and ‘1’ ='1

sqlmap

用户输入被返回前端页面

是否存在xss


awvs等

功能使用的是请求/响应模式

是否存在csrf


awvs等

文件上传

是否有文件类型、大小限制



文件下载

是否存在目录遍历

…/etc/passwd


文件浏览

是否存在目录遍历

…/etc/passwd


调用系统命令

是否存在命令注入

;cat /etc/passwd


重定向

是否存在重定向注入



参数

参数超长是否会导致溢出

01234567890123456789


参数

参数有特殊字符是否会导致程序报错



参数

参数缺失是否会导致程序报错



四、其他类型渗透

4.1 客户端攻击

原理:利用软件的解析错误溢出执行装于文件中的exp
browser_autopwd模块构造网页自劝溢出攻击浏览器
ms10_087模块配置生成畸型文件弄到靶机打开
adobe_cooltype_sing生成畸型pdf攻击adobe

4.2 社会工程学

利用msfvenom生成各平台的包含了payload的木马
利用setoolkit制作钩鱼网站或有畸形文件的邮件
UitraISO+Hacksaw制作木马启动盘
拿着姓名/手机/邮箱等到各网站搜一圈看注册信息

4.5 无线安全

aircrack-ng破解wifi密码
Airmom-ng假冒ap,并利用karma架设假冒服务

4.6 后渗透攻击

所谓后渗透就是拿到主机shell后,提权/清除日志/增加更稳定后门/内网渗透等工作
Meterpreter可以理解为是windows的cmd,linux的shell
日志–C:\Windows\System32\winevt\Logs、/var/log

相关推荐

perl基础——循环控制_principle循环

在编程中,我们往往需要进行不同情况的判断,选择,重复操作。这些时候我们需要对简单语句来添加循环控制变量或者命令。if/unless我们需要在满足特定条件下再执行的语句,可以通过if/unle...

CHAPTER 2 The Antechamber of M de Treville 第二章 特雷维尔先生的前厅

CHAPTER1TheThreePresentsofD'ArtagnantheElderCHAPTER2TheAntechamber...

CHAPTER 5 The King&#39;S Musketeers and the Cardinal&#39;S Guards 第五章 国王的火枪手和红衣主教的卫士

CHAPTER3TheAudienceCHAPTER5TheKing'SMusketeersandtheCardinal'SGuard...

CHAPTER 3 The Audience 第三章 接见

CHAPTER3TheAudienceCHAPTER3TheAudience第三章接见M.DeTrévillewasatt...

别搞印象流!数据说明谁才是外线防守第一人!

来源:Reddit译者:@assholeeric编辑:伯伦WhoarethebestperimeterdefendersintheNBA?Here'sagraphofStea...

V-Day commemorations prove anti-China claims hollow

People'sLiberationArmyhonorguardstakepartinthemilitaryparademarkingthe80thanniversary...

EasyPoi使用_easypoi api

EasyPoi的主要特点:1.设计精巧,使用简单2.接口丰富,扩展简单3.默认值多,writelessdomore4.springmvc支持,web导出可以简单明了使用1.easypoi...

关于Oracle数据库12c 新特性总结_oracle数据库12514

概述今天主要简单介绍一下Oracle12c的一些新特性,仅供参考。参考:http://docs.oracle.com/database/121/NEWFT/chapter12102.htm#NEWFT...

【开发者成长】JAVA 线上故障排查完整套路!

线上故障主要会包括CPU、磁盘、内存以及网络问题,而大多数故障可能会包含不止一个层面的问题,所以进行排查时候尽量四个方面依次排查一遍。同时例如jstack、jmap等工具也是不囿于一个方面的问题...

使用 Python 向多个地址发送电子邮件

在本文中,我们将演示如何使用Python编程语言向使用不同电子邮件地址的不同收件人发送电子邮件。具体来说,我们将向许多不同的人发送电子邮件。使用Python向多个地址发送电子邮件Python...

提高工作效率的--Linux常用命令,能够决解95%以上的问题

点击上方关注,第一时间接受干货转发,点赞,收藏,不如一次关注评论区第一条注意查看回复:Linux命令获取linux常用命令大全pdf+Linux命令行大全pdf为什么要学习Linux命令?1、因为Li...

linux常用系统命令_linux操作系统常用命令

系统信息arch显示机器的处理器架构dmidecode-q显示硬件系统部件-(SMBIOS/DMI)hdparm-i/dev/hda罗列一个磁盘的架构特性hdparm-tT/dev/s...

小白入门必知必会-PostgreSQL-15.2源码编译安装

一PostgreSQL编译安装1.1下载源码包在PostgreSQL官方主页https://www.postgresql.org/ftp/source/下载区选择所需格式的源码包下载。cd/we...

Linux操作系统之常用命令_linux系统常用命令详解

Linux操作系统一、常用命令1.系统(1)系统信息arch显示机器的处理器架构uname-m显示机器的处理器架构uname-r显示正在使用的内核版本dmidecode-q显示硬件系...

linux网络命名空间简介_linux 网络相关命令

此篇会以例子的方式介绍下linux网络命名空间。此例中会创建两个networknamespace:nsa、nsb,一个网桥bridge0,nsa、nsb中添加网络设备veth,网络设备间...