freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

信息收集入门
Microscope 2025-01-05 18:17:51 93978
所属地 广东省

简要介绍

在网络空间安全的复杂领域中,信息收集扮演着至关重要的角色,它构成了识别、预防和应对网络威胁的基础。 随着全球数字化转型的加速,网络攻击的频率和复杂性也在不断攀升,这使得高效的信息收集策略成为每个组织保护其数字资产的关键。本文将探讨网络空间安全中的信息收集,介绍其重要性、涵盖的主要活动以及如何通过有效的信息收集来提升网络安全态势。

什么是信息收集

信息收集是指通过各种方式获取所需要的信息,以便我们在后续的渗透过程更好的进行。比如目标站点IP、中间件、脚本语言、端口、邮箱等等。信息收集包含资产收集但不限于资产收集。

信息收集的分类

主动信息收集

通过直接访问网站在网站上进行操作、对网站进行扫描等,这种是有网络流量经过目标服务器的信息收集方式。

被动信息收集

基于公开的渠道,比如搜索引擎等,在不与目标系统直接交互的情况下获取信息,并且尽量避免留下痕迹。

收集的是哪些信息

主要是以下几个方面:

  • 服务器信息(端口、服务、真实IP)
  • 网站信息(网站架构(网站的操作系统、中间件、数据库、编程语言))、指纹信息、WAF、敏感目录、敏感文件、源码泄露、旁站查询、C段查询)
  • 域名信息(whois、备案信息、子域名)
  • 人员信息(姓名、职务、生日、联系电话、邮件地址)

什么是域名?

域名介绍

  • 域名(Domain Name),简称域名、网域,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。
  • DNS(域名系统,Domain Name System)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。

域名的分类

顶级域名二级域名 三级域名 
.com baidu.comwww.baidu.com 
政府域名 商业域名教育域名 
.gov .com.edu

子域名

子域名指二级域名,二级域名是顶级域名(一级域名)的下一级

高级搜索命令

在搜索引擎中,有多种高级搜索命令可以帮助用户更精准地查找信息,掌握这些命令对提高收集的效率很有帮助:

site:

  • 限定搜索结果只来自特定网站。
  • 示例:site:wikipedia.org

filetype:

  • 查找特定类型的文件。
  • 示例:filetype:pdf 教学大纲

intitle:

  • 查找标题中包含特定词语的页面。
  • 示例:intitle:市场分析

inurl:

  • 查找URL中包含特定词语的页面。
  • 示例:inurl:blog

related:

  • 查找与某个特定网站相似的网站。
  • 示例:related:example.com

OR(要大写)

  • 在搜索中使用逻辑“或”,查找包含任一关键词的结果。
  • 示例:苹果 OR 橙子

-(短横线)

  • 排除某个词语,从搜索结果中剔除特定内容。
  • 示例:水果 -香蕉

" "(引号)

  • 精确匹配短语,查找包含确切词组的结果。
  • 示例:"机器学习入门"

*(星号)

  • 用作通配符,可以替代一个或多个词。
  • 示例:"我喜欢 * 的电影"

什么是Whois

whois是用来查询域名的IP以及所有者等信息的传输协议,用来查询域名是否被注册,以及注册域名的详细信息的数据库(如域名所有人,域名注册商)

通过whois查询可以获得域名注册者邮箱地址等信息。一般情况下对于中小型网站域名注册者就是网站管理员。利用搜索引擎对whois查询到的信息进行搜索,获取更多域名注册者的个人信息。

在Kali里可以通过输入:“ whois + 想查询的域名 ”,来查询信息。

什么是网站备案?

网站备案是指在特定国家或地区,网站运营者需向政府相关部门提交网站信息,以获得合法运营的证明。

注册人/邮箱反查(不实用)

先通过whois获取注册人和邮箱,再通过注册人和邮箱反查域名,缺点是很多公司都是DNS解析的运营商注册的,查到的是运营商代替个人和公司注册的网站信息。

网络空间搜索引擎

网络空间搜索引擎是专门用于在网络空间、虚拟世界或特定平台(如社交媒体、论坛等)中进行搜索的工具。搜索引擎有:FOFA、钟馗之眼、撒旦shodan等

FOFA语法:

可参考文献:
https://redyanly.github.io/2019/08/08/FOFA%E7%AE%80%E4%BB%8B%E5%8F%8A%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/

纯真IP库:

