首页 > 其他分享 >渗透测试全流程

渗透测试全流程

时间:2024-07-11 15:58:12浏览次数:11  
标签:log 渗透 流程 信息 漏洞 测试 使用 攻击者 日志

1 信息收集

渗透测试中的信息收集是关键的初始阶段,其作用在于系统性地获取目标系统、网络或应用的详细信息,包括域名及子域名信息、目标网站系统、CMS指纹、目标网站IP 、开放的端口等

1.1 在Kali机中使用命令进行信息收集

  命令的具体使用请参考另外一篇文章
  网址:Kali机操作和信息收集相关命令

  • ping命令

ping命令通常用来检测目标主机是否存活,或根据ping返回的TTL值来判断对方所使用的操作系统及数据包经过路由器数量

  • nslookup命令

nslookup命令通常用来获取主机名或IP地址相关的信息

  • dig命令

dig命令通常用来从DNS域名服务器查询主机地址信息,获取到详细的域名信息

  • arp-scan命令

arp-scan使用 ARP 协议来发现本地网络上的 IP 主机并对其进行指纹识别

  • whois

whois命令用来查询域名是否已经被注册,以及注册域名的详细信息

  • nmap

nmap是一个十分常用的命令,通过向指定的主机发送数据包分析获得相关信息

  • dirsearch

dirsearch命令一般用于扫描网站的敏感文件和目录从而找到突破口


1.2 通过信息收集网站获取信息

  网站的具体使用语法请参考另外一篇文章
  网址:信息收集网站和漏洞平台

  • 天眼查

天眼查是一款专注于企业信息查询和商业调查的在线工具,提供全面的企业背景、股东信息、法律诉讼、财务状况等数据。它帮助用户了解企业的真实情况,进行信用评估和风险管理,为商业决策提供支持。通过天眼查,用户可以便捷地获取权威、详尽的企业信息,提升商业透明度

  • FOFA

FOFA提供强大的搜索和过滤功能,用户可以轻松检索各种互联网资产,如服务器、网站、设备等,通过收集和分析数据,发现潜在的安全风险和漏洞

  • 360网络空间测绘

360网络空间测绘提供全面的网络空间可视化和安全情报,为企业和安全研究人员提供强有力的支持,提升网络安全防护能力


1.3 使用工具收集信息

  • Burp Suite

通过BurpSuite工具同样可以获取一些服务器的信息,如运行的Server类型及版本、PHP的版本信息等,针对不同的Server 可以利用不同的漏洞进行测试


详细使用教程可以参考我写的另外一篇文章:
网址:Burp Suite使用教程【入门】

  • Goby

Goby是一款信息收集和漏洞扫描工具,广泛用于渗透测试和网络安全评估。它自动扫描网络设备、应用程序和服务,提供详细的资产信息和安全漏洞


官方地址:https://gobysec.net/

  • Layer子域名挖掘机

Layer子域名挖掘机是一款用于发现和收集目标域名子域名的工具


下载地址:https://github.com/euphrat1ca/LayerDomainFinder

  • whatWeb

whatWeb 是一种开源的网页指纹识别工具,通过分析网站的 HTTP 响应、HTML 代码和其他特征,whatWeb 能够识别网站所用的内容管理系统(CMS)、服务器软件、脚本语言、分析工具等信息


一般Kali机中自带,不需要额外下载


1.4 常用端口信息收集及攻击方向

