搜到一篇写渗透测试步骤比较详细的文章,转过来学习,方便时常看看。

内容如下:

一、信息搜集

主动/被动搜集

信息搜集分为主动信息搜集和被动信息搜集。

主动信息搜集就是通过直接访问和扫描信息的方式进行收集信息,缺点是会记录自己的操作信息;

被动信息搜集就是通过第三方服务进行信息搜集,缺点是收集信息有限。

信息搜集是很重要的一部分,信息越全面对后面的攻击越有帮助,可以先尽最大努力的使用被动信息搜集方式最大效果的搜集信息,再使用主动信息搜集的方式搜集非被动搜集不到的信息。

常用套路

1. 搜集网站单位信息。这项可以通过一些在线网站来查询,可以由此得到单位的基本信息。分享几个单位信息查询站点:天眼查、启信宝、企业信用信息公示系统、事业单位在线、

2. 搜集whois信息。一个网站的切入点,可以由此得到域名相关信息。列举几个whois查询站点:Chinaz、Aliyun、Whois365

3. 搜集网站备案信息:ICP备案查询网 、ICP/IP地址/域名信息备案管理系统

4. 搜集子域名信息。子域名往往是渗透过程中重点关注的对象,主站行不通的情况下往往首先想到子站入手。分享几个子域名搜集方法和工具:搜索引擎查询(Baidu、So、Bing、Google等)、DNS域传送漏洞、父站点爬取、IP反查、Forward-DNS 、子域名挖掘机、Host、Dig、Dnsenum、Dnsmap、Fierce

5. 搜集邮件系统信息。邮件系统也是需要重点关注的地方,在自建邮件服务情况下很好的利用邮件服务可以达到意想不到效果,并且在GET到某些邮件地址情况下进行钓鱼也不错的选择。可以先通过域名MX记录查看是否为自建邮件服务器,自建的情况下可以后续测试漏洞,通过TheHarvester可以进行邮箱挖掘,后续再爆破一波就美滋滋了。

6. 搜集真实IP地址。弄到藏在CDN后的真实IP的确是个头大的事情,师傅们分享的大多是通过多地ping的方式确定是否有CDN,再通过子站IP尝试和国外访问尝试的方式看看是否可获得IP,或通过历史域名解析记录寻找IP,或利用DNS社工库查询IP、或利用邮件验证码之类功能获取邮件发送地址,或利用DDOS消耗CND进行IP泄漏。

7. 搜集旁站信息。主站搞不定的情况下搞下旁站也是一条路,毕竟目的是一个突破点。感谢师傅分享的旁站查询接口。

8. 搜集C段信息。一个单位不可能只买一个IP,很多都是大小段的买,所以从C段也能突破进单位,举例几个的查C段工具:Nmap、Zmap、Webscan、Hackmall

9. 搜集Web敏感文件。Web敏感文件比较多,日常留意多搜集。举几个例子:robots.txt、crossdomin.xml、sitemap.xml、源码泄漏文件

10. 搜集服务器和中间件信息。这一项也有多种方式,可以通过Zoomeye、Shodan等优秀的在线系统搜集,也可以利用Nmap、MSF、Zmap等端口和指纹识别功能搜集,也可以用NC和Telnet获取Banner信息进行识别,Web方面可以用Whatweb工具或者通过Headers信息。

11. 搜集WAF信息:WAF识别大多基于Headers头信息,有一个老工具Wafw00f可以用来探测一定的Waf,也可利用Sqlmap的waf脚本,也可使用Nmap的http-waf-detect和http-waf-fingerprint脚本,也可自己平时多收集Waf特征。

12. 搜集历史漏洞。若能够在根据已有信息情况下找到一枚历史漏洞将会是一个巨大的帮助。漏洞查询站点举例:exploitdb 、hackerone、CNVD 、0day5 、乌云漏洞库镜像站。

从信息到规划