纯真IP库是民间自发收集、提交、聚合而来的数据库,囊括了国内外的大量IP数据。 它的官网提供了记录提交和纠错的功能,管理员在统一整合后每5天更新一次。 纯真IP库是完全免费的,它的官网上有在线查询功能,同时也可以下载离线数据库用于低延迟场景,但数据不可用于商业用途。

SSL证书查询

SSL证书查询是指通过特定工具或服务来检查和验证SSL证书的有效性和详细信息。查询内容通常包括:

  • 证书有效期:查看证书的起始和到期日期。
  • 证书颁发者:确认证书是由哪个可信的证书颁发机构(CA)颁发的。
  • 域名:验证证书是否与正在访问的域名匹配。

通过SSL证书查询,网站管理员和用户可以确保网站的安全性,防止网络攻击和数据泄露。常用的SSL证书查询工具包括在线服务和命令行工具,如OpenSSL等。SSL查询网址:https://crt.sh/

JS文件发现子域名

可使用JSFinder寻找敏感接口和子域名(先知社区一位大佬开发的工具)

1.可在kali里克隆进行下载:

git clone https://github.com/Threezh1/JSFinder git clone https://hub.yzuu.cf/Threezh1/JSFinder(镜像链接)

2.克隆完成后,输入“ cd JSFinder/ ”进入文件夹;

JSFinder使用方法的完整过程可参考作者原文:

JSFinder—从js文件中寻找敏感接口和子域名 - 先知社区

子域名工具介绍

OneForAll

下载项目地址:https://github.com/shmilylty/OneForAll

通过pip3安装OneForAll的依赖,以下为Windows系统下使用pip3安装依赖的示例

注意:如果您的Python3安装在系统Program Files目录下,如:C:\Program Files\Python38,请以管理员身份运行命令提示符cmd执行以下命令。

cd OneForAll/
python -m pip install -U pip setuptools wheel -i https://mirrors.aliyun.com/pypi/simple/
pip3 install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
python oneforall.py --help

使用方法(以baidu为例):

python oneforall.py --target baidu.com run

查询结果:

baidu.com.csv是每个主域下的子域收集结果。

all_subdomain_result_1583034493.csv是每次运行OneForAll收集到子域的汇总结果,包含baidu.com.csv,方便在批量收集场景中获取全部结果。

result.sqlite3是存放每次运行OneForAll收集到子域的SQLite3结果数据库,其数据库结构如下图:

Database其中类似baidu_com_origin_result表存放每个模块最初子域收集结果。 其中类似baidu_com_resolve_result表存放对子域进行解析后的结果。 其中类似baidu_com_last_result表存放上一次子域收集结果(需要收集两次以上才会生成)。 其中类似baidu_com_now_result表存放现在子域收集结果,一般情况关注这张表就可以了。

参考原文:强大的子域搜集工具-OneForAll - AlexANSO - 博客园

Subdomainsbrute

  • 安装与配置

需要安装Python环境,并确保已安装requests和beautifulsoup4库,可以使用以下命令进行安装:

pip install requests beautifulsoup4

接下来,下载Subdomainsbrute的最新版本,解压后进入目录。可以使用以下命令启动Subdomainsbrute:

python subdomainsbrute.py -h

这将显示Subdomainsbrute的帮助信息,包括可用选项和参数。

  • 基本使用方法

指定目标域名:使用-d选项指定目标域名,例如:

python subdomainsbrute.py -d example.com

当然,除了以上使用工具的方法,也可在线爆破子域名,在线网址例如有:https://scan.javasec.cn/

IP反查域名

在线工具:

http://stool.chinaz.com/same

https://tools.ipip.net/ipdomain.php

当如果渗透目标为虚拟主机,那么通过IP反查到的域名信息很有价值,因为一台物理服务器上面可能运行多个虚拟主机。这些虚拟主机有不同的域名,但通常共用一个IP地址。如果知道有哪些网站共用这台服务器,就有可能通过此台服务器上其他网站的漏洞获取服务器控制权,进而迂回获取渗透目标的权限,这种技术也称为“旁注”。

域名查询IP

在线工具:https://ip.tool.chinaz.com/

什么是CDN

CDN即内容分发网络。CDN是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。

通俗来说,就是部署在本地的服务器,里面备用了想要访问的服务器的数据。

多地ping判断CDN

在线工具:

http://ping.chinaz.com/

http://www.webkaka.com/Ping.aspx

