热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

给第一次做渗透项目的新手总结的一些感悟

零基础学黑客,搜索公众号:白帽子左一说在前面首先很重要的是授权~首先很重要的是授权~首先很重要的是授权~“为了给家乡做点贡献”男子入侵政府网站…之前

零基础学黑客,搜索公众号:白帽子左一

说在前面

首先很重要的是授权 ~ 首先很重要的是授权 ~ 首先很重要的是授权 ~

图片

“为了给家乡做点贡献” 男子入侵政府网站…

之前也看过很多关于渗透测试的文章,但是因为一些现实因素等等问题,没(bu)有(gan)真正实操,最近由于一次偶然的机会,什么都不会的我接到了一个渗透测试项目

然后就把最近学到的一些东西,和一些小感悟,小技巧记录下来,由于一些特殊原因,本文中不涉及到渗透过程中的任何敏感信息

第一次进行渗透如何优雅的"装"成是个"老手"

首先跟我一样菜当然是装不出大神的,当然还是多学,多积累最重要,但是既然都开始了,就不能显得太划水,下面的操作不能让你成为大神,但是可以让你在整个过程中"忙"起来

相比于网上那些很详细的手把手渗透教学,本文主要写一些到 xx公司 直接内网渗透测试的那种简要步骤

所以这一小节主要写给那些才接触安全,或者没有真正做过渗透测试的人吧

需要准备什么?

能够使用以下工具

Nessus
AWVS
Appscan
burpsuite
sqlmap
Github & Google 搜索框
Hydra

自己收集的一大堆 CVE 的 exp

各个中间件漏洞的利用工具

工具当然是越多越好

一些好用的字典

弱密码是一个亘古不变的问题,可能公司后台弱密码改掉了,可是一个公司这么多员工,可能有员工没有改自己原先的弱密码…或者公司一些设备没有改掉默认密码…所以一个好用的密码字典显得尤其关键

配合上 Hydra 或者其他好用点的爆破工具的使用,常常能够有不错的收获

提供以下几个生成字典方式

Github上有很多收集好的字典

https://github.com/rootphantomer/Blasting_dictionary

更多的可以在Github上自行寻找

可能你需要生成一些特殊定制

在线生成地址:http://xingchen.pythonanywhere.com/index

下面的py脚本你也可以尝试使用

pydictor 下载地址 :https://github.com/LandGrey/pydictor

使用指南:https://www.ddosi.com/b172/

somd5 提供的字典:

https://www.somd5.com/download/dict/

可能你需要学会配置IP

如果你需要你接进内网进行测试的时候,通常会要求你手动配置IP,如果不会配置到了现场就会像我一样很丢人…

右键点击:
在这里插入图片描述

图片

右键点击当前你链接,选择属性:

图片

填入他们给你提供的IP:

图片

新手的渗透测试的打开方式

本着划水也要划得合理一点的态度,如果刚好你也是第一次做渗透测试,就算不知道具体干什么,过程中也不要显得太无所事事了…

下面的操作适用于在放开中间一切安全设备(各种防火墙等…),所以作为一个技术不是很高超的新手,合理利用手里的现有工具就显得至关重要

很多大佬都说过渗透测试的本质是信息收集,信息收集的步骤和手段网上已经有很多专门文章详细的阐述过搞渗透!还不会信息收集的看这里(大佬的秘籍)、SRC信息收集思路分享,很有用!、红队信息收集,超干货!

一般去这种公司帮忙做渗透他们都会给你一定的资产(如内网IP,设备型号等),但一般是不够的。所以完成以下的步骤,也可以在一定程度上帮助你收集一些信息…

全都丢进工具跑

首先把资产里所有IP丢进 Nessus

图片

Nessus 本身扫描的过程中也会包含端口,但是如果你嫌慢你可以使用nmap扫描…

nmap -p 1-65535 -T4 -A -v <IP>

然后你嫌nmap慢可以使用 masscan…

masscan <IP> -p0-65535 - rate 1000000

扫出来了Web的端口&#xff0c;如80,8080,443等&#xff08;具体的还得具体看&#xff09;&#xff0c;丢进AWVS进一步扫描分析

图片

含有 ftp&#xff0c;ssh&#xff0c;mysql的端口可以丢进 hydra 爆破

1、破解ssh&#xff1a;