端口号端口说明攻击方向
21/22/69FTP/tFTP 文件传输协议允许匿名的上传、下载、爆破和嗅探操作,FTP和tFTP常因配置不当而易受攻击,未加密传输更是存在数据泄露风险
22SSH远程连接爆破、SSH 隧道及内网代理转发、文件传输,强力破解弱口令可能导致服务器完全失陷
23Telnet远程连接爆破、嗅探、弱口令,未加密的Telnet连接易被中间人攻击捕获敏感信息
80/443常见的Web服务端口Web 攻击、爆破、对应服务器版本漏洞,常见Web服务容易暴露在互联网,攻击者可以利用已知漏洞和配置不当进行入侵
139Samba服务爆破、未授权访问、远程代码执行,通过Samba漏洞可以在网络中横向移动,提升攻击者权限
389LDAP目录访问协议注入、允许匿名访问、弱口令,LDAP若配置不当,可导致信息泄露和进一步渗透
3389RDP远程桌面连接shift后门(需要Windows Server 2003 以下的系统)、爆破,RDP暴露在互联网易被爆破攻击利用
3306MySQL 数据库注入、提权、爆破,通过SQL注入漏洞,攻击者可以获取数据库控制权和提升权限
1433MSSQL 数据库注入、提权、SA 弱口令、爆破,弱口令和注入漏洞易被利用进行数据库控制和提权
5432Postgre SQL 数据库爆破、注入、弱口令,弱口令和注入漏洞可以被利用进行数据库访问和控制
27017/27018MongoDB爆破、未授权访问,未加固的MongoDB实例易被攻击者利用进行数据窃取
25SMTP 邮件服务邮件伪造,未加固的SMTP服务易被利用进行邮件伪造和垃圾邮件发送
110POP3 协议爆破、嗅探,未加密的POP3连接易被中间人攻击捕获邮件内容
53DNS 域名系统允许区域传送、DNS 劫持、缓存投毒、欺骗,配置不当的DNS服务易被利用进行域名劫持和投毒攻击
161SNMP 协议爆破、搜集目标内网信息,配置不当的SNMP服务易被利用进行网络信息搜集

2 漏洞探测

在获取了充足的信息之后就可以利用这些信息去探测目标是否包含漏洞,这一部分将主要讲解常见的漏洞和常见的漏洞探测工具,如果想了解更多可以查看另外一篇文章:
网址:OWASP 十大常见漏洞

  • 常见漏洞
漏洞名称简要介绍
SQL注入通过向SQL查询中插入恶意代码来操纵数据库操作
XSS跨站脚本在网页中插入恶意脚本代码以窃取用户数据或操纵网页内容
CSRF跨站请求伪造利用用户的身份信息,向受信任网站发起未经授权的请求
XXE漏洞通过XML外部实体注入攻击服务器,可能导致敏感数据泄露
SSRF服务端请求伪造攻击者通过服务端向内部或外部网络发送恶意请求
文件包含漏洞通过包含服务器上的任意文件来执行恶意代码
文件上传漏洞允许攻击者上传恶意文件并在服务器上执行
文件解析漏洞在文件解析过程中触发的安全漏洞,可能导致代码执行或信息泄露
远程代码执行漏洞允许攻击者在目标服务器上执行任意代码
CORS跨域资源共享漏洞由于配置不当,允许恶意网站访问受限资源
越权访问漏洞用户能够访问其权限之外的数据或功能
目录浏览漏洞允许攻击者浏览和读取服务器上的任意文件
Struts2漏洞Apache Struts2框架中的漏洞,可导致远程代码执行
JAVA反序列化漏洞在反序列化过程中执行恶意代码,通常用于远程代码执行攻击

  • 常见漏洞探测工具

  AWVS:

AWVS(Acunetix Web Vulnerability Scanner)是一款专业的网络应用安全扫描工具,用于检测和评估网站的安全漏洞。它能够自动扫描网站和Web应用,识别常见的安全漏洞如SQL注入、跨站脚本(XSS)、跨站请求伪造(CSRF)、文件包含漏洞等


详细使用教程:AWVS安装和使用教程


  Nessus:

Nessus 是由 Tenable 开发的漏洞扫描工具,用于检测网络设备和系统中的安全漏洞和配置错误。它提供详细的扫描报告和修复建议,帮助组织修补安全威胁。Nessus 支持多种操作系统和应用,常用于企业安全评估和合规性审计


详细使用教程:Nessus安装和使用教程


3 漏洞利用

常见的漏洞利用工具有 Metasploit 、 sqlmap 、 Beef-XSS 等工具,具体的使用教程请查看另外一篇文章:
链接:SQLmap和Beef工具使用教程

  • SQLmap

SQLmap 是一个开源的自动化SQL注入工具,能够自动检测目标URL的SQL注入漏洞,并通过注入SQL语句获取数据库信息,如数据库结构、表数据、用户凭据等


  • Beef-XSS

Beef-XSS是一款开源的浏览器漏洞利用框架,专门用于Web浏览器的安全测试。它通过钓鱼链接或恶意代码将目标浏览器挂钩到框架中,允许测试人员执行各种攻击脚本,分析和利用浏览器及其插件中的安全漏洞,从而帮助评估和提升Web应用的安全性


  • Metasploit

