前言
Web渗透测试的背景可以追溯到20世纪90年代初期,当时的Web应用程序开始在商业环境中得到广泛应用。然而,由于当时的Web技术还不成熟,Web应用程序的安全性容易受到攻击者的攻击。因此,一些安全专家开始尝试模拟攻击者的攻击方式,以便找到Web应用程序的漏洞和弱点,从而提高Web应用程序的安全性。
不知攻焉知防,接下来我们来了解一下渗透的流程。
0x01 前期准备
(1)确定IP
(2)确定网站规模
(3)确定影响范围
(4)确认是否需要社会工程学
(5)注意:在一切未授权的情况下任意攻击都是犯法的
0x02 信息收集
信息收集时实施攻击的比不可少且很重要的一个步骤,在信息收集过程中,攻击者会收集到公网IP信息,域名信息,漏洞信息,banner信息,主机(服务器)信息等等,攻击者通过这些信息才会进一步扩大攻击范围,打开目标的大门。
端口,漏洞信息收集工具
1、NMAP(kali自带工具)
绝大多数黑客经常会用的一款非常强大的神器,不仅可以扫描主机,端口,还可以完成漏洞扫描。
漏洞信息收集工具
1、AWVS
Acunetix Web Vulnerability Scanner(AWVS)可以扫描任何通过Web浏览器访问和遵循HTTP/HTTPS规则的Web站点。适用于任何中小型和大型企业的内联网、外延网和面向客户、雇员、厂商和其它人员的Web网站。
AWVS可以通过检查SQL注入攻击漏洞、XSS跨站脚本攻击漏洞等漏洞来审核Web应用程序的安全性。
2、nessus
Nessus是全球使用人数最多的系统漏洞扫描与分析软件,这是一个免费、威力强大、更新频繁并简易使用的远端系统安全扫描程序,功能十分强大。
下载地址:
https://www.tenable.com/downloads/nessus?loginAttempted=true
3、Skipfish(kali自带工具)
Skipfish是一款主动的Web应用程序安全侦察工具。它通过执行递归爬取和基于字典的探测来为目标站点准备交互式站点地图。最终的地图然后用来自许多活动安全检查的输出来注释。该工具生成的最终报告旨在作为专业Web应用程序安全评估的基础。
域名信息收集工具
1、Maltego子域名收集(kali自带工具)
Maltego 是一种交互式数据挖掘工具,可提供有向图以进行链接分析。该工具用于在线调查,以查找来自Internet上各种来源得信息之间得关系。Maltego使用转换的思想来自动化查询不同数据源的过程。然后,此信息显示在适合执行链接分析的节点图上。
Google引擎信息收集
语法:
inurl:URL中存在的关键字页面
intext:网页内容里面的关键字
intitle:网页标题中的关键字
info:查找指定站点信息
link:返回指定域名连接
Filetype:指定文件类型
site:指定域名
cache:搜索谷歌里的内容缓存
eg:
inurl:php?id=
site:xxx.com 管理|后台|登录|用户
intitle:管理|后台|登录|用户
filetype:xls 身份证
xxx filetype:torrent
xxx是关键字
种子文件
site:xx.com filetype:mdb
site:xx.com filetype:ini(PHP配置文件)
intext:user.sql intitle:index.of
intext:user.sql 包含数据库信息页面
intitle:index.of 表示网站是开放的
site:xxx.com filetype:php
site:xxx.com filetype:jsp
site:xxx.com filetype:asp
site:xxx.com filetype:asps
site:taobao.com filetype:php
0x03 漏洞利用
利用工具
1、Burp Suite
在全球最受安全人员欢迎的工具榜单中,Burp Suite这个工具排名第一,并且排名第二的工具和它的功能和作用是一样的,并且还是免费的。Burp Suite是一款信息安全从业人员必备的集成型的渗透测试工具,它采用自动测试和半自动测试的方式。Burp Suite是由Java语言编写而成,而Java自身的跨平台性,使得软件的学习和使用更加方便。
2、Metasploit
一款强大的漏洞利用工具,集成了2000多个攻击模块,1100多个探测模块,600左右个攻击载荷等等,当2003年发布Metasploit时,计算机安全状况也被永久性地改变了。仿佛一夜之间,任何人都可以成为黑客,每个人都可以使用攻击工具来攻击那些未打过补丁或者刚刚打过补丁的漏洞。
还有一些GitHub上大神们写的漏洞利用工具
攻击类型
(1)SSRF:SSRF(Server Side Request Forgery,服务器端请求伪造)是一种攻击者通过构造数据进而伪造服务端发起请求的漏洞。因为请求是由内部发起的,所以一般情况下,SSRF漏洞的攻击目标是从外网无法访问的内部系统。
SSRF漏洞形成的原因是服务器提供了从外部服务获取数据的功能,但没有对目标地址、协议等进行严格的过滤和限制,从而导致攻击者可以自由构造参数,发起恶意的请求。
(2)CSRF:(Cross-Site Request Forgery)的全称是“跨站请求伪造”,通过伪装来自受信任用户的请求来攻击受信任的网站,也就是说攻击者可以盗用被攻击者的身份向服务器发送请求导致被攻击者产生财产损失。
(3)文件上传漏洞:文件上传漏洞是指由于程序员在对用户文件上传部分的控制不足或者处理缺陷,而导致的用户可以越过其本身权限向服务器上上传可执行的动态脚本文件。
(4)SQL注入漏洞:服务端没有对用户发送的请求进行过滤,导致一些非法的请求语句在服务端。
(5)本地/远程文件包含:与SQL注入等攻击方式一样,文件包含漏洞也是一种注入型漏洞,其本质就是输入一段用户能够控制的脚本或者代码,并让服务端执行。在PHP中常用的文件包含函数:include(),require(),include_once(),require_once()。
(6)XSS跨站脚本:
(7)命令注入:无非也属于注入漏洞一类,该漏洞基于程序员没有对敏感命令进行过滤(白名单,黑名单等),导致攻击者可以上传非法命令获取敏感信息。
(8)目录穿越:该漏洞经常和文件包含漏洞搭配使用,通常因为服务端没有对“.”,”/”等符号进行过滤,导致攻击者可以通过” ../../../../../”的方式获取敏感信息。
(9)暴力破解:将大量字符串搭配一个一个发送到直至找到一组可以通过的字符串。就像账号和密码我们输错了可以再次输入,攻击者就利用这一点通过不停的试探。从而获取到最终的账号和密码。
(10)XML注入:XML注入攻击和SQL注入攻击的原理一样,利用了XML解析机制的漏洞,如果系统对用户输入"<",">"没有做转义的处理,攻击者可以修改XML的数据格式,或者添加新的XML节点,就会导致解析XML异常,对流程产生影响。
(11)非法文件下载:由于业务需求,很多网站往往需要提供文件(附件)下载的功能块,但是如果对下载的文件没有做限制,直接通过绝对路径对其文件进行下载。那么,恶意用户就可以利用这种方式下载服务器的敏感文件,对服务器进行进一步的威胁和攻击。
(12)模板注入:服务端接收了用户的恶意输入以后,未经任何处理就将其作为 Web 应用模板内容的一部分,模板引擎在进行目标编译渲染的过程中,执行了用户插入的可以破坏模板的语句,因而可能导致了敏感信息泄露。其影响范围主要取决于模版引擎的复杂性。
(13)......
0x04 内网渗透横向移动
攻击者通过外网打入内网时,收集到的敏感信息显然不够多,还需要进一步向内网扩散。此时,攻击者通过各种攻击手段达到控制整个内网下的主机的过程,称为内网横向移动。
CS联动MSF
提升到管理员权限
获取主机凭证
扫描全端口
哈希攻击
生成和导入票据
0x05 持久化
当我们在渗透过程中通过漏洞获取到目标主机权限后,往往会因为服务器管理员发现和修补漏洞而导致对服务器权限的丢失,所以权限维持就显得很重要。
常用方式
(1)建立隐藏用户:
net user test$ 123456 /add 容易被发现
(2)建立克隆账号—修改注册表 隐蔽度高,不易被发现。
防御工具:
https://github.com/redbullsecteam/Find-CloneORHide-Account
(3)设置计划任务
(4)cs联动msf生成webshell、反弹shell、powershell等木马+脚本工具免杀
0x06 清理痕迹
Windows日志清理
(1)dos命令:
wevtutil cl security
wevtutil cl system
wevtutil cl application
wevtutil cl “windows powershell”
等等,按照具体情况来选择
(2)meterpreter清理:
clearev命令
run_event_manager -c删除事件日志。
(3)通过脚本工具使得日志记录失效:
phant0m工具
Linux日志清理
日志目录及其命令:
httpd服务日志:/var/log/httpd/access.log
Nginx日志:/var/log/nginx/access.log
定时任务日志:/var/log/cron
验证和授权方面的信息:/var/log/secure
历史记录:history
所有成功登录登出的历史记录:last
登录失败日志 :lastb
最近登录记录:lastlog
......
(1)通过重定向的方式去覆盖日志文件
cat 日志文件路径 | grep -v 涉及要删除的内容 > 重定向后文件路径
cat 新文件的路径 > 日志文件路径
意思是将不涉及要删除的内容重新保存到一个新文件中,然后再将文件重新写到日志文件的路径中。
(2)删除带有关键词的内容
sed -i -e ‘/要删除内容的关键词/d’ 日志文件路径
sed -i -e ‘IP正则(比如:/123.123.123.123/d)’ 日志文件路径
(3)删除历史记录
删除全部历史记录:history -w && history -c && > .absh_history
删除指定行历史记录:history -d row_ID
备份还原历史记录:cp .bash_history his.txt
删除100行以后的历史记录:sed -i “100,$d” .bash_history
(4)禁用命令记录功能
禁用记录历史命令功能:set +o history
恢复记录历史命令功能:set -o history
结束语
这是本人基于当前学习阶段所总结的一些渗透方式和渗透工具,还有一些强大的工具和渗透方法可能本文章还未涉及到,欢迎大佬们指出,本人会去及时学习。
声明
文章仅供参考和学习,如出现其他违法行为概不负责。
加入我们
奇点bit
微信号|wz-GoGoGo
V正网安技术分享
创意小栈
微信号|j9498174
强子综合论
每天一小步,进步一大步。
原文始发于微信公众号(奇点bit):浅淡web渗透流程
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论