热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

安全检测Unix和Linux服务器安全设置入门精讲

尽管为服务器设计软件的软件工程师们想方设法提高系统的安全性,然而由于系统管理员的水平参差不齐或安全意识底下,往往给黑客提供了入侵的机会。
其实每一个黑客都有自己独到的方法。笔者对于入侵网站服务器的资料收集了很多,但是因为实际情况的不同,往往造成许多方法的失效;由此可见,每一个网站的情况都不同,需要入侵者区分对待。假设深圳的线路比北京的线路要好的多,从而给了词典穷举很大的方便,深圳用户就可以依靠这个优势在线攻击口令,作为北京的用户就需要优先考虑其它办法了。针对这么多的入侵手段,笔者参考H ackalot先生这位黑客界名人的一篇文章给大家介绍一下入侵网站的基本步骤。  
分析一部分的主页被黑的事例可以发现使用入侵者最热衷于入侵Web服务器和FTP服务器,因为相对来说这是最简单的两种途径。在假设读者对U NIX系统和WEB SERVER的知识不曾了解的情况下,笔者给出下面的步骤。  
一、了解要入侵的系统  

现在网络上用作服务器的操作系统以UNIX和Linux为主流,如果要入侵这些系统则必须对它们有一个了解。  
大部份在 DOS 上使用的指令在 UNIX 及 Linux 上都有对应的指令(因为早期的dos开发借鉴了UNIX),以下列出在使用 SHELL帐号 (shell account)时最主要的一些指令对应的dos指令:  
HELP=HELP  
CP=COPY  
MV= MOVE  
LS= DIR  
RM =DEL  
CD=CD  
要看谁同 r也在该系 y上用户可以键入 WHO 指令,要知道系 y上某一位使用者的资料, 可以 I入 FINGER。这些基本的 UNIX 指令可以让你得到你正使用系 y的信息。  

二、破解密码  
在UNIX操作系统中, 所有系统使用者的密码都存放在一个文件中,这个文件存放在 /etc这个目录下面, 它的文件名就叫做passwd。如果读者认为所要做的工作就是拿到这个文件按照上面的密码登陆系统的话那就大错特错了。UNIX和Linux下的p asswd文件是特殊的,在它里面所有帐号的密码都已经经过重新编译的(也就是前面说过的DES加密方法),而且这些密码所进行的都是单向编译( one-way encrypted),也就是说没有办法可以反编译它的(decrypt)。  
但是还是有些程序可以得到这些原始的密码。笔者向大家推荐一个破解密码的程序"Cracker Jack",它也是一个使用字典来对字典文件进行穷举的软件。首先"Cracker Jack"会把字典文件里的每一个值进行编译,然后将编译过的值与密码文件中的内容进行比较,得到相同的结果就会报告对应的未经编译密码。这个软件巧妙的绕过密码无法反编译的限制,使用穷举比较获得密码。使用这种原理获得密码的工具有许多,读者可以到网络上去搜寻一下。  

三、获得密码文件  
这是最困难的一部分。很明显,如果管理员有那么一个密码文件的话他当然不会放在那里让其它人舒舒服服的拿到的。入侵者必须找到好方法以不进入系统的方式拿到密码文件。这里笔者向大家介绍两种方法,大家可以试试,有可能会成功。  
1.tc目录在FTP服务上不会被锁住,入侵可以用FTP client程序使用anoymously匿名帐号登陆,然后检查一下/etc/passwd是否为匿名设置了被读取的权限,如果有马上备份下来使用软件解码。  
2.些系统中,/cgi-bin目录下会有个叫PHF的文件,如果准备入侵的服务器上有的话那就要方便的多了。因为PHF允许使用者对网站系统里的文件作远端读取,以此为据,用户可以使用浏览器抓取p asswd文件,只要在浏览器地址栏中键入URL:http://xxx.xxx.xxx/cgi-bin/phf?Qalias=x%0a/bin/cat%20/etc/passwd,其中xxx.xxx.xxx 是要入侵的网站名。  
如果这两种方法都行不通的话,那入侵者必须实施其它的办法了。  
在有些情况下入侵者找到的密码文件的第二部分是X、!或者*,那么说明该密码文件已经被锁死,这是系统管理员使用的加强安全的手段之一。但是将密码文件完全隐藏起来的情况是不太有的。通常情况下都会有未经锁死的密码文件备份在系统中,这样入侵者就可以加以利用,比如:入侵者通常会寻找/ etc/shadow目录或类似的目录,看能否找到密码文件的备份。  

