一、渗透测试流程:
信息收集 ----> 漏洞挖掘 ----> 漏洞利用 ----> 权限提升 ----> 内网渗透 ----> 清理痕迹
我们为什么做正规渗透测试还要清除痕迹呢啊 ? 是这样子的,我们在红蓝过程中,我们真的需要清除痕迹清除当时发生了什么的痕迹,因为这个痕迹吧,是为了防止被发现,但最后呢我们清理了痕迹了,但我们的所有的过程呢,我们都会录屏,而且我们所有的操作的流量呢,我们都走的都是受监管的,公安的也好啊,或者某个地区什么啊,VPN啊,或者某某个地区的通道啊,那我做了这个事情,我们会最后录屏,之后会提交也会提交给你,也会提交给公安部啊,有公安部,所以说你不用担心我做错了什么啊,不用担心我干了什么事情,因为我全程都是录屏的啊,除非你看不懂我录的是什么啊,这就很尴尬,然后我们开始走这个过程了,可以真正的去开始参透了。 简单来说,就是清理痕迹是必须的。
信息收集:
Whois信息-注册人、电话、邮箱、DNS、地址
Googlehack-敏感目录、敏感文件、更多信息收集
服务器-Nmap扫描、端口对应的服务、C段
旁注-Bing查询、脚本工具
如果遇到CDN- Cloudflare(绕过)、从子域入手(mail, postfix)、DNS传送域漏洞
服务器、组件(指纹)- 操作系统、 web server( apache, ngInx,iis)、脚本语言
More.....
先放一张思维导图,大致知道操作系统的具体功能和目标,然后再一一展开叙述。

一、信息搜集介绍
1.1 信息搜集的分类
信息搜集的方式可以分为两种:主动和被动
1.1.1 主动信息搜集方式
通过直接访问、扫描网站、将这种流量流经网站的行为称为主动信息搜集。
1.1.2 被动信息搜集方式
利用第三方暴露在外,主要是互联网的信息进行收集。
二、Google hacking
2.1 什么是Google hacking ?
Google 、baidu 、bing 等搜索引擎有许多搜索技巧。Google hacking 是利用谷歌搜索引擎来查找黑客们想要找到的信息、例如查找某人信息、网站后台、寻找网站代码中的相关配置和安全漏洞。
2.1.1 举个例子:Discuz 任意文件泄露

2.2 Google 的语法
site:
site:thief.one将返回所有和这个站有关的URL。inurl:
搜索我们指定的字符是否存在于URL中。intitle:
将返回所有网页标题中包含关键词的网页。intext:
将返回所有在网页正文部分包含关键词的网页。cache:
搜索google里关于某些内容的缓存。define:
搜索某个词语的定义。filetype:
搜索指定的文件类型,如: .bak, .mdb,.inc等。info:
查找指定站点的一些基本信息。Link:
link:thief.one可以返回所有和thief.one做了链接的URL。index of:
找目录遍历会用到
+
强制包含某个字符进行查询-
查询的时候忽略某个字符""
查询的时候精确匹配双引号内的字符.
匹配某单个字符进行查询*
匹配任意字符进行查询(通配符)|
或者, 多个选择, 只要有一个关键字匹配上即可
2.2.1 举个例子:寻找基于Think PHP 的开放的web应用
语法: intitle:" lndex of ThinkPHP" | inurl:"ThinkPHP/"

2.2.2 举个例子:寻找可能存在SQL注入的目标
语法: intitle:".php?id=" "you have an error in your sql syntax

2.2.3 举个例子:寻找未授权的PHPmyadmin
语法: intitle:"phpmyadmin"

2.2.4 举个例子:搜集互联网中敏感信息
语法: filetype:.xls XXX XXX

2.3 什么是Google hacking Database(GHDB)
Google hacking Database

三、网络空间引擎搜索
网络空间搜索引擎是对 全球网络空间基础设施或网络设备进行扫描,并可以对指纹特征检索
的平台。简单的说可以在上面对网络空间上的在线网络设备(联网设备)进行检索。例如服务器、路由器、交换机、公共IP的打印机、网络摄像头等等。它是通过扫描全网设备并抓取解析各个设备返回的信息,通过这种方式来实现上述功能。

