dustland

dustball in dustland

渗透测试信息收集

今天是你的生日,但是有什么可以值得庆祝的呢?你就是一风暴兵罢了

渗透测试信息收集

域名信息收集

Whois域名信息收集

whois是一个标准互联网协议,用于收集注册域名,IP地址,自治系统信息,whois数据库中记录有该域名的DNS服务器信息和注册人的联系信息

在linux上直接用whois <domain>或者whois <ip_addreess>

使用whois --help可以查看帮助

比如:

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
┌──(root㉿Executor)-[/home/kali]
└─# whois baidu.com
Domain Name: BAIDU.COM
Registry Domain ID: 11181110_DOMAIN_COM-VRSN
Registrar WHOIS Server: whois.markmonitor.com
Registrar URL: http://www.markmonitor.com
Updated Date: 2022-01-25T09:00:46Z
Creation Date: 1999-10-11T11:05:17Z
Registry Expiry Date: 2026-10-11T11:05:17Z
Registrar: MarkMonitor Inc.
Registrar IANA ID: 292
Registrar Abuse Contact Email: abusecomplaints@markmonitor.com
Registrar Abuse Contact Phone: +1.2086851750
Domain Status: clientDeleteProhibited https://icann.org/epp#clientDeleteProhibited
Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited
Domain Status: clientUpdateProhibited https://icann.org/epp#clientUpdateProhibited
Domain Status: serverDeleteProhibited https://icann.org/epp#serverDeleteProhibited
Domain Status: serverTransferProhibited https://icann.org/epp#serverTransferProhibited
Domain Status: serverUpdateProhibited https://icann.org/epp#serverUpdateProhibited
Name Server: NS1.BAIDU.COM
Name Server: NS2.BAIDU.COM
Name Server: NS3.BAIDU.COM
Name Server: NS4.BAIDU.COM
Name Server: NS7.BAIDU.COM
DNSSEC: unsigned
image-20220603174503238

在windows上不能使用whois命令,但是可以去站长之家或者爱站网查询

站长之家

站长工具-爱站网

子域名信息收集

搜索引擎方法

1
2
3
site:<domain>
e.g.
site:dustball.top
image-20220603174616042

爬虫方法

burpsuite add new scan

比如爬某个学校的物理实验网站

image-20220603222904097

子域名查询网站

爱站网

站长之家

比如查询某H电影的网站

image-20220603223504262
image-20220603223604889

他木有子域名

本地工具

Layer子域名挖掘机

windows上的子域名挖掘工具

image-20220603223947457
wydomain

linux上的工具

备案号查询

SSL证书查询

crossdomain.xml文件

比如https://www.baidu.com/crossdomain.xml

1
2
3
4
5
6
7
This XML file does not appear to have any style information associated with it. The document tree is shown below.
<cross-domain-policy>
<allow-access-from domain="*.baidu.com"/>
<allow-access-from domain="*.bdstatic.com"/>
<allow-http-request-headers-from domain="*.baidu.com" headers="*"/>
<allow-http-request-headers-from domain="*.bdstatic.com" headers="*"/>
</cross-domain-policy>

DNS信息收集

DNS记录类型

DNS数据库是一个分布式数据库,每一台DNS服务器都存储了一些资源记录,作用是记录域名到IP地址的映射

资源记录是一个四元组(Name,Value,Type,TTL)

其中TTL是该条记录的生存时间,决定了资源记录应当从DNS服务器缓存中删除的时间

Type决定了记录的类型,Name和Value的意义都视Type而定

Type=A

Name=主机名

Value=该主机名对应的IP地址

A类记录提供了标准的域名到IP的映射

比如(deutschball.github.io,185.199.109.153,A)

显然这个记录应该由权威DNS服务器存储,当然其他各级DNS服务器都可以缓存,但是最终来源是权威DNS服务器.

Value指向的就是一台终端

Type=NS

Name=域

Value=该域中一台权威DNS服务器的主机名

权威DNS服务器:管理本域中的计算机IP和名称的映射.其作用类似于一个排的排长,其他计算机类似于班里的士兵,当其他班的士兵要找本班的许三多时,要先去找史班长问哪一个是许三多

这种记录的作用是路由DNS查询,啥意思呢?

比如(baidu.com,dns.baidu.com,NS)

在用户需要解析baidu.com时请求发往baidu.com域,然后这个域控(可能是域控?)会将该请求交给本域的DNS权威服务器dns.baidu.com去解析

Type=CNAME

Value是规范主机名,Name是该主机的别名

这个在搭建博客买域名的时候遇见过

本来的博客dns地址是deutschball.github.io,买了一个域名dustball.top,

在域名解析的时候并没有将dustball.topip地址直接挂钩,

而是增加了一条CNAME记录,将dustball.topdeutschball.github.io挂钩

实际解析成IP地址还是得指望原名和IP的A记录

Type=MX

Name=邮件服务器别名

Value=邮件服务器本名

MX记录允许邮件服务器具有简单的别名,通常是和web服务器同名,比如:

dustbal@mail.qq.com写成dustbal@qq.com实际上是一个地址

MX的作用和CNAME类似,但是为了获得邮件服务器的规范主机名就是得用MX记录,其他服务器的规范主机名用CNAME记录

DNS记录查询

nslookup命令

查询A记录
1
nslookup <域名>
1
2
3
4
5
6
7
8
9
10
11
┌──(kali㉿Executor)-[~]
└─$ nslookup baidu.com
Server: 172.28.0.1
Address: 172.28.0.1#53

Non-authoritative answer:
Name: baidu.com
Address: 220.181.38.148
Name: baidu.com
Address: 220.181.38.251

抓包观察

image-20220603232445678
查询MX记录
1
nslookup -type=mx <域名>
1
2
3
4
5
6
7
8
9
10

┌──(root㉿Executor)-[/home/kali]
└─# nslookup -type=mx stu.xidian.edu.cn
main parsing stu.xidian.edu.cn
....
Non-authoritative answer:
printsection()
stu.xidian.edu.cn mail exchanger = 30 mx-edu.icoremail.net.

....
image-20220603232844820
查询NX记录
1
nslookup -type=nx <域名>
查询所有类型
1
nslookup -type=any <域名>
交互模式
1
nslookup

搜索引擎利用

基本搜索

逻辑与AND
image-20220603235155842
逻辑或
image-20220603235313124
逻辑非

如果搜索"调用约定"时

image-20220603235450822

不想看到CSDN的结果

调用约定 -csdn

image-20220603235527399
通配

使用通配符*

image-20220603235720991

进阶用法

限定站点范围
1
site:<站点>
image-20220603235947419
标题含有关键词
1
intitle "<keyword>"
image-20220604000132277
标题含有多组关键词
1
allintitle <keyword1> <keyword2>
image-20220604000632480
所有链接到某个URL地址的网页
1
link: <域名>
image-20220604000822823
含有关键字的url地址
1
inurl: <keyword>
image-20220604001059596
特定拓展名文件
1
filetype: <ex_name>

配合应用

在某网站下搜索含有某关键字标题的页面

image-20220604001749976

主机信息收集

1.主机开放的端口和服务

2.主机操作系统

常见端口及对应服务

image-20220604095959880

nmap

image-20220604100037232

命令行运行:

1
2
3
4
5
6
7
8
9
10
11
12
13
14

