本文目录一览:
- 1、如何防范Linux操作系统下缓冲区溢出攻击 黑客武林
- 2、谁能教我如何攻击linux系统
- 3、Linux下用什么方法或软件可以防止arp攻击
- 4、linux系统怎么防止DDOS攻击
- 5、Linux的系统漏洞有哪些?如何攻击?
- 6、linux doss攻击怎么解
如何防范Linux操作系统下缓冲区溢出攻击 黑客武林
虽然Linux病毒屈指可数,但是基于缓冲区溢出(BufferOverflow)漏洞的攻击还是让众多Linux用户大吃一惊。所谓“世界上第一个Linux病毒”??reman,严格地说并不是真正的病毒,它实质上是一个古老的、在Linux/Unix(也包括Windows等系统)世界中早已存在的“缓冲区溢出”攻击程序。reman只是一个非常普通的、自动化了的缓冲区溢出程序,但即便如此,也已经在Linux界引起很大的恐慌。
缓冲区溢出漏洞是一个困扰了安全专家30多年的难题。简单来说,它是由于编程机制而导致的、在软件中出现的内存错误。这样的内存错误使得黑客可以运行一段恶意代码来破坏系统正常地运行,甚至获得整个系统的控制权。
Linux系统特性
利用缓冲区溢出改写相关内存的内容及函数的返回地址,从而改变代码的执行流程,仅能在一定权限范围内有效。因为进程的运行与当前用户的登录权限和身份有关,仅仅能够制造缓冲区溢出是无法突破系统对当前用户的权限设置的。因此尽管可以利用缓冲区溢出使某一程序去执行其它被指定的代码,但被执行的代码只具有特定的权限,还是无法完成超越权限的任务。
但是,Linux(包括Unix)系统本身的一些特性却可以被利用来冲破这种权限的局限性,使得能够利用缓冲区溢出获得更高的、甚至是完全的权限。主要体现在如下两方面:
1.Linux(包括Unix)系统通过设置某可执行文件的属性为SUID或SGID,允许其它用户以该可执行文件拥有者的用户ID或用户组ID来执行它。如果该可执行文件的属性是root,同时文件属性被设置为SUID,则该可执行文件就存在可利用的缓冲区溢出漏洞,可以利用它以root的身份执行特定的、被另外安排的代码。既然能够使得一个具有root权限的代码得以执行,就能够产生一个具有超级用户root权限的Shell,那么掌握整个系统的控制权的危险就产生了。
2.Linux(包括Unix)中的许多守护进程都是以root权限运行。如果这些程序存在可利用的缓冲区溢出,即可直接使它以root身份去执行另外安排的代码,而无须修改该程序的SUID或SGID属性。这样获得系统的控制权将更加容易。
随着现代网络技术的发展和网络应用的深入,计算机网络所提供的远程登录机制、远程调用及执行机制是必须的。这使得一个匿名的Internet用户有机会利用缓冲区溢出漏洞来获得某个系统的部分或全部控制权。实际上,以缓冲区溢出漏洞为攻击手段的攻击占了远程网络攻击中的绝大多数,这给Linux系统带来了极其严重的安全威胁。
途径分析
通常情况下攻击者会先攻击root程序,然后利用缓冲区溢出时发生的内存错误来执行类似“exec(sh)”的代码,从而获得root的一个Shell。为了获得root权限的Shell,攻击者需要完成如下的工作:
1.在程序的地址空间内安排适当的特定代码。一般使用如下两种方法在被攻击的程序地址空间内安排攻击代码。
2.通过适当地初始化寄存器和存储器,使程序在发生缓冲区溢出时不能回到原来的执行处,而是跳转到被安排的地址空间执行。
当攻击者找到一种途径可以变原程序的执行代码和流程时,攻击的危险就产生了。
共2页: 1 [2]
内容导航
第 1 页:Linux系统特性
防范措施
Linux下的缓冲区溢出攻击威胁既来自于软件的编写机制,也来自于Linux(和Unix)系统本身的特性。实际上,缓冲区溢出攻击及各种计算机病毒猖獗的根本原因在于现代计算机系统都是采用冯?诺依曼“存储程序”的工作原理。这一基本原理使得程序和数据都可以在内存中被繁殖、拷贝和执行。因此,要想有效地防范缓冲区溢出攻击就应该从这两个方面双管其下。
确保代码正确安全
缓冲区溢出攻击的根源在于编写程序的机制。因此,防范缓冲区溢出漏洞首先应该确保在Linux系统上运行的程序(包括系统软件和应用软件)代码的正确性,避免程序中有不检查变量、缓冲区大小及边界等情况存在。比如,使用grep工具搜索源代码中容易产生漏洞的库调用,检测变量的大小、数组的边界、对指针变量进行保护,以及使用具有边界、大小检测功能的C编译器等。
基于一定的安全策略设置系统
攻击者攻击某一个Linux系统,必须事先通过某些途径对要攻击的系统做必要的了解,如版本信息等,然后再利用系统的某些设置直接或间接地获取控制权。因此,防范缓冲区溢出攻击的第二个方面就是对系统设置实施有效的安全策略。这些策略种类很多,由于篇幅有限只列举几个典型措施:
(1)在装有Telnet服务的情况下,通过手工改写“/etc/inetd.conf”文件中的Telnet设置,使得远程登录的用户无法看到系统的提示信息。具体方法是将Telnet设置改写为:
telnet stream tcp nowait root /usr/sbin/tcpd/in.telnetd -h
末尾加上“-h”参数可以让守护进程不显示任何系统信息,只显示登录提示。
(2)改写“rc.local”文件。默认情况下,当登录Linux系统时系统运行rc.local文件,显示该Linux发行版本的名字、版本号、内核版本和服务器名称等信息,这使得大量系统信息被泄露。将“rc.local”文件中显示这些信息的代码注释掉,可以使系统不显示这些信息。
一种方法是在显示这-些信息的代码行前加“#”:
……# echo “”/etc/issue# echo “$R”/etc/issue#echo”Kernel $ (uname -r)on $a $(uname -m)”/etc/issue##echo/etc/issue……
另一种方法是将保存有系统信息的文件/etc/issue.net和issue删除。这两个文件分别用于在远程登录和本地登录时向用户提供相关信息。删除这两个文件的同时,仍需要完成方法一中的注释工作,否则,系统在启动时将会自动重新生成这两个文件。
(3)禁止提供finger服务。在Linux系统中,使用finger命令可以显示本地或远程系统中目前已登录用户的详细信息。禁止提供finger服务的有效方法是,通过修改该文件属性、权限(改为600)使得只有root用户才可以执行该命令。
(4)处理“inetd.conf”文件。Linux系统通过inetd(超级服务器)程序根据网络请求装入网络程序。该程序通过“/etc/inetd.conf”文件获得inetd在监听哪些网络端口,为每个端口启动哪些特定服务等信息。因此,该文件同样会泄露大量的敏感信息。解决问题的方法是,通过将其权限改为600只允许root用户访问,并通过改写“/etc/inetd.conf”文件将不需要的服务程序禁止掉,最后修改该文件的属性使其不能被修改。
总结
缓冲区溢出攻击之所以能成为一种常见的攻击手段,其原因在于缓冲区溢出漏洞太普遍,且易于实现攻击,因此缓冲区溢出问题一直是个难题。
所幸的是,OpenBSD开发组为解决这一安全难题采用了三种新的有效策略。相信不久的将来,Linux用户可以不再为缓冲区溢出攻击而寝食难安了。
RAR文件在Linux下用起来
要在Linux下处理.rar文件,需要安装RARforLinux。该软件可以从网上下载,但要记住,它不是免费的。大家可从下载RARforLinux 3.2.0,然后用下面的命令安装:
# tar -xzpvf rarlinux-3.2.0.tar.gz
# cd rar
# make
安装后就有了rar和unrar这两个程序,rar是压缩程序,unrar是解压程序。它们的参数选项很多,这里只做简单介绍,依旧举例说明一下其用法:
# rar a all *.mp3
这条命令是将所有.mp3的文件压缩成一个rar包,名为all.rar,该程序会将.rar 扩展名将自动附加到包名后。
# unrar e all.rar
这条命令是将all.rar中的所有文件解压出来。
谁能教我如何攻击linux系统
方法如菜刀,可以杀人也可以做菜
教你几个做菜的,
下载一个ssh for win 远程连接那台linux,
方法网上有多事,
如果连上了,你就像操作本机一样,
可以帮他解决问题,
也可以帮他删点文件,
不过要知道他的用户名和密码才能进,一般是root 空
方法二,
telnet 192.168.1.5 改成他的ip
telnet工具windows自带,
也要知道他的用户名密码,
方法三
vnc 下载个for win的,
这个最好用,是图型界面的,
不用会命令,全鼠标操作,
和直接用他机器一样,
方法四:
arp欺骗,是和平台无关的,
我也不会,你可以自已找找,
一些windows上的网管软件可以做到,
原理,你的机器对网络说,你是他,网络上的机器只和你联系,
他就上不了网了,够通俗吧
Linux下用什么方法或软件可以防止arp攻击
Ubuntu中文论坛的“BigSnake.NET“结合arpalert写了一个脚本来做arp防火墙,我感觉效果不错。(具体请看“参考资料”。)
我这里再稍加概括:
1)安装arpalert和Perl的ARP模块(在Ubuntu中叫libnet-arp-perl软件包)
2)按照参考资料中的说明得到arpdef.pl文件。
3)按照参考资料中的说明修改arpalert.conf。
注:一定要看原文,我这里仅是简单概括。
linux系统怎么防止DDOS攻击
用squid是利用端口映射的功能,可以将80端口转换一下,其实一般的DDOS攻击可以修改/proc/sys/net/ipv4/tcp_max_syn_backlog里的参数就行了,默认参数一般都很小,设为8000以上,一般的DDOS攻击就可以解决了。如果上升到timeout阶段,可以将/proc/sys/net/ipv4/tcp_fin_timeout设小点。
大家都在讨论DDOS,个人认为目前没有真正解决的方法,只是在缓冲和防御能力上的扩充,跟黑客玩一个心理战术,看谁坚持到最后,网上也有很多做法,例如syncookies等,就是复杂点。
sysctl -w net.ipv4.icmp_echo_ignore_all=1
echo 1 /proc/sys/net/ipv4/tcp_syncookies
sysctl -w net.ipv4.tcp_max_syn_backlog="2048"
sysctl -w net.ipv4.tcp_synack_retries="3"
iptables -A INPUT -i eth0 -p tcp --syn -j syn-flood
# Limit 12 connections per second (burst to 24)
iptables -A syn-flood -m limit --limit 12/s --limit-burst 24 -j RETURN
这个地方可以试着该该:
iptbales -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
虚拟主机服务商在运营过程中可能会受到黑客攻击,常见的攻击方式有SYN,DDOS等。
通过更换IP,查找被攻击的站点可能避开攻击,但是中断服务的时间比较长。比较彻底
的解决方法是添置硬件防火墙。不过,硬件防火墙价格比较昂贵。可以考虑利用Linux
系统本身提供的防火墙功能来防御。
1. 抵御SYN
SYN攻击是利用TCP/IP协议3次握手的原理,发送大量的建立连接的网络包,但不实际
建立连接,最终导致被攻击服务器的网络队列被占满,无法被正常用户访问。
Linux内核提供了若干SYN相关的配置,用命令:
sysctl -a | grep syn
看到:
net.ipv4.tcp_max_syn_backlog = 1024
net.ipv4.tcp_syncookies = 0
net.ipv4.tcp_synack_retries = 5
net.ipv4.tcp_syn_retries = 5
tcp_max_syn_backlog是SYN队列的长度,tcp_syncookies是一个开关,是否打开SYN Cookie
功能,该功能可以防止部分SYN攻击。tcp_synack_retries和tcp_syn_retries定义SYN
的重试次数。
加大SYN队列长度可以容纳更多等待连接的网络连接数,打开SYN Cookie功能可以阻止部分
SYN攻击,降低重试次数也有一定效果。
调整上述设置的方法是:
增加SYN队列长度到2048:
sysctl -w net.ipv4.tcp_max_syn_backlog=2048
打开SYN COOKIE功能:
sysctl -w net.ipv4.tcp_syncookies=1
降低重试次数:
sysctl -w net.ipv4.tcp_synack_retries=3
sysctl -w net.ipv4.tcp_syn_retries=3
为了系统重启动时保持上述配置,可将上述命令加入到/etc/rc.d/rc.local文件中。
2. 抵御DDOS
DDOS,分布式拒绝访问攻击,是指黑客组织来自不同来源的许多主机,向常见的端口,如80,
25等发送大量连接,但这些客户端只建立连接,不是正常访问。由于一般Apache配置的接受连接
数有限(通常为256),这些“假” 访问会把Apache占满,正常访问无法进行。
使用ipchains抵御DDOS,就是首先通过netstat命令发现攻击来源地址,然后用ipchains命令阻断
攻击。发现一个阻断一个。
首先查看ipchains服务是否设为自动启动:
chkconfig --list ipchains
Linux的系统漏洞有哪些?如何攻击?
看对外开放的服务和对应的server
端软件是否有bug了
对于系统本身来说该有的bug都被修的差不多了,本地溢出到还可以,远程攻击几无可能。
比如只开放
web服务
,对外端口只有80,如果server软件没有缓冲区漏洞的话,
我还没有想到有什么方法能够攻破系统,DOS不算。
就算缓冲区成功,大多也是一个普通权限用户,获取root还要看系统是否有本地
溢出漏洞
。。
linux doss攻击怎么解
Linux 防止DDOS方法
方法一:先说这个简单效果不大的方法,Linux一般是apache做web服务软件,一般来说按照访问习惯全是设置的80端口。你可以改变一下服务端口,编辑httpd.conf文件,Linux下不清楚路径可以
find / -name httpd.conf
然后
vi $path$/httpd.conf
找到里面的
listen:80
更改为
listen:8080
重新启动apache,这样你的站点就运行在8080端口下了。
方法二:,方法一中攻击者如果对你足够关注的话还是会再攻击你的8080端口,所以还是会死得很惨,那么如何更有效的阻止攻击呢。这就要用到iptables了,安装一下iptables然后再配置一下。
iptables下载:
下载文件的名字一般是iptables-1.*.*.tar.bz2
下载完后解压缩
tar -xvjf ./iptables-1.*.*.tar.bz2 -C /usr/src
我是解压到了/usr/src里
然后
cd /usr/src/iptables-1.*.*
安装:
/bin/sh -c make
/bin/sh -c make install
可以用iptables -V来检查安装是否正确。
如果有问题用这个命令修复一下
cp ./iptables /sbin
iptables的使用:
安装了iptables后先关闭ICMP服务
iptables -A OUTPUT -p icmp -d 0/0 -j DROP
这个是做什么的呢,最简单直观的说就是你服务器上的ip不能被ping到了,这个能防止一部分攻击。
比如你跟你的ISP联系了知道了ddos的来源ip 200.200.200.1可以用下面这个命令来阻止来自这个ip的数据流
iptables -A INPUT -s 200.200.200.1 -j DROP
说明:这个命令里200.200.200.1/24 200.200.200.* 格式都是有效的。
执行完后你输入命令
iptables -L
会看到下面的结果
Chain INPUT (policy ACCEPT)
target prot opt source destination
DROP all -- 200.200.200.1 anywhere
你每输入一个iptables命令都会有个对应的num号,比如上面你执行的这个是第一次执行的那么这个对应的input id就是1,删除这个限制只要
iptables -D INPUT 1就可以了。
因为在DDOS这个过程里很多ip是伪造的,如果你能找到他们的来源的mac地址(你太厉害了,太有关系了)那么你还可以用这个命令来禁止来自这个mac地址的数据流:
iptables -A INPUT --mac-source 00:0B:AB:45:56:42 -j DROP
以上是几个简单应用,关于一些别的应用我下面给出的英文文献里还有,大家可以根据自己的情况来利用iptables防止DDOS攻击。