hydra -l 用户名 -p 密码字典 -t 线程 -vV -e ns ip ssh
hydra -l 用户名 -p 密码字典 -t 线程 -o save.log -vV ip ssh

2、破解ftp&#xff1a;

hydra ip ftp -l 用户名 -P 密码字典 -t 线程(默认16) -vV
hydra ip ftp -l 用户名 -P 密码字典 -e ns -vV

3、get方式提交&#xff0c;破解web登录&#xff1a;

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方式提交&#xff0c;破解web登录&#xff1a;

hydra -l 用户名 -P 密码字典 -s 80 ip http-post-form "/admin/login.php:username&#61;^USER^&password&#61;^PASS^&submit&#61;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&#61;^USER^&passwd&#61;^PASS^:"

&#xff08;参数说明&#xff1a;-t同时线程数3&#xff0c;-l用户名是admin&#xff0c;字典pass.txt&#xff0c;保存为out.txt&#xff0c;-f 当破解了一个密码就停止&#xff0c; 10.36.16.18目标ip&#xff0c;http-post-form表示破解是采用http的post方式提交的表单密码破解,

5、破解https&#xff1a;

hydra -m /index.php -l muts -P pass.txt 10.36.16.18 https

10、破解rdp&#xff1a;

hydra ip rdp -l administrator -P pass.txt -V

如果扫出445端口可以尝试一下 ms17-010 ,丢进msf里使用相应的模块进行验证

图片

如果扫出3389端口可以尝试一下 CVE-2019-0708 (其实真的挺多都没打补丁的)&#xff0c;也能使用msf扫描&#xff0c;还可以使用 360 的漏洞扫描工具&#xff0c;或者使用Github上搜索其他poc进行验证

然后在各种扫描时候的闲暇时间&#xff0c;你就可以开展对一个网站的常规渗透&#xff0c;先扫个目录(dirsearch和御剑都行)&#xff0c;然后熟悉web站点的各个功能点&#xff0c;再根据功能来测试相应的漏洞是否存在…必要的时候burpsuite抓包&#xff0c;一个包一个包的看…

PS&#xff1a;一般对Web站点准备开始渗透时往往都变成了和登陆框的战斗&#xff0c;可以先上来burpsuite跑个几个弱密码字典&#xff0c;然后对登录框进一步测试sql注入&#xff0c;另外&#xff1a;如果有注册账号界面或者忘记密码界面可以尝试验证码爆破&#xff08;4位数验证码就试一下&#xff09;&#xff0c;短信轰炸&#xff0c;任意账号注册找回等&#xff0c;然后记得看一下URL&#xff0c;如果后面的参数为 ?returnurl&#61;xxx.com,可以尝试一下url跳转…

&#xff08;如果经历了大量的工程&#xff0c;对登录框毫无办法&#xff0c;连网站都没进去&#xff0c;无法展开下一步测试的时候&#xff0c;就自己注册一个账号&#xff0c;或者找他们提供一个测试账号叭…

然后在你忙以上操作的时候&#xff0c;就显得不是那么的划水&#xff0c;作为一个脚本小子也要有脚本小子应有的样子

善用搜索进行辅助验证

经过一段时间的等待&#xff0c;可能 Nessus 和 AWVS 都扫得差不多了…这个时候如果自己积累不多就寻找一切能够搜索的东西对扫描结果进行辅助验证…&#xff08;百度、谷歌、Github等…

如果是 CVE 就先去msf里面search一下&#xff0c;如果没有也可以去 Github 上找一波可以直接利用的 exp&#xff0c;或者可以看看各大论坛有没有大佬之前分析过…然后跟着手动复现&#xff0c;途中可能遇到很多莫名其妙没有复现成功的问题也可以通过善用搜索进行解决

然后各大论坛真的有很多很多很强的师傅们&#xff0c;每当你遇到过没见到过的漏洞&#xff0c;基本上都会有师傅分析过&#xff0c;吸取他们的经验完成你的渗透任务也是个事半功倍的事情

浅谈遇到过的有趣的东西

后知后觉还是积累太少

NFS的安全隐患

这个是真的第一次遇到&#xff0c;一开始还以为没什么&#xff0c;一顿操作发现可以看到几乎全部共享的数据&#xff08;orz…

起因是 Nessus 爆洞

图片

然后我现找了写的很详细的文章进行对该漏洞进行了复现

https://www.freebuf.com/articles/network/159468.html

简单来说就是两步走&#xff1a;