3.1 常用的网络空间搜索引擎
shodan - 撒旦

FOFA - 搜索引擎

Censys - 搜索引擎

Zoomeye - 钟馗之眼

3.1.1 shodan 语法:
hostname:
搜索指定的主机或域名,例如hostname:"google"port:
搜索指定的端口或服务,例如port:"22”country:
搜索指定的国家,例如country :"CN"city:
搜索指定的城市,例如city : "Hangzhou”org:
搜索指定的组织或公司,例如org:”google"isp:
搜索指定的ISP供应商,例如isp:"china Telecom”product:
搜索指定的操作系统/软件/平台,例如product:"Apache httpd ftp”version:
搜索指定的软件版本,例如version:”1.5”geo:
搜索指定的地理位置,例如geo:”41.8126,114.1142”before after:
搜索指定收录时间前后的数据,格式为dd-mm-yy,例如before:"10-10-10”net:
搜索指定的IP地址或子网,例如net:"100.100.220.0/24”
3.1.2 举个例子:寻找互联网中的摄像头
我们来检索一下摄像头的关键信息: linux upnp avtechupnp : UPnP是英语Universal Plug and Play的首字母缩写,一般翻译成通用即插即用。路由器UPnP功能用于实现局域网计算机和智能移动设备,通过网络自动彼此对等连接,而且连接过程无需用户的参与。 avtech: 是网络摄像机

我们随便点开一个可以看到摄像头中暴露的信息,城市、端口开放情况、设备号等等

随便打开一个可以看到后台端口,可以尝试用弱口令来进行爆破登录一下

或者说去寻找一些监控设备弱口令的后台,只要你去找就一定会发现的。



四、域名搜集
4.1 针对域名信息搜集的常用手段
4.1.1 Whois 查询:
WHOIS是用来 查询域名或IP所有者信息
的传输协议, 基于TCP
协议。它可以用来查询域名是否已经被 注册,以及注册者的详细信息。

4.1.2 Whois 查询工具:
kali 自带的 whois 查询工具 爱站 - whois 查询工具 站长之家 - whois 查询工具 微步在线 - 情报社区 whois 365
4.1.3 Whois 作用:
whois可以得 注册人的相关信息
。对于中小型站点
,域名所有者往往是IT运维人员。那么就可以根据获取的部分信息进行深入挖掘。可以根据这些信息来进行一个深度挖掘,来获取你想要的信息。

4.1.4 Whois 查询注意:
whois 得到的结果是域名托管商(大型网站基本都会有域名托管商)

查询时域名被屏蔽(多换几个接口查询就可以了)

4.2 备案信息搜集
4.2.1 备案信息查询:
ICP的英文全称为Internet Content Provider,中文意思为网络内容服务商。 ICP备案可以说是 网站备案或域名备案
,具体是指网站在信息产业部提交网站信息进行官方认可。对国内各大小网站(包括企业及个人站点)的严格审查工作,对于没有合法备案的非经营性网站或没有取得ICP许可证的经营性网站,根据网站性质,将予以罚款,严重的关闭网站,以此规范网络安全,打击一切利用网络资源进行不法活动的犯罪行为。国家法律法规规定网站需备案,可以根据 备案信息获得域名的单位信息
。在根据单位相关信息,找到更多的网络资产。
4.2.2 备案信息查询工具:
ICP/IP地址/域名信息备案管理系统 站长工具 - ICP备案信息查询 ICP备案查询网 Alexa - ICP备案查询 天眼查 企查查
4.3 子域名信息搜集
4.3.1 子域名信息搜集:
子域名信息搜集的意义: 子域名可以让我们发现目标在互联网上更多的资产与服务, 扩大攻击面,更容易找到薄弱点。

4.3.2 子域名枚举:
基于字典对子域名进行爆破枚举。 子域名枚举工具: subDomainsBrutesubDomainsBrute 可以高并发DNS暴力枚举,对子域名进行爆破,用小字典递归发现三到五级域名。 subDomainsBrute 下载 如果嫌下载慢的话,或者下载不下来的情况可以 **微信公众号回复信息搜集工具**
即可获取百度云下载链接

4.3.3 搜索引擎 - site:
搜索引擎: site:tjpu.edu.cn指令模板: site:子域名


