声明:学习视频来自b站up主 泷羽sec,如涉及侵权马上删除文章
感谢泷羽sec 团队的教学
视频地址:信息收集(1)_哔哩哔哩_bilibili
渗透测试思路
1、信息收集
信息收集是渗透测试和网络攻击的首要步骤,旨在通过各种方式获取目标系统的相关信息。这些信息包括但不限于IP地址、开放端口、服务版本、操作系统类型等。
信息收集的方法包括使用搜索引擎、社交媒体、DNS查询、端口扫描等。通过信息收集,攻击者可以了解目标系统的网络拓扑结构、安全防护措施以及可能存在的漏洞。
2、漏洞扫描
漏洞扫描是基于漏洞数据库,通过扫描等手段对指定的远程或本地计算机系统的安全脆弱性进行检测,发现可利用漏洞的一种安全检测行为。
漏洞扫描器包括网络漏扫、主机漏扫、数据库漏扫等不同种类。通过漏洞扫描,攻击者可以发现目标系统上存在的已知漏洞,并评估这些漏洞的严重程度和利用难度。
3、漏洞挖掘
漏洞挖掘是针对某个系统或应用,去分析其弱点并挖掘其可被利用的漏洞的过程。
漏洞挖掘需要较高的技术水平和专业知识,通常包括代码审计、逆向工程、模糊测试等方法。通过漏洞挖掘,攻击者可以发现未知漏洞,并制定相应的利用方法。
4、开始攻击
在完成信息收集、漏洞扫描和漏洞挖掘后,攻击者会选择合适的漏洞进行攻击。
攻击的方法包括利用漏洞进行远程代码执行、SQL注入、文件上传等。攻击的目的是获取目标系统的访问权限或执行恶意代码。
5、权限维持(持久化)
权限维持是指在成功获取系统或网络的访问权限后,采取一系列技术手段来确保这种权限能够持续存在,不被轻易发现和清除。
权限维持的方法包括修改系统配置、创建后门账户、安装恶意软件等。通过权限维持,攻击者可以在较长时间内持续访问目标系统,窃取敏感信息或进行进一步的攻击。
6、免杀隐藏
免杀隐藏是指使恶意软件或特定程序能够逃避安全检测系统的检测的技术。
免杀隐藏的方法包括加密、分离、隐藏等技术。通过修改恶意软件的代码、进程、网络连接等属性,使其难以被安全检测系统发现和清除。
7、横向移动
横向移动是指攻击者在成功入侵一个系统后,利用该系统作为跳板,进一步攻击其他系统的过程。
通过横向移动,攻击者可以扩大攻击范围,获取更多的敏感信息和控制权。
8、痕迹清理
痕迹清理是指攻击者在完成攻击后,清除在目标系统上留下的痕迹和证据的过程。
痕迹清理的目的是防止安全防护系统和管理员发现攻击行为,从而保护攻击者的身份和行动不被曝光。
痕迹清理的方法包括删除日志文件、清除恶意软件、修改系统时间等。
渗透测试是干什么的
渗透测试,又称为渗透性测试或入侵测试,是一种主动的安全评估方法。由受信任的第三方通过模拟黑客的攻击技术与手段,对目标网络、系统进行全面深入的安全测试的过程。其目的是发现目标系统中的安全隐患,并给出相应的安全加固建议。
常用端口号与对应的服务
端口号 | 服务 | 描述 |
---|---|---|
20/21 | FTP | 文件传输协议,用于文件上传和下载。端口20用于数据传输,端口21用于命令传输。 |
22 | SSH | 安全外壳协议,用于安全登录远程主机,提供远程操作的安全通道。 |
23 | Telnet | 远程登录的标准协议,用于远程主机的管理和操作,但不加密。 |
25 | SMTP | 简单邮件传输协议,用于发送电子邮件。 |
53 | DNS | 域名系统,用于将域名解析为IP地址。 |
80 | HTTP | 超文本传输协议,用于在Web浏览器和Web服务器之间传输超文本数据。 |
110 | POP3 | 邮局协议第3版,用于从远程服务器接收邮件。 |
143 | IMAP | Internet消息访问协议,用于在本地客户端和邮件服务器之间接收和管理电子邮件。 |
443 | HTTPS | 超文本传输协议安全版,通过SSL/TLS加密协议提供安全的HTTP连接。 |
445 | SMB | 服务器消息块协议,用于文件和打印机共享以及其他一些网络通信。 |
3389 | RDP | 远程桌面协议,用于远程桌面连接。 |
1080 | SOCKS代理 | SOCKS代理协议服务器常用端口,用于代理服务器连接。 |
8080 | HTTP代理/Tomcat | HTTP协议代理服务器常用端口,也是Tomcat服务器默认的端口。 |
3128 | HTTP代理 | 另一种常见的HTTP协议代理服务器端口。 |
9080 | WebSphere应用 | IBM WebSphere应用程序的默认端口。 |
9090 | WebSphere管理 | IBM WebSphere管理工具的默认端口。 |
1521 | Oracle数据库 | Oracle数据库系统的默认端口。 |
5432 | PostgreSQL | PostgreSQL数据库系统的默认端口。 |
6379 | Redis | Redis数据库的默认端口。 |
2375/2376 | Docker | Docker容器管理服务的未加密和加密端口。 |
信息收集
1.1 工商数据收集
1、什么是工商数据收集:工商数据收集是指通过各种合法途径和方法,系统地获取、整理和分析与企业工商注册、经营、变更、注销等相关的数据信息的过程。这些信息通常包括企业的基本信息(如企业名称、注册地址、法定代表人、注册资本、成立日期等)、股东及出资信息、经营范围、经营状况、信用记录等多个方面。
2、收集方法:爱企查、天眼查、小蓝本、企查查、启信宝、网站备案等
3、收集作用:
a、获取控股子公司名称、收集边缘资产
b、获取备案根域名
c、获取其他互联网资产
d、收集用户名等信息
天眼查:https://www.tianyancha.com/
企查查:https://www.qcc.com/
1.2 域名注册信息
可以查询到域名是谁注册的
爱站网:https://whois.aizhan.com/
微步域名信息查询:https://x.threatbook.com/
腾讯云域名WHOIS信息查询地址:
https://whois.cloud.tencent.com/domain?domain=
其他查询地址:
中国万网域名WHOIS信息查询地址:
https://whois.aliyun.com/
西部数码域名WHOIS信息查询地址:
https://whois.west.cn/
新网域名WHOIS信息查询地址:
http://whois.xinnet.com/domain/whois/index.jsp
纳网域名WHOIS信息查询地址:
http://whois.nawang.cn/
中资源域名WHOIS信息查询地址:
https://ww.zzy.cn/domain/whois.html
三五互联域名WHOIS信息查询地址:
https://cp.35.com/chinese/whois.php
新网互联域名WHOIS信息查询地址:
http://www.dns.com.cn/show/domain/whois/index.do
美橙互联域名WHOIS信息查询地址:
https://whois.cndns.com/
爱名网域名WHOIS信息查询地址:
https://www.22.cn/domain/
易名网域名WHOIS信息查询地址:
https://whois.ename.net/
站长之家域名WHOIS信息查询地址:
https://whois.chinaz.com/
1.3 ICP备案查询
国家企业信用信息公示系统:
https://www.gsxt.gov.cn
ICP备案查询网:
https://www.beianx.cn/
其它备案信息查询网站
ICP/IP地址/域名信息备案管理系统:https://beian.miit.gov.cn/#/Integrated/index
站长之家备案信息查询:https://icp.chinaz.com/
....
1.4 SEO综合查询
爱站:https://www.aizhan.com/cha/
1.5 子域名信息收集
在线收集子域名
Layer子域名挖掘机
1.6 谷歌语法信息收集
使用Google等搜索引擎对某些特定的网络主机漏洞(通常是服务器上的脚本漏洞)进行搜索,以达到快速找到漏洞主机或特定主机的漏洞的目的。Google毫无疑问是当今世界上最强大的搜索引擎。然而,在黑客手中,它也是一个秘密武器,它能搜索到一些你意想不到的信息。
但是要注意,用google搜索引擎,你需要一个能够fq的vpn工具,因为google是国外的,只有国外的网络才能使用,如果你没有的话,可以找一个,如果实在找不到,我们可以使用百度等搜索引擎,国内的引擎也已经挺强大的了,我们先看看google hack的用法。
常用语法
inurl: 用于查找含有该值的所有url网址网页。例:inurl:mail(可找一些免费邮箱)
related::找出和该网址类似的网站,比如想知道和amazon.com类似的大型网络书店有哪些时输入
amazon.com网址。例:related:amazon.com
intext: 只搜索网页部分中包含的文字(也就是忽略了标题,URL等的文字).
filetype: 搜索通过文件的后缀或者扩展名来搜索含有这类文件的网页
intitle: 标题中存在关键字的网页
allintitle: 搜索所有关键字构成标题的网页. 但是推荐不要使用
link: 可以得到一个所有包含了某个指定URL的页面列表. 当我们使用link:URL提交查询的时候,Google会返回跟此URL做了链接的网站。例 [link:www.baidu.com],提交这个查询,我们将得到所有跟www.baidu.com这个网站做了链接的网站。(link是个单独的语法,只能单独使用,且后面不能跟查询关键词,只能跟URL)
location: 当我们提交location进行Google新闻查询的时候,Google仅会返回你当前指定区的跟查询关键词相关的网页。例[ queen location:canada ],提交这个查询,Google会返回加拿大的跟查询关键词”queen”相匹配的网站。
site: 搜索含有该域名的网页,google会限制尽在某个网站或者说域下面进行搜索。
使用site进行站点搜索时,一般常见用法有:
site:ooxx.com filetype:xls # 支持组合搜索
site:xxx.com admin # 一般公司的后台系统都带有admin啊,login啊,内部系统啊之类的关键字
site:xxx.xxx login
site:xxx.xxx system
site:xxx.xxx 管理
site:xxx.xxx 登录
site:xxx.xxx 内部
site:xxx.xxx 系统
site:xxx.xxx 邮件
site:xxx.xxx email
site:xxx.xxx qq
比如找一下youku.com这个网站的登录相关的网页
site:youku.com 登录
1.7 网络空间测绘平台
FOFA:https://fofa.so/
语法示例
钟馗之眼:https://www.zoomeye.org/
搜索一下开放了3306端口的网站地址信息,我们可以这样搜索,默认是全球搜索:port:3306
语法示例
Shodan:https://www.shodan.io/
搜索全球开放了80端口的网站网址:port:80
语法示例
1.8 收集端口和服务
Nmap扫描
Nmap (网络映射器)是Gordon Lyon最初编写的一种安全扫描器,用于发现计算机网络上的主机和服务,从而创建网络的“映射”。为了实现其目标,Nmap将特定数据包发送到目标主机,然后分析响应.NMAP强大的网络工具,用于枚举和测试网络,功能灵活强大,支持多种目标,大量计算机的同时扫描。
NMAP的功能包括:
主机发现 - 识别网络上的主机。例如,列出响应TCP和/或ICMP请求或打开特定端口的主机。
端口扫描 - 枚举目标主机上的开放端口。
版本检测 - 询问远程设备上的网络服务以确定应用程序名称和版本号。
OS检测 - 确定网络设备的操作系统和硬件特性。
可与脚本进行脚本交互 - 使用Nmap脚本引擎(NSE)和Lua编程语言。
漏洞检测
主机发现
sL: List Scan 列表扫描,仅将指定的目标的IP列举出来,不进行主机发现。
-sn: Ping Scan 只进行主机发现,不进行端口扫描。
-Pn: 将所有指定的主机视作开启的,跳过主机发现的过程。
-PS/PA/PU/PY[portlist]: 使用TCPSYN/ACK或SCTP INIT/ECHO方式进行发现。
-PE/PP/PM: 使用ICMP echo, timestamp, and netmask 请求包发现主机。
-PO[protocollist]: 使用IP协议包探测对方主机是否开启。
-n/-R: -n表示不进行DNS解析;-R表示总是进行DNS解析。
--dns-servers <serv1[,serv2],...>: 指定DNS服务器。
--system-dns: 指定使用系统的DNS服务器
--traceroute: 追踪每个路由节点
使用演示
nmap –sn 152.136.221.1-200扫描外网152.136.221.1-152.136.221.200范围内哪些IP的主机是活动的。
端口扫描
基本用法
-sS/sT/sA/sW/sM:指定使用 TCP SYN/Connect()/ACK/Window/Maimon scans的方式来对目标主机进行扫描。
-sU: 指定使用UDP扫描方式确定目标主机的UDP端口状况。
-sN/sF/sX: 指定使用TCP Null, FIN, and Xmas scans秘密扫描方式来协助探测对方的TCP端口状态。
--scanflags <flags>: 定制TCP包的flags。
-sI <zombiehost[:probeport]>: 指定使用idle scan方式来扫描目标主机(前提需要找到合适的zombie host)
-sY/sZ: 使用SCTP INIT/COOKIE-ECHO来扫描SCTP协议端口的开放的情况。
-sO: 使用IP protocol 扫描确定目标机支持的协议类型。
-b <FTP relay host>: 使用FTP bounce scan扫描方式
其他参数
-p <port ranges> 只扫描指定端口eg:-p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9
-F 扫描比默认扫描更少的端口
--top-posts <number> 扫描<number>数量的最常见的端口
这里以本地靶机演示192.168.31.201
nmap -sS -sU -T4 -top-ports 300 192.168.31.201
参数
sS表示使用TCP SYN方式扫描TCP端口;
-sU表示扫描UDP端口;
-T4表示时间级别配置4级;
--top-ports 300表示扫描最有可能开放的300个端口(TCP和UDP分别有300个端口)
版本侦测
基本用法
-sV: 指定让Nmap进行版本侦测
--version-intensity <level>: 指定版本侦测强度(0-9),默认为7。数值越高,探测出的服务越准确,但是运行时间会比较长。
--version-light: 指定使用轻量侦测方式 (intensity 2)
--version-all: 尝试使用所有的probes进行侦测 (intensity 9)
--version-trace: 显示出详细的版本侦测过程信息。
还是本地靶机演示 :nmap -sV 192.168.31.201
OS侦测
map使用TCP/IP协议栈指纹来识别不同的操作系统和设备。在RFC规范中,有些地方对TCP/IP的实现并没有强制规定,由此不同的TCP/IP方案中可能都有自己的特定方式。Nmap主要是根据这些细节上的差异来判断操作系统的类型的。
具体实现方式如下:
Nmap内部包含了2600多已知系统的指纹特征(在文件nmap-os-db文件中)。将此指纹数据库作为进行指纹对比的样本库。分别挑选一个open和closed的端口,向其发送经过精心设计的TCP/UDP/ICMP数据包,根据返回的数据包生成一份系统指纹。将探测生成的指纹与nmap-os-db中指纹进行对比,查找匹配的系统。如果无法匹配,以概率形式列举出可能的系统。
基本用法
-O: 指定Nmap进行OS侦测。
--osscan-limit: 限制Nmap只对确定的主机的进行OS探测(至少需确知该主机分别有一个open和closed的端口)。
--osscan-guess: 大胆猜测对方的主机的系统类型。由此准确性会下降不少,但会尽可能多为用户提供潜在的操作系统。
演示:nmap -O 192.168.31.201
漏洞扫描
基本用法
nmap 目标(ip地址) --script=auth,vuln # 常见的一些漏洞扫描
演示:nmap 192.168.31.201 --script=auth,vuln
1.9 插件使用
wappalyzer
下载:https://www.wappalyzer.com/
Wappalyzer由Elbert Alias于2008年创建,最初是作为一个Firefox插件,后来扩展到其他主流浏览器,如Chrome、Edge等。它旨在提供一种快速、可靠地检测网站所使用技术栈的方法。Wappalyzer的发展得益于全球开发者社区的积极贡献,他们不断扩充和更新Wappalyzer的技术数据库,使其能够覆盖更多的技术栈和平台
Wappalyzer的使用方法和原理
Wappalyzer通常以浏览器插件的形式安装,通过发送HTTP请求并匹配响应头和响应体与规则库中的数据,来识别网站的指纹信息。用户只需在浏览器中安装Wappalyzer插件,然后访问目标网站,插件会自动分析并显示该网站使用的技术和服务。
效果演示
Findsomething
下载:https://github.com/ResidualLaugh/FindSomething/tree/firefox
FindSomething是一款基于Chrome和Firefox浏览器的插件,用于被动式信息泄漏检测。该插件能够快速在网页的HTML源码或JavaScript代码中提取有趣的信息,这些信息包括但不限于可能请求的资源、接口的URL、可能请求的IP和域名,以及泄漏的证件号、手机号、邮箱等敏感信息。
主要功能和用途
1、信息安全审计:FindSomething可以帮助安全团队在网站的源代码中发现潜在的安全漏洞,如敏感信息泄露、不安全的接口调用等。
2、数据挖掘:研究人员可以使用FindSomething在大量网页中提取有价值的信息,如电子邮件地址、电话号码等,用于后续的数据分析。
效果演示
1.10 网站指纹信息收集
云悉
https://www.yunsee.cn/
潮汐
http://finger.tidesec.com/
御剑WEB指纹识别
1.11 真实IP收集
通过超级ping来判断是否使用cdn
超级ping能进行多地ping某个网址,可以理解为多个地域对同一个域名进行ping操作,就会看到大家ping出来的ip地址不同,看到下图,存在多个IP,可判断使用了cdn
未使用cdn效果
1.12 后台扫描
御剑后台扫描工具
7kbscan