黑客攻防从入门到精通(Web脚本编程篇·全新升级版)
上QQ阅读APP看书,第一时间看更新

1.2 黑客入门的操作命令

1.2.1 黑客常用术语

1.肉鸡

“肉鸡”用来比喻那些可以随意被黑客控制的计算机。黑客可以像操作自己的计算机那样操作它们,而不被对方所发觉,也是“牵线木偶”在黑客领域的另一种说法。

2.木马

木马指表面上伪装成了正常的程序,但是当这些程序被运行时,就会获取系统的整个控制权限。有很多黑客就热衷于使用木马程序来控制别人的计算机,如灰鸽子、黑洞、PcShare等。

3.网页木马

指表面上伪装成普通的网页文件或是将自己的代码直接插入正常的网页文件中,当有人访问时,网页木马就会利用对方系统或者浏览器的漏洞自动将配置好的木马服务端下载到访问者的计算机上来执行。

4.挂马

指在别人的网站文件里面放入网页木马或者是将代码嵌入对方正常的网页文件里,以使浏览者中马。

5.后门

这是一种形象的比喻,黑客在利用某些方法成功地控制了目标主机后,可以在对方的系统中植入特定的程序,或者是修改某些设置。这些改动表面上是很难被察觉的,但是黑客却可以使用相应的程序或者方法来轻易与这台计算机建立连接,并控制这台计算机。这就好像是黑客偷偷配了一把主人房间的钥匙,可以随时进出而不会被主人发现一样。通常大多数的特洛伊木马程序都可以被入侵者用于制作后门。

6.溢出

确切地讲,应该是“缓冲区溢出”。简单地解释就是程序对接受的输入数据没有执行有效的检测而导致错误,后果可能是造成程序崩溃或者是执行攻击者的命令。溢出大致可以分为两类:① 堆溢出;② 栈溢出。

7.注入

由于程序员的水平参差不齐,相当大一部分应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些自己想要的数据,这个就是SQL注入。

8.加壳

利用特殊的算法,对EXE可执行程序或者DLL动态链接库文件的编码进行改变(如实现压缩、加密),以达到缩小文件体积或者加密程序编码,甚至是躲过杀毒软件查杀的目的。目前较常用的壳有UPX、ASPack、PePack、PECompact、UPack等。

1.2.2 获取主机IP地址的Ping命令

Ping命令是测试网络连接、信息发送和接收状况的实用型工具,是一个系统内置的探测工具。它的原理是:网络上的机器都有唯一确定的IP地址,用户给目标IP地址发送一个数据包,对方就要返回一个同样大小的数据包,用户根据返回的数据包可以确定目标主机或者网站域名的存在。用户通过键盘的“Win+R”命令,快速进入DOS命令操作,然后通过在命令提示符窗口中输入“ping /?”命令,即可查看Ping命令的详细说明,如图所示。

查看Ping命令的详细说明

常用的参数有-t、-a、-n Count、-l Size,它们的含义如下。

-t:不断使用Ping命令发送回响请求信息到目的地。要中断并退出Ping,只需按下“Ctrl+C”组合键。初级黑客常常喜欢使用这个参数对目标计算机进行攻击。

-a:指定对目的地IP地址进行反向名称解析。如解析成功,Ping将显示相应的主机名。

-n Count:指定发送回响请求消息的次数,默认值为4。

-l Size:指定发送的回响请求消息中“数据”字段的长度(以字节表示),如图所示。默认值为32,最大值为65527。

测试目标IP的存在与否

典型示例

(1)检测本机网卡驱动程序以及TCP/IP协议是否正常。

若想检测本机的网卡驱动程序以及TCP/IP协议是否正常,以IP地址192.168.1.255为例,只需要在命令提示符窗口中输入“ping 192.168.1.255”命令即可,如图所示。

ping 192.168.1.255的结果检测本机

(2)多参数合用检测。

若在命令提示符窗口中输入“ping -a -t 192.168.1.255”命令,即可对192.168.1.255这台计算机进行探测,如图所示。通过反馈信息可知上述命令中的参数“-a”检测出了该机器的NetBios名为dns.sq.js.cn;参数“-t”在不断向该机发送数据包。

多参数合用检测计算机

通常,Ping命令会反馈如下两种结果。

① 请求超时。表示没有收到网络设备返回的响应数据包,也就是说网络不通。出现这个结果的原因很复杂,通常有对方装有防火墙并禁止ICMP回显、对方已经关机、本机的IP设置不正确或网关设置错误、网线不通等几种可能。

② 来自192.168.1.255的回复:字节=32时间<1ms TTL=64。表示网络畅通,探测使用的数据包大小为32Bytes,响应时间短于1ms。TTL(Time To Live,存活时间)是指一个数据包在网络中的生存期,网管可通过它了解网络环境,辅助维护工作;同时通过TTL值可以粗略判断出对方计算机使用的操作系统类型,以及本机到达目标主机所经过的路由数。