4.3.4 第三方聚合应用:
第三方服务汇聚了 大量的DNS数据集
,可以检索某个给定域名的子域名信息。常用的第三方聚合平台: 在线 - DNSdumpster


基于 Python 的 DNSdumpster 工具下载 如果嫌下载慢的话,或者下载不下来的情况可以 **微信公众号回复【信息搜集工具】**
即可获取百度云下载链接VirusTotal

Netcraft

4.3.5 证书透明度介绍:
授权机构(CA)是一个受信任的第三方组织,负责 发布和管理SSL/TLS证书
,全球有数百个受信任的CA,他们中任何一个都有权利为你的域名颁发有效的SSL证书。证书透明度(CT)是为了 防止证书授权机构(CA)或者其他恶意人员伪造服务器证书
而诞生的一个项目。CT会要求CA将数字证书(SSL/TLS证书) 公开并发布将颁发记录同步到日志服务器中
。而日志服务器则会提供给用户一个查找某域名颁发的所有数字证书途径。原理: “要向用户提供加密流量,网站必须先向可信的证书授权中心 (CA) 申请证书。然后,当用户尝试访问相应网站时,此证书即会被提供给浏览器以验证该网站。近年来,由于 HTTPS 证书系统存在结构性缺陷,证书以及签发证书的 CA 很容易遭到入侵和操纵。Google 的证书透明度项目旨在通过提供一个用于监测和审核 HTTPS 证书的开放式框架,来保障证书签发流程安全无虞。”
4.3.6 证书透明度工具:
Crtsh - 常用

Censys - 常用

Google Facebook Entrust Certspotter Spyse
补充:CT日志缺陷 CT日志只能增加,不能减少
,所以证书上的子域名可能是过期的状态,可以用过masdns工具对域名可解析的识别。
4.3.8 CSP (功能有限):
网页安全政策(Content Security Policy,缩写CSP) 。 CSP的实质就是白名单制度
,开发者明确告诉客户端,哪些外部资源可以加载和执行,等同于提供白名单。我们可以查看 HTTP的Content-Security-Policy
字段来搜集子域名信息。

4.3.9 DNS区域传送漏洞 :
一般DNS服务器会存在冗余备份,而主备之间同步域数据库的操作,就是DNS区域传送(DNS zonetransfer)。主服务器对来请求的备用服务器 未作访问控制,验证身份
就做出响应故而出现这个漏洞。Nslookup命令检测:
nslookup -type=ns xxx.yyy.cn #查询解析此域名的dns服务器 nslookup #进入交互 server dns.xxx.yyy.cn # 指定dns服务器 Is xxx.yyy.cn #列出域信息
Dig命令检测:
dig NS xx.yyy.cn #查询解析该域名的DNS服务器 dig @dns.xxx.yy.cn axfr xxx.yy.cn #@指定域名服务器;axfr为域传送指令; xxx.edu.cn表示要查询的域名
4.3.10 子域名挖掘机 :

4.3.11 Sublist3r(综合性应用) :
Sublist3r使用许多搜索引擎(例如Google,Yahoo,Bing,Baidu和Ask)枚举子域。使用Netcraft,Virustotal,ThreatCrowd,DNSdumpster和ReverseDNS枚举子域。subbrute与Sublist3r集成在一起,以增加使用具有改进的单词表的bruteforce查找更多子域的可能性。

4.3.12 OneForAll(综合性应用) :
综合性工具,正在开发使用的话记得常更新。 缺少域名监控,每天扫描更新。

4.3.13 其他拓展 :
LangSrcCurise ESD subdomain3 subbrute wydomain
4.4 获取真实IP
4.4.1 CDN介绍 :
Content Delivery Network或Content Ddistribute Network,即内容分发网络。 CDN是将媒体资源,动静态图片(Flash),HTML,CSS,JS等等内容缓存到距离你更近的节点,从而让用户进行共享资源, 实现缩减站点间的响应时间
等等需求,提高用户访问的响应速度和成功率。解决因分布、带宽、服务器性能带来的访问延迟问题,适用于站点加速、点播、直播等场景。

