信息收集一

一、收集域名信息

1.1 域名注册信息

查询域名是谁注册的

https://whois.chinaz.com/

如下:

其它查询地址:

阿里云域名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://www.zzy.cn/domain/whois.html

三五互联域名WHOIS信息查询地址:https://cp.35.com/chinese/whois.php

1.2 SEO 信息收集

站长之家:https://seo.chinaz.com/

1.3 子域名收集

字典爆破的方式,各种拼接子域名,然后访问或者ping 探测

在线收集子域名

https://tool.chinaz.com/subdomain/

查询网

https://site.ip138.com/
https://chaziyu.com/

如果看到特别多的域名指向了同一个IP地址,那么对方可能开启了泛域名解析。

子域名收集工具

JS文件探测域名,有时候站点页面上需要很多数据,那么在页面的JS源代码中可能会有很多网址,因为要到这些网址中去请求页面展示的数据,可能会到很多站点中请求,这时候就能提取出好多子域名。

JSFinder

https://github.com/Threezh1/JSFinder

JSFinder是一款用作快速在网站的js文件中提取URL,子域名的工具。

JSFinder获取URL和子域名的方式:

# 安装 request 模块:
pip install requests
pip install bs4

# 收集
python JSFinder.py -u https://www.mi.com

Layer 子域名挖掘机

https://www.webshell.cc/6384.html
5.0 版
https://pan.baidu.com/s/1wEP_Ysg4qsFbm_k1aoncpg 密码:uk1j

下面两个都是Python语言编写的脚本工具

OneForAll

一款功能强大的子域收集工具

https://github.com/shmilylty/OneForAll

subDomainsBrute 1.5

高并发的DNS暴力枚举工具,支持Python3.6+和Python2.7,建议使用Python3.8+。

https://github.com/lijiejie/subDomainsBrute

Sublist3r

https://github.com/aboul3la/Sublist3r

这几个工具是爆破类型的工具,字典比较强在,所以效率较高。

1.4 域名备案信息查询

ICP备案是指网站在上线时需要把网站的信息提交到信息产业部、也叫做工信部来进行官方认证,等到官 方认可网站合格之后会允予发放一个ICP备案号,这个备案号可不要小看他。如果是企业网站,ICP备案号则充当着重要的角色。举个例子,如果自己的企业网站需要进行推广,那么你在入驻推广平台的时候需要提交自己的网站信息以及网站ICP备案号,如果自己的网站没有ICP备案号,那么肯定是无法通过审核的。通俗点说就是ICP备案就是网站的身份证号。如果自己的网站没有进行ICP备案,那么自己的网站将会在互联网里寸步难行。

https://icp.chinaz.com/

1.5 icp备案号查询

https://beian.miit.gov.cn/#/Integrated/recordQuery

有了备案号,可能通过备案号查询这个公司的其它备案子域名

1.6 SSL 证书查询

企业网站一般都要使用https协议来传输数据,那么就需要注册和安装ssl证书。ssl证书的申请是需要公司信息和域名信息的,所以可以通过ssl证书的查询,来获取一些相关信息。

SSL证书查询网址:

https://myssl.com/ssl.html
https://www.chinassl.net/ssltools/ssl-checker.html

查询百度

往下滑动滚轮,会看到好多域名地址。其实有些是cdn地址,这需要自己找一找,下面框起来的就是一个真实域名,不是cdn。

二、收集真实 IP

通过超级 ping 来判断是否使用 cdn,绕过 CDN.

超级 ping

网址:
https://www.itdog.cn/ping/
https://ping.chinaz.com/
https://www.boce.com/ping

超级ping能进行多地 ping某个网址,可以理解为多个地域对同一个域名进行 ping 操作,这样就会看到 ping 出来的 IP 地址不同。

没有使用 cdn 的效果。比如 www.ui.cn

ping

通过 ping 来判断是否使用 cdn

各个域名都 ping 一下,也会发现一些原站IP。

nslookup

nslookup是查询DNS记录,查看域名解析是否正常,在网络故障的时候用来诊断网络问题的工具,通过它也可以尝试获取一个域名对应的IP地址。

命令格式:

nslookup  域名(或dns服务器)
比如:nslookup google.com

还可以指定查询的DNS记录类型
登岛格式:
nslookup -qt=类型 域名(或dns服务器)
nslookup -qt=CNAME google.com

dig

Dig 是 linux 环境下,使用命令行模式查询 DNS 包括NS 记录,A记录,MX记录等相关信息的工具。也能探测到某个域名对应的IP地址。

dig 最基本的功能就是查询域名信息,因此它的名称实际上是“域名信息查询工具(Domain Information Groper)。dig 向用户返回的内容可以非常详尽,也可以非常简洁,展现内容多少完全由用户在查询时使用的选项来决定。

dig python.org

结果

cdn 绕过工具

1,使用工具绕过,效果不佳

工具1,fuckcdn
https://github.com/Tai7sy/fuckcdn

工具2:w8fuckcdn
https://github.com/boy-hack/w8fuckcdn

2,历史DNS解析

历史记录查询,有可能找到它没有使用 cdn 之前的真实IP地址