根据已搜集的信息进行梳理与分析,查找疏漏点进行搜集补充,从各个角度都整理一套渗透攻击步骤与思路的规划,优先以最擅长的方面切入,优先以最有把握的点切入,以不打草惊蛇为原则。

二、漏洞挖掘与利用

 漏洞挖掘

站点漏洞挖掘是大家都经常搞的了,挖洞技能全靠平时积累学习。看文章的师傅们水平目测都比我高,这里不班门弄斧了,只分享下一般站点漏洞挖掘的个人习惯(不对地方还请指出,3Q)。

1. 针对站点漏洞挖掘,我个人不喜欢直接上AWVS、Appscan、Nessus之类的重量级扫描器,一方面用重量级扫描器会很容易被负责的运维人员发现,这样无疑会增大接下来的渗透难度;另一方面会被绊IP,这样就损失部分代理或肉鸡;再一方面还有一定机率对站点数据和服务造成破坏,这也是渗透最不想看到的事;再者说现在的站点也没有能轻易被扫描器扫出来的Web漏洞。

2. 对一个站点,我一般会习惯性的按着从系统漏洞探测到中间件漏洞探测再到Web漏洞探测的过程。虽说大多数情况下系统漏洞和中间件漏洞碰到的不多,但万一走运了。对系统漏洞和中间件漏洞挖掘,常用Nmap脚本、MSF模块、F-MiddlewareScan框架等工具。对于Web漏洞探测,若是CMS站点首先去寻找版本漏洞,也可以WPScan、Joomscan、M7lrv-CMS之类工具扫一扫,也可以利用CMS-Exploit-Framework框架利用漏洞,但大多CMS攻击还需要靠自己积累学习(挖0day);若是自行开发的Web站点,那就需要发挥一个Web狗的特长了,先搞帐号熟悉一下基本功能和结构,重点地方重点排查,从注册到登录到功能到……从注入到跨站到第三方功能组件……多多探测,多多fuzz。

3. 主站搞不下搞旁站,旁站搞不下搞C段,只要得到一个突破口就够了。站点都不好弄情况下,还可以根据已有的信息进行社工以获得更多的信息,信息越多进行密码破解可能性越大。

4. 若对测试目标左挖右挖都挖不到能利用的点,那也不,还有一项:APT攻击。一个测试目标,即便站点维护强固,但也很难保证内部员工安全素质极高,一点小小的疏漏就给了攻击者可趁之机。做一个有深度的APT攻击是个很耗时耗力的事情,但对于测试目标安全性能底线而言,可以进行一个小型的APT攻击。现在常见的APT攻击手段就是水坑攻击和鱼叉式网络钓鱼。攻击的前提是社工得到足够的内部员工的体系结构、上网习性等信息,了解体系结构才能知道在哪里能够获得更有用的信息,了解上网习性才能利用习性漏洞进行开展入侵。一个软件使用版本、使用习惯都会给攻击者带来一个入侵点,但攻击者肚里也要有足够的量。反正只要能通过水坑攻击或鱼叉式钓鱼等方式搞到一台内部机,剩余的都是搞内网的事情了。

漏洞利用

1. 利用挖掘出来的漏洞也要很小心,能把服务打瘫痪的漏洞就先不要尝试了。

2. 对于系统漏洞和中间件漏洞,自己常用的就是msf和exploitdb直接利用现成脚本工具打,但特别情况下也需要修改或自造脚本。

3. 对于逻辑漏洞、越权、CSRF/XSRF之类的漏洞,在没法扩大渗透深度的情况下就可以写这项的报告了。

4. 对于SSRF漏洞,环境允许的情况下可以很好的利用它进行内网探测与攻击,关于SSRF推荐猪猪侠师傅的《一个只影响有钱人的漏洞》文章。

5. 对于任意文件上传漏洞,能拿shell就可以做跳板搞内网了。

6. 对于任意文件包含和任意读取,一般就是远程包含拿shell,本地读取拿文件,特别情况下还可以扩大利用。

