网络犯罪侦查技术2

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
▪ 对系统进行端口扫描; ▪ 探测特定服务的弱点,应用漏洞扫描工具如ISS、
SATAN、NESSUS等。
精选
21
2.3.1 扫描器的相关知识
2.3.1.1 什么是扫描器
扫描器是一种通过收集系统的信息来自动 检测远程或本地主机安全性弱点的程序。通过 使用扫描器,可以发现远程服务器的各种TCP 端口的分配及提供的服务和它们的软件版本, 这就能让黑客或管理员间接地或直观地了解到 远程主机所存在的安全问题。
网络攻击过程一般分为以下阶段:
▪ 攻击身份和位置隐藏 ▪ 目标系统信息收集 ▪ 弱点信息挖掘分析 ▪ 目标使用权限获取
▪ 攻击行为隐藏 ▪ 攻击实施 ▪ 开辟后门 ▪ 攻击痕迹清除
精选
3
2.2 攻击身份和位置隐藏
目的:隐藏网络攻击者的身份及主机位置 通常采用以下技术隐藏攻击的IP地址或域名:
1) 利用被入侵的主机作为跳板;
精选
9
TCP是面向连接的协议,双方在正式传输数 据之前,需要用“三次握手”来建立一个稳定的 连接。
假设A、B两台主机进行通信,B首先发送带有 SYN标志的数据段通知A需要建立TCP连接, TCP的可靠性就是由数据包中的多位控制字来提 供的,其中最重要的是数据序列SYN和数据确认 标志ACK。B将TCP报头中的SYN设为自己本次 连接的初始值(ISN)。
精选
12
然而除了让B失去工作能力,最难的是要对A 进行攻击,必须知道A使用的ISN。
TCP使用的ISN是一个32位的记数器,从0到 4294967295。TCP为每一个连接选择一个初始序 号ISN。ISN不能随便选取,不同的系统有不同的 算法。理解TCP如何分配ISN以及ISN随时间变化 的规律,对于成功地进行IP欺骗攻击很重要。
精选
13
ISN每秒增加12800,如果有连接出现, 每次连接将把记数器的数值增加64000。
预测出攻击目标的序列号是非常困难的, 而且各个系统也不相同,如果黑客已经使用某 一种方法,能够预测出ISN,他就可以将ACK 序号送给主机A,这时连接就建立了。
精选
14
2.1.1.3 IP欺骗的全过程
IP欺骗由若干步骤组成: 1、使被信任主机瘫痪:
第二步:
B
第三步:
B
SYN SYN+ACK
ACK
A
SYN=M
A
SYN=N,ACK=M+1
A
ACK=N+1
精选
11
如果要冒充B对A进行攻击,就要先使用B 的IP地址发送SYN标志给A,但是当A收到后, 它并不会把SYN+ACK发送到我们的主机,而 是发送到真正的B上去,这时就“漏馅”了, 因为B根本就没有发送过SYN请求,所以如果 要冒充B,首先就应该让B失去工作能力。
/*包含一些网络调用和系统调用的头文件*/ #include <stdio.h> #include <sys/socket.h> #include <netinet/in.h> #include <errno.h> #include <netdb.h> #include <signal.h>
精选
25
sa); /*连接到本端口*/
if (err<0) { printf(“%s%-
5d%s\r”,argv[1],i,strerror(errno)); /*如果端口关闭则显示*/
fflush(stdout); } else { printf(“%s%-5d accepted.\n”,argv[1],i); /*开放的端口显示*/
精选
10
A收到B的SYN包之后,会发送给B一个带有 SYN+ACK标志的数据段,告知自己的ISN,并确认B发送来 的第一个数据段,将ACK设置成B的SYN+1。
B确认收到的A的SYN+ACK数据包,将ACK设置成A的 SYN+1。A收到B的ACK后,连接成功建立,双方可以正式
传输数据了。
第一步:
B
跳板机所在 的网络
攻击者所在 的网络
攻击
精选
网络攻击目 标网络
4
2) 应用电话转接技术隐藏攻击者身份; 3) 盗用他人的账号上网; 4) 通过免费代理网关实施攻击; 5) 假冒用户账号; 6) 伪造IP地址。
精选
5
2.2.1 IP欺骗攻击
2.1.1.1 信任关系
在Unix主机中,存在着一种特殊的信任关系。 假设有两台主机A和B,上面各有一个账户admin, 主机A和B把admin当做两个互不相关的用户,在 不同的主机上操作时需要输入相应的账户(尽管 这两个账户都为admin),这极为不方便。为了 减少这种不便,可以在主机A和主机B中建立起 两个账户的信任关系,具体步骤如下:
网络犯罪侦察技术
林英.信息安全
精选
1
第二章 网络攻击模型
2.1 网络攻击模型描述 2.2 攻击身份和位置隐藏 2.3 目标系统信息收集 2.4 弱点信息挖掘分析 2.5 目标使用权限获取 2.6 攻击行为隐藏 2.7 攻击实施 2.8 开辟后门 2.9 攻击痕迹清除
精选
2
2.1 网络攻击模型描述
int main(int argc,char **argv) { int probeport=0; struct hostent host;/*定义socket主机结构*/ int err,i, net; struct sockaddr_in sa;/*socket地址结构*/ if (argc!=2) { printf(“用法:%s hostname\n”,argv[0]);
精选
23
2.3.1.3 端口扫描原理
一般的端口扫描的原理非常简单,只是利用 操作系统提供的connect()系统调用,与每一个 感兴趣的目标计算机的端口进行连接。如果端 口处于侦听状态,那么connect()就能成功,否 则,这个端口不能用,即没有提供服务。
精选
24
一个最简单的端口扫描器的源代码:
exit(2); }
sa.sin_port=htons(i);/*本次扫描的端口号*/ net=socket(AF_INET,SOCKET_ATREAM,0); /*建立一个socket套接字*/ if(net<0) { perror(\nsocket”);
exit(2); } err=connect(net,(struct sockaddr)&sa,sizeof
exit(1); }
for (i:=1;i<65535;i++) {
strncpy((char*)&sa,””,sizeof sa); sa.sin_family = AF_INET;/*TCP/IP协议族*/ if (isdigit(*argv[1])) sa.sin_addr.s_addr = inet_addr(argv[1]); else if ((host = gethostbyname(argv[1]))!=0) strncpy((char*)&sa.sin_addr,(char *)host>h_addr,sizeof sa.sin_addr); else { herror(argv[1]);
为了伪装成被信任主机而不“露馅”,需要使 其完全丧失网络工作能力。
2、序列号取样和猜测:
精选
ቤተ መጻሕፍቲ ባይዱ
15
一旦估计出ISN的大小,就可以着手进行攻击。 当黑客的虚假TCP数据包进入目标主机时,如果 刚才估计的序列号是准确的,进入的数据将被放 置到目标主机的缓冲区当中。
但是在实际的攻击过程中往往没有那么幸运, 如果估计的序列号值小于正确值,那么将被丢弃; 如果估计的序列号值大于正确值,并且在缓冲区 大小之内,那么该数据被认为是一个未来的数据, TCP模块将等待其他缺少的数据;如果估计的序 列号值大于期待的数字且不在缓冲区之内,TCP 将放弃它并返回一个期望获得的数据序列号。
扫描器有三项功能:1、发现一个主机或 网络;2、一旦发现一台主机,可以发现有什么 服务程序正运行在这台主机上;3、通过测试这 些服务,发现漏洞。
精选
22
2.3.1.2 扫描器的分类
扫描器按照使用对象的不同可以分为本地 扫描器和远程扫描器;
按照扫描的目的来分类,可以分为端口扫 描器和漏洞扫描器。
端口扫描只是单纯地用来扫描目标机开放 的服务端口以及与端口相关的信息;漏洞扫描 器检查扫描目标中可能包含的大量已知的漏洞, 如果发现潜在的漏洞可能性,就报告给扫描者。
精选
8
2.1.1.2 IP欺骗的理论依据
IP欺骗最根本的理论依据:既然A、B之间
的信任关系是基于IP地址建立起来的,那么假如能够 冒充B的IP地址,就可以使用rlogin登录上A,而不 需要任何口令验证。
但是事情远没有这么简单,虽然可以通过编程的方 法随意改变发出的包的IP地址,但TCP协议对IP进行 了进一步的封装,是一种相对可靠的协议,不会让 黑客轻易地得逞。
如果攻击者估计正确的话,目标主机将会接收该ACK, 连接就正式建立起来,可以开始传输数据了。
这时,黑客就可以发送命令:
# cat ‘++’>>~/.rhosts
以后就可以不用口令,直接登录到目标主机上。
精选
17
总结攻击的整个步骤:
1、首先使被信任主机的网络功能暂时瘫痪,以免对攻击造 成干扰;
2、连接到目标机的某个端口来猜测ISN基值和增加规律; 3、把源地址伪装成被信任主机,发送带有SYN标志的数据
▪ 系统及服务的管理、配置情况,如系统是否禁止root远 程登录,SMTP服务器是否支持decode别名等;
精选
19
▪ 系统口令的安全性,如系统是否存在弱口令、缺省用 户的口令是否没有改动等;
▪ 系统提供的服务的安全性,以及系统整体的安全性能。
精选
20
攻击者获取信息的主要方法有:
▪ 使用口令攻击,如口令猜测攻击、口令文件破译 攻击、网络窃听与协议分析攻击、社交欺诈等手 段;
精选
6
1)在主机A和主机B上admin的home目录中创 建.rhosts文件;
2)在主机A的admin的home目录中用命令实现A、B 的信任关系:
# echo “B admin” > ~/.rhosts;
这时,从主机B上,就能毫无阻碍地使用任何以r开
头的远程调用命令,如rlogin、rsh、rcp等,而无需
if (shutdown(net,2)<0) { perror(“\shutdown”); exit(2); } } close(net);/*关闭连接*/ } printf(“\r”); fflush(stdout); return(0); }
2.3.1.4 扫描器之王——nmap
nmap用于允许系统管理员查看一个大的网络系统 有哪些主机以及其上运行何种服务程序。运行nmap后 通常会得到一个关于扫描的机器的一个实用的端口列 表。显示出该服务的服务名称、端口号、状态以及协 议。状态有“open”、 “filtered”、“unfiltered”三 种。
口令验证就可以直接登录到A上。这种信任关系是基
于IP地址的。
精选
7
特别的,当 /etc/hosts.equiv中出现一个“+” 或 者 $HOME/.rhosts中出现 “++”时,表明任意地址 的主机可以无须口令验证而直接使用r命令登录此主 机,这是非常危险的。
rlogin 是一个简单的客户/服务器程序,它的作用类 似于telnet,唯一不同的是telnet完全依赖于口令验证, 而rlogin首先是基于信任关系的验证,其次才进行口 令验证,它使用TCP协议进行传输。当用户从一台主 机登录到另一台主机上,并且,如果目标主机信任它, rlogin将允许在不应答口令的情况下使用目标主机上 的资源。
段请求连接; 4、等待目标机发送SYN+ACK包给已瘫痪的被信任主机; 5、伪装成被信任主机向目标机发送ACK,此时发送的数据
段带有预测的目标机的ISN+1; 6、连接建立,发送命令。
精选
18
2.3 目标系统信息收集
目的:确定攻击目标并收集目标系统的有关信息
攻击者感兴趣的信息主要包括如下几方面:
▪ 系统的一般信息,如系统的软硬件平台类型、系统的用 户、系统的服务与应用等;
精选
16
黑客伪装成被信任主机的IP地址,此时,该主机仍然 处在瘫痪状态,然后向目标主机的513端口(rlogin)发送 连接请求。目标主机立刻对连接请求作出反应,发送 SYN+ACK确认包给被信任主机,因为此时被信任主机处 于停顿状态,它当然无法接收到这个包。紧接着攻击者 向目标主机发送ACK数据包,该数据包使用前面估计的 序列号+1。
相关文档
最新文档