黑盒渗透测试的一些姿势和个人总结,四面楚歌的软件测试工程师该何去何从

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注软件测试)
img

正文


主动/被动搜集

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

主动信息搜集就是通过直接访问和扫描信息的方式进行收集信息,缺点是会记录自己的操作信息;被动信息搜集就是通过第三方服务进行信息搜集,缺点是收集信息有限。信息搜集是很重要的一部分,信息越全面对后面的攻击越有帮助,可以先尽最大努力的使用被动信息搜集方式最大效果的搜集信息,再使用主动信息搜集的方式搜集非被动搜集不到的信息。

常用套路

  1. 搜集网站单位信息。这项可以通过一些在线网站来查询,可以由此得到单位的基本信息。分享几个单位信息查询站点:

天眼查:https://www.tianyancha.com

启信宝:http://www.qixin.com

企业信用信息公示系统:https://www.gsxt.gov.cn/index.html

事业单位在线:http://www.gjsy.gov.cn

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

Chinaz:http://whois.chinaz.com

Aliyun:https://whois.aliyun.com

Whois365:https://www.whois365.com/cn

  1. 搜集网站备案信息:ICP/IP地址/域名信息备案管理系统:https://beian.miit.gov.cn/

  2. 搜集子域名信息。子域名往往是渗透过程中重点关注的对象,主站行不通的情况下往往首先想到子站入手。

分享几个子域名搜集方法和工具:搜索引擎查询(Baidu、So、Bing、Google等)、父站点爬取、子域名挖掘机、Host、Dig

DNS域传送漏洞:http://drops.xmd5.com/static/drops/tips-2014.html

IP反查:http://www.cnblogs.com/dongchi/p/4155368.html

Forward-DNS :https://github.com/rapid7/sonar/wiki/Forward-DNS

Dnsenum:https://tools.kali.org/information-gathering/dnsenum

Dnsmap:https://tools.kali.org/information-gathering/dnsmap

