主动信息收集

一,资产收集整理

​ 在红蓝(黑白)对抗过程中,资产都处于核心地位。攻击方要清楚目标范围,攻击方要尽可能暴露目标资产。防守方要知道自己有多少有价值的资产,包括**IP 地址,网络设备,安全设备,服务器,运行在端口号上的服务和服务器中存储的数据(文件,数据库等)**等。
​ 为了节省时间和人力,通常采用手工和工具相结合的方式。使用工具,就是将一些机械性的操作自动化实现,用以提高效率。例如,寻找内网 10.4.7.0/24所有在线主机,如果一个一个去ping 来测试主机是否存活(在线),显然是不合适的。

资产收集整理:

  • 主机发现
  • 端口扫描
  • 指纹识别
  • …….

1.1 基础知识

1.1.1 IP地址分类

​ 最初设计互联网络时,为了便于寻址以及层次化构造网络,每个P地址包括两个标识码(ID),即网络ID主机ID同一个物理网络上的所有主机都使用同一个网络ID,网络上的一个主机(包括网络上工作站,服务器和路由器等)有一个主机ID 与其对应。IP 地址根据网络ID 的不同分为5 种类型,A 类地址、B 类地址、C类地址、D 类地址和E 类地址。

1.1.2 常见端口号

1.1.3 TCP包头格式

1.1.4 三次握手

1.1.5 四次挥手

1.1.6 wireshark

1.1.7 Nmap

1.2 主机发现

主机发现就是确定主机是否存活

  • 网段内存活的IP地址
  • 根据MAC地址找到IP地址

1.2.1 ping 扫描

ping扫描可跨网段因为其协议原因。

只进行Ping测试,不进行端口扫描。

可用nmap的-sn或者-sP参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
──(root㉿kali)-[/home/kali]
└─# nmap -sn 192.168.189.0/24
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-07-09 09:33 CST
Nmap scan report for 192.168.189.1
Host is up (0.00065s latency).
MAC Address: 00:50:56:C0:00:08 (VMware)
Nmap scan report for 192.168.189.2
Host is up (0.00046s latency).
MAC Address: 00:50:56:F1:61:2C (VMware)
Nmap scan report for 192.168.189.138
Host is up (0.00069s latency).
MAC Address: 00:0C:29:44:3C:E6 (VMware)
Nmap scan report for 192.168.189.139
Host is up (0.00045s latency).
MAC Address: 00:0C:29:84:E2:7E (VMware)
Nmap scan report for 192.168.189.254
Host is up (0.00095s latency).
MAC Address: 00:50:56:F0:FB:68 (VMware)
Nmap scan report for 192.168.189.134
Host is up.
Nmap done: 256 IP addresses (6 hosts up) scanned in 6.31 seconds

1.2.2 其他扫描工具

这两款工具只可在局域网内扫描,不可跨网段,因为其底层是arp协议进行扫描

arp-scan:

1
2
arp-scan -I eth0 192.168.189.0/24
扫描整个网段

netdiscover:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
netdiscover -i eth0 -r 192.168.189.0/24
-i指定网卡,扫描整个网段


扫描结果:
Currently scanning: Finished! | Screen View: Unique Hosts

7 Captured ARP Req/Rep packets, from 5 hosts. Total size: 420
_____________________________________________________________________________
IP At MAC Address Count Len MAC Vendor / Hostname
-----------------------------------------------------------------------------
192.168.189.1 00:50:56:c0:00:08 1 60 VMware, Inc.
192.168.189.2 00:50:56:f1:61:2c 1 60 VMware, Inc.
192.168.189.138 00:0c:29:44:3c:e6 2 120 VMware, Inc.
192.168.189.139 00:0c:29:84:e2:7e 1 60 VMware, Inc.
192.168.189.254 00:50:56:f0:fb:68 2 120 VMware, Inc.


1.3 端口扫描

端口扫描就是寻找存活主机所开放的端口,并确定端口上运行的服务。甚至可以进一步确定目标主机的操作系统以及更加详细的信息。

需要明确的问题:

  • 哪些端口开放
  • 端口上所运行的服务

1.3.1 端口状态