多地ping可以帮助我们判断服务器是否开启了CDN,如果ping出来都是一个IP地址,那一般这个IP就是真实IP地址

phpinfo文件(不实用)

前提服务器有该文件,一般在架设网址的时候会删掉,在文件中有一个“ _SERVER[' SERVER_ADDR '] ”,后面是服务器的真实地址。

Mx记录邮件服务

查看邮件服务器发送地址和web网站服务器是否搭载同一个物理机上,如果是便找到了Web服务器的真实地址。

1.以QQ邮箱的github邮件为例,打开邮件,点击下拉箭头,点击“显示邮件原文”,找到最上方一行的IP

1736068808_677a4ec8019b6cf95f8d2.png!small?1736068813427

2.将IP输入到ping检测网址里:

1736068814_677a4ece730d419932eb4.png!small?1736068818608

3.跟据显示结果可知IP归属地为美国弗吉尼亚阿什本Github

1736068822_677a4ed6af18ed50da0c4.png!small?1736068827027

查询历史DNS记录

在线工具:

https://dnsdb.io/zh-cn

/https://securitytrails.com/

https://x.threatbook.cn/

常见的几个DNS记录类型:

A记录:将域名指向一个IPV4地址(例如:100.100.100.100),需要增加A记录;

NS记录:域名解析服务器记录,如果要将子域名指定某个域名服务器来解析,需要设置NS记录;

SOA记录: SOA叫做起始授权机构记录,NS用于标识多台域名解析服务器,SOA记录用于在众多NS记录中标记哪一台是主服务器;

MX记录:建立电子邮箱服务,将指向邮件服务器地址,需要设置MX记录。建立邮箱时,一般会根据邮箱服务商提供的MX记录填写此记录;

TXT记录:可任意填写,可为空。一般做一些验证记录时会使用此项,如做SPF(反垃圾邮件)记录;

使用工具扫描

  • Nmap(具体介绍详见后文)

用Nmap扫描与目标服务器IP处于同一个C段的服务器IP

nmap -sP www.XXX.com/24 || nmap -sP 192.168.1.*

/24表示网络部分占用24位,这方面若不太了解可自行查阅计算机网络的知识。

  • Cwebscan

Cwebscan工具下载地址:https://github.com/se55i0n/Cwebscanner

1.首先clone上方工具地址

2.cd进入目录,可以对指定的目标执行C段扫描。基本用法如下:

python Cwebscan.py [目标文件] [-p 端口号]

  • 目标文件通常包含一系列IP地址或域名,用于扫描。
  • -p参数允许你指定想要扫描的端口号,如果不指定,则会默认扫描常见的Web端口如80和443。

拓展知识:git pull 是 Git 中一个常用的命令,主要用于从远程仓库获取更新并将这些更新合并到当前分支。

git pull 实际上是以下两个命令的组合:

  • git fetch:从远程仓库获取更新,但不自动合并到当前分支。
  • git merge:将获取的更新合并到当前分支。

端口信息收集

什么是端口

在Internet上,各主机间通过TCP/IP协议发送和接受数据包,各个数据包根据其目的主机的IP地址来进行互联网络中的路由选择,从而顺利的将数据包顺利的传送给目标主机。

协议端口

根据提供服务类型的不同,端口可分为以下两种:

  • TCP端口:一种面向连接的可靠的传输层通信协议,给目标主机发送信息之后,通过返回的应答确认信息是否到达
  • UDP端口:一种无连接的不可靠的传输层协议,给目标主机放信息之后,不会去确认信息是否到达

TCP协议和UDP协议是独立的,因此各自的端口号也互相独立。

由于物理端口和逻辑端口数量较多,为了对端口进行区分,将每个端口进行了编号,即端口号。

端口类型

周知端口:众所周知的端口号,范围:0-1023,如80端口是WWW服务

动态端口:一般不固定分配某种服务,范围:49152-65535

注册端口:范围:1024-49151,用于分配给用户进程或程序

各种端口介绍

  • FTP-21端口

FTP:文件传输协议,允许用户通过网络上传、下载和管理文件,使用TCP端口20、21。20用于传输数据,21用于传输控制信息。

FTP 本身并不加密:数据以明文形式传输,容易被窃听。

(1) ftp基础爆破:owasp 的 Bruter、hydra 以及 msf 中的 ftp 爆破模块。

(2) ftp匿名访问:

用户名: anonymous 密码: 为空或者任意邮箱

