1.准备好客户端和服务端两台电脑
如果只有一台电脑,可以切换虚拟机来操作。 一台做为client
客户端,一台为server
服务端。
2.下载ncat包
apt install ncat
3.文本传输
server nc -l -p (端口号)
client nc -nv (服务端的ip) (端口号)
此时无论是在客户端还是服务端机子上发送消息,都是可以看到的,就类似于我们qqwx聊天一样。
4.文件传输
首先把两台机器都放在/tmp
下,并把/tmp
下的所有内容删除。
client
在客户端中准备/etc/passwd
文件,拷贝到/tmp
下。(等下准备将这个文件传给服务端~)
server
在服务端输入命令,等待客户端发送文件,并且将发过来的文件重命名为test.txt
,默认应该就是放在你刚刚在的这个目录(比如说我是/tmp
)。 (我没有尝试过反过来可以不可以233) 这里有个小tips,>
是使用在接收方的命令中,<
是使用在发送方的命令中
nc -lp (端口号) > (文件路径/文件名)
如图,等待接收ing
client
在客户端输入命令,传输passwd
文件给服务端
nc -vn (服务端的ip) (端口号) < (文件路径)
如图,已经发送过去了。
再来看服务端这边,已经不再是等待状态了。 查看/tmp
下文件,也多了一个test.txt
。 (因为我太久没有点击,重新输入密码进来的,然后/tmp
也多了一个文件)
可以cat
一下两个文件的内容,是完全一样的,这里就不加图了。
5.非加密远程控制
server nc -lp (端口号) client nc -vn (服务端ip) (端口号) -c bash
server
此时在服务端可以查看并操作客户端了,并且一般操作,客户端是没有任何提示语句的,老师演示的时候给我们看了只有报错的时候才会显示,这里我就不截客户端部分了。
我们来做一个题~ 使用ncat远程控制功能,通过server去远程控制client,查找所属用户为student,所属组为student,名字为student的文件,如果有将其拷贝到/tmp/cp 文件夹下,此目录属于student的组,在这个组内的人是可读可写,可访问的,但是其他用户没有任何权限,并且之后在这个目录下创建的任何文件其所属组都是student。
(首先把两台机子/tmp
文件下的文件都删掉,方便观察) 连接步骤略。 以下命令都是在服务端机子上操作。
我们一步一步来,先找所属用户为student,所属组为student,名字为student的文件
find / -user student -a -group student -a -name student
然后要将有的拷贝到/tmp/cp
文件夹下 我们先创文件夹,然后上面的那个代码合并成下面这个。
mkdir /tmp/cp find / -user student -a -group student -a -name student -exec cp -pr {} /tmp/cp \;
因为没有提示语句,所以我直接进目录查看了,可以看到是复制过来了一个student
的文件。 然后就是给/tmp/cp
文件夹设置题目要求的权限。 /tmp/cp
属于student的组
getfacl (文件路径) #查看文件的权限信息 chgrp (用户名) (文件路径) #修改文件所属组
在这个组内的人是可读可写,可访问的
chmod g+rwx /tmp/cp
但是其他用户没有任何权限
chmod o-rwx /tmp/cp
并且之后在这个目录下创建的任何文件其所属组都是student
chmod g+s /tmp/cp
至此,本题已完成。
6.加密远程控制
先在客户端输入命令,再去服务端输入命令,并且这里需要下ncat包。 client
apt install ncat ncat -c bash --allow (允许访问的ip) -vnl (端口号) --ssl
server
ncat -nv (需要控制的ip) (端口号) --ssl
可以看到已经连上被控制的电脑ip了。
7.端口监听
服务端启动对指定端口的数据包监听 server
tcpdump -i eth0 tcp port (端口号)
利用客户端连接该端口,连接不上不要紧,主要是连接这个过程会发送数据包,这样就可以在服务端看到这个数据包被监听了。 client
nc -vn (服务端ip) (端口号)
server
此时看服务端,可以看到刚刚的这次连接数据包监听结果。