Ncat/nc 学习(未完待续)
本篇主要记录ncat/nc工具的学习使用,接下来具体的使用以ncat命令为主,主要是是考虑到nc在各个操作系统存在多个版本,造成很多参数都不能同步使用。
Ncat是由Nmap下的一个新的项目,因此可以直接代替使用。
本文主要参考官方文档以及国光师傅的文章:nc 命令教程
基础使用
参考官网使用手册:Basic usage
ncat的使用主要分为两种模式:connect mode连接模式以及listen mode监听模式
- Connect mode 连接模式
- ncat <host> [<port>]
- ncat会向一个正在监听的服务发起一个连接
- 类似于socket网络编程中的 connect 方法,而发起者可以看作是client客户端
- Listen mode 监听模式
- ncat –listen [<host>] [<port>]
- ncat -l [<host>] [<port>]
- ncat会启动服务并等待连接
- 类似于socket网络编程中的bind和listen方法,监听端可以看作是server服务端
- 默认的host为任何本地接口(INADDR_ANY)
- 默认的port为31337
- 默认只有root用户才能监听低于1024(服务端口)的端口号
- 默认使用TCP连接,且只接收一个连接,并且在客户端退出之后断开连接
- 可以使用
-k, --keep-open
选项来允许多个连接并保持
实验环境
操作系统 | IP地址 | 定位 |
---|---|---|
macOS 12.4 | 192.168.0.100 | 服务端监听 |
kali 5.18.0-kali5-arm64 | 172.16.232.135 | 客户端连接 |
文字交互
-l, --listen listen mode, for inbound connects
我们使用macOS来监听本地2333端口的入站连接
ncat -l 2333
在kali端进行连接,之后就可以进行通信了
ncat 192.168.0.100 2333
任意一方按下 Ctrl+C
结束连接之后,双方都会断开
当macOS服务端加上 -k, --keep-open
选项之后,kali客户端断开连接后,macOS服务端仍然监听,方便多个客户端在之后连入
命令交互
-e, --exec <command> Executes the given command
--lua-exec <filename> Executes the given Lua script
-v, --verbose Set verbosity level (can be used several times)
macOS服务端监听本地2333端口的入站连接,并将收到的信息发送的/bin/zsh
ncat 192.168.0.100 2333
内网弹shell
因为没有现成的服务器,考虑时间成本问题,待更新