使用nmap作为端口扫描的主要工具,端口状态一共分为六种:

端口状态 说明 原因
Open 开放
Closed 关闭
Filtered 过滤 数据包超时
Unfiltered
Open|Filtered
Closed|Filtered

1.3.2 简单扫描

1
2
3
4
5
6
7
8
9
10
11
12
13
14
┌──(root㉿kali)-[/home/kali]
└─# nmap 192.168.189.139
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-07-09 10:01 CST
Nmap scan report for 192.168.189.139
Host is up (0.0028s latency).
Not shown: 997 closed tcp ports (reset)
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
111/tcp open rpcbind
MAC Address: 00:0C:29:84:E2:7E (VMware)

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

说明:

  • 不指定端口的情况下,会进行端口扫描
  • 默认扫描 TOP 1000 端口号(一千个最常用的端口号)

1.3.3 端口扫描

指定端口:

1
2
3
4
5
6
nmap 192.168.189.139 -p 80
nmap 192.168.189.139 -p 80,3306,3389
nmap 192.168.189.139 -p 1-100
nmap 192.168.189.139 -p 1-100,3306,3389
nmap 192.168.189.139 -p 1-65535
nmap 192.168.189.139 -p- (指定全端口)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
┌──(root㉿kali)-[/home/kali]
└─# nmap 192.168.189.139 -p-
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-07-09 10:08 CST
Nmap scan report for 192.168.189.139
Host is up (0.0016s latency).
Not shown: 65531 closed tcp ports (reset)
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
111/tcp open rpcbind
47872/tcp open unknown
MAC Address: 00:0C:29:84:E2:7E (VMware)

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



相比上面的简单扫描多出了一个47872端口

端口扫描方式:

端口扫描方式 参数 原理 优缺点
TCP
全连接扫描
-sT Nmap发送一个SYN=1:
* 如果目标回一个ACK=1,SYN=1,则Nmap回ACK=1,此时就会建立完整的三次握手连接,Nmap判断该端口开放。
* 如果目标直接回RST=1,Nmap判断该端口关闭
准确,但会留下大量的密集的日志记录
SYN
半连接扫描
-sS Nmap发送一个SYN=1:
* 如果目标回一个ACK=1,SYN=1,Nmap判断该端口开放,并主动重置连接
* 如果目标直接回RST=1,Nmap判断该端口关闭
快速,没有-sT扫描准确,需要root权限
TCP ACK 扫描 -sA
TCP 窗口扫描 -sW
Maimon Scan -sM 针对Linux或Windows无效!
FIN 扫描 -sF
Null 扫描 -sN
Xmas 扫描 -sX
UDP 扫描 -sU

举例命令:

1
nmap -sT  192.168.189.139 -p 80

通过wireshark抓包分析网卡流量:就可分析原理了

1.png

1.3.4 其他扫描方式

其他扫描方式 命令
获取目标操作系统类型 sudo nmap -O 192.168.189.139 -p 80
获取服务详细版本 sudo nmap 192.168.189.139 -p 80 -sV
全面扫描 sudo nmap -A 192.168.189.139 -p-
扩展脚本 sudo nmap –script=smb-vuln-ms17-010.nse
保存结果 sudo nmap -A 192.168.189.139 -p- -oN 139_dc1.A

1.3.5 终极命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
nmap -Pn -A -p- -sS -sC -T4 192.168.189.139

解释:
-Pn参数,这个是无ping扫描,因为nmap在扫描之前都会对对方主机进行一下ping操作,如果ping不通就会直接略过,但是有一些主机就是直接禁ping那么nmap扫描就会吃亏,于是开发出了无ping扫描,跳过主机发现操作,也就是-Pn参数。

-A参数,做一个全面扫描

-p-参数,全端口扫描

-sS参数,SYN半连接扫描

-sC参数,约等于--script=default,使用默认脚本进行扫描

-T4参数,给他挂上四挡,档越高速度越快,5档最快是疯狂的扫描