当检查本机的网络连接情况时,通常会使用Ping命令给某个目标主机(如本机)发送ICMP数据包。在本机中生成ICMP数据包时,系统就会给这个ICMP数据包初始化一个TTL值,如Win7就会生成“64”,将这个ICMP数据包发送出去,遇到网络路由设备转发时,TTL值就会被减去“1”,最后到达目标主机;如果在转发过程中TTL值变成“0”,路由设备就会丢弃这个ICMP数据包。

TTL值在网络应用中很有用处,可以根据返回信息中的TTL值来推断发送的数据包到达目标主机所经过的路由数。路由发生在OSI网络参考模型中的第三层即为网络层。

注意

不同的操作系统,TTL值也是不相同的。默认情况下,Linux系统的TTL值是64或255, Windows NT/2000/XP系统的TTL值为128, Windows 98系统的TTL值为32, Windows 7系统的TTL值是64, UNIX主机的TTL值为255。

1.2.3 查看网络连接的Netstat命令

Netstat是一个监控TCP/IP网络非常有用的工具,可以显示路由表、实际的网络连接,以及每一个网络接口设备的状态信息,从而让用户得知目前都有哪些网络连接正在运作。Netstat可显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。

计算机有时候接收到的数据报导致出错数据或故障,对此不必感到奇怪,TCP/IP可以容许这些类型的错误并自动重发数据报。但如果累计出错数目占到所接收IP数据报相当大的百分比,或者它的数目正迅速增加,就应该使用Netstat查一查为什么会出现这些情况了。

一般用“netstat -na”命令来显示所有连接的端口并用数字表示。

1.语法

netstat [-a] [-e] [-n] [-o] [-p Protocol] [-r] [-s] [Interval]

2.参数说明

-a:显示所有活动的TCP连接及计算机侦听的TCP和UDP端口。

-e:显示以太网[1]统计信息,如发送和接收的字节数、数据包数。

-n:显示活动的TCP连接,但只以数字形式表现地址和端口号,而不尝试确定名称。

-o:显示活动的TCP连接并包括每个连接的进程ID(PID)。可在Windows任务管理器“进程”选项卡上找到基于PID的应用程序。该参数可以与-a、-n和-p结合使用。

-p protocol:显示Protocol所指定的协议的连接。在这种情况下,Protocol可以是TCP、UDP、TCPV6或UDPV6。

-s:按协议显示统计信息。默认情况下,显示TCP、UDP、ICMP和IP协议的统计信息。

-r:显示IP路由表的内容。该参数与route print命令等价。

Interval:每隔Interval秒重新显示一次选定的信息。按“Ctrl+C”组合键可停止重新显示统计信息。如果省略该参数,Netstat将只打印一次选定的信息。

3.典型示例

Netstat命令可显示活动的TCP连接、计算机侦听的端口、以太网统计信息、IP路由表、IPV4统计信息(对于IP、ICMP、TCP和UDP协议)以及IPV6统计信息(对于IPV6、ICMPV6、通过IPV6的TCP以及通过IPV6的UDP协议)。使用时如果不带参数,Netstat将显示活动的TCP连接。

下面再介绍几个Netstat命令的应用实例,具体如下。

(1)显示本机所有活动的TCP连接,以及计算机侦听的TCP和UDP端口,则应输入“netstat -a”命令,如图所示。

显示本机所有活动的TCP连接

(2)显示服务器活动的TCP/IP连接,则应输入“netstat -n”命令或“netstat”(不带任何参数)命令,如图所示。

显示服务器活动的TCP/IP连接

(3)显示以太网和所有协议的统计信息,则应输入“netstat -s -e”命令,如图所示。

显示以太网和所有协议的统计信息

(4)检查路由表确定路由配置情况,则应输入“netstat -rn”命令,如图所示。

确定路由配置情况

1.2.4 工作组和域的Net命令

Net命令是一种基于网络的命令,包含了管理网络环境、服务、用户、登录等大部分重要的管理功能。常见的Net子命令有net view、net user、net use、net start、net stop、net share等,下面来一一介绍。

1.net view

作用:显示域列表、计算机列表或指定计算机的共享资源列表,如图所示。

命令格式:net view [\\ComputerName] [/domain[:DomainName]]

输入不带参数的net view:显示当前域的计算机列表。

\\Computername:指定要查看其共享资源的计算机名称。

/domain[:Domainname]:指定要查看其可用计算机的域。

查看指定计算机的共享资源

2.net user

作用:添加或更改用户账号或显示用户账号信息。该命令也可以写为net users。

命令格式:net user[username[password | *][options]][/domain]

输入不带参数的net user:查看计算机上的用户账号列表,如图所示。

Username:添加、删除、更改或查看用户账号名。

Password:为用户账号分配或更改密码。密码必须满足net accounts命令的/minpwlen选项指定的最小长度的要求,最多可以有127个字符。

/domain:在计算机主域的控制器中执行操作。

查看计算机上的用户账号列表

3.net use

作用:连接计算机或断开计算机与共享资源的连接,或显示计算机的连接信息。

