信息收集

 

一、简介

信息搜集是对目标系统的探查,包括获知它的行为模式、运行机理,以及最终可以如何攻击。

主要分为主动信息搜集和被动信息搜集。

  • 主动信息搜集:与目标主机进行直接交互,从而拿到目标信息,缺点是会记录自己的操作信息。
  • 被动信息搜集:不与目标主机进行直接交互,通过搜索引擎或者社会工程等方式间接的获取目标主机的信息。

 

 

二、搜索引擎

 

1. Google hacking

常用搜索语法:

  • intitle:KEYWORD //搜索网页标题中含有关键词的网页
  • intext:KEYWORD //搜索站点正文中含有关键词的网页
  • inurl:KEYWORD //搜索URL中包含有指定字符串的网址
  • inurl:php?id= //搜索PHP网页
  • site:DOMAIN //在指定站点内查找相关的内容
  • filetype:FILE //搜索指定类型的文件

 

 

2. Shodan

Shodan与Google这种搜索网址的搜索引擎不同的是,Shodan是用来搜索网络空间中在线设备的。

 

 

  • hostname: //搜索指定的主机或域名
  • port: //搜索指定的端口或服务
  • country: //搜索指定的国家
  • city: //搜索指定的城市
  • org: //搜索指定的组织或公司
  • isp: //搜索指定的ISP供应商
  • product: //搜索指定的操作系统/软件/平台
  • version: //搜索指定的软件版本
  • geo: //搜索指定的地理位置,参数为经纬度
  • before/after: //搜索指定收录时间前后的数据,格式为dd-mm-yy
  • net: //搜索指定的IP地址或子网

 

3. Zoomeye

ZoomEye是一款针对网络空间的搜索引擎,收录了互联网空间中的设备、网站及其使用的服务或组件等信息。

用户手册:https://www.zoomeye.org/help

 

 

 

四、whois信息

whois(读作“Who is”,非缩写)是用来查询域名的IP以及所有者等信息的传输协议。
whois信息可以获取关键注册人的信息,包括注册商、联系人、联系邮箱、联系电话、创建时间等,可以进行邮箱反查域名,爆破邮箱,社工,域名劫持等等。

常用的工具有:站长工具爱站微步在线 …

 

 

五、子域名收集

子域名收集可以发现更多渗透测试范围内的域名/子域名,以增加漏洞发现机率;探测到更多隐藏或遗忘的应用服务,这些应用往往可导致一些严重漏洞。

常用的工具有:子域名挖掘机Layer、subDomainsBrute、Dnsenum、Dnsmap …

 

 

六、真实IP获取

现在大多数的网站都开启了CDN加速,导致我们获取到的IP地址不一定是真实的IP地址。

CDN的全称是Content Delivery Network,即内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。其目的是使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度。
  1. 多地Ping法:由CDN的原理,不同的地方去Ping服务器,如果IP不一样,则目标网站肯定使用了CDN。多个地点Ping服务器-站长工具
  2. 二级域名法:目标站点一般不会把所有的二级域名放cdn上。通过在线工具如站长帮手,收集子域名,确定了没使用CDN的二级域名后。本地将目标域名绑定到同IP(修改host文件),如果能访问就说明目标站与此二级域名在同一个服务器上;如果两者不在同一服务器也可能在同C段,扫描C段所有开80端口的IP,然后挨个尝试。
  3. nslookup法:找国外的比较偏僻的DNS解析服务器进行DNS查询,因为大部分CDN提供商只针对国内市场,而对国外市场几乎是不做CDN,所以有很大的几率会直接解析到真实IP。
  4. Ping法:直接ping example.com而不是www.example.com,因为现有很多CDN厂商基本只要求把www.example.com cname到CDN主服务器上去,那么直接ping example.com有可能直接获得真实IP。

 

七、指纹识别

通过识别目标网站所使用的操作系统、CMS、服务器与中间件信息,可以帮助我们进一步了解渗透测试环境,可以利用已知的一些CMS漏洞或中间件漏洞来进行攻击。

 

 