Metasploit是一个开源的渗透测试框架,被广泛用于计算机安全领域。它提供了一个强大的平台,用于开发、测试和利用安全漏洞。Metasploit包含大量的漏洞利用模块、后渗透模块和辅助工具,使安全研究人员和渗透测试员能够模拟真实的攻击场景,评估系统和网络的安全性


具体的使用教程可以查看另外一篇文章:metasploit使用和反弹shell


  • 文件上传漏洞

文件上传漏洞是一种Web应用漏洞,允许攻击者上传恶意文件到服务器。利用这种漏洞,攻击者可以上传包含恶意代码的脚本文件,如木马或后门程序,从而在服务器上执行任意命令、篡改数据或获取敏感信息


详细教程可以看另一位大神写的文章:Web安全-文件上传漏洞与WAF绕过


  • 一句话木马

一句话木马是一种通过在受害者的Web应用中插入一行恶意代码来实现远程控制的木马程序,这种木马通常嵌入到网站的脚本文件或数据库中,允许攻击者在不被察觉的情况下执行任意命令、上传文件或进一步扩展攻击


详细教程可以看另一位大神写的文章:Web安全-一句话木马


4 内网转发

内网转发是一种网络技术,通过一台已受控的内网机器,将外部流量转发到内网中的其他目标设备。通常用于绕过防火墙或其他安全措施,使外部攻击者能够访问内部网络资源


详细使用可以查看另外一篇文章:内网转发教程

  • 反弹shell

反弹Shell用于通过外部服务器与受害者机器建立连接,控制受害者的计算机


  • 端口转发

端口转发可以将一个网络端口上的流量重定向到另一个端口或IP地址。它常用于绕过防火墙限制、保护内网设备或为外部用户提供内部网络服务的访问


  • SSH反向代理

SSH 反向代理通过 SSH 隧道将内网服务暴露给外部访问


5 横向移动

横向移动是攻击者在获得初始访问权限后在内网中扩展其控制范围的关键步骤

  • 远程桌面协议
    RDP是一种用于连接和控制远程计算机的协议。如果攻击者获得了合法的凭据,可以通过RDP访问和控制其他主机

方法:
使用合法的用户名和密码登录目标主机
配置目标主机以允许RDP连接(如果尚未启用)


  • Windows管理工具(WMIC)
    WMIC是一种用于管理Windows系统的命令行工具。攻击者可以使用WMIC在远程主机上执行命令

方法:
使用WMIC工具远程执行命令,如:wmic /node:<target_ip> process call create “cmd.exe /c ”


  • 远程服务(PsExec)
    PsExec是Sysinternals工具套件的一部分,用于在远程主机上执行命令。攻击者可以利用PsExec进行横向移动

方法:
使用PsExec在远程主机上执行命令,如:psexec \<target_ip> -u -p cmd.exe


  • Windows远程管理(WinRM)
    WinRM是一种基于HTTP/HTTPS的远程管理协议。攻击者可以使用WinRM远程执行命令

方法:
使用PowerShell或其他工具通过WinRM执行远程命令,如:Invoke-Command -ComputerName <target_ip> -ScriptBlock { }


  • 共享文件夹(SMB协议)
    攻击者可以利用Windows的共享文件夹通过SMB协议在网络中移动和传播

方法:
使用SMB协议在目标主机上访问和执行文件
复制恶意文件到共享文件夹并远程执行


  • 实战演练工具

Metasploit: 渗透测试框架,提供各种横向移动模块和后渗透模块
使用Metasploit模块如psexec或wmic_exec进行远程命令执行


Cobalt Strike: 高级威胁模拟工具,支持各种横向移动技术
使用Cobalt Strike的beacon模块进行远程命令执行和凭据窃取


Empire: 基于PowerShell的后渗透框架,支持多种横向移动技术
使用Empire的模块如invoke_wmi或invoke_psexec进行横向移动


6 权限维持

权限维持旨在确保攻击者在初始入侵成功后能够长期保留对目标系统的访问,包括安装后门程序、创建隐藏用户账户、修改系统配置文件或注册表、利用合法软件中的漏洞,以及定期更新和隐藏恶意软件。这些方法使得攻击者可以在系统中保持隐蔽的存在,从而进一步执行数据窃取、间谍活动或其他恶意操作

6.1 Windows 权限维持的方法

