下面是一个简单的例子。首先启动Linux,进入到VI界面,打开VI a.c,然后随意写入一段C语言程序,例如:
#include "stdio.h"
int main()
{
printf("test GCC");
}
然后用GCC编译,命令为:GCC a.c,然后会产生一个a.out的文件,用命令“./a.out”执行即可,这个工具对于Linux下的漏洞攻击十分管用,因此,“肉鸡”上是否开放了这个功能就显得很重要了。
2.连接:尽在掌握
现在,该考虑目标机器了。根据我掌握的情况,某单位的一帮闲人安全意识十分薄弱,而且承包系统管理的单位也整天无所事事。扫描、搜索,找到一个目标后,该考虑考虑攻击手段了,Crack Passwd?Buffer Overflow?CGI漏洞利用?不过,首先要把目标机连上,测试一下:
C:\>ping 203.207.xxx.xxx
Pinging 203.207.xxx.xxx [203.207.xxx.xxx] with 32 bytes of data:
Reply from 203.207.xxx.xxx: bytes=32 time=210ms TTL=119
Reply from 203.207.xxx.xxx: bytes=32 time=130ms TTL=119
Reply from 203.207.xxx.xxx: bytes=32 time=561ms TTL=119
Reply from 203.207.xxx.xxx: bytes=32 time=501ms TTL=119
Ping statistics for 203.207.xxx.xxx:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 130ms, Maximum = 561ms, Average = 350ms
看看目标有没有开Finger服务?一般来说利用Finger,总可以得到几个用户名信息,再通过简单的猜测来试探用户密码。得到一些普通用户帐号后,就可以考虑用Telnet方法来看看了。
3.扫描:看个清清楚楚
现在,该考虑扫描Linux服务器了。目标开了哪些端口?这些端口有什么利用价值?扫描返回的Banner信息说明目标是什么系统?什么版本?这些版本的OS有什么可利用的漏洞?我们有哪些攻击方法可以使用?还是一步一步来吧!
NMap(Network Mapper)是Linux下的网络扫描和嗅探工具包,其基本功能有三个,一是探测一组主机是否在线;其次是扫描主机端口,嗅探提供的网络服务;三是可以推断主机所用的操作系统。Nmap可用于扫描仅有两个节点的LAN,直至500个节点以上的网络。此外,它还允许用户定制扫描技巧,并能将探测结果记录到各种格式的日志中,供进一步分析操作。
NMap可以从http://www.insecure.org/nmap/获得。可以选择RPM格式或者RPM源码格式安装。以下是一个安装范例:
bzip2 -cd nmap-VERSION.tar.bz2 | tar xvf -
cd nmap-VERSION
./configure
make
su root
make install
执行NMAP后,我们看到如下结果:
# nmap -sS -T Agressive -p 1-10000 203.207.xxx.xxx | grep open
Port State Protocol SerVIce
21 open tcp ftp
22 open tcp ssh
25 open tcp smtp
80 open tcp http
119 open tcp nntp
3306 open tcp mysql
从以上的分析列表可以看到,203.207.xxx.xxx作为WWW和FTP服务器使用,此外,该服务器还提供了SSH、SMTP、NNTP、MSQL和MSQL1服务。在这些服务中,SSH是一种带有完善加密和认证机制的协议,如果服务器上运行的SSH是最新版本,那么攻击它就有一定的难度。HTTP、FTP、SMTP和NNTP是203.207.xxx.xxx服务器实际提供的服务,这些服务是必须运行的。
现在,我们找到了打开的端口,却不知道是哪个程序在操作这个端口,就要使用LSOF等工具了。执行命令“lsof -P -n –i”,即可显示所有本地打开的端口及操作这些端口的程序。一个比较典型的例子如图1所示。