四、建立自己的shell帐号  
经过二、三两个关键的步骤入侵者终于拿到了关键的密码文件,并且破解出了密码。现在可以运行TELNET程序,登陆主机了。当连上服务器时服务器会向你显示自己的一些信息,通常是U NIX、linux、 aix、 irix、 ultrix、 bsd 甚至是 DOS 和VAX/Vms;然后是Login提示符出现在屏幕上,这时键入得来的帐号和密码即可登陆系统。此时入侵者就可以利用自己的UNIX知识做自己喜欢做的事了。  

最后对一份密码文件做一个分析,该文件内容如下:  
root:1234aaab:0:1:Operator:/:/bin/csh  
nobody:*:12345:12345::/:  
daemon:*:1:1::/:  
sys:*:2:2::/:/bin/csh  
sun:123456hhh:0:1:Operator:/:/bin/csh  
bin:*:3:3::/bin:  
uucp:*:4:8::/var/spool/uucppublic:  
news:*:6:6::/var/spool/news:/bin/csh  
audit:*:9:9::/etc/security/audIT:/bin/csh  
sync::1:1::/:/bin/sync  
sysdiag:*:0:1:Old System  
Diagnostic:/usr/diag/sysdiag:/usr/diag/sysdiag/sysdiag  
sundiag:*:0:1:System  
Diagnostic:/usr/diag/sundiag:/usr/diag/sundiag/sundiag  
tom:456lll45uu:100:20::/home/tom:/bin/csh  
john:456fff76Sl:101:20:john:/home/john:/bin/csh  
henry:AusTs45Yus:102:20:henry:/home/henry:/bin/csh  
harry:SyduSrd5sY:103:20:harry:/home/harry:/bin/csh  
steven:GEs45Yds5Ry:104:20:steven:/home/steven:/bin/csh  
+::0:0:::  

其中以":"分成几个栏位,比如: tom:456lll45uu:100:20:tomchang:/home/tom:/bin/csh的含义是:  
User Name: tom  
Password: 456lll45uu  
User N 100  
Group N 20  
Real Name: tom chang  
Home Dir: /home/tom  
Shell: /bin/csh  

读者可以发现以上诸如nobody、 daemon、 sys、 bin、 uucp、 news、 audIT、 sysdiag、sundiag 等的密码栏位都是*,也就是说这些帐号的密码都已锁死,无法直接利用。  

值得注意的是,许多系统在首次安装后会有一些缺省帐号和密码,这给投机主义的黑客带来方便,以下就是一些UNIX下缺省的帐号和密码。  
ACCOUNT PASSWORD  
----------- ----------------  
root root  
sys sys / system / bin  
bin sys / bin  
mountfsys mountfsys  
adm adm  
uucp uucp  
nuucp anon  
anon anon  
user user  
games games  
install install  
reboot 供"command login"使用  
demo demo  
umountfsys umountfsys  
sync sync  
admin admin  
guest guest  
daemon daemon  

其中 root mountfsys umountfsys install (有 r候 sync也是) 等都是root级别的帐号, 也就是拥有了sysop (系统管理员)的权限。  

最后有必要介绍一下UNIX的日志文件。很多入侵者不希望侵入的电脑追踪他们,那到底如何做那。  
系统管理员主要依靠系统的LOG,即我们时常所说的日志文件来获得入侵的痕迹及入侵者进来的IP和其他信息。当然也有些管理员使用第三方工具来记录侵入电脑的信息,这里主要讲的是一般U NIX系统里记录入侵踪迹的文件。  

UNIX系统有多个版本,各个系统有不同的LOG文件,但大多数都应该有差不多的存放位置,最普通的位置就是下面的这几个:  
/usr/adm,早期版本的UNIX;  
/var/adm,新一点的版本使用这个位置;  
/var/log,一些版本的Solaris,Linux BSD,Free BSD使用这个位置;  
/etc,大多数UNIX版本把utmp放在此处,一些也把wtmp放在这里,这也是 syslog.conf的位置。  