(3) vsftpd后门:vsftpd 2到2.3.4版本存在后门漏洞,通过该漏洞获取root权限

(4) 嗅探:ftp使用明文传输,使用 Cain 进行渗透。(但是探需要在局域网并需要欺骗或监听网关)

(5) ftp远程代码溢出。

(6) ftp跳转攻击。

FTP跳转攻击:https://blog.csdn.net/mgxcool/article/details/48249473

  • SSH-22

SSH:(secure shell)是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。

(1)弱口令,可使用工具hydra,msf中的ssh爆破模块。

(2)SSH后门

(3)openssh用户枚举 CVE-2018-15473.

  • Telnet-23

Telnet 协议是 TCP/IP 协议族中的一员,是Internet远程登录服务的标准协议和主要方式。

(1) 暴力破解,使用 hydra 或者 msf 中 teInet 模块对其进行破解。

(2) 在linux系统中一般采用SSH进行远程访问,传输的敏感数据都是经过加密的。而对于windows下的 telnet 来说是脆弱的,因为默认没有经过任何加密就在网络中进行传输。使用cain等嗅探工具可轻松截获远程登录密码。

  • SMTP-25/465

smtp:邮件协议,在linux中默认开启这个服务,可发送钓鱼邮件

默认端口:25(smtp)、465(smtps)

(1)爆破:弱口令,使用hydra

(2)SMTP 无认证伪造发件人

  • WWW-80

为超文本传输协议(HTTP)开放的端口,主要用于万维网传输信息的协议

(1) 通常80端口使用中间件漏洞进行攻击,如 llS、apache任意文件读写漏洞、nginx等

(2) 80端口一般通过web应用程序的常见漏洞进行攻击

  • NetBlOS SessionService-139/445

139用于提供windows文件和打印机共享及UNIX中的Samba服务

445用于提供windows文件和打印机共享

(1)对于开放139/445端口,尝试利用MS17010溢出漏洞进行攻击;

(2)对于只开放445端口,尝试利用MS06040、MS08067溢出漏洞攻击;

(3)利用IPC$连接进行渗透

  • MySQL-3306

3306是MYSQL数据库默认的监听端口

(1) mysql弱口令破解

(2) 弱口令登录mysql,上传构造的恶意UDF自定义函数代码,通过调用注册的恶意函数执行系统命令

(3) SQL注入获取数据库敏感信息,load_fie()函数读取系统文件,导出恶意代码到指定路径

  • RDP-3389

3389是windows远程桌面服务默认监听的端口

(1) RDP暴力破解攻击

(2) MS12_020死亡蓝屏攻击

(3) RDP远程桌面漏洞(CVE-2019-0708)

(4) MSF开启RDP、注册表开启RDP

  • Redis-6379

开源的可基于内存的可持久化的日志型数据库,

(1)爆破弱口令

(2)redis未授权访问结合ssh key提权

(3)主从复制rce

  • Weblogic-7001

(1)弱口令、爆破,弱密码一般为weblogic/Oracle@123 or weblogic

(2)管理后台部署 war包后门

(3)weblogic SSRF

(4)反序列化漏洞

  • Tomcat-8080

(1) Tomcat远程代码执行漏洞(CVE-2019-0232)

(2) Tomcat任意文件上传(CVE-2017-12615)

(3) tomcat 管理页面弱口令getshell

端口扫描

Nmap介绍

Network Mapper,是一款开放源代码的网络探测和安全审核的工具

功能介绍

1.检测网络存活主机(主机发现)

2.检测主机开放端口(端口发现或枚举)

3.检测相应端口软件(服务发现)版本

4.检测操作系统,硬件地址,以及软件版本

5.检测脆弱性的漏洞(nmap的脚本)

端口状态

Open:端口开启,数据有到达主机,有程序在端口上监控

Closed:端口关闭,数据有到达主机,没有程序在端口上监控

Filtered:数据没有到达主机,返回的结果为空,数据被防火墙或IDS过滤

UnFiltered:数据有到达主机,但是不能识别端口的当前状态

Open | Filtered:端口没有返回值,主要发生在UDP、IP、FIN、NULL和Xmas扫描中

Closed | Filtered:只发生在IP ID idle扫描

nmap语法

nmap -A -T4 目标网址

几个参数的介绍:

  • A:全面扫描/综合扫描
  • T4:扫描速度,共有6级,T0-T5