showmount -e <IP>

图片

然后挂载到本地

mkdir <创建一个目录>
mount -t nfs <ip>:/<你要挂的目录> /<你刚刚创建的目录> -o nolock

这个点真的能拿蛮多数据的

图片

后面就不贴图了…

弱密码啊弱密码

真的好多好多弱密码&#xff01;

小技巧就是

验证爆破用户名的方法就是看response包里的返回结果…比如存在用户名但是密码不对&#xff0c;就会显示用户名和密码不匹配&#xff0c;但是如果没有用户名就会显示不存在用户名

然后先根据返回包找到合适的用户名&#xff0c;再用字典有针对性的爆破该用户名的密码。如果没有回显可以通过 忘记密码 等选项来进一步测试&#xff0c;找回过程中如果说用户正确就会进入下一步操作&#xff0c;比如发送短信验证码&#xff0c;如果说没有用户就不会进入下一步操作

首先一般弱密码发生在如下几个地方&#xff1a;

  • 没有限制登录失败次数的登录框
  • 没有验证码或者验证码可以绕过(比如采用前端校验)的登录框

经过渗透测试统计和分析&#xff0c;将弱密码大致分为以下几个情况

  • js里有注释掉的测试账号密码
  • 各种登录界面&#xff0c;各种后台存在测试账号&#xff0c;且可以看到敏感数据&#xff08;这就可能是为什么test test 可以进去的原因吧&#xff09;
  • 改了管理后台页面的所有弱密码&#xff0c;但是在其他地方&#xff0c;比如办公系统等&#xff0c;有员工没有改自己的登录密码&#xff0c;经过爆破可以登录员工账号
  • 很多公司采用的系统是外部开发的&#xff0c;外部开发的时候有
  • 测试账号是弱密码&#xff0c;但是可能交接过程中存在一些问题&#xff0c;导致这边公司根本就不知道有这个账号密码
  • 很多设备&#xff0c;比如内网里面的防火墙&#xff0c;直接使用了出厂默认的密码
  • 大家都比较懒&#xff0c;都不想注册很长的密码&#xff0c;然后可能又觉得11111这种不合适&#xff0c;所以就有了那种键盘连键&#xff0c;如qwe123之类的&#xff0c;导致跑一个字典出一堆账号密码

MS17-010能验证但是反弹不了会话

永恒之蓝这种东西之前跟着网上的复现过…网上复现文章通常也是在C段然后MSF一把梭…

所以真正当我遇到这个漏洞的时候&#xff0c;用 验证模块&#xff08;use auxiliary/scanner/smb/smb_ms17_010&#xff09;验证成功之后就以为成功了&#xff0c;但是利用攻击模块却并不能反弹会话

下面的回答都很大程度上帮助到了我…

03使用永恒浪漫攻击&#xff0c;不要使用永恒之蓝&#xff0c;没用。请使用原版&#xff0c;不要用msf的。

然后我了解了一下永恒之蓝的历史&#xff0c;和 NSA 原版攻击工具

具体可以看博客地址&#xff1a;https://p2hm1n.github.io/2019/08/16/Shadow-Brokers-From-git-clone-to-Pwned/#more

还有网上一个大师傅的复现真的非常详细&#xff08;膜orz&#xff09;

永恒之蓝&#xff08;http://note.cfyqy.com/posts/caffa366.html&#xff09;、永恒浪漫&#xff08;http://note.cfyqy.com/posts/caffa366.html&#xff09;、永恒冠军复现&#xff08;http://note.cfyqy.com/posts/caffa366.html&#xff09;

很可惜的是因为一些时间的原因最后也没能成功利用&#xff0c;很多时候跟漏洞都是一个擦肩而过的距离

真的没办法进行sql注入了吗&#xff1f;

这个点给我的感触蛮深的&#xff0c;学sql注入的时候知道sql注入发生的点是&#xff1a;增 删 改 查&#xff0c;一切与数据库交互的地方都有可能进行sql注入

但是真正实际操作的时候满脑子都是登录框的用户名密码&#xff0c;甚至为了追求速度&#xff0c;养成了指定参数这种不好的习惯&#xff0c;所以连着很久都没有挖出sql注入

最后由于网站的特殊性&#xff0c;该网站忘记密码界面需要提供注册界面的手机号&#xff08;emm不方便截图…&#xff09;&#xff0c;最后在POST包里面的一个不显眼的参数存在sql注入…