4.4.2 目标IP信息收集 :
有些站点可能会上CDN,那么我们就 无法获取真实的IP地址。
4.4.3 如何判断是否存在CDN :
使用站点工具的 Ping 测试,会从多个节点去 Ping 目标服务器,如果是不同IP地址可能上了CDN。 注意对IP归属地址进行解析。常用在线平台: 站长工具Ping

IPIP 查询

IPIP 查询

CDN Finder tool

常用工具: xcdn
4.4.4 如何绕过CDN获取真实IP地址 :
大多数情况下,企业在互联网上的网站资产较多,不会对所有站点都使用CDN进行加速。那么我们可以从子域名入手,获取真实IP。 通过子域名来获取C段,从C段中来确定真实IP地址。网站中的注册或找回密码功能中会发送邮件验证,或者RSS订阅、邮件订阅等这些功能就会让服务器主动发起请求,我们可以获得对方服务器的IP地址。但大多数时候获取的是邮件服务器地址。 可以通过找回密码、邮箱联系你之类的。简单来说就是你主动联系别人,跟别人主动联系你不是一个态度。
4.4.5 查询SSL证书 :
在censys上搜索一下语句,来查询证书中是否有匹配的域名: 搜索语句: 443.https.tls.certificate.parsed.extensions.subject_ alt_name.dns_names:www.xXx.com

4.4.6 利用DNS记录:
查询域名与IP的历史记录,可能会发现使用CDN之前的目标IP地址。 DNSDB

微步在线-情报威胁社区 Netcraft

17CE

RISKIQ

crimeflare 利用一些冷门的DNS请求: 某些CDN对国外的覆盖不广,那么可以利用这种特性进行探测。使用国外的代理或DNS解析来查看IP. 利用站点漏洞: 利用某些漏洞,让服务器得到信息泄露,或者主动对我们发起请求,则可以获得域名真实IP例如phpinfo,SSRF漏洞。
4.5 案例解析:
第一步: 判断有没有上CDN,查看IP地址归属地与网站注册地址进行判断。 第二步: 利用工具来想办法获取子域名的相关情况。得到子域名来分析归纳一下,并尝试进行访问。 第三步: 根据网站的回显信息来进行判断是否要进行再次 Ping
来查看一下这个域名是否挂了CDN代理。来判断一下是否是真实IP地址。第四步: 修改本地 hosts 文件
,将获取到的子域名信息与得到的IP地址进行绑定写入本地 hosts文件 再通过浏览器来尝试进行访问。查看是否还是刚才访问的那个站点。如果一样说明是真实IP地址。
五、服务器信息搜集
5.1 操作系统类型判断
5.1.1 什么是Nmap:
Nmap可以检测 目标主机是否在线
、端口开放情况
、侦测运行的服务类型及版本信息
、侦测操作系统与设备类型等信息
。它是网络管理员必用的软件之一,用以评估网络系统安全。

5.1.2 操作系统类型判断:
第一种判断方法:
使用Nmap,你可以检测远程主机上运行的操作系统和版本。 操作指令: nmap -O 192.168.0.101指令模板: nmap -O IP地址操作指令: nmap -Pn -O 192.168.0.101指令含义: -Pn 不判断主机存货直接进行系统扫描判断

第二种判断方法:
Windows 系统中不区分大小写,Linux系统中大小写敏感。 举个例子:修改URL中的大小写进行判断,修改之后无影响则是 Windows 反之 则是 Linux 系统

5.2 端口扫描
5.2.1 端口扫描:
使用Nmap探测主机的端口开放情况 操作指令: nmap 192.168.0.101指令模板: nmap IP地址

查找主机服务版本号 操作指令: nmap -sV 192.168.0.101指令模板: nmap -sV IP地址

5.3 Web 应用架构
5.3.1 Web 应用架构探测:
对于具有Web应用的服务器,我们需要深入探测Web应用架构,包括Web中间件、服务端脚本语言、数据库、Web应用开发框架、Web应用指纹等等。

第一种判断方法:
可以通过Burp Suite (俗称 BP)进行抓包分析 可以发现暴露的信息:搭建框架、服务器信息等

第二种判断方法:
不同应用程序框架的报错信息不同,可以根据这个来进行判断应用的是哪些服务框架。

第三种判断方法:
浏览器插件: wappalyzer个人觉得非常好用