┌──(root㉿Executor)-[/home/kali]
└─# nmap 192.168.43.44
Starting Nmap 7.92 ( https://nmap.org ) at 2022-06-04 10:01 CST
Nmap scan report for Executor (192.168.43.44)
Host is up (0.00058s latency).
Not shown: 996 filtered tcp ports (no-response)
PORT STATE SERVICE
80/tcp open http
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds

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

GUI运行

image-20220604100256337

基本用法

nmap -T4 -A -v 192.168.43.44

-A:进攻性方式扫描

-T4:T后面的数字越大,扫描速度越快,越容易被防火墙发现.默认为-T4选项

-v:详细输出扫描情况,显示扫描细节

主机发现
-sL列出将要扫描的IP地址,但是不进行主机发现

比如已经写好了一个list.txt作为待扫描的ip地址集合,使用-sL -iL list.txt列出该集合

1
2
3
4
5
6
7
8
9
10
11
12
13
┌──(root㉿Executor)-[/home/kali/mydir]
└─# cat list.txt
192.168.43.44
192.168.43.1
192.168.43.2

┌──(root㉿Executor)-[/home/kali/mydir]
└─# nmap -sL -iL list.txt
Starting Nmap 7.92 ( https://nmap.org ) at 2022-06-04 10:08 CST
Nmap scan report for Executor (192.168.43.44)
Nmap scan report for 192.168.43.1
Nmap scan report for 192.168.43.2
Nmap done: 3 IP addresses (0 hosts up) scanned in 1.30 seconds
-sn/-sP只进行主机发现,不进行端口扫描

192.168.43.1是手机热点的ip地址,

192.168.43.44是本机Executor的ip地址

192.168.43.2是杜撰的一个ip地址

1
2
3
4
5
6
7
8
┌──(root㉿Executor)-[/home/kali/mydir]
└─# nmap -sn -iL list.txt
Starting Nmap 7.92 ( https://nmap.org ) at 2022-06-04 10:10 CST
Nmap scan report for Executor (192.168.43.44)
Host is up (0.00032s latency).
Nmap scan report for 192.168.43.1
Host is up (0.019s latency).
Nmap done: 3 IP addresses (2 hosts up) scanned in 2.54 seconds

运行结果显示192.168.43.1192.168.43.44在线,192.168.43.2不在线

如果不使用-sn选项,nmap首先进行主机发现,然后进行端口扫描

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
┌──(root㉿Executor)-[/home/kali/mydir]
└─# nmap -iL list.txt
Starting Nmap 7.92 ( https://nmap.org ) at 2022-06-04 10:12 CST
Nmap scan report for Executor (192.168.43.44)
Host is up (0.00044s latency).
Not shown: 996 filtered tcp ports (no-response)
PORT STATE SERVICE
80/tcp open http
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds

Nmap scan report for 192.168.43.1
Host is up (0.014s latency).
Not shown: 999 closed tcp ports (reset)
PORT STATE SERVICE
53/tcp open domain

Nmap done: 3 IP addresses (2 hosts up) scanned in 7.13 seconds
-Pn认为主机都存活,直接端口扫描
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
┌──(root㉿Executor)-[/home/kali/mydir]
└─# nmap -Pn -iL list.txt
Starting Nmap 7.92 ( https://nmap.org ) at 2022-06-04 10:13 CST
Nmap scan report for Executor (192.168.43.44)
Host is up (0.00029s latency).
Not shown: 996 filtered tcp ports (no-response)
PORT STATE SERVICE
80/tcp open http
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds

Nmap scan report for 192.168.43.1
Host is up (0.0063s latency).
Not shown: 999 closed tcp ports (reset)
PORT STATE SERVICE
53/tcp open domain

Nmap scan report for 192.168.43.2
Host is up (0.060s latency). #这里"host is up"是-Pn选项的作用,让nmap认为它在线,但是没有找到任何打开的端口
All 1000 scanned ports on 192.168.43.2 are in ignored states.
Not shown: 996 filtered tcp ports (no-response), 4 filtered tcp ports (host-unreach)

Nmap done: 3 IP addresses (3 hosts up) scanned in 14.64 seconds
-PS/PA/PU/PY使用各种协议方式进行扫描

如果不指定这四个之一,则默认使用TCP和ICMP两种方式分别进行主机发现

1
2
3
4
5
6
7
8
┌──(root㉿Executor)-[/home/kali/mydir]
└─# nmap -sn -iL list.txt
Starting Nmap 7.92 ( https://nmap.org ) at 2022-06-04 10:50 CST
Nmap scan report for Executor (192.168.43.44)
Host is up (0.00034s latency).
Nmap scan report for 192.168.43.1
Host is up (0.0054s latency).
Nmap done: 3 IP addresses (2 hosts up) scanned in 2.55 seconds
image-20220604105103155
-PS使用TCP SYN方式进行主机发现
1
2
3
4
5
6
7
8
┌──(root㉿Executor)-[/home/kali/mydir]
└─# nmap -PS -sn -iL list.txt
Starting Nmap 7.92 ( https://nmap.org ) at 2022-06-04 10:16 CST
Nmap scan report for Executor (192.168.43.44)
Host is up (0.00051s latency).
Nmap scan report for 192.168.43.1
Host is up (0.0080s latency).
Nmap done: 3 IP addresses (2 hosts up) scanned in 1.51 seconds
image-20220604101822988

运行nmap的wsl kali linux的ip地址是

1
2
3
4
5
6
7
8
9
10
┌──(root㉿Executor)-[/home/kali/mydir]
└─# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.28.30.195 netmask 255.255.240.0 broadcast 172.28.31.255
inet6 fe80::215:5dff:feeb:45a2 prefixlen 64 scopeid 0x20<link>
ether 00:15:5d:eb:45:a2 txqueuelen 1000 (Ethernet)
RX packets 2564 bytes 187120 (182.7 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 10190 bytes 598185 (584.1 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

No.1由kali发往192.168.43.2,使用TCP协议的SYN包

No.2由kali发往192.168.43.44,使用TCP协议的SYN包

No.3由kali发往192.168.43.1,使用TCP协议的SYN包

No.4由192.168.43.44发往kali,使用TCP协议SYN,ACK包,kali只要收到该包就知道,129.168.43.44是存活的

No.5由kali发往192.168.43.44,使用TCP协议RST包,kali的主机发现目的已经达到,不再根192.168.43.44胡诌八扯,直接断开连接

RST标志位

RST表示复位,用来异常的关闭连接,在TCP的设计中它是不可或缺的。就像上面说的一样,发送RST包关闭连接时,不必等缓冲区的包都发出去(不像上面的FIN包),直接就丢弃缓存区的包发送RST包。而接收端收到RST包后,也不必发送ACK包来确认。

TCP处理程序会在自己认为的异常时刻发送RST包。例如,A向B发起连接,但B之上并未监听相应的端口,这时B操作系统上的TCP处理程序会发RST包。

又比如,AB正常建立连接了,正在通讯时,A向B发送了FIN包要求关连接,B发送ACK后,网断了,A通过若干原因放弃了这个连接(例如进程重启)。网通了后,B又开始发数据包,A收到后表示压力很大,不知道这野连接哪来的,就发了个RST包强制把连接关了,B收到后会出现connect reset by peer错误。

No.6由192.168.43.1发往kali,使用TCP协议RST,ACK包.

[RST,ACK]是什么含义呢?

在No.3kali发往192.168.43.1的SYN数据包中,目的端口是192.168.43.1:80

image-20220604102924144

但是前面我们已经扫描过了,192.168.43.1并未开放该端口

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Starting Nmap 7.92 ( https://nmap.org ) at 2022-06-04 10:27 中国标准时间

Nmap scan report for 192.168.43.1

Host is up (0.011s latency).

Not shown: 999 closed tcp ports (reset)

PORT STATE SERVICE

53/tcp open domain

MAC Address: 92:74:8B:ED:5E:D6 (Unknown)

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

于是No.6的意思就是,192.168.43.1对kali说:"你说的话我听见了(收到No.3),但是我听不懂(未开放No.3的目的端口)"

但是kali nmap不管这么多,kali nmap就是想知道192.168.43.1是死是活,即使是一个听不懂话的白痴,也是一个活着的,只要有回复,不管回复的啥都视为或者

kali始终没有收到192.168.43.2,nmap认为它不存在或者已经死了

-PA使用TCP协议ACK包进行主机发现
1
2
3
4
5
6
┌──(root㉿Executor)-[/home/kali/mydir]
└─# nmap -PA -sn -iL list.txt
Starting Nmap 7.92 ( https://nmap.org ) at 2022-06-04 10:33 CST
Nmap scan report for 192.168.43.1
Host is up (0.010s latency).
Nmap done: 3 IP addresses (1 host up) scanned in 1.50 seconds
image-20220604103434323

No.201~No.203,kali向三个ip地址都发送了一个ACK包,

No.204,kali收到了192.168.43.1的回复,回复使用的是TCP协议RST包,意思是192.168.43.1只回了一个收到,但是不想进一步连接

然后No.205,No.206是kali对另外两个IP地址重复发送了ACK包,确保未收到它俩的信息不是路上的问题.

结果kali仍未收到它俩的回复,因此认为它俩不存在或者已死亡

但是192.168.43.44是或者的,为啥他不应答呢?

一些操作系统对于不规范的TCP连接请求会直接忽略,比如192.168.43.44上的

一些操作系统对于不规范的TCP连接会敷衍一下但是不建立连接,比如192.168.43.1上的

-PU使用UDP协议进行主机发现
1
2
3
4
5
6
7
8
┌──(root㉿Executor)-[/home/kali/mydir]
└─# nmap -PU -sn -iL list.txt
Starting Nmap 7.92 ( https://nmap.org ) at 2022-06-04 10:39 CST
Nmap scan report for Executor (192.168.43.44)
Host is up (0.00039s latency).
Nmap scan report for 192.168.43.1
Host is up (0.096s latency).
Nmap done: 3 IP addresses (2 hosts up) scanned in 1.64 seconds
image-20220604104140787

No.275~No.277,kali向三个ip地址发送了UDP数据报

No.278,No.279,两个目标ip使用ICMP数据报回复,但是192.168.43.2没有回复

NO.280kali向192.168.43.2再次询问"小老弟你怎么回事",但是仍然没有收到其答复,于是kali nmap认为小老弟死球了

-PY使用SCTP协议INIT包进行主机发现
1
2
3
4
┌──(root㉿Executor)-[/home/kali/mydir]
└─# nmap -PY -sn -iL list.txt
Starting Nmap 7.92 ( https://nmap.org ) at 2022-06-04 10:44 CST
Nmap done: 3 IP addresses (0 hosts up) scanned in 2.17 seconds

真的太逊了,谁也没发现

image-20220604104524209

全都是kali发往其他ip的SCTP数据报,但是没有收到任何回复

端口扫描
端口状态
image-20220604110513885
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
┌──(root㉿Executor)-[/home/kali/mydir]
└─# nmap -p 80 -iL list.txt
Starting Nmap 7.92 ( https://nmap.org ) at 2022-06-04 11:04 CST
Nmap scan report for Executor (192.168.43.44)
Host is up (0.00031s latency).

PORT STATE SERVICE
80/tcp open http

Nmap scan report for 192.168.43.1
Host is up (0.0089s latency).

PORT STATE SERVICE
80/tcp closed http

Nmap done: 3 IP addresses (2 hosts up) scanned in 2.69 seconds

本机192.168.43.44上的80端口就是open状态

192.168.43.1上的80端口就是close状态

netstat -n查看本机端口状态
1
2
3
4
5
6
7
8
9
10
11
12
13
PS C:\Users\86135> netstat -n

活动连接

协议 本地地址 外部地址 状态
TCP 127.0.0.1:28825 127.0.0.1:54530 ESTABLISHED
TCP 127.0.0.1:28826 127.0.0.1:28827 ESTABLISHED
TCP 127.0.0.1:28827 127.0.0.1:28826 ESTABLISHED
TCP 127.0.0.1:54530 127.0.0.1:28825 ESTABLISHED
TCP 192.168.43.44:28944 40.90.189.152:443 ESTABLISHED
TCP 192.168.43.44:29072 103.212.12.46:3000 ESTABLISHED
TCP 192.168.43.44:29910 61.150.43.81:443 CLOSE_WAIT
....
不指定参数

默认扫描端口1~1024加上nmap_services中列出的端口

nmap_services

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
tcpmux	1/tcp	0.001995	# TCP Port Service Multiplexer [rfc-1078] | TCP Port Service Multiplexer
tcpmux 1/udp 0.001236 # TCP Port Service Multiplexer
compressnet 2/tcp 0.000013 # Management Utility
compressnet 2/udp 0.001845 # Management Utility
compressnet 3/tcp 0.001242 # Compression Process
compressnet 3/udp 0.001532 # Compression Process
unknown 4/tcp 0.000477
rje 5/tcp 0.000000 # Remote Job Entry
rje 5/udp 0.000593 # Remote Job Entry
unknown 6/tcp 0.000502
echo 7/sctp 0.000000
echo 7/tcp 0.004855
echo 7/udp 0.024679
unknown 8/tcp 0.000013
discard 9/sctp 0.000000 # sink null
discard 9/tcp 0.003764 # sink null
discard 9/udp 0.015733 # sink null
unknown 10/tcp 0.000063
systat 11/tcp 0.000075 # Active Users
systat 11/udp 0.000577 # Active Users
unknown 12/tcp 0.000063
daytime 13/tcp 0.003927
daytime 13/udp 0.004827
unknown 14/tcp 0.000038
netstat 15/tcp 0.000038
unknown 16/tcp 0.000050
qotd 17/tcp 0.002346 # Quote of the Day
qotd 17/udp 0.009209 # Quote of the Day
msp 18/tcp 0.000000 # Message Send Protocol | Message Send Protocol (historic)
msp 18/udp 0.000610 # Message Send Protocol
chargen 19/tcp 0.002559 # ttytst source Character Generator | Character Generator
chargen 19/udp 0.015865 # ttytst source Character Generator
ftp-data 20/sctp 0.000000 # File Transfer [Default Data] | FTP
ftp-data 20/tcp 0.001079 # File Transfer [Default Data]
...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
┌──(root㉿Executor)-[/home/kali/mydir]
└─# nmap -iL list.txt
Starting Nmap 7.92 ( https://nmap.org ) at 2022-06-04 11:00 CST
Nmap scan report for Executor (192.168.43.44)
Host is up (0.00025s latency).
Not shown: 994 closed tcp ports (reset)
PORT STATE SERVICE
80/tcp open http
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds
902/tcp open iss-realsecure
912/tcp open apex-mesh

Nmap scan report for 192.168.43.1
Host is up (0.0098s latency).
Not shown: 999 closed tcp ports (reset)
PORT STATE SERVICE
53/tcp open domain

Nmap done: 3 IP addresses (2 hosts up) scanned in 2.94 seconds

kali nmap对大量端口展开了轰炸

image-20220604110122323
-p <port>扫描指定端口

比如指定扫描list.txt中列出主机的80端口(http服务器端口)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
┌──(root㉿Executor)-[/home/kali/mydir]
└─# nmap -p 80 -iL list.txt
Starting Nmap 7.92 ( https://nmap.org ) at 2022-06-04 10:53 CST
Nmap scan report for Executor (192.168.43.44)
Host is up (0.00028s latency).

PORT STATE SERVICE
80/tcp open http

Nmap scan report for 192.168.43.1
Host is up (0.062s latency).

PORT STATE SERVICE
80/tcp closed http

Nmap done: 3 IP addresses (2 hosts up) scanned in 2.72 seconds
image-20220604105515492

确实Executor上开着一个Apache服务器,但是192.168.43.1手机上没有

-F快速模式,只扫描nmap-services中列出的端口
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
┌──(root㉿Executor)-[/home/kali/mydir]
└─# nmap -F -iL list.txt
Starting Nmap 7.92 ( https://nmap.org ) at 2022-06-04 11:02 CST
Nmap scan report for Executor (192.168.43.44)
Host is up (0.00050s latency).
Not shown: 96 closed tcp ports (reset)
PORT STATE SERVICE
80/tcp open http
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds

Nmap scan report for 192.168.43.1
Host is up (0.010s latency).
Not shown: 99 closed tcp ports (reset)
PORT STATE SERVICE
53/tcp open domain

Nmap done: 3 IP addresses (2 hosts up) scanned in 2.72 seconds

相对于不使用命令行参数的默认扫描方式,该种方式没有扫描到

1
2
902/tcp open  iss-realsecure
912/tcp open apex-mesh

操作系统检测

操作系统检测是基于端口扫描的

如果不指定扫描端口,却进行操作系统检测,是无效的

1
2
3
4
┌──(root㉿Executor)-[/home/kali/mydir]
└─# nmap -O -A -sn -iL list.txt
WARNING: OS Scan is unreliable without a port scan. You need to use a scan type along with it, such as -sS, -sT, -sF, etc instead of -sn
QUITTING!
-O进行操作系统检测,-A进行版本检测
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

┌──(root㉿Executor)-[/home/kali/mydir]
└─# nmap -O -A -iL list.txt
Starting Nmap 7.92 ( https://nmap.org ) at 2022-06-04 11:07 CST
Nmap scan report for Executor (192.168.43.44)
Host is up (0.00038s latency).
Not shown: 994 closed tcp ports (reset)
PORT STATE SERVICE VERSION
80/tcp open http Apache httpd 2.4.39 ((Win64) OpenSSL/1.1.1b mod_fcgid/2.3.9a mod_log_rotate/1.02)
|_http-server-header: Apache/2.4.39 (Win64) OpenSSL/1.1.1b mod_fcgid/2.3.9a mod_log_rotate/1.02
|_http-title: Site doesn't have a title (text/html; charset=UTF-8).
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
445/tcp open microsoft-ds?
902/tcp open ssl/vmware-auth VMware Authentication Daemon 1.10 (Uses VNC, SOAP)
912/tcp open vmware-auth VMware Authentication Daemon 1.0 (Uses VNC, SOAP)
No exact OS matches for host (If you know what OS is running on it, see https://nmap.org/submit/ ).
TCP/IP fingerprint:
OS:SCAN(V=7.92%E=4%D=6/4%OT=80%CT=1%CU=37312%PV=Y%DS=2%DC=T%G=Y%TM=629ACC98
OS:%P=x86_64-pc-linux-gnu)SEQ(SP=101%GCD=1%ISR=10D%TI=I%CI=I%II=I%SS=S%TS=A
OS:)OPS(O1=MFFD7NW8ST11%O2=MFFD7NW8ST11%O3=MFFD7NW8NNT11%O4=MFFD7NW8ST11%O5
OS:=MFFD7NW8ST11%O6=MFFD7ST11)WIN(W1=FFFF%W2=FFFF%W3=FFFF%W4=FFFF%W5=FFFF%W
OS:6=FFDC)ECN(R=Y%DF=Y%T=7F%W=FFFF%O=MFFD7NW8NNS%CC=N%Q=)T1(R=Y%DF=Y%T=7F%S
OS:=O%A=S+%F=AS%RD=0%Q=)T2(R=Y%DF=Y%T=7F%W=0%S=Z%A=S%F=AR%O=%RD=0%Q=)T3(R=Y
OS:%DF=Y%T=7F%W=0%S=Z%A=O%F=AR%O=%RD=0%Q=)T4(R=Y%DF=Y%T=7F%W=0%S=A%A=O%F=R%
OS:O=%RD=0%Q=)T5(R=Y%DF=Y%T=7F%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)T6(R=Y%DF=Y%T=7
OS:F%W=0%S=A%A=O%F=R%O=%RD=0%Q=)T7(R=Y%DF=Y%T=7F%W=0%S=Z%A=S+%F=AR%O=%RD=0%
OS:Q=)U1(R=Y%DF=N%T=7F%IPL=164%UN=0%RIPL=G%RID=G%RIPCK=G%RUCK=37DE%RUD=G)IE
OS:(R=Y%DFI=N%T=7F%CD=Z)

Network Distance: 2 hops
Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows

Host script results:
| smb2-time:
| date: 2022-06-04T03:08:00
|_ start_date: N/A
|_nbstat: NetBIOS name: EXECUTOR, NetBIOS user: <unknown>, NetBIOS MAC: 2c:6d:c1:98:7d:03 (Intel Corporate)
| smb2-security-mode:
| 3.1.1:
|_ Message signing enabled but not required

TRACEROUTE (using port 587/tcp)
HOP RTT ADDRESS
1 0.41 ms Executor.mshome.net (172.28.16.1)
2 0.43 ms Executor (192.168.43.44)

Nmap scan report for 192.168.43.1
Host is up (0.0065s latency).
Not shown: 999 closed tcp ports (reset)
PORT STATE SERVICE VERSION
53/tcp open domain dnsmasq 2.51
| dns-nsid:
|_ bind.version: dnsmasq-2.51
No exact OS matches for host (If you know what OS is running on it, see https://nmap.org/submit/ ).
TCP/IP fingerprint:
OS:SCAN(V=7.92%E=4%D=6/4%OT=53%CT=1%CU=35611%PV=Y%DS=2%DC=T%G=Y%TM=629ACC98
OS:%P=x86_64-pc-linux-gnu)SEQ(SP=103%GCD=1%ISR=10C%TI=Z%CI=Z%II=I%TS=A)OPS(
OS:O1=M5B4ST11NW9%O2=M5B4ST11NW9%O3=M5B4NNT11NW9%O4=M5B4ST11NW9%O5=M5B4ST11
OS:NW9%O6=M5B4ST11)WIN(W1=FFFF%W2=FFFF%W3=FFFF%W4=FFFF%W5=FFFF%W6=FFFF)ECN(
OS:R=Y%DF=Y%T=40%W=FFFF%O=M5B4NNSNW9%CC=Y%Q=)T1(R=Y%DF=Y%T=40%S=O%A=S+%F=AS
OS:%RD=0%Q=)T2(R=N)T3(R=N)T4(R=Y%DF=Y%T=40%W=0%S=A%A=Z%F=R%O=%RD=0%Q=)T5(R=
OS:Y%DF=Y%T=40%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)T6(R=Y%DF=Y%T=40%W=0%S=A%A=Z%F=
OS:R%O=%RD=0%Q=)T7(R=Y%DF=Y%T=40%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)U1(R=Y%DF=N%T
OS:=40%IPL=164%UN=0%RIPL=G%RID=G%RIPCK=G%RUCK=3EAE%RUD=G)IE(R=Y%DFI=N%T=40%
OS:CD=S)

Network Distance: 2 hops

TRACEROUTE (using port 587/tcp)
HOP RTT ADDRESS
- Hop 1 is the same as for 192.168.43.44
2 7.82 ms 192.168.43.1

OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 3 IP addresses (2 hosts up) scanned in 30.29 seconds

这里检测出了192.168.43.44的操作系统

1
Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows

但是没有检测出192.168.43.1的操作系统

1
No exact OS matches for host (If you know what OS is running on it, see https://nmap.org/submit/ ).
其他方法
image-20220604112513527

masscan

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
┌──(root㉿Executor)-[/home/kali/mydir]
└─# masscan -p1-65535 --rate=10000 192.168.43.44
Starting masscan 1.3.2 (http://bit.ly/14GZzcT) at 2022-06-04 03:22:19 GMT
Initiating SYN Stealth Scan
Scanning 1 hosts [65535 ports/host]
Discovered open port 135/tcp on 192.168.43.44
Discovered open port 49664/tcp on 192.168.43.44
Discovered open port 49672/tcp on 192.168.43.44
Discovered open port 49666/tcp on 192.168.43.44
Discovered open port 54260/tcp on 192.168.43.44
Discovered open port 9955/tcp on 192.168.43.44
Discovered open port 902/tcp on 192.168.43.44
Discovered open port 445/tcp on 192.168.43.44
Discovered open port 49667/tcp on 192.168.43.44
Discovered open port 5040/tcp on 192.168.43.44
Discovered open port 49665/tcp on 192.168.43.44
Discovered open port 912/tcp on 192.168.43.44
Discovered open port 49669/tcp on 192.168.43.44
Discovered open port 139/tcp on 192.168.43.44
rate: 0.00-kpps, 100.00% done, waiting 4-secs, found=14

端口漏洞利用

旁站

一个IP或者域名所在的服务器有可能还运行着其他网站,目标站点和旁站对应于服务器的不同端口,对应于同一WEB服务的不同路径

主站点难以找到漏洞时考虑从旁站入侵

收集信息种类:

1.收集旁站的 域名信息

注册人姓名电话邮箱,NS服务器

2.收集旁站的 程序信息

服务器及中间件

脚本或者使用框架

后台及敏感目录

是否存在已知漏洞

在线网站查旁站

查旁网

从我的博客域名dustball.top开始查

image-20220604120742428

首先查到ip地址,然后再查ip地址185.199.109.153

image-20220604120923351

这些网站显然和博客是一个性质的,基于github page的搭建的

其中有一个

image-20220604121049066

根据我对二刺螈的理解,这里面准有好康的

image-20220604121151087

dddd

本地工具查旁站

端口查旁站

同一个主机是否开放了除80端口之外的http,https,http-proxy等服务

C段

C段就是通过一个路由器连接的主机集合

在线接口查询

查旁网

image-20220604162410662

本地工具扫描

nmap扫描C段

1
2
3
4
5
6
7
8
9
10
┌──(root㉿Executor)-[/home/kali]
└─# nmap -sP 192.168.3.0/24
Starting Nmap 7.92 ( https://nmap.org ) at 2022-06-04 16:22 CST
Nmap scan report for 192.168.3.1
Host is up (0.0027s latency).
Nmap scan report for host.docker.internal (192.168.3.2)
Host is up (0.00026s latency).
Nmap scan report for 192.168.3.7
Host is up (0.0060s latency).
Nmap done: 256 IP addresses (3 hosts up) scanned in 5.14 seconds

IIS Put Scanner

image-20220604162623631

指纹识别

啥叫指纹识别?

就是通过网页上留下的蛛丝马迹,识别出该网站使用哪一款CMS建站

比如页面底部的版权信息

image-20220604163706007

或者访问不存在的页面返回的错误信息

image-20220604192416711

这个错误页面可以修改,不让它暴露中间件信息

还要获取该CMS的版本信息

然后就可以到CMS的官网上下载源代码进行白盒测试了

或者目标使用的低版本CMS已经有漏洞被曝光,直接利用

指纹识别要收集的信息:

1.web服务器(中间件)类型版本

2.前端技术

3.CMS

4.开发语言

等等

在线指纹识别

比如某些企业的官网

尤其是乡镇上的小企业,必然没钱自己写一个网站后端,也就是请一些技术人员用现成的CMS建站吧,并且也意识不到更新的必要性

What CMS

Detect which CMS a site is using - What CMS?

image-20220604164434798

然而最新的wordpress已经到了6.0

image-20220604164700687

然后搜索wordpress 5.0漏洞

image-20220604164739355

当然4.9版本也是包含此漏洞的,这意味着什么呢?

yunsee

需要登录才可以查

然而注册还要邀请码

本地工具

御剑

有一个挖旁站的御剑,还有一个挖指纹的御剑

挖指纹这个是这样工作的:

image-20220604165921960

在Bin目录下面每个CMS的指纹写成一个txt文件

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
PS D:\web安全\御剑\御剑+加强字典+批量\Bin> dir


目录: D:\web安全\御剑\御剑+加强字典+批量\Bin


Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2013/4/24 15:40 530 aspcms.txt
-a---- 2013/4/24 15:41 1136 dedecms.txt
-a---- 2013/4/24 16:22 1378 discuz.txt
-a---- 2013/4/24 15:42 2290 drupal.txt
-a---- 2013/4/24 15:42 1918 dvbbs.txt
-a---- 2013/4/24 15:43 1563 ecshop.txt
-a---- 2013/4/24 15:43 595 emlog.txt
-a---- 2013/4/24 15:44 1834 empirecms.txt
-a---- 2013/4/24 15:45 898 espcms.txt
-a---- 2013/4/24 15:45 1397 foosuncms.txt
-a---- 2013/4/24 15:45 1109 hdwiki.txt
-a---- 2013/4/24 15:46 1772 joomla.txt
-a---- 2013/4/24 15:46 692 kesioncms.txt
-a---- 2013/4/24 15:50 2277 kingcms.txt
-a---- 2013/4/24 15:51 1018 ljcms.txt
-a---- 2013/4/24 15:51 786 php168.txt
-a---- 2013/4/24 15:52 2468 phpcms.txt
-a---- 2013/4/24 15:52 2041 phpwind.txt
-a---- 2013/4/24 15:52 2003 powereasy.txt
-a---- 2013/4/24 15:52 1691 qibosoft.txt
-a---- 2013/4/24 15:53 1428 siteserver.txt
-a---- 2013/4/24 15:53 795 southidc.txt
-a---- 2013/4/24 15:53 1106 wordpress.txt
-a---- 2013/4/24 15:53 1107 z-blog.txt

比如wordpress.txt

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#范例:链接------关键字------CMS别称
#范例:连接------正则表达式------匹配关键字------CMS别称
/robots.txt------wordpress------WordPress
/license.txt------wordpress------WordPress
/readme.txt------wordpress------WordPress
/help.txt------wordpress------WordPress
/readme.html------wordpress------WordPress
/readme.htm------wordpress------WordPress
/wp-admin/css/colors-classic.css------wordpress------WordPress
/wp-admin/js/media-upload.dev.js------wordpress------WordPress
/wp-content/plugins/akismet/akismet.js------wordpress------WordPress
/wp-content/themes/classic/rtl.css------wordpress------WordPress
/wp-content/themes/twentyeleven/readme.txt------wordpress------WordPress
/wp-content/themes/twentyten/style.css------wordpress------WordPress
/wp-includes/css/buttons.css------wordpress------WordPress
/wp-includes/js/scriptaculous/wp-scriptaculous.js------wordpress------WordPress
/wp-includes/js/tinymce/langs/wp-langs-en.js------wordpress------WordPress
/wp-includes/js/tinymce/wp-tinymce.js------wordpress------WordPress
/wp-includes/wlwmanifest.xml------wordpress------WordPress

御剑在运行的时候会遍历每一个CMS的指纹文件的每一行,然后去该网站http://www.sdtxsn.com/

/robots.txt------wordpress------WordPress这一行

御剑就会尝试访问http://www.sdtxsn.com/robots.txt然后从里面寻找有没有wordpress字样,如果有则判定为wordpress CMS

显然这样判断是很武断的,稍微做一点手脚就可以骗过御剑

比如本地的DVWA靶场,在其根目录下robots.txt最后写一行wordpress

image-20220604170813339

保存之后用御剑去查

image-20220604170832582

御剑检查到wordpress.txt的第一行就是robots.txt然后去192.168.3.2/DVWA查该文件,发现有wordpress字样,于是就武断地认为是wordpress建的站.后面的检查也不做了

image-20220604170937466

要想让御剑继续检查就把wordpress.txt中关于robots.txt那一行注释掉

随着我们逐步了解更多CMS还有指纹信息,我们也可以拓展御剑的指纹字典或者新添加CMS指纹,增强御剑的功能

whatweb

1
2
3
┌──(root㉿Executor)-[/home/kali]
└─# whatweb http://www.sdtxsn.com/
http://www.sdtxsn.com/ [200 OK] All-in-one-SEO-Pack[2.3.11.1], Country[CHINA][CN], HTML5, HTTPServer[nginx/1.4.4], IP[121.36.56.23], JQuery[1.12.4,1.8.3], Modernizr[2.7.1.min], PHP[5.4.23], Script[text/javascript], Title[山东泰西水泥有限公 司 |], UncommonHeaders[link], WordPress, X-Powered-By[PHP/5.4.23], X-UA-Compatible[IE=edge], nginx[1.4.4]

php版本,cms类型,服务器类型和版本都查到了

查本地的DVWA靶场

1
2
3
4
5
6
┌──(root㉿Executor)-[/home/kali]
└─# whatweb http://192.168.3.2/DVWA
http://192.168.3.2/DVWA [301 Moved Permanently] Apache[2.4.39][mod_fcgid/2.3.9a,mod_log_rotate/1.02], Country[RESERVED][ZZ], HTTPServer[Apache/2.4.39 (Win64) OpenSSL/1.1.1b mod_fcgid/2.3.9a mod_log_rotate/1.02], IP[192.168.3.2], OpenSSL[1.1.1b], RedirectLocation[http://192.168.3.2/DVWA/], Title[301 Moved Permanently]
http://192.168.3.2/DVWA/ [302 Found] Apache[2.4.39][mod_fcgid/2.3.9a,mod_log_rotate/1.02], Cookies[PHPSESSID,security], Country[RESERVED][ZZ], HTTPServer[Apache/2.4.39 (Win64) OpenSSL/1.1.1b mod_fcgid/2.3.9a mod_log_rotate/1.02], HttpOnly[PHPSESSID,security], IP[192.168.3.2], OpenSSL[1.1.1b], PHP[5.6.9], RedirectLocation[login.php], X-Powered-By[PHP/5.6.9]
http://192.168.3.2/DVWA/login.php [302 Found] Apache[2.4.39][mod_fcgid/2.3.9a,mod_log_rotate/1.02], Cookies[PHPSESSID,security], Country[RESERVED][ZZ], HTTPServer[Apache/2.4.39 (Win64) OpenSSL/1.1.1b mod_fcgid/2.3.9a mod_log_rotate/1.02], HttpOnly[PHPSESSID,security], IP[192.168.3.2], OpenSSL[1.1.1b], PHP[5.6.9], RedirectLocation[setup.php], X-Powered-By[PHP/5.6.9]
http://192.168.3.2/DVWA/setup.php [200 OK] Apache[2.4.39][mod_fcgid/2.3.9a,mod_log_rotate/1.02], Cookies[PHPSESSID,security], Country[RESERVED][ZZ], HTML5, HTTPServer[Apache/2.4.39 (Win64) OpenSSL/1.1.1b mod_fcgid/2.3.9a mod_log_rotate/1.02], HttpOnly[PHPSESSID,security], IP[192.168.3.2], OpenSSL[1.1.1b], PHP[5.6.9], Script[text/javascript], Title[Setup :: Damn Vulnerable Web Application (DVWA) v1.10 *Development*], X-Powered-By[PHP/5.6.9]

查不到CMS信息,因为这个靶场压根就没有用CMS建站

但是查到了操作系统Win64,服务器中间件Apache,php版本5.6.9等信息

操作系统指纹识别

whatweb等工具也有操作系统指纹识别的功能

image-20220604191222243

curl --head <URL>

curl从终端上请求网页

--head选项意思是返回数据包头,丢弃数据主体

1
2
3
4
5
6
7
8
9
10
11
┌──(root㉿Executor)-[/home/kali]
└─# curl --head http://www.sdtxsn.com/
HTTP/1.1 200 OK
Server: nginx/1.4.4
Date: Sat, 04 Jun 2022 11:14:07 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
Vary: Accept-Encoding
X-Powered-By: PHP/5.4.23
Link: <http://www.sdtxsn.com/?rest_route=/>; rel="https://api.w.org/"
Link: <http://www.sdtxsn.com/>; rel=shortlink

如果目标使用操作系统是Windows,服务器是IIS中间件则Server这里应该写Microsoft-IIS/6.0(或者7.5等等版本)

微软的操作系统版本一般是和IIS中间件挂钩的,比如

WinServer2003使用的是IIS6.0

WinServer2008使用的是IIS7.5

image-20220604192537532

win11上的IIS版本更高

image-20220604192805045

而现在curl的返回值是

1
Server: nginx/1.4.4

表明目标是运行在nginx中间件上的,至于是Windows系统还是Linux系统尚未可知

实际上用浏览器直接访问目标然后用开发者工具也可以观察到数据包头

nmap -O -A

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
┌──(root㉿Executor)-[/home/kali]
└─# nmap -O -A 192.168.43.44
Starting Nmap 7.92 ( https://nmap.org ) at 2022-06-04 19:28 CST
Nmap scan report for Executor (192.168.43.44)
Host is up (0.00023s latency).
Not shown: 994 closed tcp ports (reset)
PORT STATE SERVICE VERSION
80/tcp open http Apache httpd 2.4.39 ((Win64) OpenSSL/1.1.1b mod_fcgid/2.3.9a mod_log_rotate/1.02)
|_http-title: Site doesn't have a title (text/html; charset=UTF-8).
|_http-server-header: Apache/2.4.39 (Win64) OpenSSL/1.1.1b mod_fcgid/2.3.9a mod_log_rotate/1.02
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
445/tcp open microsoft-ds?
902/tcp open ssl/vmware-auth VMware Authentication Daemon 1.10 (Uses VNC, SOAP)
912/tcp open vmware-auth VMware Authentication Daemon 1.0 (Uses VNC, SOAP)
No exact OS matches for host (If you know what OS is running on it, see https://nmap.org/submit/ ).
TCP/IP fingerprint:
...

Network Distance: 2 hops
Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows
...

这里多处信息表明目标192.168.43.44是windows操作系统

网站路径扫描

原理:

原理就是猜测一个网站的目录有什么,尝试去访问该目录,根据返回的状态码确定其存不存在

比如http://www.sdtxsn.com/index.html

image-20220604194452563

404 NotFound的意思就是压根没有这个目录

但是尝试访问http://www.sdtxsn.com/index.php

会自动跳转到http://www.sdtxsn.com说明该主页就是index.php,本网站的后端语言就是php

又如猜测会有一个登录用的login.php

image-20220604194700315

尝试访问时得到返回状态码403 Forbidden,说明网站目录里有这个文件,但是没有访问权限

使用自动化的扫站工具,其基于上述原理,使用目录字典疯狂地向服务端发送请求,然后根据http返回状态判断该目录是否存在,是否可以访问

为啥要扫站?

1.有可能有后门文件比如shell.php,其中一句话木马口令有可能很简单比如'cmd',这样就可以骑别人的马子

2.可能有些敏感文件没有妥当设置保护,能够直接访问

robots.txt

后台

备份文件.bak,.sql,.txt,.zip,.tar,可能含有密码或者源代码

MySQL接口,比如phpMyAdmin

安装页面:建站一开始的安装页面,在建站完毕后及时删除,否则有可能导致重装

上传目录,通常是/upload/这种字样

编辑器漏洞

3.可能有些文件的访问权限没有设置好,本应该以管理员登录才能访问,却能够通过URL直接访问,即越权漏洞

本地自动化工具

御剑1.5

image-20220604195203548

这里御剑只是扫描到了稀松了了的东西,貌似御剑不会递归目录,他只会扫描指定到目录的下一层

burpsuite

在dashboard上new scan,然后输入目标URL地址就可以扫站

image-20220604195619671
image-20220604195550098

这里扫描到了一个后台登录文件wp-login.php,御剑的字典里就没有这个文件,此时就可以将他添加到御剑的目录字典里了

image-20220604195707350

后面就可以尝试暴力破解或者sql注入攻击或者社工等方式登录

image-20220604195936171

用repeater重复发送多次之后仍然没有让输入验证码,可以考虑使用暴力破解攻击了

并且随便输入用户名密码尝试登录,其报告错误为<div id="login_error"> <strong>错误</strong>:无效用户名。

还挺贴心地说用户名不对,这就可以让密码都是1,用sniper打用户名,直到获取到有效的用户名,再固定该用户名,sniper用密码字典打密码

这样就把复杂度从\(m*n\)降到了\(m+n\)

wwwscan

1
2
3
4
5
6
7
8
9
10
11
<Usage>:  D:\web安全\twoScan\wwwscan.exe <HostName|Ip> [Options]
<Options>:
-p port : set http/https port
-m thread : set max thread
-t timeout : tcp timeout in seconds
-r rootpath : set root path to scan
-ssl : will use ssl
<Example>:
D:\web安全\twoScan\wwwscan.exe www.target.com -p 8080 -m 10 -t 16
D:\web安全\twoScan\wwwscan.exe www.target.com -r "/test/" -p 80
D:\web安全\twoScan\wwwscan.exe www.target.com -ssl

-p指定目标端口

-m指定线程数

-t指定超时

-r指定次级目录,不写则为根目录

首先使用nmap扫描端口,看看目标的web服务器是不是在80端口开放

1
2
3
4
5
6
7
8
9
10
11
12
13
PS C:\Users\86135> nmap www.sdtxsn.com
Starting Nmap 7.92 ( https://nmap.org ) at 2022-06-04 20:08 中国标准时间
Nmap scan report for www.sdtxsn.com (121.36.56.23)
Host is up (0.046s latency).
rDNS record for 121.36.56.23: ecs-121-36-56-23.compute.hwclouds-dns.com
Not shown: 966 filtered tcp ports (no-response), 28 closed tcp ports (reset)
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
1024/tcp open kdm
3306/tcp open mysql
3690/tcp open svn
8888/tcp open sun-answerbook

确实如此,然后wwwscan www.sdtxsn.com -p 80 -m 10 -t 4

但是结果wwwscan太逊了,啥也没扫到

dirbuster

linux上的扫站工具

1
dirb URL <字典>

其字典在/usr/share/dirb/wordlists/下面放着

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
┌──(root㉿Executor)-[/usr/share/dirb/wordlists]
└─# ls -l
total 260
-rw-r--r-- 1 root root 184073 Jan 25 2012 big.txt
-rw-r--r-- 1 root root 1292 Jan 27 2012 catala.txt
-rw-r--r-- 1 root root 35849 Nov 17 2014 common.txt
-rw-r--r-- 1 root root 1492 May 23 2012 euskera.txt
-rw-r--r-- 1 root root 142 Dec 29 2005 extensions_common.txt
-rw-r--r-- 1 root root 75 Mar 16 2012 indexes.txt
-rw-r--r-- 1 root root 244 Dec 29 2005 mutations_common.txt
drwxr-xr-x 2 root root 4096 Apr 28 17:15 others
-rw-r--r-- 1 root root 6561 Mar 5 2014 small.txt
-rw-r--r-- 1 root root 3731 Nov 13 2014 spanish.txt
drwxr-xr-x 2 root root 4096 Apr 28 17:15 stress
drwxr-xr-x 2 root root 4096 Apr 28 17:15 vulns

有很多本字典,甚至子文件夹里还有字典,可以把这些字典送给御剑等软件增强其功能

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
┌──(root㉿Executor)-[/home/kali]
└─# dirb http://www.sdtxsn.com/

-----------------
DIRB v2.22
By The Dark Raver
-----------------

START_TIME: Sat Jun 4 20:18:46 2022
URL_BASE: http://www.sdtxsn.com/
WORDLIST_FILES: /usr/share/dirb/wordlists/common.txt

-----------------

GENERATED WORDS: 4612

---- Scanning URL: http://www.sdtxsn.com/ ----
+ http://www.sdtxsn.com/admin.php (CODE:403|SIZE:570)
--> Testing: http://www.sdtxsn.com/alert

网站源码泄漏

image-20220604204704933

.git源码泄漏

这个玩意的原理需要稍微学一下git的使用Git 基本操作 | 菜鸟教程 (runoob.com)

这个锅应该是写CMS的一伙子程序员背

git init初始化代码库之后会在工作目录下面生成.git隐藏文件

image-20220604205017452

这个玩意儿是用来记录代码变更记录的,方便代码写毁球的时候退回到早期的版本

这个目录默认是隐藏的,在windows上如果不设置查看隐藏文件是不会显示的

然后写CMS的一伙子人在发布其CMS源代码的时候忘记删除这个玩意儿了,建站的企业可能对这个玩意不甚了解,以为是网站支持文件,或者由于其隐藏根本不知道有这个东西.建立的网站根目录下就藏着这么一个.git目录

诚如是,我们就可以使用GitHack下载还原出源代码

具体怎么各操作呢?我们首先模拟一伙子写CMS的苦逼程序员,

程序员视角

我们首先初始化一个版本管理仓库

1
2
PS D:\phpstudy_pro\WWW\AtomCMS> git init
Reinitialized existing Git repository in D:/phpstudy_pro/WWW/AtomCMS/.git/

我们经历千辛万苦,终于写好了一个后端(这里直接下载了一个AtomCMS)

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
PS D:\phpstudy_pro\WWW\AtomCMS> dir


目录: D:\phpstudy_pro\WWW\AtomCMS


Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2022/4/14 21:38 .idea
d----- 2022/4/14 18:00 admin
d----- 2022/4/13 21:12 config
d----- 2022/4/13 21:21 functions
d----- 2022/4/13 20:26 images
d----- 2022/4/13 20:26 template
d----- 2022/4/14 17:49 uploads
d----- 2022/4/13 20:26 views
d----- 2022/4/13 20:26 widgets
------ 2015/10/22 3:16 22 .gitignore
------ 2015/10/22 3:16 162 .htaccess
------ 2015/10/22 3:16 301 .project
------ 2015/10/22 3:16 12 CNAME
------ 2015/10/22 3:16 5048 database-video81.sql
------ 2015/10/22 3:16 4963 database.sql
------ 2015/10/22 3:16 176 index.php
------ 2015/10/22 3:16 9872 README.md

然后我们保存此次版本,

首先将代码放到暂存区

1
PS D:\phpstudy_pro\WWW\AtomCMS> git add .

然后将暂存区提交到本地仓库

1
2
PS D:\phpstudy_pro\WWW\AtomCMS> git commit
Aborting commit due to empty commit message.

然后我们将这些东西上传到了github供其他人下载使用,但是忘记删除.git目录了.

程序员的工作就完成了,下面我们站在用户视角

用户视角

用户在github上,下载了该CMS的源代码,.git也随之进入网站根目录,现在我们站在用户的视角,我们用phpstudy模拟建站的过程

建立网站之后,我们可以通过ip地址(内网模拟)或者域名(没买)访问该网站

image-20220604210301690

用户的工作就完成了

现在我们站在攻击者的视角.

攻击者视角

攻击者尝试访问/.git目录

image-20220604210528946

发现没有访问权限,这个文件夹是有可能存在的,不妨试一试

于是他拿出了GitHack

1
2
3
4
5
6
7
8
9
10
11
12
13
14
┌──(kali㉿Executor)-[/mnt/d/web安全/GitHack-master]
└─$ python2 GitHack.py http://192.168.43.44/AtomCMS/.git
[+] Download and parse index file ...
.gitignore
.htaccess
.idea/.gitignore
.idea/AtomCMS.iml
.idea/modules.xml
.project
CNAME
README.md
admin/ajax/avatar.php
admin/ajax/blur-save.php
....

真就下载到了网站源代码,保存到了GitHack-master/192.168.43.44/下面

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
PS D:\web安全\GitHack-master\192.168.43.44> dir


目录: D:\web安全\GitHack-master\192.168.43.44


Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2022/6/4 20:56 .idea
d----- 2022/6/4 20:56 admin
d----- 2022/6/4 20:56 config
d----- 2022/6/4 20:56 functions
d----- 2022/6/4 20:56 images
d----- 2022/6/4 20:56 template
d----- 2022/6/4 20:56 uploads
d----- 2022/6/4 20:56 views
d----- 2022/6/4 20:56 widgets
-a---- 2022/6/4 21:06 22 .gitignore
-a---- 2022/6/4 21:06 162 .htaccess
-a---- 2022/6/4 21:06 301 .project
-a---- 2022/6/4 21:06 12 CNAME
-a---- 2022/6/4 21:06 5048 database-video81.sql
-a---- 2022/6/4 21:06 4963 database.sql
-a---- 2022/6/4 21:06 176 index.php
-a---- 2022/6/4 21:06 9872 README.md

至于GitHack的原理,由于我们有GitHack.py源代码,只要想研究应该可以明白的,但是对于一个python和git都是初学的球,现在不是时候

SVN源码泄漏

现在都用git仓库了,不会还有人使用SVN吧?

(其实是没学过SVN不会复现该漏洞罢了)

.DS_Store文件泄漏

image-20220604211429182

苹果电脑吗...不想研究

网站备份文件泄漏

该漏洞需要两个条件

1.存在备份文件,比如.swp,.bak,.zip等类型

这是有可能的,比如网站升级或者修改的时候,一个有着"好"习惯的管理员都应该备份一下再做修改.但是备份在网站目录下就不对了

2.网站没有设置好访问权限,导致这些备份文件可以被访问下载

swp文件

如果后端在linux上,那么有很大机率管理员会使用vim修改文件

当vim修改文件并正常退出(Esc之后:wq)则啥事没有

如果管理员很暴躁,vim打开文件之后直接Ctrl+z中断退出,则会在同一目录下留下.swp文件

实际上是编辑时产生,正常退出时删除,

ctrl+c导致没有正常退出,没有删除

为啥编辑时要产生这么一个文件呢?

试想如果编辑了一阵子改毁球了,怎么撤销修改退回一开始的版本呢?这就是刚开始编辑时生成的swp文件的作用

1
2
3
4
5
6
7
8
9
10
┌──(kali㉿Executor)-[/mnt/d/phpstudy_pro/www/atomcms]
└─$ ls -a -l
total 36
drwxrwxrwx 1 kali kali 4096 Jun 4 21:18 .
drwxrwxrwx 1 kali kali 4096 Apr 26 20:53 ..
...
-rwxrwxrwx 1 kali kali 176 Oct 22 2015 index.php
-rwxrwxrwx 1 kali kali 4096 Jun 4 21:18 .index.php.swo
-rwxrwxrwx 1 kali kali 4096 Jun 4 21:18 .index.php.swp
...

这里.index.php.swp就是备份文件,.swo是两次暴躁生成 的,下一次再暴躁就有.swn

诚如是,则在URL中直接访问该.index.php.swp文件就可以看到文件源代码了(意思是该文件会被作为.txt解析)

然鹅我做实验时访问该文件会获得http505状态码

zip文件

如果在网站目录下面有一个zip文件,那么在URL上访问它是可以直接下载的

image-20220604213228081

如果网站管理员又懒又屑,建站的时候直接把压缩包放在根目录下面解压建站,完事儿还忘记删除该压缩包,这就相当于直接把白盒给我们了

漏洞修复

1.删除不该有的文件和目录

.git,.svn,.zip,.bak,.DS_Store等等

2.修改web服务器的配置文件,拒绝对.svn,.git路径的访问

目标历史漏洞收集

收集目标站点的CMS,中间件,数据库,操作系统等组件的类型版本信息,然后去各大漏洞库查询该版本曝光的漏洞

比如阿里云漏洞库

image-20220604223309338

就可以根据别人的漏洞复现进行攻击了

相当于有老师带着做的白盒测试

阿里云漏洞库

查询wordpressCMS的所有漏洞

image-20220604232200215

国家信息安全漏洞库CNNVD

WAF识别

WAF(web application firewell)web应用防火墙

image-20220604235137919

WAF提供应用层的防护

image-20220605091858083

WAF识别

发送不正确的URL访问,触发WAF的防护,根据WAF的相应判断WAF的指纹

常用的WAF识别工具:

wafw00f,nmap,sqlmap

手工方法

cookie值识别
HTTP响应头识别
构造恶意负载
1
http://www.washun.com/search.php?q=-1%20union%20select%201
image-20220605094155821

自动化工具

wafw00f

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
┌──(root㉿Executor)-[/home/kali]
└─# wafw00f http://www.sdtxsn.com/

______
/ \
( W00f! )
\ ____/
,, __ 404 Hack Not Found
|`-.__ / / __ __
/" _/ /_/ \ \ / /
*===* / \ \_/ / 405 Not Allowed
/ )__// \ /
/| / /---` 403 Forbidden
\\/` \ | / _ \
`\ /_\\_ 502 Bad Gateway / / \ \ 500 Internal Error
`_____``-` /_/ \_\

~ WAFW00F : v2.1.0 ~
The Web Application Firewall Fingerprinting Toolkit

[*] Checking http://www.sdtxsn.com/
[+] Generic Detection results:
[-] No WAF detected by the generic detection
[~] Number of requests: 7

wafw00f没有检测出waf

nmap

测试waf是否存在

1
nmap <目标域名> --script=http-waf-detect.nse 
1
2
3
4
5
6
7
8
9
10
11
┌──(root㉿Executor)-[/home/kali]
└─# nmap www.sdtxsn.com --script=http-waf-detect.nse -p 80
Starting Nmap 7.92 ( https://nmap.org ) at 2022-06-05 09:33 CST
Nmap scan report for www.sdtxsn.com (121.36.56.23)
Host is up (0.044s latency).
rDNS record for 121.36.56.23: ecs-121-36-56-23.compute.hwclouds-dns.com

PORT STATE SERVICE
80/tcp open http

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

这里就没有检测到waf存在

拿学校官网试一下

1
2
3
4
5
6
7
8
9
10
11
12
┌──(root㉿Executor)-[/home/kali]
└─# nmap ehall.xidian.edu.cn --script=http-waf-detect.nse -p 80
Starting Nmap 7.92 ( https://nmap.org ) at 2022-06-05 09:34 CST
Nmap scan report for ehall.xidian.edu.cn (61.150.43.100)
Host is up (0.022s latency).

PORT STATE SERVICE
80/tcp open http
| http-waf-detect: IDS/IPS/WAF detected:
|_ehall.xidian.edu.cn:80/?p4yl04d3=<script>alert(document.cookie)</script>

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

发现是有防火墙存在的,检测方法是在主页上构造xss攻击负载,结果被拦截

判断waf指纹

1
nmap <目标域名> --script=http-waf-fingerprint
1
2
3
4
5
6
7
8
9
10
11
┌──(root㉿Executor)-[/home/kali]
└─# nmap ehall.xidian.edu.cn --script=http-waf-fingerprint -p 80,443
Starting Nmap 7.92 ( https://nmap.org ) at 2022-06-05 09:37 CST
Nmap scan report for ehall.xidian.edu.cn (61.150.43.100)
Host is up (0.027s latency).

PORT STATE SERVICE
80/tcp open http
443/tcp open https

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

没有检测出来

sqlmap

1
2
3
4
5
┌──(root㉿Executor)-[/home/kali]
└─# sqlmap -u http://ehall.xidian.edu.cn/ --batch
...
[09:43:12] [CRITICAL] WAF/IPS identified as 'WTS'
...

信息收集总结

image-20220605095016581
image-20220605095048717
image-20220605095108752
image-20220605095126687
image-20220605095133730