Fierce:https://tools.kali.org/information-gathering/fierce

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

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

  3. 搜集旁站信息。主站搞不定的情况下搞下旁站也是一条路,毕竟目的是一个突破点。感谢师傅分享的旁站查询接口(http://www.cnblogs.com/dongchi/p/4155368.html)。

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

Webscan:http://www.webscan.cc/

Hackmall:http://www.hackmall.cn/index.php

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

源码泄漏文件:https://www.secpulse.com/archives/55286.html

  1. 搜集服务器和中间件信息。这一项也有多种方式,可以通过Zoomeye(https://www.zoomeye.org/)、Shodan(https://www.shodan.io/)、fofa(https://fofa.info/)、hunter(https://hunter.qianxin.com/)等优秀的在线系统搜集,也可以利用Nmap、MSF、Zmap等端口和指纹识别功能搜集,也可以用NC和Telnet获取Banner信息进行识别,Web方面可以用Whatweb工具或者通过Headers信息。

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

  3. 搜集历史漏洞。若能够在根据已有信息情况下找到一枚历史漏洞将会是一个巨大的帮助。漏洞查询站点举例:

exploitdb :https://www.exploit-db.com/

hackerone:https://www.hackerone.com/

CNVD :http://www.cnvd.org.cn/

佩奇文库 :https://peiqi.wgpsec.org/

鹏组安全文库:https://www.yuque.com/lemonlove7/wiki/

从信息到规划

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

漏洞挖掘与利用


漏洞挖掘

站点漏洞挖掘是大家都经常搞的了,挖洞技能全靠平时积累学习。看文章的师傅们水平目测都比我高,这里不班门弄斧了,只分享下一般站点漏洞挖掘的个人习惯(不对地方还请指出,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隐藏账户(https://007.gangguana.com/a/f07bdd0d4151a2d1622348ef38c6ae63.shtml)、windows隐藏账户(http://blog.sina.com.cn/s/blog_53aab5c10101dhtt.html)的方式保持权限。

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

内网渗透

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

常用套路

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

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

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

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

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

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

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

  8. 内网穿透。在进行部分攻击时候,可能需要让其他内网电脑穿过外网出口进行辅助测试,另外经过Web站点做代理进行穿透时候还需要做Web端口复用。

后记


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

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
要体现出漏洞危害程度与漏洞细节,相应的修补建议尤其是内网修补建议要详细、规格、严谨。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
[外链图片转存中…(img-8smN88aI-1713623331175)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 10
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C语言是一种广泛使用的编程语言,它具有高效、灵活、可移植性强等特点,被广泛应用于操作系统、嵌入式系统、数据库、编译器等领域的开发。C语言的基本语法包括变量、数据类型、运算符、控制结构(如if语句、循环语句等)、函数、指针等。在编写C程序时,需要注意变量的声明和定义、指针的使用、内存的分配与释放等问题。C语言中常用的数据结构包括: 1. 数组:一种存储同类型数据的结构,可以进行索引访问和修改。 2. 链表:一种存储不同类型数据的结构,每个节点包含数据和指向下一个节点的指针。 3. 栈:一种后进先出(LIFO)的数据结构,可以通过压入(push)和弹出(pop)操作进行数据的存储和取出。 4. 队列:一种先进先出(FIFO)的数据结构,可以通过入队(enqueue)和出队(dequeue)操作进行数据的存储和取出。 5. 树:一种存储具有父子关系的数据结构,可以通过中序遍历、前序遍历和后序遍历等方式进行数据的访问和修改。 6. 图:一种存储具有节点和边关系的数据结构,可以通过广度优先搜索、深度优先搜索等方式进行数据的访问和修改。 这些数据结构在C语言中都有相应的实现方式,可以应用于各种不同的场景。C语言中的各种数据结构都有其优缺点,下面列举一些常见的数据结构的优缺点: 数组: 优点:访问和修改元素的速度非常快,适用于需要频繁读取和修改数据的场合。 缺点:数组的长度是固定的,不适合存储大小不固定的动态数据,另外数组在内存中是连续分配的,当数组较大时可能会导致内存碎片化。 链表: 优点:可以方便地插入和删除元素,适用于需要频繁插入和删除数据的场合。 缺点:访问和修改元素的速度相对较慢,因为需要遍历链表找到指定的节点。 栈: 优点:后进先出(LIFO)的特性使得栈在处理递归和括号匹配等问题时非常方便。 缺点:栈的空间有限,当数据量较大时可能会导致栈溢出。 队列: 优点:先进先出(FIFO)的特性使得
C语言是一种广泛使用的编程语言,它具有高效、灵活、可移植性强等特点,被广泛应用于操作系统、嵌入式系统、数据库、编译器等领域的开发。C语言的基本语法包括变量、数据类型、运算符、控制结构(如if语句、循环语句等)、函数、指针等。下面详细介绍C语言的基本概念和语法。 1. 变量和数据类型 在C语言中,变量用于存储数据,数据类型用于定义变量的类型和范围。C语言支持多种数据类型,包括基本数据类型(如int、float、char等)和复合数据类型(如结构体、联合等)。 2. 运算符 C语言中常用的运算符包括算术运算符(如+、、、/等)、关系运算符(如==、!=、、=、<、<=等)、逻辑运算符(如&&、||、!等)。此外,还有位运算符(如&、|、^等)和指针运算符(如、等)。 3. 控制结构 C语言中常用的控制结构包括if语句、循环语句(如for、while等)和switch语句。通过这些控制结构,可以实现程序的分支、循环和多路选择等功能。 4. 函数 函数是C语言中用于封装代码的单元,可以实现代码的复用和模块化。C语言中定义函数使用关键字“void”或返回值类型(如int、float等),并通过“{”和“}”括起来的代码块来实现函数的功能。 5. 指针 指针是C语言中用于存储变量地址的变量。通过指针,可以实现对内存的间接访问和修改。C语言中定义指针使用星号()符号,指向数组、字符串和结构体等数据结构时,还需要注意数组名和字符串常量的特殊性质。 6. 数组和字符串 数组是C语言中用于存储同类型数据的结构,可以通过索引访问和修改数组中的元素。字符串是C语言中用于存储文本数据的特殊类型,通常以字符串常量的形式出现,用双引号("...")括起来,末尾自动添加'\0'字符。 7. 结构体和联合 结构体和联合是C语言中用于存储不同类型数据的复合数据类型。结构体由多个成员组成,每个成员可以是不同的数据类型;联合由多个变量组成,它们共用同一块内存空间。通过结构体和联合,可以实现数据的封装和抽象。 8. 文件操作 C语言中通过文件操作函数(如fopen、fclose、fread、fwrite等)实现对文件的读写操作。文件操作函数通常返回文件指针,用于表示打开的文件。通过文件指针,可以进行文件的定位、读写等操作。 总之,C语言是一种功能强大、灵活高效的编程语言,广泛应用于各种领域。掌握C语言的基本语法和数据结构,可以为编程学习和实践打下坚实的基础。
作为一个渗透测试工程师,你需要具备一些必要的工作技能。根据引用的内容,以下是一些渗透测试工程师可能需要掌握的技能: 1. 网络和系统知识:作为渗透测试工程师,你需要对计算机网络和系统有深入的了解,包括网络协议、操作系统、数据库等。 2. 渗透测试工具:你需要熟悉和掌握各种渗透测试工具,比如Metasploit、Nmap、Burp Suite等。这些工具可以帮助你发现系统中的漏洞和弱点,并进行渗透攻击。 3. 漏洞分析和利用:你需要学会分析和利用系统中的各种漏洞,包括但不限于代码注入、跨站脚本攻击、跨站请求伪造等。这些技能可以帮助你评估系统的安全性并提供相应的建议。 4. 社交工程:作为渗透测试工程师,你需要了解社交工程的概念和技巧。社交工程是通过欺骗、诱导等手段获取目标系统的信息或权限的一种方式。 5. 代码审计:你需要具备代码审计的能力,这可以帮助你发现应用程序中的安全漏洞和错误。 6. 漏洞报告和解决方案:在发现安全漏洞后,你需要编写详细的漏洞报告,并提供相应的解决方案和建议。 综上所述,作为一个渗透测试工程师,你需要掌握网络和系统知识、渗透测试工具、漏洞分析和利用、社交工程、代码审计以及漏洞报告和解决方案等技能。这些技能将帮助你评估和提升系统的安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值