7. 对于SQL注入漏洞,注入要有“度”,能得到管理员密码进后台上shell就知足了,千万别动别的,利用方式上提倡自写脚本。

8. 对于XSS漏洞,不要习惯性的拿弹窗测试,不建议使用别人搭建的平台,可以利用BlueLotus_XSSReceiver搭建或者利用BeEF或者利用XSSer或者写个小脚本自建。

其他漏洞就不一一举例了,反正在隐秘测试的情况下,能悄悄的就悄悄的。

漏洞挖掘与利用辅助工具也就那些常用的那些,除了上面列举外再举例几个自己比较习惯的:Firefox插件(Hackbar、HackSearch、HttpRequester、Live Http headers、Modify Headers、Netcraft Anti-Phishing Toolbar、NoScript、Wappalyzer、Web Developer)、御剑、椰树、dirb、K8fly、Sqlmap、BurpSuite、AntSword、Hashcat、Hydra、Medusa。

三、提权与维权

提升权限

虽说仅仅是个测试,但很多情况下提权还是要的,这是变点为面的前提。当然,提权也未必是在自己拿到的站点服务器或钓到的那个主机上提权,提权目的是有个高权限的机子来方便测试整个内网,比如可以以已有机器为跳板以远程提权方式来打到内网其他主机的高权限,所以只要在内网任意机器上拿到可进一步渗透利用的高级权限就够了。提权方法也有很多,不同环境下有不同的姿势。

1. 系统漏洞提权。windows下可以用systeminfo查看系统版本和补丁记录,利用没修补的漏洞提权,例如MS11080等;linux下可以用uname -a查看系统内核版本,利用系统内核漏洞提权(内核提权很容易导致系统崩溃,要小心),例如心脏出血等。

2. 数据库提权。一方面可以利用数据库漏洞得到数据库执行权的Shell;另一方面可以在站点数据库配置文件找数据库帐号密码,利用数据库系统命令执行功能获得数据库执行权的Shell。数据库漏洞上例如Mssql的JOB提权、Mysql的Mof提权。

3. Web中间件漏洞提权。通过Web服务的容器漏洞进行本地提权。例如IIS溢出、Tomcat提权等。

4. 第三方软件提权。很多开机自启的软件都会以system权限运行,或者使用者启动时使用了管理员权限运行。例如Radmin、Filezllia、搜狗拼音提权等

5. 系统错误配置提权。在windows下可以使用BeRoot工具进行系统配置检查,利用配置错误点进行提权。

6. 获取高权限账号提权。可以在控制机上利用LaZagne project(支持linux、windows、mac),可以抓取chats、mails、database、wifi、sysadmin、wallet、browsers、memory中的密码,可以利用抓取到的密码进行高权限帐号密码测试,也可以利用神器mimikatz和mimipenguin,不过在部分时候由于权限问题可能读取不到部分密码。

维持权限

维权也是一个必须的点,好不容易搞到的跳板可不能轻易丢了。维权也就是所谓的留后门,无论windows下还是linux下留后门姿势都多种多样,我也就只列举几个吧。

1. 服务器站点可以采取构造Web漏洞方式维权。我感觉这种方式比放上个马可靠多,同时漏洞构造的隐蔽一些,让其他人给利用了就不好完了。比如可以构造复杂的文件包含漏洞包含放在某个系统目录下的木马图片来获取Shell,也可以构造SQL注入利用Sqlmap的--os-shell参数来执行Shell。

2. 服务器站点可以使用过狗过盾的复杂马维权。复杂马的构造需要私下自己多实验多构造了。

3. Linux、Windows账户维权。这个方法只适合没有做LDAP或堡垒机之类的SSO统一权限管理和没有屏蔽对外端口的情况,可以利用密码读取工具读取到的密码进行保持权限,也可以自建linux隐藏账户、windows隐藏账户的方式保持权限。