https://x.threatbook.com/v5/domain/wulaoban.top
https://dnsdb.io/zh-cn/ ###DNS查询
https://x.threatbook.cn/ ###微步在线
http://toolbar.netcraft.com/site_report?url=www.wulaoban.top ###在线域名信息查
http://viewdns.info/ ###DNS、IP等查询
https://tools.ipip.net/cdn.php ###CDN查询IP
https://securitytrails.com/domain/wulaoban.top/dns

子域名

使用 cdn 需要花费额外的成本,不可能给所有网站全部配置 cdn,总有子域名是直接指向源站的,这个源站IP和那些使用 cdn的网站,大概率是同一个网段,大公司买服务器都是一批一批的习,配对的公网Ip一秀都是一段一段的买,可能是一个C段,或者一个B段等。

因此,绕过 cdn 需要碰运气,不是 100% 绕过。

三、收集旁站和 C 段 IP

旁站:是指同 Ip,也就是同服务器下的不同站点。

C 段:比如:127.127.127.4这个IP上面有一个网站 127.4 这个服务器上面有网站。假如它是非常大的一个站,几乎没有漏洞。但是在他同C段 127.127.127.1~127.127.127.255这1~255上面也有服务器而且也有网站并且存在漏洞,那么就可以来渗透 1-255任何一个站,之后揽权来嗅探得到 127.4这台服务器的密码,甚至3389连接的密码后台登录的密码。如果运气好会得到很多的密码…

IISputScanner

K 8

不太好用

四、收集端口和服务

Nmap 扫描

Nmap (网络映射器)是由 Gordon Lyon设计,用来探测计算机网络上的主机和服务的一种 安全扫描器。为了绘制网络拓扑图,Nmap的发送特制的数据包到目标主机,然后对返回数据包进行分析。Nmap是一款枚举和测试网络的强大工具。

Namp 特性

Nmap使用IP数据包来确定网络上有哪些主机可用、提供哪些服务(应用程序名称和版本)、它们运行的操作系统(操作系统版本信息)、使用的数据包过滤/防火墙类型等其它特性。Nmap可以运行在所有主流的操作系统上,比如Linux、Windows和Mac OS等。

  • Nmap 支持检查主机是否启动,可用于监视主机或服务正常运行时间等
  • 快速识别网络中的设备,包括服务器,路由器,交换机,移动设备等
  • 帮助识别系统上运行的服务,包括 web 服务器、 DNS 服务器和其他常见应用程序。Nmap 还可以检测应用程序版本,帮助检测漏洞
  • 查找在设备上运行的操作系统详细信息
  • 漏洞扫描中,可以使用 Nmap 脚本攻击系统

Nmap提供了以下工具:

  • Zenmap 图形界面:可以绘制网络映射图
  • Ncat:数据传输、重定向和调试工具
  • Ndiff:比较扫描结果
  • Nping:数据包生成和响应分析工具

Nmap 安装