5.3.2 Web指纹信息探测:
如果要判断网站的一些指纹信息的话,我们可以用工具来进行判断。

云悉指纹

5.3.3 Web 应用敏感信息探测:
寻找Web 应用的敏感目录、敏感文件、源码泄露。 敏感信息探测工具: wfuzz可以用在做参数的模糊测试,也可以用来做Web目录扫描等操作。 操作指令: wfuzz -w DIR.txt [http://xxx.com/FUZz](http://xxx.com/FUZz)

5.3.4 Web 应用敏感信息探测:
推荐御剑扫描工具

各种字典: Fuzzdb SecLists dictionaries fuzzDicts
补充:
Nginx 的虚拟主机 什么是CDN(内容分发式网络)? 什么是DNS域传送漏洞?DNS域传送漏洞总结 举个例子:假如我们去日站,发现这个网站没有任何漏洞啊,那么去看一下这个网站上域名绑定的IP地址。 去查查看这个IP地址上有没有绑定其余的网站,如果我们通过这个IP地址上拿到了其余网站的权限,这个IP的权限是不是这台主机的权限我就等于拿到了你这两个网站的所有权限对吧,我不管从哪个网站拿到了路的权限,那是不是两个网站的权限我都能拿到呢。 这里就涉及到一个Nginx的代理问题(Nginx 虚拟主机)。
漏洞挖掘:
探测Web应用指纹- Discuz、 PHPwind、 Dedecms、 Ecshop、Wordpress..... XSS、CSRF、XSO、 SQLinjection、权限绕过、任意文件读取、文件包含..... 上传漏洞-截断、修改、解析漏洞 有无验证码 - 进行暴力破解 More....
漏洞利用:
思考如下问题:
这些服务有没有泄露敏感的信息。有些公司会觉得一些UR或者i是外人不知道的,就对这些服务没有进行认证。比如 fierce可能发现一个gt开头的子域名。而你可以通过git.companyname.come/gitweb/来浏览该公司的源码。 有没有严重的配置错误。有时候他们可能会开放一些ftp的匿名登陆。甚至匿名登陆有写权限。一些数据库的管理员账号为空。或者一些嵌入式设备( oiP boxes, P Cameras, routers etc)保留了制造商使用的默认密码。 隐藏,破坏性-根据探测到的应用指纹寻找对应的EXP攻击载荷或者自己编写。 开始漏洞攻击,获取相应权限,根据场景不同变化思路拿到 webshell。
针对Web服务:
浏览器査看一些特殊子域名;如: fierce(不好用了)。 对网站进行扫描;如: nikto(这个也不要好用)、AWVS、 Appscan。 识别网站使用的各种软件;如: Whatweb 根据网站运行的软件使用更具针对性的工具;如: wpscan,cms- explorer, joomscan。 针对自己编码的Web程序进行测试;如:zap 针对通用程序的网站,找到网站程序源代码进行分析。
权限提升:
根据服务器类型选择不同的攻击载荷进行权限提升 无法进行权限提升,结合获取的资料开始密码猜解,回溯信息收集 Windows提权:pr、 Churrasco、iis6.0提权、数据库(udf、mof)提权、ms15-051 Linux提权: Linux_Exploit_Suggester和unix- privesc-check 数据库提权 其他第三方组件提权 Exp网站推荐: exploit-db、1337day
内网渗透:
端口转发 获取 SHELL 信息收集 内网文件传输 Hash抓取
痕迹清除:
伪装性,隐蔽性,通常选择删除指定日志內容。 根据时间段,fnd相应日志文件。
总结:
信息收集(域名信息、站点信息、端口信息、搜索引擎) 漏洞探测(web应用漏洞、系统漏洞、通用漏洞、暴利破解) 漏洞利用(获得webshell、远程命令执行、用户cookie获取、表单篡改、metasploit) 提权攻击(本地溢出、DLL劫持、第三方软件、远程代码执行) 内网渗透(接入目标网络、漏洞探测、记录信息收集、口令尝试、后门安装、嗅探) 痕迹清理(web访问日志、系统安全日志、文件打开记录、命令执行、登录记录)
收集安装上述软件。
文章转载自在下小黄,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