下面列举一些文件的功能,当然他们也根据入侵的系统不同而不同。  
acct 或 pacct,记录每个用户使用的命令记录;  
access_log,主要使用来服务器运行了NCSA HTTPD,这个记录文件会有什么站点连接过你的服务器;  
aculog,保存着你拨出去的MODEMS记录;  
lastlog,记录了用户最近的登陆记录和每个用户的最初目的地,有时是最后不成功登陆的记录;  
loginlog,记录一些不正常的登陆记录;  
messages,记录输出到系统控制台的记录,另外的信息由syslog来生成;  
securITy,记录一些使用UUCP系统企图进入限制范围的事例;  
sulog,记录使用su命令的记录;  
utmp,记录当前登录到系统中的所有用户,这个文件伴随着用户进入和离开系统而不断变化;  
utmpx,UTMP的扩展;  
wtmp,记录用户登录和退出事件;  
syslog,最重要的日志文件,使用syslogd守护程序来获得。  
日志信息:  
/dev/log,一个UNIX域套接字,接受在本地机器上运行的进程所产生的消息;  
/dev/klog,一个从UNIX内核接受消息的设备;  
514端口,一个INTERNET套接字,接受其他机器通过UDP产生的syslog消息;  
Uucp,记录的UUCP的信息,可以被本地UUCP活动更新,也可有远程站点发起的动作修改,信息包括发出和接受的呼叫,发出的请求,发送者,发送时间和发送主机;  
lpd-errs,处理打印机故障信息的日志;  
ftp日志,执行带-l选项的ftpd能够获得记录功能;  
httpd日志,HTTPD服务器在日志中记录每一个WEB访问记录;  
history日志,这个文件保存了用户最近输入命令的记录;  
vold.log,记录使用外接媒介时遇到的错误记录。  

以上介绍了一下入侵服务器的主要步骤,读者现在应该对它有一些基础的认识了。需要再次强调的是如果读者对UNIX系统缺乏了解的话那是绝对不可能掌握它的。

推荐阅读
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • REVERT权限切换的操作步骤和注意事项
    本文介绍了在SQL Server中进行REVERT权限切换的操作步骤和注意事项。首先登录到SQL Server,其中包括一个具有很小权限的普通用户和一个系统管理员角色中的成员。然后通过添加Windows登录到SQL Server,并将其添加到AdventureWorks数据库中的用户列表中。最后通过REVERT命令切换权限。在操作过程中需要注意的是,确保登录名和数据库名的正确性,并遵循安全措施,以防止权限泄露和数据损坏。 ... [详细]
  • 本文介绍了如何在Azure应用服务实例上获取.NetCore 3.0+的支持。作者分享了自己在将代码升级为使用.NET Core 3.0时遇到的问题,并提供了解决方法。文章还介绍了在部署过程中使用Kudu构建的方法,并指出了可能出现的错误。此外,还介绍了开发者应用服务计划和免费产品应用服务计划在不同地区的运行情况。最后,文章指出了当前的.NET SDK不支持目标为.NET Core 3.0的问题,并提供了解决方案。 ... [详细]
  • 本文介绍了5个基本Linux命令行工具的现代化替代品,包括du、top和ncdu。这些替代品在功能上进行了改进,提高了可用性,并且适用于现代化系统。其中,ncdu是du的替代品,它提供了与du类似的结果,但在一个基于curses的交互式界面中,重点关注占用磁盘空间较多的目录。 ... [详细]
  • 本文介绍了使用readlink命令获取文件的完整路径的简单方法,并提供了一个示例命令来打印文件的完整路径。共有28种解决方案可供选择。 ... [详细]
  • 本文介绍了在RHEL 7中的系统日志管理和网络管理。系统日志管理包括rsyslog和systemd-journal两种日志服务,分别介绍了它们的特点、配置文件和日志查询方式。网络管理主要介绍了使用nmcli命令查看和配置网络接口的方法,包括查看网卡信息、添加、修改和删除配置文件等操作。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • 本文记录了在vue cli 3.x中移除console的一些采坑经验,通过使用uglifyjs-webpack-plugin插件,在vue.config.js中进行相关配置,包括设置minimizer、UglifyJsPlugin和compress等参数,最终成功移除了console。同时,还包括了一些可能出现的报错情况和解决方法。 ... [详细]
  • 从U ... [详细]
  • Iamtryingtocreateanarrayofstructinstanceslikethis:我试图创建一个这样的struct实例数组:letinstallers: ... [详细]
  • Ihaveaworkfolderdirectory.我有一个工作文件夹目录。holderDir.glob(*)>holder[ProjectOne, ... [详细]
  • python3 nmap函数简介及使用方法
    本文介绍了python3 nmap函数的简介及使用方法,python-nmap是一个使用nmap进行端口扫描的python库,它可以生成nmap扫描报告,并帮助系统管理员进行自动化扫描任务和生成报告。同时,它也支持nmap脚本输出。文章详细介绍了python-nmap的几个py文件的功能和用途,包括__init__.py、nmap.py和test.py。__init__.py主要导入基本信息,nmap.py用于调用nmap的功能进行扫描,test.py用于测试是否可以利用nmap的扫描功能。 ... [详细]
author-avatar
shaihaiyou
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有