不加端口说明扫描默认端口,一般不会扫描所有端口,而是扫描周知端口(即1-1024),一般使用T4登记进行扫描。

基础用法

  • 单一主机扫描:nmap 192.168.1.2
  • 子网扫描:nmap 192.168.1.1/24
  • 多主机扫描:nmap 192.168.1.1 192.168.1.10
  • 主机范围扫描:nmap 192.168.1.1-100(指192.168.1.1到192.168.1.100的范围都扫)
  • IP地址列表扫描:nmap -iL target.txt(将要扫描的IP写进txt文档里)
  • 扫描除指定IP外的所有子网主机:nmap 192.168.1.1/24 --exclude 192.168.1.1(这里扫描除了本机192.168.1.1以外的IP)
  • 扫描除文件中IP外的子网主机:nmap 192.168.1.1/24 --excludefile xxx.txt(将不要扫描的IP写进txt文档里)
  • 扫描特定主机上的80,21,23端口:nmap -p 80,21,23 192.168.1.1

扫描全部端口:

nmap -sS -v -T4 -Pn -p 0-65535 -oN FullTCP -iL liveHosts.txt

几个参数介绍如下:

  • -sS:表示SYN扫描,又称为半开放扫描,它不打开一个完全的TCP连接,执行得很快,效率高(一个完整的tcp连接需要3次握手,而-sS选项不需要3次握手)

使用SYN扫描的优缺点:

优点:Nmap发送 SYN 包到远程主机,但是它不会产生任何会话,目标主机几乎不会把连接记入系统日志。(防止对方判断为扫描攻击),扫描速度快,效率高,在工作中使用频率最高.

缺点:它需要 root/administrator 权限执行

  • -v:显示详细信息
  • -Pn:扫描之前不要用ping命令,有些防火墙禁止ping命令。
  • -p :选择端口进行扫描
  • -oN:使用默认导出,这里导出名为FullTCP
  • -iL:导入需要扫描的列表,这里是对liveHosts.txt进行全端口扫描


注意:在全端口扫描的时候,一般不推荐使用-sn 或 -sP,因为ICNP会发包并接受响应包,一般使用 -syn 进行扫描,这种不会从服务器接受响应,这样更好的防止IDS探测和封锁。(IDS:入侵检测系统)

拓展:ICNP 是互联网协议套件中的一个重要协议,主要用于网络设备之间传递控制消息。它是 IP 协议的一部分,通常与 IPv4 和 IPv6 一起使用。

C段全端口探测存活主机

1.首先确定自己的IP是多少(根据eth0),假如你用的虚拟机IP是192.168.230.130,则要探测的便是192.168.230.0/24:

nmap -sn -v -T4 -oG Discovery.gnmap 192.168.230.0/24

  • -sn:ping扫描,和sP相同的效果
  • -v:扫描端口,显示详细信息
  • -oN / -oX / -oG:将报告写入文件,分别是普通、XML、gnmap 三种格式

2.cat一下扫描结果 Discovery.gnmap:

cat Discovery.gnmap

Down就是关闭,Up就是开启;

3.结果比较多,用grep查找一下状态为 "Up" 的主机,并将这些主机的相关信息保存到 liveHosts.txt 文件中:

grep "Status: Up" Discovery.gnmap | cut -f 2 -d ' ' > liveHosts.txt

4.最后cat一下 liveHosts.txt 查看最终结果

Nmap知识拓展

Nmap 输出格式

普通输出(-oN):

  • 默认的文本输出格式,详细展示扫描结果。

简洁输出(-oG):

  • 格式化输出,适合使用 grep 等工具进行后续处理。

XML 输出(-oX):

  • 结构化的 XML 格式,适用于程序化解析和自动化处理。

JSON 输出(-oJ):

  • 结构化的 JSON 格式,便于与其他工具集成。

根据扫描结果可知,此时有4个IP地址是开启的;

扫描常用端口及服务信息

  • syn扫描

nmap -sS -T4 -Pn -oG.TopTCP -iL LiveHosts.txt

  • 系统扫描

-O:指操作系统

nmap -O -T4 -Pn -oG OSDetect -iL LiveHosts.txt

  • 版本检测

-sV:探测每个服务的版本号

nmap -sV -T4 -Pn -oG ServiceDetect -iL LiveHosts.txt

  • 漏洞扫描

--script:指定扫描的脚本

nmap.exe -p445 -v --script smb-ghost 192.168.230.0/24

网络指纹识别