命令格式:net use [devicename | *][\\computername\sharename[\volume]][password | *] [/user: [domainame\]username][/delete]|[/persistent:{yes | no}]]

参数介绍:输入不带参数的net use查看网络连接,如图所示。

查看网络连接

4.net start

作用:启动服务或显示已启动服务的列表。

命令格式:net start server

不带参数则显示已启动服务,如图所示。

显示已启动的服务

在需要启动一个服务时,只需在后边加上服务名称就可以了,如图所示。

启动server服务

5.net stop

作用:停止Windows网络服务。

命令格式:net stop server

与net start命令相反,net stop命令用于停止Windows网络服务,如图所示。

停止server服务

6.net share

作用:创建、删除或显示共享资源。

命令格式:net share sharename=drive:path[/users:number | /unlimited][/remark:"text"]

不带任何参数的net share命令:显示本地计算机上所有共享资源的信息,如图所示。

Sharename:共享资源的网络名称。

drive:path:指定共享目录的绝对路径。

/user:number:设置可以同时访问共享资源的最大用户数。

/unlimited:不限制同时访问共享资源的用户数。

/remark:"text" :添加关于资源的注释,注释文字用引号引住。

显示本地计算机上所有共享资源的信息

1.2.5 23端口登录的Telnet命令

Telnet是传输控制协议/互联网协议(TCP/IP)网络(如Internet)的登录和仿真程序,主要用于Internet会话,基本功能是允许用户登录进入远程主机系统。

常用的Telnet命令

Telnet命令的格式为:telnet+空格+IP地址/主机名称。

例如,“telnet 192.168.0.103 80”命令如果执行成功,则将从IP地址为192.168.0.9的远程计算机上得到Login:提示符,如图所示。

telnet 192.168.0.103 80

当Telnet成功连接到远程系统上时,将显示登录信息并提示用户输入用户名和口令。如果用户名和口令输入正确,则成功登录并在远程系统上工作。在Telnet提示符后可输入很多命令,以控制Telnet会话过程。在Telnet提示符下输入“?”,则屏幕显示Telnet命令的帮助信息。

1.2.6 传输协议FTP命令

FTP命令是Internet用户使用最频繁的命令之一,通过FTP命令可将文件传送到正在运行FTP服务的远程计算机上,或从正在运行FTP服务的远程计算机上下载文件。在“命令提示符”窗口中运行“ftp”命令,即可进入FTP子环境窗口,如图所示。或在“运行”对话框中运行“ftp”命令,也可进入FTP子环境窗口。

FTP的命令行格式为:ftp -v -n -d -g [主机名]。

-v:显示远程服务器的所有响应信息。

-n:限制FTP的自动登录,即不使用。

-d:使用调试方式。

-g:取消全局文件名。

进入FTP子环境窗口

1.2.7 查看网络配置的IPConfi g命令

IPConfig是调试计算机网络的常用命令,通常用来显示计算机中网络适配器的IP地址、子网掩码及默认网关,这是IPConfig不带参数的用法。常见的用法还有IPConfig/all。

在“命令提示符”窗口中运行“ipconfig”命令,查看当前计算机的IPv4、IPv6地址、子网掩码及默认网关等信息,如图所示。

运行“ipconfig”命令

在“命令提示符”窗口中运行“ipconfig/all”命令,查看当前计算机的IP地址、子网掩码、DNS后缀和DHCP等信息,如图所示。

运行“ipconfig/all”命令

1.2.8 路由跟踪的Tracert命令

Tracert(跟踪路由)是路由跟踪的实用程序,用于确定IP数据包访问目标所采取的路径。Tracert命令使用IP生存时间(TTL)字段和ICMP错误消息来确定从一个主机到网络上其他主机的路由。

Tracert命令格式为:tracert [-d] [-h maximum_hops] [-j Computer-list] [-w timeout] target_name。

在“命令提示符”窗口中运行“tracert www.tsinghua.edu.cn”命令,查看访问主机IP地址路由信息,如图所示。

-d: 指定不将地址解析为计算机名。

-h maximum_hops:指定搜索目标的最大跃点数。

-j Computer-list:与主机列表一起的松散源路由(仅适用于IPv4),指定沿host-list的稀疏源路由列表序进行转发。host-list是以空格隔开的多个路由器IP地址,最多9个。

运行“tracert www.tsinghua.edu.cn”命令

-w timeout:等待每个回复的超时时间(以毫秒为单位)。

-R:跟踪往返行程路径(仅适用于IPv6)。

-S srcaddr:要使用的源地址(仅适用于IPv6)。

-4:强制使用IPv4。

-6:强制使用IPv6。

-target_name: 目标计算机的名称。

最简单的用法就是“tracert hostname”,其中“hostname”是计算机名或想跟踪其路径的计算机的IP地址,tracert将返回它到达目的地的各种IP地址。

[1] 以太网(Ethernet)指的是由Xerox公司创建并由Xerox、Intel和DEC公司联合开发的基带局域网规范,是当今现有局域网采用的最通用的通信协议标准。