Namp官网(https://nmap.org/download.html)可以下载最新版本。

根据自己电脑系统下载对应版本。

功能介绍

https://www.cnblogs.com/hiyong/p/14584481.html
https://blog.csdn.net/qqchaozai/article/details/102521557

主机探测:探测网络上的主机,例如列出响应TCP和ICMP请求、icmp请求、开放特别端口的主机 端口扫描:探测目标主机所开放的端口 版本检测:探测目标主机的网络服务,判断其服务名称及版本号 系统检测:探测目标主机的操作系统及网络设备的硬件特性 支持探测脚本的编写:使用Nmap的脚本引擎(NSE)和Lua编程语言

Nmap 可以提供有关目标的更多信息,包括反向 DNS名称,设备类型和MAC地址。

Nmap 的典型用途

  • 通过识别可以进行的或通过它的网络连接来审计设备或防火墙的安全性。
  • 识别目标主机上开放的端口,以准备审计
  • 网络库存,网络映射,维护和资产管理。
  • 通过识别新服务器来审计网络的安全性。
  • 为网络上的主机生成流量。

Nmap 语法

nmap <扫描选项>     <扫描目标>

主机发现

主机发现的原理与 Ping 命令类似,但是手段不限于 ping,发送探测包到目标主机,如果收到回复,那么说明目标主机是开启的。

Nmap 支持十多种不同的主机探测方式。比如发送 ICMP 的 ECHO/TIMESTAMP/NETMASK 报文,发送 TCP 的 SYN/ACK包,发送 SCTP 的INIT/COOKIE-ECHO包,用户可以在不同条件下灵活选用不同的方式来探测目标机。有些时候 ping 是无法检测出对方主机是否存活,因为对方主机可以通过防火墙禁用 ping,因此是 ping 不通的。比如windows 的防火墙,一旦打开就不能 ping 通了,能 ping 通表示肯定在线。

telnet 也可以判断某个主机的端口是否开放了,比如:telnet 10.0.0.4 445。

telnet 是一种应用层协议,建立在 TCP\IP协议之上,ICMP 协议是网络层协议,SCTP 是传输层协议,兼顾了 UDP 和 TCP 的特点。

Nmap 命令

查看帮助命令

nmap -h

基本用法

-sL:List Scan 列表扫描,仅将指定的目标的IP列举出来,不进行主机发现
-sn:Ping Scan 只进行主机发现,不进行端口扫描。用得多,不仅仅发送 ping 探测包还会自动发送其它类型的数据包进行探测
-Pn:将所有指定的主机视作开启的,路过主机发现的过程。直接探测端口,通过端口探测结果判断主机是否存活。
-PS/PA/PU/PY[portlist]:使用TCPSYN/ACK或SCTP INIT/ECHO方式进行发现。
# namp -PS 10.0.0.0/24 # 不指定端口的话会自动扫描常用端口(1000个),速度会慢一些。
-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 10.0.0.21
Starting Nmap 7.95 ( https://nmap.org ) at 2025-03-27 22:01 中国标准时间
Nmap scan report for 10.0.0.21
Host is up (0.00098s latency).
Not shown: 999 closed tcp ports (reset)
PORT   STATE SERVICE
22/tcp open  ssh
MAC Address: 00:0C:29:E6:AE:33 (VMware)

Nmap done: 1 IP address (1 host up) scanned in 0.36 seconds

扫描多个主机

同时扫描多个主机

nmap 10.0.0.4   10.0.0.5
nmap 10.0.0.*
nmap 10.0.0.20,8,9
nmap 10.0.0.8-255

隐秘扫描(Stealth scan)

通过发送 SYN 数据包并分析响应,如果收到 SYN/ACK,则表示端口已找开,可进行 TCP 连接

$ nmap -sS 10.0.0.21
Starting Nmap 7.95 ( https://nmap.org ) at 2025-03-27 22:05 中国标准时间
Nmap scan report for 10.0.0.21
Host is up (0.000025s latency).
Not shown: 999 closed tcp ports (reset)
PORT   STATE SERVICE
22/tcp open  ssh
MAC Address: 00:0C:29:E6:AE:33 (VMware)

Nmap done: 1 IP address (1 host up) scanned in 0.38 seconds

版本扫描

查找应用程序的版本,确认目标主机使用的应用版本后,可以在Common vulnerability and Exploits(CVE) 数据库中找到应用特定版本的现有漏洞,然后可以使用 Metasploit 类似的工具来攻击计算机。

└─# nmap -sV 10.0.0.4
Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-03-27 22:22 CST
Nmap scan report for 10.0.0.4
Host is up (0.0081s latency).
Not shown: 997 filtered tcp ports (no-response)
PORT   STATE SERVICE   VERSION
22/tcp open tcpwrapped
80/tcp open tcpwrapped
443/tcp open tcpwrapped

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 31.33 seconds

操作系统探测

Nmap 可以使用 TCP/IP 指纹技术提供有关底层操作系统的信息,Nmap 还将尝试在操作系统扫描期间查找系统正常运行时间。

└─# nmap -O 10.0.0.4
Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-03-27 22:37 CST
Nmap scan report for 10.0.0.4
Host is up (0.019s latency).
Not shown: 997 filtered tcp ports (no-response)
PORT   STATE SERVICE
22/tcp open  ssh
80/tcp open http
443/tcp open https
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: WAP|general purpose
Running: Actiontec embedded, Linux 2.4.X
OS CPE: cpe:/h:actiontec:mi424wr-gen3i cpe:/o:linux:linux_kernel cpe:/o:linux:linux_kernel:2.4.37
OS details: Actiontec MI424WR-GEN3I WAP, DD-WRT v24-sp2 (Linux 2.4.37)

OS detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 64.21 seconds

激烈扫描模式(-A参数)启用了操作系统检测(-O)和版本扫描(-sV),返回系统信息和版本信息。

└─# nmap -A 10.0.0.5
Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-03-27 22:41 CST
Nmap scan report for 10.0.0.5
Host is up (0.0073s latency).
Not shown: 997 filtered tcp ports (no-response)
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 9.6p1 Ubuntu 3ubuntu13.8 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
|   256 6f:63:44:f8:49:34:72:42:2f:2d:e2:0c:cc:5a:0f:18 (ECDSA)
|_  256 fd:a2:14:a0:5f:21:e1:9e:f8:0b:a0:19:ce:c5:14:b2 (ED25519)
80/tcp open http     nginx
|_http-title: Did not follow redirect to https://www.aaa.com/
443/tcp open ssl/http nginx
| ssl-cert: Subject: commonName=aaa.com
| Subject Alternative Name: DNS:aaa.com, DNS:www.aaa.com
| Not valid before: 2025-03-01T00:00:00
|_Not valid after:  2025-05-29T23:59:59
|_http-title: Alfie\xE7\x9A\x84\xE5\xB0\x8F\xE7\xAB\x99 &#8211; \xE9\x9D\xA2\xE6\x9C\x9D\xE5\xA4\xA7\xE6\xB5\xB7|\xE9\x87\x8D\xE6\x96\xB0\xE5\x90\xAF\xE8\x88\xAA
| tls-alpn:
|   http/1.1
|   http/1.0
|_ http/0.9
| http-robots.txt: 1 disallowed entry
|_/wp-admin/
|_ssl-date: TLS randomness does not represent time
| http-cookie-flags:
|   /:
|     PHPSESSID:
|_     httponly flag not set
|_http-generator: WordPress 6.7.2
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: general purpose
Running: Linux 2.4.X
OS CPE: cpe:/o:linux:linux_kernel:2.4.37
OS details: DD-WRT v24-sp2 (Linux 2.4.37)
Network Distance: 2 hops
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

TRACEROUTE (using port 80/tcp)
HOP RTT     ADDRESS
1   0.25 ms 10.0.0.254
2   0.25 ms 120.76.201.253

OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 83.38 seconds

端口扫描

扫描端口可以查询该端口对应的一些漏洞进行渗透。

找到漏洞列表,再去搜索对应的漏洞详细使用过程。

很多服务的默认端口都是可以改的,比如:SSH的22端口,mysql 的3306端口等,都是可以改。原因就是为了安全。

端口扫描是 Nmap 最基本最核心的功能,用于确定目标主机的 TCP/UDP 端口的开放情况,默认情况下,Nmap 会扫描 1000 个最有可能开放的 TCP 端口,Nmap 通过探测将端口划分为6个状态。

open:端口是开放的
closed:端口是关闭的
filtered:端口被防火墙或 IDS/IPS 屏藩,无法确定其状态。
unfiltered:端口没有被屏藩,但是否开放需要进一步确定。
open|filtered:端口是开放的或被屏藩。
closed|filtered:端口是关闭的或被屏藩

Nmap 端口扫描提供了很多的探测方式

TCP ICMP 协议探测
TCP SYN scanning
TCP connect scanning
TCP ACK scanning
TCP FIN/Xmas/NULL scanning
UDP scanning
其它方式

TCP 扫描方式分类

开放扫描(全连接扫描):会产生大量的审计数据,容易被对方发现,但其可靠性高,会建立连接:例如:TCP Connect类。 效率高
隐敝扫描:能有效的避免入侵检测系统和防火墙的检测,但扫描使数据包容易被丢弃,从而产生错误的探测信息。例如:TCP FIN 类。效率低。
半开放(或者说半连接)扫描:不建立连接,隐蔽性和可靠性介于前两者之间。例如:TCP SYN类。

TCP 的11 种状态转换:https://blog.csdn.net/kakaka666/article/details/126355623

基本用法

-sS/sT/sA/sW/sM:指定使用 TCP SYN/Connect()/ACK/Window/Maimon scans 的方式来对目标主机进行扫描。
# nmap -sS 10.0.0.4
# nmap -sS -p500-2000 10.0.0.4

-sU:指定使用 UDP 扫描方式确定目标主机的 UDP 端口状况。
-sN/sF/sX:指定使用 TCP Null,FIN,and Xmas scans 秘密扫描方式来协助探测对方的TCP端口状态。
--scanflags <flags>:定制 TCP 包的 flags
-sI <zombiehost[:probeport]>:指定使用 idle scan 方式来扫描目标主机(前提需要找到合适的 xombie host)
-sY/sZ:使用 SCTP INIT/COOKIE-ECHO 来扫描 SCTP 协议端口的开放情况。
-sO:使用 IP protocol 扫描确定目标机支持的协议类型。
-b <FTP relay host>:使用 FTP bounce scan 扫描方式

常见参数描述

扫描类型描述总结
-sSTP SYN 扫描比较隐蔽,效率高,适用广泛
-sTTCP Connect 扫描由于建立完整的TCP连接会在靶机上留下记录,不隐蔽
-sATCP ACK 扫描只能用于确定防火墙是否屏蔽某个端口,可以辅助 TCP SYN的方式来判断目标主机防火墙的状况
-sFTCP FIN 扫描到达关闭的端口,数据包会被丢弃,并且返回一个RST数据包,到达打开的端口则没返回
-sUUDP扫描收到回复说明端口关闭,没有收到回复,则UDP端口可能开放

其它参数

-p <port ranges>    只扫描指定端口eg:-p22;-p-65535;-p U:53,111,137,T:21-25,80,139,8080,S:9
-F 扫描比默认扫描更少的端口
--top-posts <number> 扫描<number>数量的最常见的端口

示例

nmap -sS -sU -T4 -top-ports 300 10.0.0.4    
参数
-sS 表示使用 TCP SYN 方式扫描 TCP 端口;
-sU 表示扫描 UDP 端口
-T4 表示时间级别配置4级
--top-ports 300 表示扫描最有可能开放的300个端口(TCP和UDP分别有300个端口)
└─# nmap -sS -sU -T4 -top 300 192.168.10.11
Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-03-27 23:26 CST
Nmap scan report for 192.168.10.11
Host is up (0.0024s latency).
Not shown: 300 open|filtered udp ports (no-response), 297 filtered tcp ports (no-response)
PORT   STATE SERVICE
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds

Nmap done: 1 IP address (1 host up) scanned in 117.47 seconds

-T 参数说明

-T 参数,优化时间控制选项的功能很强大,也很有效,但是有些用户会被迷惑。此处,往往选择合适参数的时间超过了所需优化的扫描时间。因此,Nmap 提供了一些简单的方法使用6个时间模板使用时,采用-T选项及数字(0-5)或名称。模板名称有 paranoid(0),sneaky(1),polite(2),normal(3),aggressive(4),insane(5)

paranoid,sneaky模式用于IDS躲避,IDS是入侵检测系统(intrusion detection system,简称“IDS”)是一种对网络传输进行即时监视,在发现可疑传输时,发出警报或采取主动反应措施的网络安全设备
polite 模式降低了扫描速度及使用更少的带宽和目标主机资源。
normal 为默认模式,因此-T3 实际上未作任何优化
aggressive 模式,假设用户具有合适及可靠的网络从而加速扫描
insane 模式,假设用户具有特别快的网络或者愿意为获得速度而牺牲准确性

外网扫描效果

└─# nmap -sS -sU -T4 -top-ports 300 20.205.243.166    
Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-03-27 23:39 CST
Nmap scan report for 20.205.243.166
Host is up (0.027s latency).
Not shown: 300 open|filtered udp ports (no-response), 297 filtered tcp ports (no-response)
PORT   STATE SERVICE
22/tcp open  ssh
80/tcp open http
443/tcp open https

Nmap done: 1 IP address (1 host up) scanned in 216.83 seconds

C 段端口扫描

nmap -p 80,443,8000,8080  -Pn 20.205.243.166/24
-Pn:指定 IP 地址段
└─# nmap -p 80,443,8000,8080  -Pn 20.205.243.166/24
Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-03-28 00:11 CST
Nmap scan report for 20.205.243.0
Host is up.

PORT     STATE   SERVICE
80/tcp   filtered http
443/tcp filtered https
8000/tcp filtered http-alt
8080/tcp filtered http-proxy

Nmap scan report for 20.205.243.1
Host is up.

PORT     STATE   SERVICE
80/tcp   filtered http
443/tcp filtered https
8000/tcp filtered http-alt
8080/tcp filtered http-proxy
...

使用-p 参数扫描单个端口

└─$ nmap -p 3306 20.205.243.166 
Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-03-28 00:17 CST
Nmap scan report for 20.205.243.166
Host is up (0.00040s latency).

PORT     STATE   SERVICE
3306/tcp filtered mysql

Nmap done: 1 IP address (1 host up) scanned in 0.37 seconds

指定端口连接类型,比如:TCP 连接

nmap -p T:3306 20.205.243.166 

指定端口范围

└─$ nmap -p 22-8080 20.205.243.166 

Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-03-28 00:19 CST
Nmap scan report for 20.205.243.166
Host is up (0.00040s latency).
Not shown: 8056 filtered tcp ports (no-response)
PORT   STATE SERVICE
22/tcp open  ssh
80/tcp open http
443/tcp open https

Nmap done: 1 IP address (1 host up) scanned in 138.83 seconds

或者

└─$ nmap -top-ports 10 20.205.243.166 

Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-03-28 00:19 CST
Nmap scan report for 20.205.243.166
Host is up (0.00040s latency).
Not shown: 8056 filtered tcp ports (no-response)
PORT   STATE SERVICE
22/tcp open  ssh
80/tcp open http
443/tcp open https

Nmap done: 1 IP address (1 host up) scanned in 138.83 seconds

TCP 扫描

└─$ nmap -sT 20.205.243.166        
Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-03-28 00:27 CST
Nmap scan report for 20.205.243.166
Host is up (0.055s latency).
Not shown: 997 filtered tcp ports (no-response)
PORT   STATE SERVICE
22/tcp open  ssh
80/tcp open http
443/tcp open https

Nmap done: 1 IP address (1 host up) scanned in 28.04 seconds

TCP SYN 扫描(半开放扫描)

SYN 扫描执行快,每秒钟可以扫描数千个端口,因为它不完成 TCP 连接

nmap -sS 20.205.243.166

UDP 扫描

UDP 扫描一般较慢,DNS,SNMP,和DHCP(端口53,161/162,和67/68)是最常见的三个UDP服务。

nmap -sU 20.205.243.166

open|filtered表示无法确定端口是开放还是被过滤的

UDP扫描比TCP扫描慢的原因是UDP是无连接的,Nmap无法区分应用过滤数据包的开放端口、数据包被防火墙阻止丢弃的端口或者数据包由于网络拥塞而在传输过程中丢失。而且对于closed端口(ICMP端口无法访问),Nmap无法区分端口被防火墙过滤还是数据包丢失。除非端口返回数据或返回ICMP不可达报文,否则Nmap需要发送多个数据包来消除速率限制或丢失数据包的可能性。

可以通过如下方式提高扫描速度(牺牲扫描精度)

  • --min-rate参数:--min-rate 5000表示每秒发送5000个数据包
  • --max-rtt-timeout参数:控制nmap等待响应时间,需大于5ms,具体时间可以通过ping命令查看。---max-rtt-timeout 0.005:5ms等待时间
  • --max-retries参数:设置重试次数,--max-retries 1重试1次
  • --max-scan-delay参数:设置扫描间隔,用在主机响应慢的情况下。
$ nmap -sU --min-rate 5000 20.205.243.166

Null扫描 (-sN):

不设置任何标志位(tcp标志头是0)

nmap -sN 10.0.0.4

FIN扫描 (-sF):

只设置TCP FIN标志位。

nmap -sF 10.0.0.4 

Xmas扫描 (-sX):

设置FIN,PSH,和URG标志位

nmap -sX 10.0.0.4

TCP ACK扫描:

用于发现防火墙规则,确定它们是有状态的还是无状态的,哪些端口是被过滤的。

nmap -sA 10.0.0.4

IP协议扫描:

确定目标机支持哪些IP协议 (TCP,ICMP,IGMP等)

nmap -sO 10.0.0.4

PING扫描:检测目标主机是否在线

nmap -sP 10.0.0.4

读取文件扫描

如果需要扫描的IP地址很多,可以存放在一个文件里面进行扫描

nmap -iL nmap_test.txt

扫描日志

-v参数打印扫描日志

nmap -v -p 3306 10.0.0.4

保存到文件,保存格式支持text、xml

nmap -oN output.txt 10.0.0.4
nmap -oX output.xml 10.0.0.4

或者

nmap -oA output 10.0.0.4

生成output,xml、output.nmap、output.gnmap文件

版本侦测

简要的介绍版本的侦测原理。版本侦测主要分为以下几个步骤

  1. 首先检查open与open|filtered状态的端口是否在排除端口列表内。如果在排除列表,将该端口剔除。
  2. 如果是TCP端口,尝试建立TCP连接。尝试等待片刻(通常6秒或更多,具体时间可以查询文件nmapservices-probes中Probe TCP NULL q||对应的totalwaitms)。通常在等待时间内,会接收到目标机

发送的“WelcomeBanner”信息。nmap将接收到的Banner与nmap-services-probes中NULL probe中的 签名进行对比。查找对应应用程序的名字与版本信息。

  1. 如果通过“Welcome Banner”无法确定应用程序版本,那么nmap再尝试发送其他的探测包(即从nmapservices-probes中挑选合适的probe),将probe得到回复包与数据库中的签名进行对比。如果反复探测

都无法得出具体应用,那么打印出应用返回报文,让用户自行进一步判定。

  1. 如果是UDP端口,那么直接使用nmap-services-probes中探测包进行探测匹配。根据结果对比分析出

UDP应用服务类型。

  1. 如果探测到应用程序是SSL,那么调用openSSL进一步的侦查运行在SSL之上的具体的应用类型。
  2. 如果探测到应用程序是SunRPC,那么调用brute-force RPC grinder进一步探测具体服务。

基本用法

-sV: 指定让Nmap进行版本侦测
--version-intensity <level>: 指定版本侦测强度(0-9),默认为7。数值越高,探测出的服务越准
确,但是运行时间会比较长。
--version-light: 指定使用轻量侦测方式 (intensity 2)
--version-all: 尝试使用所有的probes进行侦测 (intensity 9)
--version-trace: 显示出详细的版本侦测过程信息。

OS 侦测

Nmap使用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: 大胆猜测对方的主机的系统类型。由此准确性会下降不少,但会尽可能多为用户提供潜在
的操作系统。

使用演示

namp -O 10.0.0.4

漏洞扫描

nmap的漏洞库其实很小,没有多少能扫出来的漏洞,但是它也提供了漏洞扫描功能,我们一般用专业 的漏洞扫描工具来扫描。所以简单说一下nmap的漏洞扫描功能,知道即可。

基本用法:

nmap 目标(IP地址) --script=auth,vuln        # 常见的一些漏洞扫描

在nmap的安装目录下有一个script文件夹,kali的在 /usr/share/nmap/scripts ,里面装了一些漏洞 工具,通过–script来指定使用 。

扫描端口并且标记可以爆破的服务

nmap 目标 --script=ftp-brute,imap-brute,smtp-brute,pop3-brute,mongodbbrute,redis-brute,ms-sql-brute,rlogin-brute,rsync-brute,mysql-brute,pgsqlbrute,oracle-sid-brute,oracle-brute,rtsp-url-brute,snmp-brute,svn-brute,telnetbrute,vnc-brute,xmpp-brute

精确指定漏洞类型探测并扫描端口

nmap 目标 --script=dns-zone-transfer,ftp-anon,ftp-proftpd-backdoor,ftp-vsftpdbackdoor,ftp-vuln-cve2010-4221,http-backup-finder,http-cisco-anyconnect,http-iisshort-name-brute,http-put,http-php-version,http-shellshock,http-robots.txt,httpsvn-enum,http-webdav-scan,iis-buffer-overflow,iax2-version,memcachedinfo,mongodb-info,msrpc-enum,ms-sql-info,mysql-info,nrpe-enum,pptp-version,redisinfo,rpcinfo,samba-vuln-cve-2012-1182,smb-vuln-ms08-067,smb-vuln-ms17-010,snmpinfo,sshv1,xmpp-info,tftp-enum,teamspeak2-version

dns-zone-transfer:dns区域传送漏洞
ftp 的一些后门检测
...

五、收集网站指纹信息

在线网站

云悉

https://www.yunsee.cn

潮汐

http://finger.tidesec.com/

聚名

http://whatweb.bugscaner.com/look/

https://whatweb.net

工具类

御剑,wappalyzer(浏览器插件),御剑web指纹识别

wappalyzer

wappalyzer 插件介绍

Wappalyzer插件,是一款开发必备的网站技术嗅探工具,能够用来检测和分析当前网站的各种参数,比如平 台架构、编程语言、网站环境、服务器配置、javascript框架等。 Wappalyzer插件是一款功能强大、简单易操作的网站技术分析检测工具,能帮你对所访问网站上使用的技术 一目了然。通过它,能够一键分析指定网站所采用的平台构架、统计工具、服务器配置、Web框架、编程言等参数。 作为开发者,当我们看到别人的网站有许多值得借鉴的地方时,也会很想探索一番,到底对方都使用了哪些技术配置。如果你是大神的话,可能很容易就能看出来,但对于许多普通人来说,借助第三方的网站技术分析工具,也能达到这个目的。

chrome和火狐都可以安装这个插件 。

大致效果如下,操作系统、web服务器、web技术等相关信息就都出来了

比如你看到的该网站用的是nginx是1.14.0版本的web服务器,那么我们就可以去网上搜索这个版本的 nginx漏洞,看看能够利用的上。

御剑

工具在这里

效果如下

添加一个域名看看效果

点击【开始】后,等待一会,看到如下效果

有的可以识别到,有的识别不到,毕竟工具的能力是有限的。比如上面那个就识别不到。

重新找个网站试试。

看到应用的指纹信息之后,可以看出他是 Discuz 搭建的系统,去网上搜索一下看看

还可以搜索它的漏洞

然后根据搜索到的漏洞,去尝试渗透测试。

Bin 文件夹下的文件是该工具的一些字典数据,其实它也是基于爆破的方式查询的。

当发现了Web 应用的版本之后,就可以去搜索对应的漏洞。

然后根据前面敏感信息收集中使用的一些漏洞收集网站和工具去利用漏洞

网站中找指纹

只要能分析出网站用什么技术做的,就好找漏洞了。

可以在网站的网页代码中找找指纹信息。

有些网站是公司自己开发的,有些网站是直接使用别人开发的源码进行搭建的。

比如一些常用的源代码提供网站。

源码之家:https://down.chinaz.com/
...

如果能看懂这些源码,那么使用这些源代码的网站就比较容易检测出漏洞。

EHole 工具

EHole是一款对资产中重点系统指纹识别的工具,在红队作战中,信息收集是必不可少的环节,如何才能从大量的资产中提取有用的系统(如OA、vpn、Weblogic…)。 EHole旨在帮助红队人员在信息收集期间能够快速从C段、大量杂乱的资产中精准定位到易被攻击的系统,从而实施进一步攻击。 这款工具是棱角安全社区联合出品,配合其漏洞总结,这款工具是在平时渗透中无意发现的,效果非常好。

项目地址

https://github.com/EdgeSecurityTeam/Ehole

社区地址

https://forum.ywhack.com/bountytips.php?Vulnerability

该社区对常见Web漏洞以及利用方法做了一个全面而详细的总结

1,Kali 部署 EHole

下载 linux 版的 EHole

1,迁移到 Kali 上

把下载下来的文件上传到Kali虚拟机中

解压

└─# unzip EHole_linux_amd64.zip 

2,验证部署成功

进入 EHole-linux-amd54目录

查看权限

└─# ll         
总计 10160
-rw-rw-r-- 1 root root       56 2023年 6月30日 config.ini
-rw-r--r-- 1 root root 10273024 2023年 6月14日 EHole_linux_amd64
-rw-r--r-- 1 root root   122394 2023年 6月30日 finger.json

给文件授权

└─# chmod u+x EHole_linux_amd64 
└─# ll                    
总计 10160
-rw-rw-r-- 1 root root       56 2023年 6月30日 config.ini
-rwxr--r-- 1 root root 10273024 2023年 6月14日 EHole_linux_amd64
-rw-r--r-- 1 root root   122394 2023年 6月30日 finger.json

执行如下命令,回显出帮助信息,则部署成功。

└─# ./EHole_linux_amd64 -h

2,windows 安装部署 EHole

1,下载 EHole

2,解压 EHole 文件

解压后的文件内容如下:

3,验证部署成功

进入 cmd

EHole_windows_amd64.exe -h

EHole 3.1 的不知道怎么用,以下是 3.0的

EHole 使用

在红队场景下首先对多个目标进行了资产收集,如同时几千上万个IP,EHole(棱洞)可以快速的从这些资产中获取重要的系统或者直接能 RCE 的系统。 EHole(棱洞)提供了两种指纹识别方式,可从本地读取识别,也可以从FOFA进行批量调用API识别(需要FOFA密钥),同时支持结果JSON格式输出。

1,参数介绍

-h              帮助
-u string 目标网址
-t string 线程(默认为“ 100”)
-l string 基于本地文件探测
-json string 输出 json
-f string FOFA搜索资产,支持IP和IP段。(192.168.1.1 | 192.168.1.0/24)
-fall string FOFA批处理搜索IP
-fofa string FOFA搜索资产,支持所有FOFA搜索语法。
-ftime string FOFA超时(默认为“ 10”)
-log string 日志文件名(默认“ server.log”)

2,本地识别

URL 地址需要带上协议,每行一个

Ehole3.0-Win.exe -l url.txt  

url.txt 文件格式如下

六、收集敏感信息

目录信息收集

扫描网站备份代码

比如获取某个网站的源代码,假如运维人员对代码进行了备份,并且放在了代码目录中,超名为www.rar,并且该网站可以正常访问。就可以通过一些工具来进行扫描,找到并下载源代码。

先将代码备份

然后查看网站能不能正常运行

在知道压缩文件名称的情况下,通过浏览器访问这个文件目录,就可以直接下载了。

但是,实际工作中,并不知道网站中是否有备份文件,也不知道备份文件的名称。因此,需要通过一些自动化扫描工具进行扫描。比如:7kb,破壳等。

7kbscan 工具检测

7kb的字典如下

这个工具就是根据字典数据进行爆破扫描。

打开7kb,选择其中一个备份字典进行爆破扫描,就可以找到源代码的路径。

复制这个网址去浏览器上访问一下,就可以下载该源码文件了。因此,备份代码或者数据的时候要养成好习惯,否则容易被别人盗取。

扫描目录

7kb 还可以扫描代码的目录结构。

例如:这个网站的目录结构。

用 7kb 扫描一下

扫完后,用浏览器访问这些目录,看看有没有一些敏感目录。

Dirsearch 探测 Web 目录

dirsearch是一个基于python的命令行工具,用于暴力扫描页面结构,包括网页中的目录和文件。

dirsearch下载地址: https://github.com/maurosoria/dirsearch

运行环境:必须安装python3

为什么要使用 dirsearch

当对目标网站渗透测试时,第一步应该是找到易受攻击网站的隐藏目录。

这些隐藏的Web目录非常重要,因为它们可以提供一些非常有用的信息,即在面向公众的网站上看不到的潜在攻击媒介。

比较快捷的攻击方法之一就是采用暴力猜解网站目录及结构,其中包括网站中的目录、备份文件、编辑器、后台等敏感目录,为此,需须选择一个功能强大的工具。

用python编写的Dirsearch是一个命令行网站目录扫描程序。它具有许多功能,使其成为性能方面的完全赢家:

  • 它包括多线程,使其比任何其他站点扫描仪工具都快
  • 它执行递归暴力破解
  • 它具有HTTP代理支持
  • Dirsearch有效地检测到无效网页
  • 它具有用户代理随机化和批处理功能
  • 支持请求延迟

dirsearch 使用

把下载的 dirseach 解压,用命令行进入 dirsearch 目录。

安装所需的依赖包

pip install -r requirements.txt

查看帮助菜单

 python dirsearch.py  -h

扫描站点(以本地部署的站点为例:http://10.0.0.5/index.asp

使用 -u 指定需要扫描的 URL

使用 -e 指定需要扫描的文件名。例如:-e php,如果不知道,就扫描所有 -e *

python dirsearch.py -u http://10.0.0.5/index.asp -e *

响应状态 200 是敏感目录

排除不需要的状态码

不需要显示响应的状态码为 403

python dirsearch.py -u  http://10.0.0.5/index.asp  -e php  -x  403

排除多个响应状态码:-x 403,302,301

指定自定义的扫描字典文件

-w 指定自定义的字典文件路径

python dirsearch.py -u  http://10.0.0.5/index.asp  -e php  -x  403 -w D:\Alfie\Web_Safe\Tools\Win_Tools\字典\指纹.txt

执行递归目录扫描,发挥最佳功能

-r 递归扫描,非常耗时

python dirsearch.py -u  http://10.0.0.5/index.asp  -e php  -x  403 -r

在扫描时,如果要退出扫描,请从键盘解析 “e”,要从停止点继续执行,请解析 “c”。

解析 “n” 以移至下一个目录,这些步骤使你可以控制结果,因为递归扫描是一个耗时的过程。

-R 递归深度级别

如果要将递归级别设置为更深的值,则可以使用 -R,标志着要挖掘的深度级别的值。

python dirsearch.py -u  http://10.0.0.5/index.asp  -e php  -x  403 -r -R 3

Dirsearch 可以有效的扫描和搜索用户可能看不到的隐蔽Web目录,这是渗透测试中非常重要的任务,而且效果高且快。

代码管理工具 信息泄露

Git 导致文件泄露

由于目前的 web 项目的开发采用前后端完全分离的架构:前端全部使用静态文件,和后端代码完全分 离,隶属两个不同的项目。静态文件使用 git 来进行同步发布到服务器,然后使用nginx 指向到指定目 录,以达到被公网访问的目的。

在运行git init初始化代码库的时候,会在当前目录下面产生一个.git的隐藏文件,用来记录代码的变更记 录、日志、目录结构、文件结构等等。在发布代码的时候,没有把.git这个目录删除,就直接发布了。使 用这个文件,可以用来恢复源代码 。

通过github上面的一个开源python脚本GitHack.py就能通过.git目录中的信息恢复所有由git管理的代码 。

DS_store导致文件泄露

.DS_Store 是 Mac 下 Finder 用来保存如何展示文件//文件夹的数据文件,每个文件夹下对应一个。由 于开发/设计人员在发布代码时未删除文件夹中隐藏的 .DS_store ,可能造成文件目录结构泄漏、源代 码文件等敏感信息的泄露。

工具下载地址:https://github.com/lijiejie/ds_store_exp


作 者:alfie
链 接: https://www.liurong.love/get_web_info/
来 源:Alfie的小站
版 权 声 明:本博客所有文章除特别声明外,均采用CC BY-NC-SA 4.0许可协议。文章版权归作者所有,未经允许请勿转载!


暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