1.网站的基本组成

  1. 服务器(操作系统):Linux 或 WindowServer等
  2. 中间件:开启80端口的web容器,如Apache、nginx、tomcat、IIS 等
  3. 脚本语言:JSP、ASP、ASP.NET、PHP等
  4. 数据库:MySQl、SQL Server 、access等

判断操作系统

  • ping判断:windows的TTL值一般为128,Linux则为64。TTL大于100的一般为windows,几十的一般为linux。
  • nmap -0参数
  • windows大小写不敏感,linux则区分大小写

各类后台脚本语言区别(PHP、JSP、ASP和ASPX)

可参考文章:

https://blog.csdn.net/whoim_i/article/details/104324286

补充:

JSP网站的后缀名是.jsp

ASP的后缀后是.asp

PHP的后缀名为.php

NET的后缀名为.aspx

HTML的后缀名为.htm或.html

网站服务 / 容器类型

在网站页面按下F12,可查看响应头Server字段,选择“ Network 网络 ”页面并按F5进行刷新,在出现的请求里选中和域名一样的,点击会在右侧出现“ headers 标头 ”,下拉找到 “ Response 响应标头 ”,里面有一个“ Server服务 ”,此时里面的值即为网站的中间件。

可显示中间件、服务器、UI框架等的工具:

在线网址 Whatweb:https://www.whatweb.net/

浏览器插件 Wappalyzer:https://www.wappalyzer.com/

CMS识别

CMS:称为内容管理系统,用于网站内容文章管理:

https://github.com/kukuqi666/dedecmscan

常见CMS:dedecms(织梦)、Discuz、phpcms等。

Onlinetools:https://github.com/iceyhexman/onlinetools

敏感文件及目录探测

敏感文件、目录

例如github、git、svn(前三个为代码仓库)、.DS Store(苹果操作系统)、.hg、.bzr、CVS、WEB-INF、备份文件都是。

  • Github泄露

开发人员将代码上传到网站,在上传的时候,没有删除重要的一些信息。如邮箱信息,SVN信息,内部账号和密码,数据库连接信息,服务器配置信息等。尤其是邮箱信息和内部账号和密码。这类信息可以通过在github上搜索公司的一些特定信息查看是否有程序员将这些信息上传到了github上。

  • .git泄露

.git" intitle:"index of “:https://github.com/lijiejie/GitHack

GitHack是一个 .git 泄露利用脚本,通过泄露的 .git 文件夹下的文件,重建还原工程源代码。渗透测试人员、攻击者,可以进一步审计代码,挖掘文件上传,SQL注入等web安全漏洞。

git泄露成因及危害:当前大量开发人员使用 git 进行版本控制,对网站进行自动部署。如果配置不当,可能会将.git文件部署到线上环境,这就引起了 git 泄露漏洞)

安全维护方面,git 和 svn 信息泄露,是非常常见也是非常致命的漏洞。会导致整个网站的源码泄露。

防护方法:在部署的时候,对 .git 文件夹进行删除;也可以在 nginx 配置中,对 .git 目录的访问进行屏蔽。

  • .svn 泄露

".svn" intitle:"index of ":https://github.com/admintony/svnExploit

跟git一样,都是用来版本迭代的一个功能。具体一点就是使用 svn checkout 功能来更新代码。如果没有将 .svn 版本控制的目录进行删除,恶意用户就可以使用这个目录下的文件来恢复源码。从而可以获取如数据库密码,源码漏洞等信息。

防护方法:在部署的时候,将该文件进行删除

  • WEB-INF/web.xml泄露

WEB-INF是Java的WEB应用的安全目录。如果想在页面中直接访问其中的文件,必须通过 web.xml 文件对要访问的文件进行相应映射才能访问

网站备份文件

什么是网站备份文件泄露?

网站备份文件(phpinfo、zip等)泄露指管理员误将网站备份文件或是敏感信息文件存放在某个网站目

录下。外部黑客可通过暴力破解文件名等方法下载该备份文件,导致网站敏感信息泄露。

Web路径暴力探测工具:

https://github.com/7kbstorm/7kbscan-WebPathBrute

目录探测(探测是否有git泄露)

使用方法:首先把项目clone下来,然后使用命令:

python3 dirsearch.py -e php,html,js -u 目标网址

-e后面可跟多个文件类型

如果遇到python缺少模块,可以在 requirement.txt 查看需要的模块,然后输入下面命令即可一次性都安装:

