首先很重要的是授权 ~ 首先很重要的是授权 ~ 首先很重要的是授权 ~
之前也看过很多关于渗透测试的文章,但是因为一些现实因素等等问题,没(bu)有(gan)真正实操,最近由于一次偶然的机会,什么都不会的我接到了一个渗透测试项目(当然是授权的...
然后就把最近学到的一些东西,和一些小感悟,小技巧记录下来,由于一些特殊原因,本文中不涉及到渗透过程中的任何敏感信息
首先跟我一样菜当然是装不出大神的,当然还是多学,多积累最重要,但是既然都开始了,就不能显得太划水,下面的操作不能让你成为大神,但是可以让你在整个过程中"忙"起来
相比于网上那些很详细的手把手渗透教学,本文主要写一些到 xx公司 直接内网渗透测试的那种简要步骤
所以这一小节主要写给那些才接触安全,或者没有真正做过渗透测试的人吧
大佬轻喷,如果有错误的地方也欢迎批评指正...
Nessus
AWVS
Appscan
burpsuite
sqlmap
Github & Google 搜索框
Hydra
自己收集的一大堆 CVE 的 exp
各个中间件漏洞的利用工具
工具当然是越多越好
弱密码是一个亘古不变的问题,可能公司后台弱密码改掉了,可是一个公司这么多员工,可能有员工没有改自己原先的弱密码...或者公司一些设备没有改掉默认密码...所以一个好用的密码字典显得尤其关键
配合上 Hydra 的使用,常常能够有不错的收获
提供以下几个生成字典方式
Github上有很多收集好的字典
https://github.com/rootphantomer/Blasting_dictionary
更多的可以在Github上自行寻找
somd5 提供的字典:
https://www.somd5.com/download/dict/
如果你需要你接进内网进行测试的时候,通常会要求你手动配置IP,如果不会配置就会像我一样很丢人...
右键点击:
点击:
点击:
右键点击当前你链接,选择属性:
双击:
填入他们给你提供的IP:
本着划水也要划得合理一点的态度,如果刚好你也是第一次做渗透测试,就算不知道具体干什么,过程中也不要显得太无所事事了...
下面的操作适用于在放开中间一切安全设备(各种防火墙等...),所以作为一个技术不是很高超的新手,合理利用手里的现有工具就显得至关重要
很多大佬都说过渗透测试的本质是信息收集,信息收集的步骤和手段在先知已经有很多专门文章详细的阐述过
信息收集
一般去这种公司帮忙做渗透他们都会给你一定的资产(如内网IP等),但仅仅有这些是不够的。所以完成以下的步骤,也可以帮助你收集一些信息...
首先把资产里所有IP丢进 Nessus
Nessus 本身扫描的过程中也会包含端口,但是如果你嫌慢你可以使用nmap扫描...
nmap -p 1-65535 -T4 -A -v <IP>
你嫌nmap慢可以使用 masscan...
masscan <IP> -p0-65535 - rate 1000000
扫出来了Web的端口,如80,8080,443等(具体的还得具体看),丢进AWVS
含有 ftp,ssh,mysql的端口可以丢进 hydra 爆破
1、破解ssh: hydra -l 用户名 -p 密码字典 -t 线程 -vV -e ns ip ssh hydra -l 用户名 -p 密码字典 -t 线程 -o save.log -vV ip ssh 2、破解ftp: hydra ip ftp -l 用户名 -P 密码字典 -t 线程(默认16) -vV hydra ip ftp -l 用户名 -P 密码字典 -e ns -vV 3、get方式提交,破解web登录: hydra -l 用户名 -p 密码字典 -t 线程 -vV -e ns ip http-get /admin/ hydra -l 用户名 -p 密码字典 -t 线程 -vV -e ns -f ip http-get /admin/index.php 4、post方式提交,破解web登录: hydra -l 用户名 -P 密码字典 -s 80 ip http-post-form "/admin/login.php:username=^USER^&password=^PASS^&submit=login:sorry password" hydra -t 3 -l admin -P pass.txt -o out.txt -f 10.36.16.18 http-post-form "login.php:id=^USER^&passwd=^PASS^:<title>wrong username or password</title>" (参数说明:-t同时线程数3,-l用户名是admin,字典pass.txt,保存为out.txt,-f 当破解了一个密码就停止, 10.36.16.18目标ip,http-post-form表示破解是采用http的post方式提交的表单密码破解,<title>中 的内容是表示错误猜解的返回信息提示。) 5、破解https: hydra -m /index.php -l muts -P pass.txt 10.36.16.18 https 10、破解rdp: hydra ip rdp -l administrator -P pass.txt -V
如果扫出445端口可以尝试一下 ms17-010 ,丢进msf里使用相应的模块进行验证
如果扫出3389端口可以尝试一下最新爆出的 CVE-2019-0708 (其实真的挺多都没打补丁的),也能使用msf扫描,还可以使用 360 的漏洞扫描工具,或者使用Github上搜索其他poc进行验证
CVE-2019-0708: Windows RDP远程漏洞无损检测工具下载
然后在各种扫描时候的闲暇时间,你就可以开展对一个网站的常规渗透,先扫个目录(dirsearch和御剑都行),然后熟悉web站点的各个功能点,再根据功能来测试相应的漏洞是否存在...必要的时候burpsuite抓包,一个包一个包的看...
然后在你忙以上操作的时候,就显得不是那么的划水,作为一个脚本小子也要有脚本小子应有的样子
经过一段时间的等待,可能 Nessus 和 AWVS 都扫得差不多了...这个时候如果自己积累不多就寻找一切能够搜索的东西对扫描结果进行辅助验证...
如果是 CVE 就先去msf里面search一下,如果没有也可以去 Github 上找一波可以直接利用的 exp,或者可以看看各大论坛有没有大佬之前分析过...然后跟着手动复现,途中可能遇到很多莫名其妙没有复现成功的问题也可以通过善用搜索进行解决
然后各大论坛真的有很多很多很强的师傅们,每当你遇到过没见到过的漏洞,基本上都会有师傅分析过,吸取他们的经验完成你的渗透任务也是个事半功倍的事情
后知后觉还是积累太少
这个是真的第一次遇到,一开始还以为没什么,一顿操作发现可以看到几乎全部数据(orz...
起因是 Nessus 爆洞
然后我现找了写的很详细的文章进行对该漏洞进行了复现
针对NFS的渗透测试
总体来说就是两步走:
showmount -e <IP>
然后挂载到本地
mkdir <创建一个目录>
mount -t nfs <ip>:/<你要挂的目录> /<你刚刚创建的目录> -o nolock`
这个点真的能拿蛮多数据的
真的好多好多弱密码!
小技巧就是
验证爆破用户名的方法就是看response包里的返回结果...比如存在用户名但是密码不对,就会显示用户名和密码不匹配
,但是如果没有用户名就会显示不存在用户名
然后先根据返回包找到合适的用户名,再用字典有针对性的爆破该用户名的密码。如果没有回显可以通过 忘记密码 等选项来进一步测试,找回过程中如果说用户正确就会进入下一步操作,比如发送短信验证码,如果说没有用户就不会进入下一步操作
首先一般弱密码发生在如下几个地方:
经过渗透测试统计和分析,将弱密码大致分为以下几个情况
永恒之蓝这种东西之前跟着网上的复现过...网上复现文章通常也是在C段然后MSF一把梭...
所以真正当我遇到这个漏洞的时候,用 验证模块(use auxiliary/scanner/smb/smb_ms17_010)验证成功之后就以为成功了,但是利用攻击模块却并不能反弹会话
然后去了t00ls发了一篇求助帖 [【求神问卜】] 求问关于内网中ms17-010的利用
下面的回答都很大程度上帮助到了我...
03使用永恒浪漫攻击,不要使用永恒之蓝,没用。请使用原版,不要用msf的。
然后我了解了一下永恒之蓝的历史,和 NSA 原版攻击工具
具体可看一下我转载的博客 Shadow Brokers - From git clone to Pwned
还有网上一个大师傅的复现真的非常详细(膜orz)
永恒之蓝、永恒浪漫、永恒冠军复现
很可惜的是因为一些时间的原因最后也没能成功利用,很多时候跟漏洞都是一个擦肩而过的距离
这个点给我的感触蛮深的,学sql注入的时候知道sql注入发生的点是: 增 删 改 查,一切与数据库交互的地方都有可能进行sql注入
但是真正实际操作的时候满脑子都是登录框的用户名密码,甚至为了追求速度,养成了指定参数这种不好的习惯,所以连着很久都没有挖出sql注入
最后由于网站的特殊性,该网站忘记密码界面需要提供注册界面的手机号(emm不方便截图...),最后在POST包里面的一个不显眼的参数存在sql注入...
给的体会就是渗透过程中千万不要偷懒,所有get,post的参数凡是你觉得能够和数据库进行交互的,能手测就手测,不能手测就用sqlmap跑
细心一点,每个地方都测试一下
利用了sqlmap最终跑出用户名密码...
还有一点小感悟是 XFF 头注入是真的存在,渗透测试本身的过程就是把不可能的事变为可能,虽然我之前也一直觉得讲 XFF 头的注入是为了绕过gpc的过滤,需要很巧合才能完成,但是在测试一个办公系统的时候,开发跟我说到他们需要记录一下每个人登录的IP。所以为什么构成这种漏洞也就不奇怪了
这个也是真的第一次遇到,教科书般的漏洞...
首先用弱密码进入了网站(手动滑稽)
然后在测试其他漏洞的时候突然发现cookie使用明文传输了用户名密码
第一个想到的当然是XSS,XSS如果能够打到cookie那么将会是很严重的问题...
找了一下午XSS,终于在一个参数那寻找到了一个反射型XSS,且没有设置httponly,最后成功打到了经过base64位加密的用户名密码
Redis因配置不当可以导致未授权访问,被攻击者恶意利用。当前流行的针对Redis未授权访问的一种新型攻击方式,在特定条件下,如果Redis以root身份运行,黑客可以给root账户写入SSH公钥文件,直接通过SSH登录受害服务器,可导致服务器权限被获取和数据删除、泄露或加密勒索事件发生,严重危害业务正常服务。 部分服务器上的Redis 绑定在 0.0.0.0:6379,并且没有开启认证(这是Redis 的默认配置)
Freebus上有篇文章写得很详细...
一把梭进去还是 root 权限...
由于全是敏感数据就不贴图了,Redis的未授权访问遇到的真的挺多...
各种中间件的漏洞的话在各大论坛都有很详细的文章,大家可以自行查阅
一点小感悟就是,很多公司用的版本真的很老很老,而且几乎不打补丁...虽然可能有的时候 IIS ,Nginx那些解析漏洞没办法使用(真的挺难遇到上传点的)...但是一旦看到老一点版本的 JBoss 、 weblogic 就可以利用很多工具了
以下提供一些好用的工具
渗透测试中,工具,经验,还有灵活的思维都是很重要的东西(虽然自己一样也没有)...
最后,根据信安之路的史上最强内网渗透知识点总结,补充了里面的一点东西。
分享给大家 内网渗透之常用命令小结
本文仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担。