4. 工具法维权。工具概括来说就是主动反弹和被动连接两种。两种方式各有优缺点,例如:主动反弹方式既可以放在有公网IP的服务器站点也可以放在内网钓到的机子上,并且更方便规避防火墙、IPS等阻碍,但需要设定触发机制,不能做到想连就连;被动连接方式能够随时连,但无法利用在内网机子上(除非你拿了上层路由做了端口映射)。利用上例如msf生成后门、nc反弹,脚本反弹shell等。

四、内网渗透

内网渗透基本都是依据当前所获得的网络环境进行策略制定,不同环境方式不同,但内网中能搞得也就常说的那些,在有比较靠谱的防火墙、NIDS、IPS的情况下内网就更加难搞了,时时刻刻还要提防它们。这里也就之列举一下常用的内网思路。

常用套路

1. 网络拓扑探测。探测拓扑是个很头大的事,子内网和防火墙都会阻碍拓扑探测。大多也只能探测到上层网、公共网、内网服务器网的网络环境,再有些其他因素就导致探测的更少了。

2. 内网弱口令。内网弱口令其实还是蛮多的,可以对同子网个人电脑、内网服务器、交换机、路由器尝试弱口令破解。

3. 内网服务器漏洞。若在OA之类的内网办公通讯站点,可以挖到漏洞就可以获取到部分有助内网渗透的信息。

4. 内网路由器漏洞。无论是上层网路由还是内网服务器网路由,只要拿下路由器那就是个很大的帮助,这样就可以进一步做端口映射和转发,更好的其搜集其他内网信息,扩大了攻击面。

5. 内网个人电脑漏洞。例如利用17010之类的远程漏洞测试同子内网中的个人电脑,进而多搜集信息,以方便测试内网服务器。一个不错的内网信息搜集脚本:地址

6. 内网钓鱼。和一般钓鱼思路差不多,不过内网中更容易让别人信任,可以通过OA和办公邮件进行钓鱼。

7. 中间人攻击。不同环境下可以用不同的姿势,一般用的多的就是ARP欺骗、DNS欺骗、会话劫持,进行中间人攻击的前提是取得一定的内网权限。

8. 内网穿透。在进行部分攻击时候,可能需要让其他内网电脑穿过外网出口进行辅助测试,这里推荐一篇不错的穿越边界的姿势,另外经过Web站点做代理进行穿透时候还需要做Web端口复用。

后记

一场正规测试下清理痕迹就可以省了,所以这里也不写了,但还是需要老老实实供出在人家网络干了哪些事,以免以后出其他乱子扣在自己头上。另外还需要撰写漏洞报告,一个漂亮的报告是渗透测试的满意答卷,漏洞报告上不仅要体现出漏洞危害程度与漏洞细节,相应的修补建议尤其是内网修补建议要详细、规格、严谨。

 

本文转自微信公众号 - HACK学习呀(Hacker1961X),作者:FoxRoot