pip3 install -r requirements.txt

针对漏洞的信息泄露

https://github.com/LandGrey/SpringBootVulExploit

https://github.com/rabbitmask/SB-Actuator

网站WAF识别

WAF分类

WAF 可以根据其部署方式和实现形式分为软 WAF 和硬 WAF。

  • 软 WAF:通常是软件解决方案,可以在现有的服务器或虚拟机上部署。
  • 硬 WAF通常是基于硬件的设备,专为处理 Web 应用程序流量而设计。

WAF功能

(1) 防止常见的各类网络攻击,如:SQL注入、XSS跨站、CSRF、网页后门等

网页后门执行的是一些系统调用命令,waf可以把请求包的系统调用阻止掉,导致一句话木马失效,需要给木马上免伤。

(2) 防止各类自动化攻击,如:暴力破解(配置 iptables 也可以阻止)、撞库、批量注册、自动发贴等;

(3) 阻止其它常见威胁,如:爬虫、0 DAY攻击、代码分析、嗅探、数据篡改、越权访问、敏感信息泄漏、应用层DDOS、远程恶意包含、盗链、越权、扫描等。

Waf识别

wafw00f:https://github.com/EnableSecurity/wafw00f

  • 判断网址是否有waf的命令:

wafw00f + 网址

  • 查看可识别waf的命令:

wafw00f -l

  • 用nmap扫描有无waf:

nmap -p80,443 --script http-waf-detect ip

nmap -p80,443 --script http-waf-fingerprint ip

Windows主机信息收集

内网渗透

在拿到webshell的时候,想办法获得系统信息拿到系统权限,进入到网络系统内部之后收集内部网络的各种信息,获取内部网络有价值的人员、资产信息。内网渗透的第一步,内网信息收集。

内网基础环境分析

  • 内网基础环境判断

IP、网关、DNS、是否能连通外网、网络连接及端口、本机host文件、机器的代理、是否在域内,域名是什么。

  • 分析机器所处位置区域

DMZ区、办公区、生产区、核心DB等等

DMZ(Demilitarized Zone,非军事区或隔离区)是网络安全架构中的一种设计,用于增强网络的安全性。它通常指在内部网络和外部网络(如互联网)之间设置的一个中间区域,用于放置公共访问的服务和设备。

  • 分析机器的角色

普通WEB服务器、开发服务器、文件服务器、代理服务器、DNS服务器、数据存储服务器等等

  • 分析进出口流量是否能连通

协议的判断:常见的TCP、DNS、HTTP、ICMP等协议

端口判断:外网vps做监听,内网机器测试常见端口,常见能出去的端口有 80,8080,443,53,110,123 等。

(1) TCP协议:

vps:nc -lvvp 8888

target:nc vps-ip 8888

(2) HTTP协议:

vps:nc -lvvp 80

target:curl vps-ip 80

(3) ICMP协议:

vps:tcpdump icmp (tcpdump是一个抓包工具,用于捕获和分析通过网络接口传输的数据包。)

target:ping vps-ip

ping 命令属于 互联网控制消息协议(ICMP, Internet Control Message Protocol)。

(4) DNS协议:

vps:nc -u -lvp 53

target:nslookup www.baidu.com vps-ip

dig @vsp-ip www.baidu.com

(dig 是一个用于查询 DNS(域名系统)信息的命令行工具,广泛用于网络管理和故障排查,可以获取有关域名的不同类型的 DNS 记录。在Windows系统中不内置,在Linux则有内置)

工作组和域

工作组和域的区别:https://mp.weixin.qq.com/s/5wgCGHrE5MNsKvN9rChBsw

查看本机工作组的方法:右键“此电脑”,找到“域或工作组”,此时便会显示本机工作组。

发现在同一个组的计算机方法:开启 “ 网络发现 ”。

工作组简介

工作组是最常见最简单最普通的资源管理模式,就是将不同的电脑按功能分别列入不同的组中,以方便管理。

默认情况下所有计算机都处在名为 WORKGROUP 的工作组中,工作组资源管理模式适合于网络中计算机不多,对管理要求不严格的情况。它的建立步骤简单,使用起来也很好上手。

大部分中小公司都采取工作组的方式对资源进行权限分配和目录共享相同组中的不同用户通过对方主机的用户名和密码可以査看对方共享的文件夹,默认共享的是 Users 目录。