可以在以下地方获取信息:

  1. 指定路径下指定名称的js文件或代码。
  2. 指定路径下指定名称的css文件或代码。
  3. <title>中的内容,有些程序标题中会带有程序标识,但不是很多。
  4. meta标记中带程序标识<meta name=”description”/><meta name=”keywords”/><meta name=”generator”/><meta name=”author”/><meta name=”copyright”/>中带程序标识。
  5. display:none中的版权信息。
  6. 页面底部版权信息,关键字© Powered by等。
  7. readme.txt、License.txt、help.txt等文件。
  8. 指定路径下指定图片文件,如一些小的图标文件,后台登录页面中的图标文件等,一般管理员不会修改它们。
  9. 注释掉的html代码中<!–
  10. http头的X-Powered-By中的值,有的应用程序框架会在此值输出。
  11. cookie中的关键字
  12. robots.txt文件中的关键字
  13. 404页面
  14. 302返回时的旗标

工具:Whatweb、httprint、云悉BugScanner …

 

 

八、端口扫描

扫描端口可以使用Nmap(win系统可使用zenmap.exe使用),masscan进行扫描探测,尽可能多的搜集开启的端口好已经对应的服务版本,得到确切的服务版本后可以搜索有没有对应版本的漏洞。

常见的端口信息及渗透方法:

端口 服务 渗透用途
tcp 20,21 FTP 允许匿名的上传下载,爆破,嗅探,win提权,远程执行(proftpd 1.3.5),各类后门(proftpd,vsftp 2.3.4)
tcp 22 SSH 可根据已搜集到的信息尝试爆破,v1版本可中间人,ssh隧道及内网代理转发,文件传输等等
tcp 23 Telnet 爆破,嗅探,一般常用于路由,交换登陆,可尝试弱口令
tcp 25 SMTP 邮件伪造,vrfy/expn查询邮件用户信息,可使用smtp-user-enum工具来自动跑
tcp/udp 53 DNS 允许区域传送,dns劫持,缓存投毒,欺骗以及各种基于dns隧道的远控
tcp/udp 69 TFTP 尝试下载目标及其的各类重要配置文件
tcp 80-89,443,8440-8450,8080-8089 各种常用的Web服务端口 可尝试经典的topn,vpn,owa,webmail,目标oa,各类Java控制台,各类服务器Web管理面板,各类Web中间件漏洞利用,各类Web框架漏洞利用等等……
tcp 110 POP3 可尝试爆破,嗅探
tcp 111,2049 NFS 权限配置不当
tcp 137,139,445 Samba 可尝试爆破以及smb自身的各种远程执行类漏洞利用,如,ms08-067,ms17-010,嗅探等……
tcp 143 IMAP 可尝试爆破
udp 161 SNMP 爆破默认团队字符串,搜集目标内网信息
tcp 389 LDAP ldap注入,允许匿名访问,弱口令
tcp 512,513,514 Linux rexec 可爆破,rlogin登陆
tcp 873 Rsync 匿名访问,文件上传
tcp 1194 OpenVPN 想办法钓VPN账号,进内网
tcp 1352 Lotus 弱口令,信息泄漏,爆破
tcp 1433 SQL Server 注入,提权,sa弱口令,爆破
tcp 1521 Oracle tns爆破,注入,弹shell…
tcp 1500 ISPmanager 弱口令
tcp 1723 PPTP 爆破,想办法钓VPN账号,进内网
tcp 2082,2083 cPanel 弱口令
tcp 2181 ZooKeeper 未授权访问
tcp 2601,2604 Zebra 默认密码zerbra
tcp 3128 Squid 弱口令
tcp 3312,3311 kangle 弱口令
tcp 3306 MySQL 注入,提权,爆破
tcp 3389 Windows rdp shift后门[需要03以下的系统],爆破,ms12-020
tcp 3690 SVN svn泄露,未授权访问
tcp 4848 GlassFish 弱口令
tcp 5000 Sybase/DB2 爆破,注入
tcp 5432 PostgreSQL 爆破,注入,弱口令
tcp 5900,5901,5902 VNC 弱口令爆破
tcp 5984 CouchDB 未授权导致的任意指令执行
tcp 6379 Redis 可尝试未授权访问,弱口令爆破
tcp 7001,7002 WebLogic Java反序列化,弱口令
tcp 7778 Kloxo 主机面板登录
tcp 8000 Ajenti 弱口令
tcp 8443 Plesk 弱口令
tcp 8069 Zabbix 远程执行,SQL注入
tcp 8080-8089 Jenkins,JBoss 反序列化,控制台弱口令
tcp 9080-9081,9090 WebSphere Java反序列化/弱口令
tcp 9200,9300 ElasticSearch 远程执行
tcp 11211 Memcached 未授权访问
tcp 27017,27018 MongoDB 爆破,未授权访问
tcp 50070,50030 Hadoop 默认端口未授权访问

 