给的体会就是渗透过程中千万不要偷懒&#xff0c;所有get&#xff0c;post的参数凡是你觉得能够和数据库进行交互的&#xff0c;能手测就手测&#xff0c;不能手测就用sqlmap跑

细心一点&#xff0c;每个地方都测试一下

利用了sqlmap最终跑出用户名密码…

图片
还有一点小感悟是 XFF 头注入是真的存在&#xff0c;渗透测试本身的过程就是把不可能的事变为可能&#xff0c;虽然我之前也一直觉得讲 XFF 头的注入是为了绕过gpc的过滤&#xff0c;需要很巧合才能完成&#xff0c;但是在测试一个办公系统的时候&#xff0c;开发跟我说到他们需要记录一下每个人登录的IP。所以为什么构成这种漏洞也就不奇怪了

COOKIE也敢明文传输用户名密码&#xff1f;

这个也是真的第一次遇到&#xff0c;教科书般的漏洞…

首先用弱密码进入了网站&#xff08;手动滑稽&#xff09;

然后在测试其他漏洞的时候突然发现COOKIE使用明文传输了用户名密码

第一个想到的当然是XSS&#xff0c;XSS如果能够打到COOKIE那么将会是很严重的问题…

找了一下午XSS&#xff0c;终于在一个参数那寻找到了一个反射型XSS&#xff0c;且没有设置httponly&#xff0c;最后成功打到了经过base64位加密的用户名密码

图片

图片

Redis未授权访问

Redis因配置不当可以导致未授权访问&#xff0c;被攻击者恶意利用。

当前流行的针对Redis未授权访问的一种新型攻击方式&#xff0c;在特定条件下&#xff0c;如果Redis以root身份运行&#xff0c;黑客可以给root账户写入SSH公钥文件&#xff0c;直接通过SSH登录受害服务器&#xff0c;可导致服务器权限被获取和数据删除、泄露或加密勒索事件发生&#xff0c;严重危害业务正常服务。

部分服务器上的Redis 绑定在 0.0.0.0:6379&#xff0c;并且没有开启认证&#xff08;这是Redis 的默认配置&#xff09;

这个真的蛮多公司都存在…

一把梭进去还是 root 权限…

由于全是敏感数据就不贴图了

各种中间件的漏洞

各种中间件的漏洞的话在各大论坛都有很详细的文章&#xff0c;大家可以自行查阅

一点小感悟就是&#xff0c;很多公司用的版本真的很老很老&#xff0c;而且几乎不打补丁…虽然可能有的时候 IIS &#xff0c;Nginx那些解析漏洞没办法使用(真的挺难遇到上传点的)…但是如果看到老一点版本的 JBoss 、 weblogic 就可以利用很多工具了

Java RMI 反序列化漏洞检测工具的编写&#xff1a;https://www.anquanke.com/post/id/85681

WeblogicScan&#xff1a;https://github.com/dr0op/WeblogicScan

写在最后

渗透测试中&#xff0c;工具&#xff0c;经验&#xff0c;还有灵活的思维都是很重要的东西&#xff08;虽然自己一样也没有&#xff09;…

有的时候连上了shell之后&#xff0c;然后如同机器人一般的反弹shell&#xff0c;执行 whoami&#xff0c;发现权限不够就进一步查看系统信息&#xff0c;接着尝试各种提权的操作。其实可能有的时候这些操作没有必要&#xff0c;可能最终的目标都是拿到一些信息或者数据。所以根据实际情况判断一下是否需要提权&#xff0c;是一个提高效率不错的办法。

此外&#xff0c;一个 cat ~/.bash_history 命令有时候可能会给你带来一些惊喜

————————————————

在这里插入图片描述
在这里插入图片描述


