主动信息收集
在红蓝对抗过程中,资产属于核心地位,攻击方(红方)要尽可能的去获取对方资产,暴露目标资产,包括IP地址、网络设备、安全设备、服务器、存储在服务器中的数据等。防守方也要清楚自己有多少有价值的资产。
1. 资产收集
1. 1 主机发现
查看网段内存活的IP地址,并且根据MAC地址找到IP地址,简单的来说,就是确定主机是否存活。
1.1.1 扫描工具
nmap
使用nmap
扫描工具可以很好的查找网段中存活的主机。
关于nmap扫描工具的使用,可以查看文章 [渗透测试工具] Nmap
1.2 端口扫描
端口扫描就是查看存活主机所开放的端口,还需要搞清楚端口上所运行的服务。
1.2.1 常见端口号
远程连接服务端口:
端口号 | 服务 | 风险 |
---|---|---|
22 | SSH | 弱口令爆破 SSH隧道 文件传输 |
23 | Telnet | 弱口令爆破 嗅探 |
3389 | RDP远程桌面 | 弱口令爆破 Shift后门 |
5900 | VNC | 弱口令爆破 |
Web应用服务端口:
端口号 | 服务 | 风险 |
---|---|---|
80 443 8080 | 常见Web服务端口 | Web漏洞攻击 服务组件漏洞 |
7001 7002 | Weblogic管理控制台 | 反序列化漏洞 弱口令爆破 |
8080 8089 | Jboos Resin Jetty Jenkins | 反序列化漏洞 弱口令爆破 |
9090 | WebSphere | 反序列化漏洞 弱口令爆破 |
4848 | GlassFish控制台 | 弱口令爆破 |
1352 | Lotus Domino 邮件服务 | 弱口令爆破 信息泄露 |
10000 | Webmin-Web控制面板 | 弱口令爆破 |
数据库服务端口:
端口号 | 服务 | 风险 |
---|---|---|
3306 | MySQL | 弱口令爆破 SQL注入 提权 |
1433 | SQL Server(MSSQL) | 弱口令爆破 SQL注入 提权 |
1521 | Oracle DB | 弱口令爆破 SQL注入 提权 TNS漏洞 |
5432 | PostareSQL | 弱口令爆破 SQL注入 |
邮件服务端口:
端口号 | 服务 | 风险 |
---|---|---|
25 | SMTP | 邮件伪造 |
110 | POP3 协议 | 破解 |
143 | IMAP协议 | 破解 |
网络协议端口号:
端口号 | 服务 | 风险 |
---|---|---|
53 | DNS | 子域名爆破 DNS劫持 域传送 |
67 58 | DHCP | 地址池耗尽 DHCP欺骗 |
161 | SNMP协议 | 收集目标内网信息 弱口令爆破 |
特殊服务端口:
端口号 | 服务 | 风险 |
---|---|---|
2181 | Zookeeper服务 | |
8069 | Zabbix服务 | 远程执行 SQL注入 |
9200 9300 | Elasticsearch | |
11211 | Memchache服务 | |
512 513 514 | Linux Rexec 服务 | |
873 | Rsysnc 服务 | |
3690 | SVN 服务 | |
50000 | SAP Management Console | |
1.2.2 扫描工具
这里还是使用nmap
1.2.3 端口扫描方式
指定端口扫描,需要使用参数-p
:
nmap 192.168.109.100 -p 80 //扫描单个端口
nmap 192.168.109.100 -p 1-60000 //扫描范围端口
nmap 192.168.109.100 -p 80,3306,8090 // 扫描多个端口
端口扫描的方式:
端口扫描方式 | 参数 | 原理 | 优缺点 |
---|---|---|---|
TCP全连接扫描 | -sT | Nmap发送一个SYN=1 1. 如果目标回ACK=1,SYN=1,则Nmap回ACK=1,此时建立完整的三次握手连接,该端口开放 2. 如果目标回RST=1,则Nmap判断该端口关闭。 | 很准确 但是会留下大量的日志 |
SYN半连接扫描 | -sS | Nmap发送一个SYN=1 1. 如果目标回ACK=1,SYN=1,该端口开放,并主动重置连接。 2. 如果目标回RST=1,则Nmap判断该端口关闭。 | 快速 但是没有TCP全连接扫描精准,需要root权限 |
TCP ACK 扫描 | -sA | ||
TCP 窗口扫描 | -sW | ||
Maimon Scan | -sM | ||
FIN扫描 | -sF | ||
Null扫描 | -sN | ||
Xmas扫描 | -sX | ||
UDP扫描 | -sU |
1.2.4 其他扫描方式
全面扫描:
sudo nmap -A 192.168.109.100 -p
扩展脚本:
sudo nmap --script=smb-vuln-ms17-010.nse
所以可以利用nmap来做漏洞扫描
终极扫描命令:
sudo nmap -Pn -A -p- -sS -sC -T4 192.168.109.100 -oN 100.nmap.A
┌──(kali💋kali)-[~]
└─$ sudo nmap -Pn -A -p- -sS -sC -T4 192.168.109.100 -oN 100.nmap.A
Starting Nmap 7.93 ( https://nmap.org ) at 2024-07-23 03:15 EDT
Nmap scan report for 192.168.109.100
Host is up (0.0011s latency).
Not shown: 65520 closed tcp ports (reset)
PORT STATE SERVICE VERSION
80/tcp open http Apache httpd 2.4.23 ((Win32) OpenSSL/1.0.2j PHP/5.4.45)
|_http-title: Index of /
| http-methods:
|_ Potentially risky methods: TRACE
|_http-server-header: Apache/2.4.23 (Win32) OpenSSL/1.0.2j PHP/5.4.45
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
445/tcp open microsoft-ds Microsoft Windows Server 2008 R2 - 2012 microsoft-ds
3306/tcp open mysql MySQL (unauthorized)
5985/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-server-header: Microsoft-HTTPAPI/2.0
|_http-title: Not Found
8090/tcp open http Microsoft IIS httpd 10.0
| http-methods:
|_ Potentially risky methods: TRACE
|_http-title: 192.168.109.100 - /
|_http-server-header: Microsoft-IIS/10.0
47001/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-title: Not Found
|_http-server-header: Microsoft-HTTPAPI/2.0
49664/tcp open msrpc Microsoft Windows RPC
49665/tcp open msrpc Microsoft Windows RPC
49666/tcp open msrpc Microsoft Windows RPC
49667/tcp open msrpc Microsoft Windows RPC
49668/tcp open msrpc Microsoft Windows RPC
49669/tcp open msrpc Microsoft Windows RPC
49670/tcp open msrpc Microsoft Windows RPC
MAC Address: 00:0C:29:9A:50:50 (VMware)
Device type: general purpose
Running: Microsoft Windows 2016
OS CPE: cpe:/o:microsoft:windows_server_2016
OS details: Microsoft Windows Server 2016 build 10586 - 14393
Network Distance: 1 hop
Service Info: OSs: Windows, Windows Server 2008 R2 - 2012; CPE: cpe:/o:microsoft:windowsHost script results:
| smb2-security-mode:
| 311:
|_ Message signing enabled but not required
|_nbstat: NetBIOS name: WIN-37QPUN7NO81, NetBIOS user: <unknown>, NetBIOS MAC: 000c299a5050 (VMware)
| smb2-time:
| date: 2024-07-23T07:17:07
|_ start_date: 2024-07-23T01:15:01
| smb-security-mode:
| account_used: guest
| authentication_level: user
| challenge_response: supported
|_ message_signing: disabled (dangerous, but default)TRACEROUTE
HOP RTT ADDRESS
1 1.14 ms 192.168.109.100OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 97.31 seconds
2. 指纹识别
2.1 什么是浏览器指纹?
浏览器指纹(Browser Fingerprinting)是一种通过收集用户浏览器及设备的特征信息来识别用户的方法。这种技术并不依赖于 cookies 或其他存储在用户设备上的数据,而是通过组合多种信息来创建一个独特的“指纹”,从而识别和跟踪用户的活动。
以下是一些常见的用于浏览器指纹的特征信息:
-
浏览器类型和版本:不同用户使用的浏览器类型和版本可以提供区分信息。
-
操作系统:用户所用设备的操作系统信息。
-
屏幕分辨率和色深:用户设备屏幕的分辨率和色彩深度。
-
已安装插件和字体:浏览器安装的插件和系统中的字体集。
-
时区和语言设置:用户设备的时区和首选语言。
-
HTTP标头:包括用户代理字符串、接受的语言、编码、以及其他 HTTP 请求标头。
-
Canvas 指纹:通过 HTML5 的 canvas 元素绘制图像并读取其像素数据以生成独特指纹。
-
WebGL 信息:用户设备的图形处理器特征。
-
设备信息:如设备的品牌、型号、硬件配置等。
2.2 Web应用指纹信息
在Web应用开发过程中,经常会用到一些现成的CMS、框架:
JavaScript 开发框架:
- vue.js
PHP 语言开发框架:
- wordpress(wp)
- drupal
- joomla
- 禅道cms
- 帝国cms
- 致远OA
Java 语言开发框架:
- struts2
- spring
- springboot
- Weblogic
- JBoss
2.3 指纹识别工具
2.3.1 Wappalyzer
Wappalyzer是一个浏览器小插件
2.3.2 whatweb
kali集成的工具
使用命令来运行:
whatweb http://192.168.109.100/cms/
2.4 信息泄露
2.4.1 robot.txt
很多网站都有该文件,文件描述了搜索引擎哪些东西可以爬。哪些东西不能爬。
2.4.2 网站源代码泄露
泄露途径 | 获取源代码方式 |
---|---|
版本控制软件 | git 泄露(/.git/) SVN 泄露(/.svn/) HG 泄露(/.hg/) |
系统特性 | MAC 系统目录记录文件(.DS_Store) |
网站源码压缩包 | www.zip root.tar.gz beifen.rar |
编辑器缓存文件 | index.php gedit 缓存文件(index.php) vim 缓存文件(.index.php.swp) |
源码公开 | github |
下面对其中几种网站源代码泄露方式进行具体说明:
-
git 源码泄露
泄露成因:
在运行
git init
初始化代码库的时候,会在当前目录下产生一个.git
的隐藏文件,该文件是用来存放代码的变更记录的,所以很有可能在发布网站的时候,该文件并没有被删除,攻击者就可以利用该文件来恢复源代码. -
SVN 泄露
漏洞成因:
SVN(Subversion)泄露是因为在使用SVN版本控制系统的时候,可能会由于公开暴露SVN仓库、Web服务器配置问题、敏感文件被提交到仓库中,导致源代码会被未授权的访问者获取。
-
hg 泄露
漏洞成因:
hg(Mercurial)如果服务器中的源代码未被正确的保护,可能会被导致未经授权的用户获取。
-
.DS_Store文件泄露
漏洞成因:
在发布代码时未删除文件夹中隐藏的
.DS_store
,被发现后,获取了敏感的文件名等信息 -
网站源码压缩包
漏洞成因:
服务器管理员在配置的时候,将网站或者网页的备份文件放置到了服务器的Web目录下,或者由于编辑器的自动备份功能,会导致文件被保存而没有被删除并保存在web目录下,从而导致攻击者有了机会。
3.敏感文件扫描
敏感文件路径扫描,要弄清楚一个问题就是重点不在工具而在于字典。
扫描工具分为两种:通用扫描器和专用扫描器
3.1 通用扫描器
3.1.1 御剑
链接: https://pan.baidu.com/s/1xK9KdQVwBnEtEHTCW_b3FA
提取码: g3c9
3.1.2 dirb
kali Linux 默认是安装了Dirb的。
dirb url dict 参数
参数 | 含义 |
---|---|
-a | 设置user-agent |
-p | 设置代理 < proxy[:port] > |
-c | 设置cookie |
-z | 添加毫秒延迟 |
-o | 输出结果 |
-X | 在字典的后面添加后缀 |
-H | 添加请求头 |
-i | 不区分大小写搜索 |
这里拿了一个字典测试了一下,只为演示效果!!!
3.2 专用扫描器
3.2.1 droopescan
主要针对durpal的扫描器。
使用安装:
git clone https://github.com/droope/droopescan.git
cd droopescan
pip install -r requirements.tst
./droopescan scan --help
3.2.2 wpscan
主要针对WordPress的扫描器。
3.2.3 joomscan
主要针对Joomla的扫描器
使用安装:
git clone https://github.com/rezasp/joomscan.git
cd joomscan
perl joomscan.pl
perl joomscan.pl -u http://target.com/joomla
4. 漏洞扫描
4.1 漏扫原理
漏洞扫描是指利用一些工具自动化地发现网络中各种设备的安全漏洞的方式。漏洞扫描主要分为两类:黑盒扫描和白盒扫描。
4.1.1 黑盒扫描
黑盒扫描就是在不具有主机权限的情况下,通过识别服务或设备的类型和版本,对其进行漏洞的判断。通常使用漏洞扫描器,在漏洞扫描器中,通常会有一些主机漏洞的特征库,漏洞扫描器在扫描的过程中利用库中的脚本和信息进行匹配来查找漏洞。
4.1.2 白盒扫描
白盒扫描就是在具有主机权限的情况下,进行漏洞扫描。
通常白盒扫描的结果更加的精准,但是这些漏洞有可能并无法被外部利用,因为有些漏洞是需要先获取主机权限才能利用的,使用白盒扫描的结果不应该作为外部渗透测试的最后结果。
4.2 网络漏洞扫描
网络漏洞扫描指的是对设备进行主机漏洞扫描。通过网络漏洞扫描,可以扫出目标服务器主机存在的安全漏洞。
网络扫描工具:
- OpenVAS
- 绿盟极光
- NeXpose
4.2.1 OpenVAS扫描工具
OpenVAS 是一款流行的开源漏洞评估工具,它可以帮助安全专业人员识别和评估计算机系统和网络中的安全漏洞。
使用:
-
启动OpenVAS
sudo openvas start sudo gvm-start
-
访问OpenVAS
http://127.0.0.1:9392
admin/123456
-
扫描目标
Configration -> Targets
-
扫描策略
Configrayion -> Scanners
-
扫描任务
Scans -> Tasks
4.3 Web漏洞扫描
Web漏洞扫描指的是对Web应用进行扫描,利用Web漏洞扫描器,可以发现获取Web应用安全漏洞。
随着时代的发展,各种机关单位、银行、企业以及个人组织都有主机的门户网站,所以这些Web网站就成了黑客的攻击目标。通过Web漏洞扫描,可以有效的防范加固Web网站。
4.3.1 AWVS扫描工具
AWVS是一-款由IBM公司发布的Web网络漏洞扫描工具,可以用来测试网站、Web应用程序及接口的安全性。
使用:
- 在攻击机上启动AWVS(kali)
sudo systemctl start acunetix.service
-
访问AWVS
https://127.0.0.1:3443/
-
创建扫描目标
Targets -> Add target
-
开启扫描任务
Scan
-
导出扫描报告
Report