详细使用请参考参考文章:内网渗透-windows权限维持的方法

  • 影子账户:创建隐藏管理员用户并通过修改注册表隐藏
  • 粘滞键后门:替换 sethc.exe 文件以启用未登录情况下的 cmd 窗口
  • Logon Scripts 后门:利用登录脚本在用户登录时运行恶意程序
  • 注册表自启动后门:在注册表中添加启动项以便系统启动时运行后门程序
  • 屏幕保护程序后门:将屏幕保护程序替换为恶意程序以在系统闲置时运行
  • 计划任务后门:使用 schtasks 命令设置定时任务自动运行后门程序
  • 服务自启动后门:将恶意程序注册为服务并设置自动启动
  • 黄金票据:利用 krbtgt 的 NTLM Hash 伪造 TGT,实现持久化访问
  • 白银票据:伪造 ST 以访问特定服务,不经过 KDC 验证
  • BITSAdmin:利用后台智能传送服务下载并执行恶意程序
  • CLR 劫持:修改注册表以在执行 .NET 程序时先运行恶意 DLL

6.2 Linux 权限维持方法

详细使用请参考文章:渗透测试基础- - -linux权限维持应急

  • 隐藏文件:创建隐藏文件,命名以 “.” 开头(例如 .test.txt),使用 ls -al 查看
  • 隐藏文件时间戳:使用 touch -rtouch -t 修改文件时间戳
  • 隐藏权限:用 chattr +i 锁定文件,防止删除或修改;使用 lsattr 查看属性,chattr -i 解锁
  • 隐藏历史操作命令
    • 技巧一:使用 [space]set +o history 临时关闭历史记录
    • 技巧二:用 history -d [num] 删除指定命令,或 sed -i '150,$d' .bash_history 删除部分历史记录
  • 进程隐藏:使用 libprocesshider 通过 LD_PRELOAD 劫持系统函数,使进程不可见

7 痕迹删除

详细使用请参考文章:内网渗透-Windows&Linux痕迹清除

7.1 Windows 痕迹清除

  • 查看路径

    • 事件查看器 -> Windows 日志
    • Win+R,输入 eventvwr.msc
    • 保存路径:C:\Windows\System32\winevt\Logs
  • 清理方法

    • 使用 wevtutil 命令查看和清理日志:
      wevtutil qe Security /f:text /rd:true /c:10 # 获取最近十条日志
      wevtutil qe Security /f:text /c:10 # 获取前十条日志
      wevtutil epl Security 1.evtx # 导出所有日志
      wevtutil cl Security # 清除 Security 日志
      wevtutil cl System # 清除 System 日志
      wevtutil cl Application # 清除 Application 日志
      wevtutil cl "Windows PowerShell" # 清除 PowerShell 日志
      
  • meterpreter 清理日志

    • 删除所有渗透过程中使用的工具。
    • 删除添加的账号:net user username /del
    • 清除应用程序、系统、安全日志:clearev
    • 停止日志记录:使用 Invoke-Phant0m 脚本

7.2 Linux 痕迹清除

  • SSH 远程登录日志

    • 成功登录/登出:last /var/log/wtmp
    • 登录失败尝试:lastb /var/log/btmp
    • 最近登录记录:lastlog /var/log/lastlog
    • 当前登录用户信息:w, who /var/log/utmp
  • Web 日志

    • 访问日志路径:

      • /var/log/httpd/access.log
      • /var/log/nginx/access.log
      • /var/log/apache2/access.log
    • 清理方法:

      grep -v "shell.php" /var/log/nginx/access.log > /tmp/a.log && cat /tmp/a.log > /var/log/nginx/access.log
      sed -i -e "/dvwa/d" ./access.log # 删除包含 "dvwa" 的日志
      sed -i -e "/192.168.231.147/d" ./access.log # 删除与特定 IP 相关的日志
      
  • 定时任务日志

    • 路径:
      • /var/log/cron:系统定时任务相关日志
      • /var/log/secure:记录验证和授权相关的信息
  • 操作历史记录

    • 查看和清除历史记录:
      history -w && history -c && > .bash_history # 清空所有历史记录
      history -d 111 # 删除指定行的历史记录
      sed -i "100,$d" .bash_history # 删除100行以后的历史记录
      
    • 开启无痕模式:
      set +o history # 禁用命令历史记录
      set -o history # 恢复命令历史记录
      