举例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
┌──(root㉿kali)-[/home/kali]
└─# nmap -Pn -A -p- -sS -sC -T4 192.168.189.139 -oN nmap.dc1.162.A
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-07-09 10:54 CST
Nmap scan report for 192.168.189.139
Host is up (0.0024s latency).
Not shown: 65531 closed tcp ports (reset)
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 6.0p1 Debian 4+deb7u7 (protocol 2.0)
| ssh-hostkey:
| 1024 c4:d6:59:e6:77:4c:22:7a:96:16:60:67:8b:42:48:8f (DSA)
| 2048 11:82:fe:53:4e:dc:5b:32:7f:44:64:82:75:7d:d0:a0 (RSA)
|_ 256 3d:aa:98:5c:87:af:ea:84:b8:23:68:8d:b9:05:5f:d8 (ECDSA)
80/tcp open http Apache httpd 2.2.22 ((Debian))
|_http-title: Welcome to Drupal Site | Drupal Site
|_http-generator: Drupal 7 (http://drupal.org)
| http-robots.txt: 36 disallowed entries (15 shown)
| /includes/ /misc/ /modules/ /profiles/ /scripts/
| /themes/ /CHANGELOG.txt /cron.php /INSTALL.mysql.txt
| /INSTALL.pgsql.txt /INSTALL.sqlite.txt /install.php /INSTALL.txt
|_/LICENSE.txt /MAINTAINERS.txt
|_http-server-header: Apache/2.2.22 (Debian)
111/tcp open rpcbind 2-4 (RPC #100000)
| rpcinfo:
| program version port/proto service
| 100000 2,3,4 111/tcp rpcbind
| 100000 2,3,4 111/udp rpcbind
| 100000 3,4 111/tcp6 rpcbind
| 100000 3,4 111/udp6 rpcbind
| 100024 1 39320/udp6 status
| 100024 1 40317/udp status
| 100024 1 43265/tcp6 status
|_ 100024 1 47872/tcp status
47872/tcp open status 1 (RPC #100024)
MAC Address: 00:0C:29:84:E2:7E (VMware)
Device type: general purpose
Running: Linux 3.X
OS CPE: cpe:/o:linux:linux_kernel:3
OS details: Linux 3.2 - 3.16
Network Distance: 1 hop
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

TRACEROUTE
HOP RTT ADDRESS
1 2.38 ms 192.168.189.139

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 36.39 seconds

二,Web应用信息收集

在Web应用开发过程中,为了开发的高效性,通常会使用一些现成的CMS,框架等。

PHP 语言开发框架:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
PHP
wordpress(wp)
drupal
joomla
thinkphp(tp)
dedecms(织梦)
discuz(dz)
metinfo(米拓)
禅道CMS
帝国CMS
海洋CMS
泛微OA
通达OA
华天OA
致远OA
......

JAVA语言开发框架:

1
2
3
4
5
6
7
struts2
spring
springboot
JBoss
Weblogic
....

JavaScript开发框架:

1
2
vue.js
.....

python语言开发框架:

1
2
flask
....

2.1 Web应用指纹信息

2.1.1 Wappalyzer

这是一个浏览器插件

2

2.1.2 whatweb

kali下的小工具

1
2
3
4
┌──(root㉿kali)-[/home/kali]
└─# whatweb http://192.168.189.139
http://192.168.189.139 [200 OK] Apache[2.2.22], Content-Language[en], Country[RESERVED][ZZ], Drupal, HTTPServer[Debian Linux][Apache/2.2.22 (Debian)], IP[192.168.189.139], JQuery, MetaGenerator[Drupal 7 (http://drupal.org)], PHP[5.4.45-0+deb7u14], PasswordField[pass], Script[text/javascript], Title[Welcome to Drupal Site | Drupal Site], UncommonHeaders[x-generator], X-Powered-By[PHP/5.4.45-0+deb7u14]

2.1.3 CMSeek

kali下的工具:

1
cmseek -u http://192.168.189.139/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 ___ _  _ ____ ____ ____ _  _
| |\/| [__ |___ |___ |_/ by @r3dhax0r
|___ | | ___| |___ |___ | \_ Version 1.1.3 K-RONA


[+] CMS Scan Results [+]

┏━Target: 192.168.189.139

┠── CMS: Drupal
┃ │
┃ ├── Version: 7
┃ ╰── URL: https://drupal.org

┠── Result: /home/kali/CMSseek/Result/192.168.189.139/cms.json

┗━Scan Completed in 0.27 Seconds, using 1 Requests

CMSeeK says ~ adieu
┌──(kali㉿kali)-[~/CMSseek]
└─$

2.2 信息泄露

2.2.1 robots.txt

​ 根据此文件内容,“告诉”搜索引擎的蜘蛛(Baiduspider),机器人(Googlebot),爬虫,本网站下哪些目录可以爬行,哪些目录不可以爬行。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
┌──(kali㉿kali)-[~/CMSseek]
└─$ curl "http://www.baidu.com/robots.txt"
User-agent: Baiduspider
Disallow: /baidu
Disallow: /s?
Disallow: /ulink?
Disallow: /link?
Disallow: /home/news/data/
Disallow: /bh

User-agent: Googlebot
Disallow: /baidu
Disallow: /s?
Disallow: /shifen/
Disallow: /homepage/
Disallow: /cpro
Disallow: /ulink?
Disallow: /link?
Disallow: /home/news/data/
Disallow: /bh

User-agent: MSNBot
Disallow: /baidu
Disallow: /s?
Disallow: /shifen/
Disallow: /homepage/
Disallow: /cpro
Disallow: /ulink?
Disallow: /link?
Disallow: /home/news/data/
Disallow: /bh

User-agent: Baiduspider-image
Disallow: /baidu
Disallow: /s?
Disallow: /shifen/
Disallow: /homepage/
Disallow: /cpro
Disallow: /ulink?
Disallow: /link?
Disallow: /home/news/data/
Disallow: /bh

User-agent: YoudaoBot
Disallow: /baidu
Disallow: /s?
Disallow: /shifen/
Disallow: /homepage/
Disallow: /cpro
Disallow: /ulink?
Disallow: /link?
Disallow: /home/news/data/
Disallow: /bh

User-agent: Sogou web spider
Disallow: /baidu
Disallow: /s?
Disallow: /shifen/
Disallow: /homepage/
Disallow: /cpro
Disallow: /ulink?
Disallow: /link?
Disallow: /home/news/data/
Disallow: /bh

User-agent: Sogou inst spider
Disallow: /baidu
Disallow: /s?
Disallow: /shifen/
Disallow: /homepage/
Disallow: /cpro
Disallow: /ulink?
Disallow: /link?
Disallow: /home/news/data/
Disallow: /bh

User-agent: Sogou spider2
Disallow: /baidu
Disallow: /s?
Disallow: /shifen/
Disallow: /homepage/
Disallow: /cpro
Disallow: /ulink?
Disallow: /link?
Disallow: /home/news/data/
Disallow: /bh

User-agent: Sogou blog
Disallow: /baidu
Disallow: /s?
Disallow: /shifen/
Disallow: /homepage/
Disallow: /cpro
Disallow: /ulink?
Disallow: /link?
Disallow: /home/news/data/
Disallow: /bh

User-agent: Sogou News Spider
Disallow: /baidu
Disallow: /s?
Disallow: /shifen/
Disallow: /homepage/
Disallow: /cpro
Disallow: /ulink?
Disallow: /link?
Disallow: /home/news/data/
Disallow: /bh

User-agent: Sogou Orion spider
Disallow: /baidu
Disallow: /s?
Disallow: /shifen/
Disallow: /homepage/
Disallow: /cpro
Disallow: /ulink?
Disallow: /link?
Disallow: /home/news/data/
Disallow: /bh

User-agent: ChinasoSpider
Disallow: /baidu
Disallow: /s?
Disallow: /shifen/
Disallow: /homepage/
Disallow: /cpro
Disallow: /ulink?
Disallow: /link?
Disallow: /home/news/data/
Disallow: /bh

User-agent: Sosospider
Disallow: /baidu
Disallow: /s?
Disallow: /shifen/
Disallow: /homepage/
Disallow: /cpro
Disallow: /ulink?
Disallow: /link?
Disallow: /home/news/data/
Disallow: /bh


User-agent: yisouspider
Disallow: /baidu
Disallow: /s?
Disallow: /shifen/
Disallow: /homepage/
Disallow: /cpro
Disallow: /ulink?
Disallow: /link?
Disallow: /home/news/data/
Disallow: /bh

User-agent: EasouSpider
Disallow: /baidu
Disallow: /s?
Disallow: /shifen/
Disallow: /homepage/
Disallow: /cpro
Disallow: /ulink?
Disallow: /link?
Disallow: /home/news/data/
Disallow: /bh

User-agent: *
Disallow: /

不准许的就是:“此地无银三百两”

2.2.2 网站源代码泄露

泄露途径 获取源码方式
版本控制软件 git泄露(/.git/)
SVN泄露(/.svn/)
HG泄露(/.hg/)
……..
系统特性 MAC系统目录记录文件(.DS_Store)
网站源码压缩包 beifen.rar
www.zip
root.tar.gz
……
编辑器缓存文件 index.php
gedit 缓存文件(index.php~)
vim 缓存文件(.index.php.swp)
…..
源码公开 github
…..

这里我写一个自己打的靶场:

Lab: Information disclosure in version control history:历史版本中的信息披露

靶场内容:

该实验室通过其版本控制历史记录披露敏感信息。要解决实验室,请获取administrator用户的密码,然后登录并删除carlos的帐户。

漏洞解析

  • 打开实验室并浏览以/.git显示实验室的 Git 版本控制数据。

解题过程

burp靶场:postswigger,信息泄露实验,花一分钱买个电冰箱,是/.git泄露经典:

这里有一个小tips:利用burp抓包然后选择Target模块—->然后右键url:Engagement tools–>Discover content

这个插件可以自动扫描网站目录结构,当然取决于字典强大与否

如下图就是我利用其在postswigger信息泄露靶场里面发现扫描出来的结果:发现了git泄露

3

然后我利用kali内置的wget工具将其内容爬下:

1
2
3
4
┌──(kali㉿kali)-[~/CMSseek]
└─$ wget -r "https://0a6f00c004769e0780903a9400d700b2.web-security-academy.net/.git"


然后查看目录:发现git目录,这时候就要利用git的一些相关命令来对其进行操作了

1
2
3
4
5
6
7
8
9
10
11
12
13
┌──(kali㉿kali)-[~/CMSseek]
└─$ ls
0a6f00c004769e0780903a9400d700b2.web-security-academy.net
reports
reports.json
Result
┌──(kali㉿kali)-[~/CMSseek/0a6f00c004769e0780903a9400d700b2.web-security-academy.net]
└─$ ls -alh
总计 12K
drwxr-xr-x 3 kali kali 4.0K 7月 9日 14:50 .
drwxr-xr-x 5 kali kali 4.0K 7月 9日 14:49 ..
drwxr-xr-x 7 kali kali 4.0K 7月 9日 14:51 .git

补:git相关命令操作:
<1>git diff:比较版本之间的差异
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 比较当前文件和暂存区中文件的差异,显示没有暂存起来的更改
$ git diff

# 比较暂存区中的文件和上次提交时的差异
$ git diff --cached
$ git diff --staged

# 比较当前文件和上次提交时的差异
$ git diff HEAD

# 查看从指定的版本之后改动的内容
$ git diff <commit ID>

# 比较两个分支之间的差异
$ git diff <分支名称> <分支名称>

# 查看两个分支分开后各自的改动内容
$ git diff <分支名称>...<分支名称>

对靶场爬取下来的/.git进行git命令操作效果如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
┌──(kali㉿kali)-[~/CMSseek/0a6f00c004769e0780903a9400d700b2.web-security-academy.net]
└─$ git diff
diff --git a/admin.conf b/admin.conf
deleted file mode 100644
index 21d23f1..0000000
--- a/admin.conf
+++ /dev/null
@@ -1 +0,0 @@
-ADMIN_PASSWORD=env('ADMIN_PASSWORD')
diff --git a/admin_panel.php b/admin_panel.php
deleted file mode 100644
index 8944e3b..0000000
--- a/admin_panel.php
+++ /dev/null
@@ -1 +0,0 @@
-<?php echo 'TODO: build an amazing admin panel, but remember to check the password!'; ?>
\ No newline at end of file

image-20240709152414808

“-“:代表删除;”+”:代表增加

注意到关键字段ADMIN_PASSWORD

<2>git log:查看日志,显示提交的记录
1
2
3
4
5
6
7
8
9
10
# 打印所有的提交记录
$ git log

# 打印从第一次提交到指定的提交的记录
$ git log <commit ID>

# 打印指定数量的最新提交的记录
$ git log -<指定的数量>


对靶场爬取下来的/.git进行git命令操作效果如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
──(kali㉿kali)-[~/CMSseek/0a6f00c004769e0780903a9400d700b2.web-security-academy.net]
└─$ git log
commit c18715b980edb6d431ce8049d8fd00b2dd9421fc (HEAD -> master)
Author: Carlos Montoya <carlos@carlos-montoya.net>
Date: Tue Jun 23 14:05:07 2020 +0000

Remove admin password from config

commit 7d4d6f3ea252b14c666a084b8251a112a1056c68
Author: Carlos Montoya <carlos@carlos-montoya.net>
Date: Mon Jun 22 16:23:42 2020 +0000

Add skeleton admin panel

image-20240709152809889

查看日志可知其进行了两次提交,然后利用commit给出的hash值进行追溯。

<3>git cat-file -p 哈希值

git cat-file -p 是 Git 命令,用于查看 Git 对象的内容。具体来说,-p 参数会自动判断对象类型,并以友好的格式显示其内容。

在你的例子中,21d23f13ce6c704b81857 是一个 Git 对象的哈希值(通常是一个提交、树或 blob 对象的 SHA-1 哈希值)。这个命令的作用是显示该对象的内容。

例如,如果 21d23f13ce6c704b81857 是一个提交对象,git cat-file -p 21d23f13ce6c704b81857 会显示该提交的详细信息,包括提交者、提交日期、提交消息以及指向的树对象的哈希值等。

如果 21d23f13ce6c704b81857 是一个 blob 对象,该命令会显示该 blob 对象的内容,即文件的内容

如果 21d23f13ce6c704b81857 是一个树对象,该命令会显示该树对象的内容,即目录结构和文件的权限、类型和哈希值等信息。

请注意,哈希值通常是完整的 40 位 SHA-1 值,但在某些情况下,Git 也接受短哈希值,只要它们在当前仓库中是唯一的。在你的例子中,21d23f13ce6c704b81857 看起来像是一个短哈希值,Git 会尝试找到与之匹配的完整哈希值,并显示相应对象的内容

靶场操作如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
┌──(kali㉿kali)-[~/CMSseek/0a6f00c004769e0780903a9400d700b2.web-security-academy.net]
└─$ git cat-file -p c18715b980edb6d431ce8049d
tree 2154555944002791a4d27412bf6e9a6f29e942fa
parent 7d4d6f3ea252b14c666a084b8251a112a1056c68
author Carlos Montoya <carlos@carlos-montoya.net> 1592921107 +0000
committer Carlos Montoya <carlos@carlos-montoya.net> 1720507043 +0000

Remove admin password from config

┌──(kali㉿kali)-[~/CMSseek/0a6f00c004769e0780903a9400d700b2.web-security-academy.net]
└─$ git cat-file -p 2154555944002791a4d274
100644 blob 21d23f13ce6c704b81857379a3e247e3436f4b26 admin.conf
100644 blob 8944e3b9853691431dc58d5f4978d3940cea4af2 admin_panel.php

通过追溯发现git里面有记录:admin.conf这个文件

我们继续跟踪其对应的哈希值:

1
2
3
4
5
6
7
8
┌──(kali㉿kali)-[~/CMSseek/0a6f00c004769e0780903a9400d700b2.web-security-academy.net]
└─$ git cat-file -p 2154555944002791a4d274
100644 blob 21d23f13ce6c704b81857379a3e247e3436f4b26 admin.conf
100644 blob 8944e3b9853691431dc58d5f4978d3940cea4af2 admin_panel.php
┌──(kali㉿kali)-[~/CMSseek/0a6f00c004769e0780903a9400d700b2.web-security-academy.net]
└─$ git cat-file -p 21d23f13ce6c704b81857
ADMIN_PASSWORD=env('ADMIN_PASSWORD')

得到文件内容的关键信息:ADMIN_PASSWORD=env(‘ADMIN_PASSWORD’)

经过尝试发现这并不是密码,这是修改后的内容,那接下来我们该怎么办呢?

查看修改记录!!!!

<4>git show:非常强大

git show 是一个多功能的 Git 命令,主要用于显示各种类型的 Git 对象的详细信息。默认情况下,git show 通常用于显示提交对象(commit)的详细信息,但它也可以用于显示其他类型的对象,如树对象(tree)blob 对象(blob)标签对象(tag)

以下是 git show 的一些常见用途:

  1. 显示提交对象的详细信息

    1
    git show <commit-hash>

    这将显示指定提交的详细信息,包括:

    • 提交的哈希值
    • 作者和提交者的信息(姓名、电子邮件、日期)
    • 提交消息
    • 提交所引入的更改(diff)
  2. 显示标签对象的详细信息

    1
    git show <tag-name>

    这将显示指定标签的详细信息,包括:

    • 标签的类型(轻量标签或带注释的标签)
    • 标签的创建者信息
    • 标签的创建日期
    • 标签的注释消息(如果是带注释的标签)
    • 标签指向的提交或其他对象的详细信息
  3. 显示树对象的详细信息

    1
    git show <tree-hash>

    这将显示指定树对象的详细信息,包括目录结构和文件的权限、类型和哈希值等信息。

  4. 显示 blob 对象的详细信息

    1
    git show <blob-hash>

    这将显示指定 blob 对象的内容,即文件的内容。

git show 命令非常灵活,可以通过不同的参数和选项来调整其行为。例如,你可以使用 --pretty 选项来格式化输出,或者使用 -s 选项来简化输出,只显示提交的哈希值和提交消息。

总结来说,git show 是一个强大的工具,用于查看和理解 Git 仓库中各种对象的内容和结构。

1
2
3
4
$ git show
或者
git show -p c18715b980edb6d431ce8049d8fd00b2dd9421fc
这样可直接查看这个提交记录一样的效果

image-20240709154008186

成功拿到密码!通关成功

AJEST实验室:https://zhuanlan.zhihu.com/p/574701359

这里都是一些信息泄露的靶场解题过程

2.2.3 其他敏感信息

  • HTML 注释
  • phpinfo()
  • readme.md
  • 物理路径

三,敏感路径扫描

主要利用字典扫描网站下的敏感目录和文件。工具不重要,字典很重要

3.1 通用扫描器

3.1.1 御剑

windows下工具,界面简洁,操作简单,一般适用于国内网站使用

3.1.2 dirb

字典比较丰富,可以递归方式扫描目录结构,国外网站用。

用法:

1
2
3
dirb http://url/directory/  (simple Test)

dirb http://url/ -X .html (Test files with '.html' extension)指定后缀名

3.1.3 其他扫描器

  • dirsearch
  • burp内置路径扫描器:Target模块—->然后右键url:Engagement tools–>Discover content
  • goBuster
  • weakfilescan

3.2 专用扫描器

3.2.1 droopescan

一款基于插件的,主要针对durpal的扫描器

安装方法:

1
2
3
4
5
6
7
git clone https://github.com/droope/droopescan.git

cd droopescan

pip install -r requirements.txt

./droopescan scan --help

典型案例:DC-1

1
./droopescan scan drupal -u "http://192.168.189.139"

扫描结果:

image-20240709185253612

3.2.2 wpscan

专门用来扫描WordPress的扫描器

简单使用:

1
2
3
4
wpscan --[no-]update
wpscan --url http://dc-2
wpscan --url http://dc-2 -e vp,u --plugins-detection mixed
wpscan --url http://dc-2/ -u user.dic -P pass.dic

3.2.3 joomscan

专门扫描Joomla的扫描器

四,漏洞扫描

4.1 漏扫原理

漏洞扫描指的是利用一些工具自动化发现网络各类主机设备的安全漏洞。这些自动化工具通常被称为漏洞扫描器(一体化安全弱点管控平台)。漏洞扫描通常可以分为两类:

  • 黑盒扫描
  • 白盒扫描

4.1.1黑盒扫描

​ 黑盒扫描一般就是通过远程识别服务的类型和版本,对服务是否存在漏洞进行判定。在一些比较新的漏洞扫描软件中,应用了一些更高级的技术,比如模拟渗透攻击。

​ 黑盒扫描使用漏洞扫描器。漏洞扫描器一般会附带一个用于识别主机漏洞的特征库,并且会定期进行更新。在漏洞扫描的时候,就是利用特征库里的脚本与目标系统的反馈信息进行匹配,如果能够匹配上,就说明存在某一个漏洞。

​ 外部风险评估。

4.1.2 白盒扫描

​ 白盒扫描就是在具有主机操作权限(可登陆的主机账密)的情况下进行漏洞扫描。比如微软的补丁更新程序会定期对操作系统进行扫描,查找存在的安全漏洞,并推送相应的补丁更新。
​ 白盒扫描的结果更加准确,但一般来说白盒扫描所识别出的漏洞不应当作为外部渗透测试的最终数据。因为这些漏洞由于防火墙和各类防护软件的原因很可能无法在外部渗透测试中得到利用。同时,一般情况下是黑客攻击是没有机会获得用户名和口令。

4.1.3 注意

​ 漏洞扫描器会对目标造成影响。漏洞扫描器在识别漏洞的过程中,会向目标发送大量的数据包,有时候会导致目标系统拒绝服务或被扫描数据包阻寒。
​ 扫描行为也会被对方的入侵检测设备发现。
​ 漏洞扫描器扫描出来的结果通常会有很多误报(扫描结果中发现漏洞,但实际漏洞并不存在)或者漏报(漏洞实际存在,但扫描结果中没有体现)。因此,需要对扫描结果进行人工分析,确定哪些漏洞是真实存在的,这个过程叫做漏洞验证。漏洞验证是安全服务过程中不可缺少的一步,只有验证漏洞存在的真实性,才能对漏洞进行深度利用,才能体现漏洞修复的意义和价值。
​ 在漏扫之前,一定要得到客户的许可,并且讲清楚可能造成的风险以及产生不良后果的应急预案。使用漏洞扫描器时,一定要注意规避风险,努力将对系统运行可能造成的风险降到最低。尽量避免业务高峰期。

4.2 网络漏洞扫描

主机漏洞扫描。

通过网络漏洞扫描,全面掌握目标服务器主机存在的安全漏洞。市面上常用的漏洞扫描器有:

  • Nessus
  • NeXpose
  • 绿盟极光
  • OpenVas

4.2.1 OpenVAS安装

网上有参考

4.2.2 OpenVAS管理

image-20240710104830226

4.2.3 OpenVAS使用

image-20240710111049368

4.3 Web漏洞扫描

​ 随着互联网以及云计算等技术的发展,使得政府、银行、企业以及各个组织基本上都有自己的门户网站。Web 应用越来越多,同时Web 应用的攻击成本、难度都比较低,Web 应用成为黑客攻击的主要目标。无论黑客出于什么样的目的,Web 应用所面临的挑战都是很大的。
​ 如何及时、快速发现Web 应用安全漏洞,并且修补安全漏洞,减轻或消除Web 安全风险成为安全行业的重要课题。
​ 小型web 应用几十上百个页面,大型的web 应用成千上万个页面。如果靠人工的方式去检测每个页面的安全性,显然,这个成本是难以估计的。所以,需要借助于自动化工具,帮助审计员去发现web 安全漏洞。这些自动化工具就是Web 漏洞扫描器。
​ 市面上web 漏洞扫描器有很多,其中以IBM 公司的AppScan 和商业化Web 漏洞扫描器AWVS 为优秀。

4.3.1 AWVS

AWVS的使用:

步骤 内容
1. 访问AWVS https://127.0.0.1:3443
2.创建扫描目标 Targets -> Add Target
3.开启扫描任务 Scan
4.导出扫描报告 Report

还需要进行漏洞验证

4.4 被动式Web漏洞扫描

xray