黑盒渗透测试【转自HACK学习-FoxRoot】的更多相关文章

  1. 《Web安全攻防 渗透测试实战指南 》 学习笔记 (五)

    Web安全攻防 渗透测试实战指南   学习笔记 (五)   第四章 Web安全原理解析  (一) (一)SQL注入的原理 1.web应用程序对用户输入数据的合法性没有判断. 2.参数用户可控:前端传给 ...

  2. 《Web安全攻防 渗透测试实战指南》 学习笔记 (四)

    Web安全攻防 渗透测试实战指南   学习笔记 (四) Nmap                                       Network  Mapper    是一款开放源代码的网 ...

  3. 《Web安全攻防 渗透测试实战指南 》 学习笔记 (三)

    Web安全攻防 渗透测试实战指南   学习笔记 (三) burp suite详解                                                 是一款集成化渗透测试工 ...

  4. 《Web安全攻防 渗透测试实战指南》 学习笔记 (二)

    Web安全攻防 渗透测试实战指南   学习笔记 (二)   第二章  漏洞环境及实践  

  5. 《Web安全攻防 渗透测试实战指南》 学习笔记(一)

    Web安全攻防 渗透测试实战指南   学习笔记 (一) 第一章   信息收集     在信息收集中,最重要是收集服务器的配置信息和网站敏感信息(域名及子域名信息目标网站系统.CMS指纹.目标网站真实I ...

  6. 2019-9-19:渗透测试,HTML基础学习,html绘制表格

    1,受理员业务统计表 效果图: 代码: <!DOCTYPE html><html><head> <title>表格1</title>< ...

  7. python渗透测试入门——基础的网络编程工具

    <Python黑帽子--黑客与渗透测试编程之道学习>这本书是我在学习安全的过程中发现的在我看来十分优秀的一本书,业内也拥有很高的评价,所以在这里将自己的学习内容分享出来. 1.基础的网络编 ...

  8. Kali Linux Web 渗透测试视频教程— 第四课 google hack 实战

    Kali Linux Web 渗透测试— 第四课 google hack 实战 文/玄魂 目录 shellKali Linux Web 渗透测试— 第四课 google hack 实战 课程目录 Go ...

  9. penetration testers渗透测试,hack,vnc,nat,

    penetration testers渗透测试,hack,vnc,nat,

随机推荐

  1. excel替换函数substitute

    1.substitute(需要执行替换操作的单元格区域,旧文本,新文本,第N个旧内容) 例:substitute(A1,"a","b",2)    A1=aab ...

  2. AIDL —— Android接口定义语言

    AIDL:Android Interface Definition Language,即Android接口定义语言,是Android进程间通信比较常用的一种方式.翻译一下,就是为了让某个Service ...

  3. CSS3转换(transform)基本用法介绍

    一个炫酷的网页离不开css的transform.transition.animation三个属性,之前一直没有涉及到这块内容,刚好最近要做一个相关东西,趁此机会好好学一学这三个属性. 一.功能 实现元 ...

  4. POJ 3026 Borg Maze 广搜(BFS)+最小生成树

    题意:从S出发,去抓每一个A,求总路径最短长度.在S点和A点人可以分身成2人,不过一次只能让一个人走. 思路是先利用BFS求出各点之间的距离,建成图,再套用最小生成树模板. 一次性A了.不过觉得在判断 ...

  5. 想成为Java高手的25个学习目标

    本文将告诉你学习Java需要达到的25个目标,希望能够对你的学习及找工作有所帮助.对比一下自己,你已经掌握了这25条中的多少条了呢? 1.你需要精通面向对象分析与设计(OOA/OOD).涉及模式(GO ...

  6. 6-x1 read命令:从键盘读取数据

    1.read的用法 read从 STDIN 读取一行数据并将其赋给一个变量,如果没有进行重定向,默认就是从键盘读取用户输入的数据:如果进行了重定向,那么可以从文件中读取数据. read 命令的用法为: ...

  7. Leetcode No.26 Remove Duplicates from Sorted Array(c++实现)

    1. 题目 1.1 英文题目 Given an integer array nums sorted in non-decreasing order, remove the duplicates in- ...

  8. 【笔记】Python编程 从入门到实践 第二版(基础部分)

    1 字符串相关函数 .title() # 将字符串每个单词的首字母大写 .upper() #不改变字符串变量的值 .lower() #不改变字符串变量的值 f"{var} ,字符串" ...

  9. 「HEOI2016/TJOI2016」排序

    「HEOI2016/TJOI2016」排序 题目大意 给定一个 \(1\) 到 \(n\) 的排列,每次可以对这个序列的一个区间进行升序/降序排序,求所有操作后第 \(q\) 个位置上的数字. 题解 ...

  10. 【动画消消乐】HTML+CSS 自定义加载动画 061

    前言 Hello!小伙伴! 非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出- 自我介绍ଘ(੭ˊᵕˋ)੭ 昵称:海轰 标签:程序猿|C++选手|学生 简介:因C语言结识编程,随后转入计算机专 ...