标签:log,渗透,流程,信息,漏洞,测试,使用,攻击者,日志
From: https://blog.csdn.net/weixin_44512510/article/details/140145616

相关文章

  • 遥控器Tab键切换时按键音流程
    用遥控器进行界面的tab切换时,会有音量出现,梳理下tab切换时按键音的逻辑。基于AndroidU的代码。从ViewRootImpl的processKeyEvent方法开始,这个方法用于处理按键事件。首先看下该方法的调用堆栈。atandroid.view.ViewRootImpl$ViewPostImeInputStage.processKeyEvent(ViewRo......
  • 黑龙江等保测评有哪些具体流程
    黑龙江等保测评的具体流程黑龙江等保测评的流程通常包括以下几个步骤:1.系统定级:根据业务、资产、安全技术、安全管理等方面的情况,对企业的安全防护水平进行评估,并编制定级报告。2.系统备案:持定级报告及登记表到当地的公安网监部门办理登记手续。3.建设及整改:参考定级要求及......
  • 图生图流程解析
    一、介绍本篇来介绍下图生图的流程,图生图只是在文生图基础上做了一点点的改动,再结合原理查看,你会发现和文生图类似。二、流程步骤回顾一下上一篇的文生图的完整流程采样器通过模型形成一个Latentspace我们输入的参数有textprompt,通过clip编码器,是由模型提供的,变成token......
  • 首席数据官CDO证书报考指南:方式、流程、适考人群与考试难度
    在信息泛滥的今天,数据已转变为企业不可或缺的宝贵资源。面对海量的信息,如何提炼出价值,为企业带来实质性的收益?首席数据官(CDO)认证的出现正是为了满足这一需求,它不仅是个人专业能力的体现,也是引领企业迈向数据化未来的关键。首席数据官的角色和重要性作为企业中的核心人物,首席......
  • 中移ML307R(4G Cat1,C-SDK,OpenCPU)模组学习开发-AT指令测试
    <p><iframename="ifd"src="https://mnifdv.cn/resource/cnblogs/ML307R_OPEN"frameborder="0"scrolling="auto"width="100%"height="1500"></iframe></p>   AT指令手册(串口默认通信波特......
  • Mysql中存储过程、存储函数、自定义函数、变量、流程控制语句、光标/游标、定义条件和
    场景存储过程存储过程是一组为了完成特定功能的SQL语句集合。使用存储过程的目的是将常用或复杂的工作预先用SQL语句写好并用一个指定名称存储起来,这个过程经编译和优化后存储在数据库服务器中,因此称为存储过程。当以后需要数据库提供与己定义好的存储过程的功能相同的服务时,......
  • 测试气味-整洁单元测试
    测试气味TestSmells-整洁单元测试背景"Codesmell"是软件开发中的一个术语,指的是代码中可能表明存在问题的某些迹象或模式。这些迹象本身并不表示代码一定有错误,但它们通常表明代码可能难以理解、维护或扩展。Codesmells可以视为一种警告,提示开发者需要进一步检查代码以确定......
  • 大模型备案全网最详细流程【附附件】
    本文要点:大模型备案最详细说明,大模型备案条件有哪些,《算法安全自评估报告》模板,大模型算法备案,大模型上线备案,生成式人工智能(大语言模型)安全评估要点,网信办大模型备案。大模型备案安全评估流程详细说明,见下图:大模型安全评估流程图算法备案安全评估流程详细说明,见下图:算......
  • 推荐一款Python接口自动化测试数据提取分析神器!
    1、引言在处理JSON数据时,我们常常需要提取、筛选或者变换数据。手动编写这些操作的代码不仅繁琐,而且容易出错。Python作为一个功能强大的编程语言,拥有丰富的库和工具来处理这些数据。今天,将介绍一个实用的Python库——JMESPath,它为提取JSON数据提供了简洁而强大的语法。2、JMESP......
  • 微信小程序 - 选项卡切换 - 视频播放 - (图解+代码流程)
    目录一、选项卡切换效果图1.选项卡切换.wxml代码2.选项卡切换.wxss代码3.选项卡切换.js代码neirclik函数onLoad函数ctqis函数二、视频播放效果图1.视频播放.wxml代码视频组件1.视频播放.wxss代码3.视频播放.js代码**随机颜色生成函数getRandomColor()****页......