信息收集
域名信息查询
什么是域名
域名(Domain Name),又称网域,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时对计算机的定位标识(有时也指地理位置)。由于IP地址具有不方便记忆并且不能显示地址组织的名称和性质等缺点,人们设计出了域名,并通过网域名称系统(DNS,Domain Name System)来将域名和IP地址相互映射,使人更方便地访问互联网,而不用去记住能够被机器直接读取的IP地址数串。计算机是不认识域名的,域名只是为了方便人们记忆而进行创建的。
域名ip查询
ping xxx.com # ping DNS解析
nslookup xxx.com # nslookup DNS解析
域名级别
顶级域名
国家顶级域名(national top-level domainnames,简称nTLDs),200多个国家都按照ISO3166国家代
码分配了顶级域名,例如中国是 .cn,美国是 .us,日本是 .jp 等
国际顶级域名(international top-level domain names,简称iTDs),例如表示工商企业的 .com,表
示网络提供商的 .net,表示顶级标杆、个人的 .top,表示非盈利组织的.org等
二级域名
二级域名是指顶级域名之下的域名,在国际顶级域名下,它是指域名注册人的网上名称,例如
“.ibm”,“.yahoo”,".microsoft"等;在国家顶级域名下,它是表示注册企业类别的符号
三级域名
三级域名用字母(
a~z)、数字(
0~9)和连接符(-)组成, 各级域名之间用实点(
.)连接,三级
域名的长度不能超过20个字符,域名长度有限,最多可注册63个字符,域名总长度不能超过253个字符
什么是子域名?
子域名(Subdomain)是在域名系统等级中,属于更高一层域的域。比如,mail.example.com和
calendar.example.com是example.com的两个子域,而example.com则是顶级域 .com 的子域。
子域名示例:
主域名:xxx.com
子域名:
www.xxx.com
edu.xxx.com
mail.xxx.com
ctf.xxx.com
ip反查域名
通过ip可以反查出绑定在该网站的域名,来发现更多资产,也可以用来判断是否是cdn
ip138: https://site.ip138.com/
webscan: https://www.webscan.cc/
VirusTotal: https://www.virustotal.com
微步在线:https://x.threatbook.cn/
子域名收集
假设我们的目标网络规模比较大,直接从主域入手显然是很不理智的,因为对于这种规模的目标,一般其主域都是重点防护区域,所以不如先进入目标的某个子域,然后再想办法迂回接近真正的目标。
网站查询子域名
VirusTotal https://www.virustotal.com/gui/home/search
fofa https://fofa.info/
工具扫描
Layer子域名挖掘机
Whois查询
whois指的是域名注册时留下的信息,比如留下管理员的名字、电话号码、邮箱。知道目标的域名之后,我们要做的第一件事就是获取域名的whois信息,因为域名注册人可能是网站管理员,可以尝试社工、套路,查询是不是注册了其他域名扩大攻击范围。
爱站工具网: https://whois.aizhan.com
站长之家: http://whois.chinaz.com
VirusTotal: https://www.virustotal.com
通过这些网站可以查询域名的相关信息,如域名服务商、域名拥有者,以及他们的邮箱、电话、地址等。
kali工具
whois域名
whois www.xxx.com
ICP备案信息查询
网站备案是根据国家法律法规规定,需要网站的所有者向国家有关部门申请的备案,这是国家信息产业部对网站的一种管理,为了防止在网上从事非法的网站经营活动的发生。主要针对国内网站,如果网站搭建在其他国家,则不需要进行备案。
常用的网站有以下几个:
工业和信息化部政务服务平台:https://beian.miit.gov.cn/
全国互联网安全管理平台:http://www.beian.gov.cn/portal/recordQuery
天眼查:http://www.tianyancha.com
端口信息
计算机“端口”是英文port的义译,可以认为是计算机与外界通讯交流的出口,计算机有0~65535,共计65536个端口。端口作为服务器和客户端交互的接口,起着非常重要的作用。一些常见的端口标识出服务器开启了什么服务,比如3389端口开启,可以认为服务器系统为windows并且开启了远程服务的功能。所以,端口扫描在渗透测试中是非常重要的。
插件探测
shodan
工具扫描
nmap
nmap 是一款开源免费的针对大型网络的端口扫描工具,nmap可以检测目标主机是否在线、主机端口开放情况、检测主机运行的服务类型及版本信息、检测操作系统与设备类型等信息
主机发现
-sL 列出要扫描的ip
-sn 不进行端口扫描
-Pn 将所有主机都默认为在线,跳过主机发现
-PS/PA/PU/PY 使用TCP、SYN/ACK、UDP或SCTP协议去发现端口
-PE/PP/PM:使用ICMP响应(echo)、时间戳或子网掩码请求来发现探测
-PO 使用IP协议的ping
-n 不做DNS解析
-R 总是做DNS反向解析
--dns-servers指定自定义的DNS服务器
--system-dns 使用操作系统的DNS
--traceroute 追踪每台主机的跳转路径
扫描技术
-sS/sT/sA/sW/sM:使用SYN(快速扫描)、TCP、全连接Connect()、ACK、Window、Maimon来进行扫描
-sU UDP扫描
-sN/sF/sX 使用TCP Null(无flag)、FIN、Xmas(FIN+Push+Urgent)扫描
--scanflags +flags 自定义TCP扫描的flags
-sI 僵尸机扫描
-sY/sZ 使用SCTP协议的INIT/COOKIE-ECHO扫描
-sO 进行IP协议扫描
-b <FTP relay host>:指定FTP中继主机进行FTP反弹扫描
端口说明和扫描规则
-p 只扫描指定的端口
--exclude-ports 不对此端口进行扫描
-F 快速模式,扫描比默认端口数量更少的端口
-r 有序地扫描端口而不是随机地扫描
--top-ports <number> 扫描排名指定的数字前几位的最常用的端口
--port-ratio <ratio> 扫描比输入的比例更常用的端口
系统探测
-O:进行系统探测
--osscan-limit:限制系统探测的目标,如只探测Linux系统
--osscan-guess:更侵略性地猜测系统
服务、版本探测
-sV:探测开启的端口来获取服务、版本信息
--version-intensity <level>:设置探测服务、版本信息的强度
--version-light:强度为2的探测强度
--version-all:强度为9的探测强度
--version-trace:将扫描的具体过程显示出来
脚本扫描
--script=<Lua scripts>:指定脚本名称
--script-args=<n1=v1,[n2=v2,...]>:为脚本指定参数
--script-help=<Lua scripts>: 查看脚本帮助信息
--script-updatedb:更新脚本数据库
常见端口
80,89,8000,9090,1433,1521,3306,5432,445,135,443,873,5984,6379,7001,7002,9200,930
0,11211,27017,27018,50000,50070,50030,21,22,23,2601,3389
masscan
masscan 是 Kali 下集成的高效扫描器 , 速度非常快
masscan 常用参数
--ping 发送icmp数据包,进行主机存活探测
--adapter-ip 指定发包的ip地址
--adapter-port 指定发包源端口
--adapter-mac 指定发包的源MAC地址
--router-mac 指定网关MAC地址
--exclude IP地址范围黑名单,防止masscan扫描
--excludefile 指定IP地址范围黑名单文件
--includefile,-iL 读取一个范围列表进行扫描
--wait 指定发包后的等待时间
-p 指定要扫描的端口类型及范围 -p U:1024-1100
--rage 指定线程数,推荐1000~3000
--banners 抓取端口服务信息,仅支持部分协议
--open-only 只显示开放的端口
--http-user-agent 使用指定的user-agent发送http请求
-sL 不执行扫描,而是创建一个随机地址列表
--output-format 指示输出文件的格式,可以是 xml,二进制,grepable,list , JSON
--output-filename 输出的文件名
-oX / -oB /-oG / -oL / -oJ 格式化输出为某种文件形式 xml , 二进制 , grepable , list , json
御剑端口扫描
C段和旁站
C段
C 段嗅探指的是拿下同一C段下的服务器,也就是说是D段1-255中的一台服务器,再通过内网横向移动获取你想要的服务器权限。例如192.168.1.66 -> 192.168.1.4 能够相互通讯,可以控制该网段中的192.168.1.66,再通过内网横向移动来控制 192.168.1.4 注意:一般情况下云服务器C段的IP都是相互独立的,这些服务器分属不同用户,没有渗透的必要
在线查询网站
工具扫描C段
一般可以扫描一些常见端口,来发现C段中在线的主机,比如
nmap
nmap -A -vv 192.168.23.1/24 # 很慢,慎用可以加-T参数
nmap -PR -vv 192.168.23.1/24 -p 1-1000,8000-9000 --open # arp 扫描, 速度快
nmap -PN -vv 192.168.23.1/24 -p 1-1000 --open # 不使用ping扫描,能发现禁ping主机
masscan
masscan 192.168.23.1/24 --ping # icmp探测C段在线主机
masscan 192.168.23.1/24 -p
21,22,80,137,138,139,443,445,1433,1434,1521,3306,6379,7001,8000,8080,9001 --open-only
御剑端口扫描
旁站
旁注:同服务器不同站点的渗透方案,旁站指的是网站所在服务器上部署的其他网站,同IP网站,一个IP上布置了多个网站,从同台服务器上的其他网站入手,获取到服务器权限,自然就获取到了目标网站的权限
目录信息收集
- 寻找到网站后台管理
- 寻找未授权界面
- 寻找网站更多隐藏信息
- 发现这个网站存在多少个目录,多少个页面,探索出网站的整体结构
- 发现敏感文件,后台文件,数据库文件,和信息泄漏文件等等
常见的后台管理页面
manager/admin.asp
login/admin/admin.asp
houtai/admin.asp
guanli/admin.asp
denglu/admin.asp
admin_login/admin.asp
admin_login/login.asp
admin/manage/admin.asp
admin/manage/login.asp
admin/default/admin.asp
admin/default/login.asp
member/admin.asp
member/login.asp
administrator/admin.asp
administrator/login.asp
robots.txt
Robots协议(Robots Exclusion Protocol)“网络爬虫排除标准”,网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取,同时也记录网站所具有基本的目录
dirsearch
dirsearch是一个基于python3的命令行工具,旨在暴力扫描页面结构,包括网页中的目录和文件
依赖安装: pip install -r requirements.txt
简单使用:python dirsearch.py -u 目标地址
常用参数
## 基本使用
-h # 使用帮助
-u # 指定目标url,最好加上协议类型 如http https
-L # 指定url列表文件
-e # 参数指定网站类型 php, jsp, asp, aspx, do, action, cgi, pl, html, htm, js,
json, tar.gz, bak (-e *代表所有)
## 自定义选项
-w # 指定字典扫描
-t # 指定线程数(默认20)
-r # 递归扫描 扫描到目录文件会进一步向下挖掘
-random-agents #使用随机UA
-H # 使用指定headers (e.g. --header "Referer: example.com" --header "User-Agent:
IE")
-m # 指定http请求方式,默认get
-d # 发送的 data 数据
--cookie # 添加 cookie
--proxy # 添加代理 e.g. --proxy 127.0.0.1:1080
## 过滤扫描结果
-i / # http 状态码白名单 (e.g. 200,300-399)
-x / --exclude-status # 排除指定 http 状态码 (e.g.: 301,403,500-599)
--exclude-texts # 文本排除响应 (e.g.: "Not found", "Error")
--exclude-regexps # 按regexp排除响应,用逗号分隔(e.g.: "Not foun[a-z]{1}",
"^Error$")
## 报告输出
-o 指定报告文件输出地址
--format 报告文件格式 (默认: simple, plain, json, xml,md, csv, html, sqlite)
--log 输出扫描日志文件 (一般不用)
网站指纹识别
Kali工具:whatweb
whatweb 域名 # 单个域名识别
https://shop.zszlm.cn/ [200 OK]
Cookies[h6Dz_2132_lastact,h6Dz_2132_lastvisit,h6Dz_2132_saltkey,h6Dz_2132_sid],
Country[CHINA][CN], Email[admin@admin.com], HTTPServer[nginx],
HttpOnly[h6Dz_2132_saltkey], IP[120.77.254.208], JQuery, Meta-Author[Discuz! Team
and Comsenz UI Team], MetaGenerator[Discuz! X3.4], PHP[5.6.40],
PoweredBy[Discuz!], Script[text/javascript], Title[论坛 - Powered by Discuz!],
X-Powered-By[PHP/5.6.40], nginx
在线指纹识别
http://whatweb.bugscaner.com/
http://pentest.gdpcisa.org/whatcms
指纹探测插件:Wapplyzer
搜索引擎语法
fofa语法
https://fofa.info/
&& = and
可以使用括号 和 && (与) 、|| (或)、 != (非)、等符号,如
常用语法
domain="qq.com" #查询子域名
host=".gov.cn" #从url中搜索".gov.cn"
header="thinkphp" #从http头中搜索thinkphp
port="6379" #查找对应“6379”端口的资产
ip="1.1.1.1" #从ip中搜索包含“1.1.1.1”的网站
ip="220.181.111.1/24" #查询IP为“220.181.111.1”的C网段资产
status_code="402" #查询服务器状态为“402”的资产
app="通达OA网络智能办公系统" # 搜索通达OA系统
country="CN" # 搜索指定国家(编码)的资产
region="Henan" # 搜索指定行政区的资产
360Quake
https://quake.360.cn/
奇安信鹰图
https://hunter.qianxin.com/
google语法
基本语法
AND:缺一不可
OR:两者皆可
"" :一刻都不能分割
- :不想看到你
+ :就想看到你
“?”和“*” :占位通配符
特殊语法
site:可以限制你搜索范围的域名;
inurl:用于搜索网页上包含的URL,这个语法对寻找网页上的搜索,帮助之类的很有用;
intext: 只搜索网页<body>部分中包含的文字(也就是忽略了标题、URL等的文字);
intitle: 查包含关键词的页面,一般用于社工别人的webshell密码;
filetype:搜索文件的后缀或者扩展名;
intitle:限制你搜索的网页标题;
inanchor: 搜素网站锚节点内容
cache # 缓存搜索 cache 关键字 cache:secquan.org 当一个链接无法访问时(或信息被屏蔽
时);当信息已经被修改,想看以前的信息时
常用技巧
查找后台地址:
site:域名
inurl:login|admin|manage|member|admin_login|login_admin|system|login|user|main|cms
查找文本内容:
site:域名 intext:管理|后台|登陆|用户名|密码|验证码|系统|admin|login|sys|managetem|password|username
查找可注入点:
site:域名 inurl:aspx|jsp|php|asp
查找上传漏洞:
site:域名 inurl:file|load|editor|Files
找eweb编辑器:
site:域名 inurl:ewebeditor|editor|uploadfile|eweb|edit
存在的数据库:
site:域名 filetype:mdb|asp|#
查看脚本类型:
site:域名 filetype:asp/aspx/php/jsp
迂回策略入侵:
inurl:cms/data/templates/images/index/