kali linux高级渗透测试
参考资料:https://sagarbansal.com/blog/
参考资料:https://www.youtube.com/watch?v=U_EhnbpWhUQ
靶机资源:https://licensetopentest.com/ VM box
前置知识
- 企业会授权给测试者一个VPN来连接,用于渗透测试工作
企业(DMZ区,内网区,管理区)
DMZ区(非军事区):放应用程序服务器,网站的地方,被用于接受用户访问的入口
想象自己有一家公司,拥有一个网站,需要一个web服务器,通常都是放在DMZ区域。该区域用来接受用户访问自己公司网站用的,因此这个区域具有公共IP地址。
没有人能够访问网站,那这个网站的目的是什么?这就是为什么DMZ区是一个对外开放的公有IP区域。
- 公有IP与私有IP
私有 192.x.x.x 172.x.x.x 10.x.x.x
路由器连接互联网,仅路由器具有公共IP,且路由器将为所有计算机提供私有IP
- 如《天才》第一季中的某一个片段的教授所言:不谈任何术语,公式和数字。大家从实际生活出发,闭上眼睛好好感受,真正的感受明白。而不是一来就学信息收集,提权,横移什么的,当然这些词语是用于学术中的高效交流,你总不能一个词语可以表达的东西,你比喻几分钟吧?既然教受了,就力求确保用更多的“网红”性的语言来做比喻,我们学习的目的是实用性,听明白。那些词语会不会说无所谓,大不了单干,不和别人交流了。。好吧,我想说的是,欠下来的账,在你听明白以后步入安全行业的时候,慢慢系统性的还回来吧。。
百度:ip地址 谷歌:what is my ip
查到的IP地址是路由器的公有IP,192.168.0.1(ipconfig命令查询)是路由器的私有IP
ping qq.com 在不考虑负载均衡的前提下,ping到的地址是DMZ区域的,是运行qq.com的服务器IP。也就是所谓的该网站的IP地址是多少?ping一下解析一下。
当然,如果企业部署了负载均衡,那么ping到的IP地址自然就不是服务器的IP地址。
那么,其他区域的地方有一些其他的服务器和一些防火墙存在,用于隔离DMZ区域。你不可能让用户访问到DMZ区域以后,还能访问你们公司的内网区和其他区域吧?
因此,企业内部的每个区域是用户无法正常直接访问的。
假设每个区域就只有一台机器,在不考虑近源渗透测试的前提下,测试者从互联网中可以访问到DMZ区域的服务器,访问不了其他区域。因为每个区域的IP范围都不一样。
以DMZ区域中沦陷的靶机为中间点,进一步入侵内网区域和其他区域。因为攻击者的机器在互联网上,只有DMZ区域中的机器才在企业中,所以必须以DMZ区域中的机器作为一个锚点,才能进一步的干其他事情。使用它的IP地址,将网络从该DMZ区的IP机器路由到其他区域的机器上。路由一旦打通,不就可以从DMZ进一步渗透到其他区域了吗?
-
假设靶机的子域beta.hack.com在DMZ区域,它是一个web服务器。子域media.hack.com,是一个媒体服务器,它用于制作视频,音乐什么的,被放到了其他区域,假设该区域命名为制作区。
因此,该企业靶机有两个区域:一个DMZ区,另一个制作区。再加上内部区域,管理区域。共四个区域。 -
创建三个区域的IP范围
10.0.100.0/24(DMZ区) 10.0.148.0/24(制作区) 10.0.115.0/24(内网区)
该DMZ区域的beta.hack.com具有两张网卡,第一个是10.0.100.10,第二个是10.0.148.111(落在了制作区的地址范围内)
制作区的靶机同理,两张网卡,第二个地址又落在了其他区
pentester机器:这是测试者的机器,在家中。路由配两个地址,一个内网(桥接,用自己的机器连接WIFI),一个外网(NAT 网络,范围设置100,10.0.100.0/24),假设公司授权你做渗透测试,发你一个VPN,连接该VPN以后得到的外网地址刚好落在该公司的DMZ区域内,这样你才能开始测试嘛,既然公司给你授权,地址首先得通。
- 测试者靶机有两个账号
kali kali非root权限 root root
使用kali kali登录
ifconfig
su root
exit
sudo ifconfig
信息收集,主被动
firefox 谷歌 builtwith builtwith.com
hackerinthehouse.com
谷歌 hackerinthehouse
如果公司授权,他们会给一份工作说明,工作范围,已经包含有关任务的大量信息。因此,被动收集就不需要了
sudo su root
whatweb beta.hackerinthehouse.com
得到wordPress和PHP,Apache,可以作为靶机目标。
wordPress是一个内容管理系统CMS。
网站:总是有两种东西,CMS或者自定义编码的页面。
流行的CMS:WordPress,Joomla或Drupal开放式CMS
wpscan joomscan drupalscan
谷歌PHP 5.5.9 得到exp,一个个尝试。如果最后发现都不行,就在报告中写道我都测试了,您的系统是安全的。如果不安全,就把细节写上。
因此,这不是只教攻击,而是证明系统是否安全的工作,如果没有攻击细节只声明系统不安全,纯属诈骗。没有细节就编不出具体的防御代码或者启用,弃用某些函数,开启某些功能与配置,开发部的工作人员也就不知道怎么防御它。如果没有这个最基本的技能操作,那最基本的工作岗位您也就无法任职,那工作的意义何在?培训与学习的意义又何在?教渗透测试的目的不在于攻击,而在于任职。就目前的技术,拿去攻击现网的企业,都不用担心什么损失,分分钟叫你品尝一下什么叫牢饭。学点皮毛就攻击现网这叫作死,不叫攻击。因此,大家仅在靶机中实验,未经授权严禁测试任何现网中的机器。这不是在说法律,而是在告诉大家,不要秀自己这点可怜的知识面去装B,丢人,人家安全不行可以直接报警啊,你这点技术怎么跑路都是一个问题就想着开始跟网警斗法了?学了以后,应该继续积累新的知识,让自己能够胜任安全行业的工作才是,就不要拿那些乱七八糟的网站来试手了。
慢慢学,慢慢练,有点基础以后有实战的地方,github搜安全公众号,挨个的加上。让各位大佬带带自己一起做有授权的单子,一起分个红,它不香吗?收入超出你的想象力好吧。所以,别攻击现网,现在还不是时候,更不要只学了一个什么扫描器就开始四面八方的开火好吧。。浪费学习的时间。。
- 选择WordPress 5.1.4测试
谷歌:how to pentest wordpress
wpscan --h
wpscan -h
在WordPress上继续安装的软件叫插件
wpscan --url beta.hackerinthehouse.com -e vt,vp
xml PRC是一个可以用来与网站进行对话的接口,使用命令行。也就是界面或使用web查询。不需要继续登录网站,输入密码等来编辑内容。通过命令行或其他方式访问网站。
有助于暴力破解,或者向网站下达命令,但需要正确的密码。
上传功能已打开,可以访问里面的内容,万一有敏感数据,就可以说此漏洞的严重性很高。如果没有什么敏感信息,漏洞等级也就不高,可以命名为:信息泄露。
调整此漏洞的风险等级主要看与业务是否强相关。
加号是信息,减号是漏洞
wpscan --url sagarbansal.com -e vt,vp
如果安全会提示
NO plugins found
no themes found
server: cloudflare 什么是cloudflare?它是CDN
并非每个网站都会使用防火墙,如果存在漏洞,就会显示。很多企业都不知道怎么用防火墙,即使用也存在配置错误。
- 在网站中找不到漏洞以后,最后使用蛮力
一年之内不可能破解15位的密码。爆破会产生庞大的请求,因此为了减小请求而使用基于字典的方式。离线破解可以使用暴力。
因此,您必须衡量密码的复杂度与时间的风险管理,一般15天换一次密码。
wpscan --url beta.hackerinthehouse.com -e u
wpscan --url mytutorialrack.com -e u
sudo su root
locate rockyou
cp /usr/share/wordlists/rockyou.txt.gz /home/kali/Desktop/
cd /home/kali/Desktop/
ls
wc rockyou.txt 有1400万多个字典,如果网站有限制输入次数就
如果这个网站是一个测试版的,还没有发布与营业,先测试它的安全性确认安全以后再开始营业
cewl -h 这样的话,你在网上就找不到信息泄漏的字典密码,通用的也不行。可以考虑根据网站中存在的单词,自动搜索并生成字典。
cewl -m 12,20 假设12-20密码长度
cewl -m 12,20 beta.hackerinthehouse.com
nano pass.txt 将生成的密码粘贴进来
wc pass.txt
wpscan --url beta.hackerinthehouse.com -U developer -P pass.txt //密码创建者会不会从网站存在的关键词生成?
wpscan --url beta.hackerinthehouse.com -U developer -P rockyou.txt //密码创建者会不会用常见的密码?
密码创建者会不会突发奇想,以一个东西为基值,在此基础上“基因突变”生成新的助记型的密码?比如sec875 密码想设复杂但又容易记:s@c8@5 , (sec875)。类似这样的加一些修饰符。
这进一步带来,以前信息泄漏以后,用户去更改自己的密码,他又想设置复杂点又想容易记一些,极其可能使用这种基因突变式的思维来创建“新的密码”。
谷歌 transmute.py download
github.com/eshork/transmute
sudo su
cd /home/kali/Desktop/
./transmute.py -h
./transmute.py -L pass.txt //基于pass.txt密码生成突变型密码
./transmute.py -L pass.txt >new
wpscan --url beta.hackerinthehouse.com -U developer -P new
火狐 beta.hackerinthehouse.com/wp-login.php 登录后台