端口状态解析:

开放:工作于开放端口的服务器端的应用程序可以受理TCP	连接、接收UDP数据包或者响 应SCTP(流控制传输协议)请求。

关闭:虽然我们确实可以访问有关的端口,但是没有应用程序工作于该端口上。

过滤:Nmap	不能确定该端口是否开放。包过滤设备屏蔽了我们向目标发送的探测包。

未过滤:虽然可以访问到指定端口,但Nmap不能确定该端口是否处于开放状态。 

打开|过滤:Nmap认为指定端口处于开放状态或过滤状态,但是不能确定处于两者之中的 哪种状态。在遇到没有响应的开放端口时,Nmap会作出这种判断。这可以是由于防火墙丢 弃数据包造成的。

关闭|过滤:Nmap	认为指定端口处于关闭状态或过滤状态,但是不能确定处于两者之中的 哪种状态。

 

进阶Nmap

在继续讲之前,先介绍一下Nmap可以识别出的6种端口状态

开放:工作于开放端口的服务器端的应用程序可以受理TCP	连接、接收UDP数据包或者响 应SCTP(流控制传输协议)请求。

关闭:虽然我们确实可以访问有关的端口,但是没有应用程序工作于该端口上。

过滤:Nmap	不能确定该端口是否开放。包过滤设备屏蔽了我们向目标发送的探测包。

未过滤:虽然可以访问到指定端口,但Nmap不能确定该端口是否处于开放状态。 

打开|过滤:Nmap认为指定端口处于开放状态或过滤状态,但是不能确定处于两者之中的 哪种状态。在遇到没有响应的开放端口时,Nmap会作出这种判断。这可以是由于防火墙丢 弃数据包造成的。

关闭|过滤:Nmap	认为指定端口处于关闭状态或过滤状态,但是不能确定处于两者之中的 哪种状态。

常用选项

​ 1.服务版本识别(-sV),Nmap可以在进行端口扫描的时候检测服务端软件的版本信息。版本信息将使后续的漏 洞识别工作更有针对性。