不同组的不同用户通过对方主机的用户名和密码也可以査看对方共享的文件夹,工作组并不存在真正的集中管理作用,工作组里的所有计算机都是对等的,也就是没有服务器和客户机之分的。

本机的 hosts 文件用于映射主机名(域名)到 IP 地址。

1.基本功能

  • 域名解析:hosts 文件可以手动指定某个域名对应的 IP 地址,优先于 DNS 服务器的解析结果。
  • 本地测试:在开发和测试环境中,可以将域名指向本地 IP 地址(如 127.0.0.1),方便开发者在不影响外部网络的情况下进行测试。

2.使用场景

  • 屏蔽网站:可以将某些网站的域名指向 0.0.1,从而阻止访问该网站。
  • 快速访问:将常用的域名映射到本地 IP 地址,可以加快访问速度,尤其是在 DNS 服务不稳定的情况下。
  • 替代 DNS:在没有 DNS 服务的网络中,可以使用 hosts 文件进行简单的域名解析。

3.文件位置

  • Windows:通常位于 C:\Windows\System32\drivers\etc\hosts
  • Linux 和 macOS:通常位于 /etc/hosts

4.文件格式

  • hosts 文件的格式较为简单,每行包含一个 IP 地址和一个或多个主机名,例如:

127.0.0.1 localhost 192.168.1.10 mylocaldev

5.优缺点

优点

  • 提高解析速度,减少对 DNS 服务器的依赖。
  • 简单易用,适合快速配置。

缺点

  • 不易于管理,特别是在需要频繁更改时。
  • 在大型网络中,维护 hosts 文件可能变得复杂且不高效。

本机信息收集

操作系统、权限、内网IP地址段、杀软、端口、服务、补丁情况、网络环境情况、共享、会话等

如果是域内主机,那么操作系统、应用软件、补丁、服务、杀软一般都是批量安装的。

内网网段信息收集

只有找到不同网段才能进行纵向渗透,否则只能横向渗透

  • 纵向渗透关注的是权限的提升,从低权限向高权限移动,旨在获取更深层次的控制。
  • 横向渗透则是在同一权限层级内扩展访问,旨在访问更多的目标或资源。

1.内网网段扫描

2.文件共享、FTP连接记录、浏览器访问记录、mstsc连接记录

拓展:mstsc 是 Windows 系统中用于远程桌面连接的工具。按 Win + R 输入mstsc即可启动。

3.渗透路由器、交换机

用户信息(用CMD)

  • 查看本机用户列表:

net user

  • 获取本地管理员信息:

net localgroup administrators

  • 查看当前在线用户:

quser query user query user || qwinsta

  • 查看当前用户在目标系统中的具体权限:

whoami /all

  • 查看当前权限:

whoami && whoami /priv

  • 查看当前机器中所有的组名,了解不同组的职能,如 IT、HR、ADMIN、FILE:

net localgroup

系统信息

  • 查询网络配置信息,进行IP地址段信息收集:

ipconfig /all

  • 查询操作系统及软件信息(当然也可以直接运行:systeminfo):

systeminfo | findstr /B /C:"OS 名称" /C:"OS 版本" #中文系统

  • 查看当前系统版本:

wmic OS get Caption,CSDVersion,OSArchitecture,Version

上面这个命令使用 WMIC 工具来获取 Windows 操作系统的相关信息。具体来说,它的作用是提取以下几个属性:

wmic:调用 Windows Management Instrumentation Command-line 工具。

OS:指定要查询的对象类型为操作系统(Operating System)。

get:表示获取指定的属性。

Caption:操作系统的名称(如 Windows 10)。

CSDVersion:操作系统的服务包版本(如 Service Pack 1),如果没有安装服务包则可能为空。

OSArchitecture:操作系统的架构(如 32 位或 64 位)。

Version:操作系统的版本号(如 10.0.19041)。

  • 查看系统体系结构:

echo %PROCESSOR_ARCHITECTURE%

  • 查询本机服务信息:

wmic service list brief

  • 查看安装的软件的版本、路径等:

wmic product get name,version powershell "Get-WmiObject -class Win32_Product | Select-Object -Property name, version"

# 渗透测试 # 信息收集
本文为 Microscope 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
Microscope LV.1
突破枷锁,向上跃迁;追求卓越,灼见真知。
  • 3 文章数
  • 1 关注者
SQL注入的渗透知识
2025-01-03
信安常用术语汇总
2024-12-27
文章目录