推荐阅读
  • 在开发过程中,我最初也依赖于功能全面但操作繁琐的集成开发环境(IDE),如Borland Delphi 和 Microsoft Visual Studio。然而,随着对高效开发的追求,我逐渐转向了更加轻量级和灵活的工具组合。通过 CLIfe,我构建了一个高度定制化的开发环境,不仅提高了代码编写效率,还简化了项目管理流程。这一配置结合了多种强大的命令行工具和插件,使我在日常开发中能够更加得心应手。 ... [详细]
  • 在使用SSH框架进行项目开发时,经常会遇到一些常见的问题。例如,在Spring配置文件中配置AOP事务声明后,进行单元测试时可能会出现“No Hibernate Session bound to thread”的错误。本文将详细探讨这一问题的原因,并提供有效的解决方案,帮助开发者顺利解决此类问题。 ... [详细]
  • com.sun.javadoc.PackageDoc.exceptions()方法的使用及代码示例 ... [详细]
  • 本文将详细介绍如何注册码云账号、配置SSH公钥、安装必要的开发工具,并逐步讲解如何下载、编译 HarmonyOS 2.0 源码。通过本文,您将能够顺利完成 HarmonyOS 2.0 的环境搭建和源码编译。 ... [详细]
  • 本文介绍了如何利用Shell脚本高效地部署MHA(MySQL High Availability)高可用集群。通过详细的脚本编写和配置示例,展示了自动化部署过程中的关键步骤和注意事项。该方法不仅简化了集群的部署流程,还提高了系统的稳定性和可用性。 ... [详细]
  • 在List和Set集合中存储Object类型的数据元素 ... [详细]
  • 在 Axublog 1.1.0 版本的 `c_login.php` 文件中发现了一个严重的 SQL 注入漏洞。该漏洞允许攻击者通过操纵登录请求中的参数,注入恶意 SQL 代码,从而可能获取敏感信息或对数据库进行未授权操作。建议用户尽快更新到最新版本并采取相应的安全措施以防止潜在的风险。 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • 如何在任意浏览器中轻松安装并使用VSCode——Codeserver简易指南
    code-server 是一款强大的工具,允许用户在任何服务器上部署 VSCode,并通过浏览器进行访问和使用。这一解决方案不仅简化了开发环境的搭建过程,还提供了高度灵活的工作方式。用户只需访问 GitHub 上的官方仓库(GitHub-coder/code-server),即可获取详细的安装和配置指南,快速启动并运行 code-server。无论是个人开发者还是团队协作,code-server 都能提供高效、便捷的代码编辑体验。 ... [详细]
  • SSL 错误:目标主机名与备用证书主题名称不匹配
    在使用 `git clone` 命令时,常见的 SSL 错误表现为:无法访问指定的 HTTPS 地址(如 `https://ip_or_domain/xxxx.git`),原因是目标主机名与备用证书主题名称不匹配。这通常是因为服务器的 SSL 证书配置不正确或客户端的证书验证设置有问题。建议检查服务器的 SSL 证书配置,确保其包含正确的主机名,并确认客户端的证书信任库已更新。此外,可以通过临时禁用 SSL 验证来排查问题,但请注意这会降低安全性。 ... [详细]
  • ButterKnife 是一款用于 Android 开发的注解库,主要用于简化视图和事件绑定。本文详细介绍了 ButterKnife 的基础用法,包括如何通过注解实现字段和方法的绑定,以及在实际项目中的应用示例。此外,文章还提到了截至 2016 年 4 月 29 日,ButterKnife 的最新版本为 8.0.1,为开发者提供了最新的功能和性能优化。 ... [详细]
  • 本文介绍了如何在 Windows 系统上利用 Docker 构建一个包含 NGINX、PHP、MySQL、Redis 和 Elasticsearch 的集成开发环境。通过详细的步骤说明,帮助开发者快速搭建和配置这一复杂的技术栈,提升开发效率和环境一致性。 ... [详细]
  • 在GitHub上克隆vue-element-admin项目时遇到依赖安装错误
    在 GitHub 上克隆 vue-element-admin 项目后,使用 `npm install` 安装依赖时遇到了未知的 Git 错误。具体错误信息为 `npm ERR! code 128`,提示命令执行失败。这可能是由于网络问题、Git 配置不正确或某些依赖包的仓库地址无效导致的。建议检查网络连接、更新 Git 版本并确保所有依赖项的 URL 正确无误。 ... [详细]
  • 在基于.NET框架的分层架构实践中,为了实现各层之间的松散耦合,本文详细探讨了依赖注入(DI)和控制反转(IoC)容器的设计与实现。通过合理的依赖管理和对象创建,确保了各层之间的单向调用关系,从而提高了系统的可维护性和扩展性。此外,文章还介绍了几种常见的IoC容器实现方式及其应用场景,为开发者提供了实用的参考。 ... [详细]
  • PHP中元素的计量单位是什么? ... [详细]
author-avatar
mobiledu2502929627
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有