root@kali:~# nmap -sV 192.168.31.13 -p 8080
Starting Nmap 7.70 ( https://nmap.org ) at 2018-08-13 00:02 CST
Nmap scan report for 192.168.31.13
Host is up (0.00076s latency).

PORT     STATE SERVICE VERSION
8080/tcp open  http    Apache Tomcat 8.5.14
MAC Address: 00:0C:29:99:D3:E6 (VMware)

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

 

2.操作系统检测(-O),Nmap还能识别目标主机的操作系统。

root@kali:~# nmap -O 192.168.31.13 
Starting Nmap 7.70 ( https://nmap.org ) at 2018-08-13 00:03 CST
Nmap scan report for 192.168.31.13
Host is up (0.00072s latency).
Not shown: 998 closed ports
PORT      STATE SERVICE
8080/tcp  open  http-proxy
10010/tcp open  rxapi
MAC Address: 00:0C:29:99:D3:E6 (VMware)
Device type: general purpose
Running: Linux 3.X|4.X
OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4
OS details: Linux 3.2 - 4.9
Network Distance: 1 hop

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

 

3.禁用主机检测(-Pn),如果主机屏蔽了ping请求,Nmap可能会认为该主机没有开机。这将使得Nmap无法进行进一 步检测,比如端口扫描、服务版本识别和操作系统识别等探测工作。为了克服这一问题,就 需要禁用Nmap的主机检测功能。在指定这个选项之后,Nmap会认为目标主机已经开机并会 进行全套的检测工作

4.强力检测选项(-A),启用-A选项之后,Nmap将检测目标主机的下述信息
服务版本识别(-sV);
操作系统识别(-O);
脚本扫描(-sC);
Traceroute(–traceroute)。

TCP扫描选项

​ 1.TCP连接扫描(-sT):指定这个选项后,程序将和目标主机的每个端口都进行完整的三次 握手。如果成功建立连接,则判定该端口是开放端口。由于在检测每个端口时都需要进行三 次握手,所以这种扫描方式比较慢,而且扫描行为很可能被目标主机记录下来。如果启动 Nmap的用户的权限不足,那么默认情况下Nmap程序将以这种模式进行扫描。

​ 2.SYN扫描(-sS):该选项也称为半开连接或者SYN stealth。采用该选项后,Nmap将使用 含有SYN标志位的数据包进行端口探测。如果目标主机回复了SYN/ACK包,则说明该端口处 于开放状态:如果回复的是RST/ACK包,则说明这个端口处于关闭状态;如果没有任何响应 或者发送了ICMP unreachable信息,则可认为这个端口被屏蔽了。SYN模式的扫描速度非常 好。而且由于这种模式不会进行三次握手,所以是一种十分隐蔽的扫描方式。如果启动Nmap 的用户有高级别权限,那么在默认情况下Nmap程序将以这种模式进行扫描。

​ 3.TCP NULL(-sN)、FIN(-sF)及XMAS(-sX)扫描:NULL 扫描不设置任何控制位; FIN扫描仅设置FIN标志位:XMAS扫描设置FIN、PSH和URG的标识位。如果目标主机返回 了含有RST标识位的响应数据,则说明该端口处于关闭状态;如果目标主机没有任何回应, 则该端口处于打开|过滤状态。

​ 4.TCP Maimon扫描(-sM):Uriel Maimon 首先发现了TCP Maimom扫描方式。这种模式的 探测数据包含有FIN/ACK标识。对于BSD衍生出来的各种操作系统来说,如果被测端口处于 开放状态,主机将会丢弃这种探测数据包;如果被测端口处于关闭状态,那么主机将会回复 RST。

​ 5.TCPACK扫描(-sA):这种扫描模式可以检测目标系统是否采用了数据包状态监测技术 (stateful)防火墙,并能确定哪些端口被防火墙屏蔽。这种类型的数据包只有一个ACK标识 位。如果目标主机的回复中含有RST标识,则说明目标主机没有被过滤。

​ 6.TCP窗口扫描(-sW):这种扫描方式检测目标返回的RST数据包的TCP窗口字段。如果目 标端口处于开放状态,这个字段的值将是正值;否则它的值应当是0。

​ 7.TCP Idle扫描(-sI):采用这种技术后,您将通过指定的僵尸主机发送扫描数据包。本机 并不与目标主机直接通信。如果对方网络里有IDS,IDS将认为发起扫描的主机是僵尸主机。

 

 

 

UDP扫描选项

Nmap有多种TCP扫描方式,而UDP扫描仅有一种扫描方式(-sU)。虽然UDP扫描结果没有 TCP扫描结果的可靠度高,但渗透测试人员不能因此而轻视UDP扫描,毕竟UDP端口代表着 可能会有价值的服务端程序。但是UDP扫描的最大问题是性能问题。由干Linux内核限制1秒内最多发送一次ICMP Port Unreachable信息。按照这个速度,对一台主机的65536个UDP端口进行完整扫描,总耗时必 定会超过18个小时。

 

 

优化方法主要是:

1.进行并发的UDP扫描;
2.优先扫描常用端口;
3.在防火墙后面扫描;
4.启用--host-timeout选项以跳过响应过慢的主机。

假如我们需要找到目标主机开放了哪些 UDP端口。为提高扫描速度,我们仅扫描 53端口 (DNS)和161端口(SNMP)。

可以使用命令nmap -sU 192.168.56.103 -p 53,161

目标端口选项

默认情况下,Nmap将从每个协议的常用端口中随机选择1000个端口进行扫描。其nmapservices文件对端口的命中率进行了排名。

可以自定义端口参数:

-p端口范围:只扫描指定的端口。扫描1〜1024号端口,可设定该选项为–p	1-1024。扫描1 〜65535端口时,可使用-p-选项。

-F(快速扫描):将仅扫描100	个常用端口。

-r(顺序扫描):指定这个选项后,程序将从按照从小到大的顺序扫描端口。 ●	-

-top-ports <1 or=""	greater="">:扫描nmap-services	里排名前N的端口。

输出选项

Nmap可以把扫描结果保存为外部文件。在需要使用其他工具处理Nmap的扫描结果时,这一 功能十分有用。即使您设定程序把扫描结果保存为文件,Nmap还是会在屏幕上显示扫描结果。

Nmap支持以下几种输出形式。
正常输出(-oN):不显示runtime信息和警告信息。

XML	文件(-oX):生成的	XML	格式文件可以转换成	HTML	格式文件,还可被Nmap	的图 形用户界面解析,也便于导入数据库。本文建议您尽量将扫描结果输出为XML文件。

生成便于Grep使用的文件(-oG):虽然这种文件格式已经过时,但仍然很受欢迎。这种格 式的文件,其内容由注释(由#开始)和信息行组成。信息行包含6个字段,每个字段的字段 名称和字段值以冒号分割,字段之间使用制表符隔开。这些字段的名称分别为Host、Ports、Protocols、Ignored State、OS、Seq Index、IP ID	Seq	和Status。这种格式的文件便于 grep或awk之类的UNIX指令整理扫描结果。

输出至所有格式(-oA)
为使用方便,利用-oA选项 可将扫描结果以标准格式、XML格式和Grep格式一次性输出。分别存放在.nmap,.xml和.gnmap文件中。

时间排程控制选项

Nmap可通过-T选项指定时间排程控制的模式。它有6种扫描模式。

paranoid(0):每5分钟发送一次数据包,且不会以并行方式同时发送多组数据。这种模式 的扫描不会被IDS检测到。

sneaky(1):每隔15秒发送一个数据包,且不会以并行方式同时发送多组数据。

polite(2):每0.4	秒发送一个数据包,且不会以并行方式同时发送多组数据。

normal(3):此模式同时向多个目标发送多个数据包,为	Nmap	默认的模式,该模式能自 动在扫描时间和网络负载之间进行平衡。

aggressive(4):在这种模式下,Nmap	对每个既定的主机只扫描5	分钟,然后扫描下一 台主机。它等待响应的时间不超过1.25秒。

insane(5):在这种模式下,Nmap	对每个既定的主机仅扫描75	秒,然后扫描下一台主 机。它等待响应的时间不超过0.3秒。

默认的扫描模式通常都没有问题。除非您想要进行更隐匿或更快速的扫 描,否则没有必要调整这一选项。

扫描IPv6主机

启用Nmap的-6选项即可扫描IPv6的目标主机。当前,只能逐个指定目标主机的IPv6地址。

nmap	-6	fe80::a00:27ff:fe43:1518

同一台主机在IPv6网络里开放的端口比它在IPv4网络里开放的端口数量要 少。这是因为部分服务程序尚未支持IPv6网络。

 

 

 

脚本引擎功能(Nmap Scripting Engine,NSE)

最后但是同样重要的,Nmap本身已经很强大了,但是加上它的脚本引擎更加开挂了,NSE 可使用户的各种网络检査工作更为自动化,有助于识别应 用程序中新发现的漏洞、检测程序版本等Nmap原本不具有的功能。虽然Nmap软件包具有各 种功能的脚本,但是为了满足用户的特定需求,它还支持用户撰写自定义脚本。

auth:此类脚本使用暴力破解等技术找出目标系统上的认证信息。

default:启用--sC	或者-A	选项时运行此类脚本。这类脚本同时具有下述特点:执行速度快;输出的信息有指导下一步操作的价值;输出信息内容丰富、形式简洁;必须可靠;不会侵入目标系统;能泄露信息给第三方。

discovery:该类脚本用于探索网络。

dos:该类脚本可能使目标系统拒绝服务,请谨慎使用。

exploit:该类脚本利用目标系统的安全漏洞。在运行这类脚本之前,渗透测试人员需要获取 被测单位的行动许可。

external:该类脚本可能泄露信息给第三方。

fuzzer:该类脚本用于对目标系统进行模糊测试。

instrusive:该类脚本可能导致目标系统崩溃,或耗尽目标系统的所有资源。

malware:该类脚本检査目标系统上是否存在恶意软件或后门。

safe:该类脚本不会导致目标服务崩溃、拒绝服务且不利用漏洞。

version:配合版本检测选项(-sV),这类脚本对目标系统的服务程序进行深入的版本检 测。

vuln:该类脚本可检测检査目标系统上的安全漏洞。
在Kali	Linux系统中,Nmap脚本位于目录/usr/share/nmap/scripts。

-sC	或--script=default:启动默认类NSE	脚本。

--script	<filename>|<category>|<directories>:根据指定的文件名、类别名、目录名,执行 相应的脚本。

--script-args	<args>:这个选项用于给脚本指定参数。例如,在使用认证类脚本时,可通过 这个选项指定用户名和密码
nmap --script http-enum,http-headers,http-methods,http-php-version	-p	80 192.168.56.103

规避检测的选项

在渗透测试的工作中,目标主机通常处于防火墙或 IDS 系统的保护之中。在这种环境中使用 Nmap 的默认选项进行扫描,不仅会被发现,而且往往一无所获。此时,我们就要使用Nmap 规避检测的有关选项。

-f(使用小数据包):这个选项可避免对方识别出我们探测的数据包。指定这个选项之后, Nmap将使用8字节甚至更小数据体的数据包。

--mtu:这个选项用来调整数据包的包大小。MTU(Maximum	Transmission	Unit,最大传输 单元)必须是8的整数倍,否则Nmap将报错。

-D(诱饵):这个选项应指定假	IP,即诱饵的	IP。启用这个选项之后,Nmap	在发送侦测 数据包的时候会掺杂一些源地址是假IP(诱饵)的数据包。这种功能意在以藏木于林的方法 掩盖本机的真实	IP。也就是说,对方的log还会记录下本机的真实IP。您可使用RND生成随机 的假IP地址,或者用RND:number的参数生成<number>个假IP地址。您所指定的诱饵主机 应当在线,否则很容易击溃目标主机。另外,使用了过多的诱饵可能造成网络拥堵。尤其是 在扫描客户的网络的时候,您应当极力避免上述情况。
Kali	Linux	渗透测试的艺术(中文版)
151第 6章	服务枚举
--source-port	<portnumber>或-g(模拟源端口):如果防火墙只允许某些源端口的入站流 量,这个选项就非常有用。

--data-length:这个选项用于改变Nmap	发送数据包的默认数据长度,以避免被识别出来是 Nmap的扫描数据。

--max-parallelism:这个选项可限制Nmap	并发扫描的最大连接数。

--scan-delay	<time>:这个选项用于控制发送探测数据的时间间隔,以避免达到IDS/IPS端 口扫描规则的阈值。

九、旁站C段查询

旁站:是和目标网站在同一台服务器上的其它的网站。
旁注:通过入侵安全性较差的旁站,之后可以通过提权跨目录等手段拿到目标服务器的权限。
工具:K8_C段旁注工具、WebRobot、御剑、明小子 …

C段:是和目标机器ip处在同一个C段的其它机器。
C段入侵:目标ip为192.168.1.128,可以入侵192.168.1.*的任意一台机器,然后利用一些黑客工具嗅探获取在网络上传输的各种信息。
工具:Cain、Sniffit 、Snoop、Tcpdump、Dsniff …

十、其他信息

Web敏感文件

robots.txt、crossdomin.xml、sitemap.xml、源码泄漏文件 …

WAF信息

WAF识别大多基于Headers头信息,还可以使用Wafw00f,Sqlmap的waf脚本,Nmap的http-waf-detect和http-waf-fingerprint脚本等等。

相关漏洞

漏洞查询站点:exploitdb、hackerone、CNVD、0day5、乌云漏洞库镜像站 …

    版权声明:

     本网站的所有文字、图片资料,【未注明转载的】均由作者亲自整理创作,任何媒体、网站或个人未经本人同意和授权不得复制、转载、转贴或以其他方式复制发布/发表,请尊重我的劳动成果,侵权必究,谢谢。

阿沐
1625139774@qq.com