vlambda博客
学习文章列表

网络安全基础篇之Linux基础知识

渗透工具、配套视频、思维导图、面试题

#扫码找小助理领取#






一.Linux介绍

Linux是一套免费使用和自由传播的操作系统内核,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统内核。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统内核。

作为Web渗透的初学者,Linux基础知识和常用命令是我们的必备技能,我们不能只会操作Windows相关的工具。一方面很多网站都是基于Linux环境搭建,比如LAMP,其安全性更好;另一方面,很多命令或工具都集成在了Linux相关环境中,比如Kali等。

常见的操作系统包括:

  • Windows

  • Linux

  • Unix

  • Mac OS

为什么世界上有了很棒的Unix,还要发展Linux呢?

20世纪80年代,计算机硬件的性能不断提高,PC的市场不断扩大,当时可供计算机选用的操作系统主要有Unix、DOS和MacOS这几种。Unix价格昂贵,不能运行于PC;DOS显得简陋,且源代码被软件厂商严格保密;MacOS是一种专门用于苹果计算机的操作系统。此时,计算机科学领域迫切需要一个更加完善、强大、廉价和完全开放的操作系统。

由于供教学使用的典型操作系统很少,因此当时在荷兰当教授的AndrewS.Tanenbaum编写了一个操作系统,名为MINIX,为了向学生讲述操作系统内部工作原理。MINIX虽然很好,但只是一个用于教学目的的简单操作系统,而不是一个强有力的实用操作系统,然而最大的好处就是公开源代码。全世界学计算机的学生都通过钻研MINIX源代码来了解电脑里运行的MINIX操作系统,芬兰赫尔辛基大学大学二年级的学生Linus Torvalds就是其中一个,在吸收了MINIX精华的基础上,Linus于1991年写出了属于自己的Linux操作系统,版本为Linux0.01,这是Linux时代开始的标志。他利用Unix的核心,去除繁杂的核心程序,改写成适用于一般计算机的X86系统,并放在网络上供大家下载,1994年推出完整的核心Version1.0,至此,Linux逐渐成为功能完善、稳定的操作系统,并被广泛使用。


网络安全基础篇之Linux基础知识


Linux为什么会引起如此强烈的反响呢?因为Unix有版权,爱好编程的狂热分子在研究Unix的时候很容易吃上官司 ,而Linux是遵循GPL协议的,可以免费使用,让黑客们尽情的施展(这里的黑客指那些技术大牛,不是指那些利用计算机干坏事的人)。于是Linux提供内核(Kernel),GNU提供外围软件,就这样GNU/Linux诞生了。总之,Linux是一款免费共享、稳定性好、支持开源(Open Source)的操作系统,适合个人用户或黑客使用。

Linux发展历程如下

  • 1991年:第一个版本0.0.2发布,代码只有约一万行

  • 1992年:Linux0.96拥有4万行代码,大约1000人使用且大部分是黑客

  • 1993年:Linux0.99发布,代码量10万行,用户约2万,采用GUN的GPL协议,从此迅速发展

Linux操作系统由内核及应用程序组成,不同的厂商根据各自的需要将各种应用软件和Linux内核打包成一个Linux发行版本。Linux常见发行版本包括:

  • RedHat Linux

  • SuSE Linux

  • Ubuntu Linux

  • Debian GUN/Linux

  • Mandrake Linux

  • Turbolinux

  • CentOS

网络安全基础篇之Linux基础知识


Linux优点包括:

  • 免费开源

  • 多用户、多任务

  • 支持多平台

  • 可靠的安全稳定性能

  • 丰富的网络功能

  • 良好的界面

Linux比Windows安全性更好,针对Linux的病毒和木马比较少,开源使得Linux的漏洞也更少。经过多年的发展,Linux的应用更广,服务器使用Linux后的稳定性和安全性更高,数据库、ERP、企业级Office、网站管理、RAS计算等也都开始使用Linux。当前,大部分大型互联网公司都在使用Linux提供的Web服务,包括Google搜索服务、QQ服务器、国家邮政局等都在使用Linux系统。

在安全领域,Linux主要的应用包括:

  • 系统管理

  • 服务搭建

  • 渗透测试

  • 网络维护

最后,如何学习Linux呢?

  • 从命令开始打好基础

  • 选择一本好书,如《Linux鸟哥私房菜》

  • 养成在命令行下工作的习惯

  • 学习shell命令解释器

  • 在Linux论坛获取帮助

  • 结合Web渗透学习专业英语

二.Linux安装

1.版本及磁盘分区

Linux内核版本由团队统一发布,其格式为:

  • XX.YY.XX:主版本号.次版本号.修复次数

  • 次版本号为偶数表示稳定版,奇数表示开发版(修复BUG)

比如kernel 2.6.32,其中主版本号是“2”,次版本号是“6”,修复次数是32,由于次版本号为偶数,即稳定版。内核表示操作系统核心代码

网络安全基础篇之Linux基础知识

Linux中将硬盘、分区等设备均表示为文件,磁盘分区表示如下图所示:

网络安全基础篇之Linux基础知识


数字表示分区,前4个为主分区,5是逻辑分区。硬盘和分区结构如下图所示:

网络安全基础篇之Linux基础知识

Linux中默认使用的文件系统类型包括:

EXT4:第3代扩展(Extended)文件系统

SWAP:交换文件系统

Linux支持的其他文件系统类型包括:

  • FAT16、FAT32、NTFS

  • XFS、JFS

如果在Windows系统中,我们选中磁盘右键属性即可查看文件类型,比如NTFS


网络安全基础篇之Linux基础知识


2.安装Linux系统

安装步骤为:

1.插入安装光盘,引导安装程序(设置主机引导设备为光盘驱动且从光盘启动主机)

2.检测安装光盘的完整性

3.配置安装程序(显示语言、键盘类型、磁盘初始化、分区、时区、管理员口令等)

4.复制文件并完成安装过程

5.初始化Linux系统

建议采用虚拟机安装Linux镜像

网络安全基础篇之Linux基础知识

初始化Linux系统操作包括:

  • 用户许可协议

  • 网络防火墙配置

  • SELinux配置

  • Kdump配置

  • 系统日期和时间设置

  • 添加系统用户

  • 声卡测试

网络安全基础篇之Linux基础知识

三.Linux系统基础设置

注意:我虽然使用Kali系统,但其语法和命令均是Linux,大家也可以安装RedHat等

1.安装虚拟工具及文件共享

很多同学都会疑惑,如何在主机Windows系统和虚拟机Linux系统之间传输文件呢?这里需要安装虚拟工具及文件共享设置。

第一步,在虚拟机中点击“安装 VMware Tool”选项


网络安全基础篇之Linux基础知识


第二步,输入命令查看光驱挂载目录,并去到光驱指定目录

  • df - T

查看光驱挂载目录

  • mount /dev/sr0 /media

挂载Linux系统外的文件

  • umount /dev/sr0

卸载Linux系统外的文件,即光驱

  • cd /mdeia

访问指定目录

  • ls

文件查看,发现其是一个压缩文件

网络安全基础篇之Linux基础知识

第三步,解压tar文件至“root”目录。需要注意,当我们输入“tar zxvf VM * ”时,按下Tab键,它会自动补全后续的字符串,方便我们操作

  • tar zwvf VMwareTools-10.0.10-4301679.tar.gz -C /root

网络安全基础篇之Linux基础知识

第四步,cd去到root目录下,并运行安装VMware Tool。注意,输入“./vmware-install.pl”也可以Tab键补全,之后的安装全部按回车键选择默认即可

  • cd vmware-tools-distrib/

  • ls

  • ./vmware-install.pl

网络安全基础篇之Linux基础知识

第五步,输入“reboot”重启系统即可

网络安全基础篇之Linux基础知识

文件直接拖动复制过来即可

网络安全基础篇之Linux基础知识


2.远程连接

我们尝试用Windows远程连接Kali系统。这里采用mantra浏览器进行远程连接,这是Web渗透常用的一款浏览器,读者也可以使用其他工具,比如xshell、putty、xmanager

OWASP Mantra是由Mantra团队开发,面向渗透测试人员、Web 开发人员和安全专业人员的安全工具套件,它是基于浏览器Chromium和Firefox,包括扩展程序和脚本集合

网络安全基础篇之Linux基础知识

第一步,调用命令查看开放端口,发现22远程连接端口未开放,安装SSH并开放端口

注意,yum是Centos上的包管理,kali需要使用apt-get进行软件安装。

  • netstat -tnlp

查看开tcp端口

  • apt-get install openssh-server

安装ssh

  • /etc/init.d/ssh start

开启ssh

网络安全基础篇之Linux基础知识

安装ssh并开启后,我们发现22端口已经处于监听状态

网络安全基础篇之Linux基础知识

网络安全基础篇之Linux基础知识

第二步,设置sshd_config配置文件

此时远程连接可能会报错“Unable to make a connection. Please try again.”,可能是由于sshd设置不允许root用户远程登录。ssh连接可以远程管理Linux设备,默认端口是22,安装好系统默认是不开启的,需要修改配置文件

  • vi /etc/ssh/sshd_config

修改/etc/ssh/sshd_config配置文件

网络安全基础篇之Linux基础知识

找到“#PasswordAuthentication yes”并把#的注释去掉。

网络安全基础篇之Linux基础知识

将“PermitRootLogin without-password”修改为“PermitRootLogin yes”。

网络安全基础篇之Linux基础知识

网络安全基础篇之Linux基础知识

修改完后,按ESC键,输入“:wq!”保存退出,然后启动ssh服务。

  • /etc/init.d/ssh start

网络安全基础篇之Linux基础知识

查看ssh状态,此时处于激活状态。

  • /etc/init.d/ssh status

网络安全基础篇之Linux基础知识

接着设置开机自动启动

  • update-rc.d ssh enable

网络安全基础篇之Linux基础知识


最后输入“reboot”重启系统并且使用工具进行远程连接。

第三步,调用Mantra浏览器进行远程连接

网络安全基础篇之Linux基础知识
网络安全基础篇之Linux基础知识

注意:SSH远程连接总是超时,而且一直未解决,还是太菜!o(╥﹏╥)o

3.登录密码爆破

如果我们丢失Linux密码,如何进行爆破登录呢?

第一步,在开机自检后,出现grub引导界面时,按E键进入编辑模式

网络安全基础篇之Linux基础知识

网络安全基础篇之Linux基础知识

第二步,再次按下E键,接着在下图中输入“空格+s”并按下回车键

网络安全基础篇之Linux基础知识

第三步,选择第二个,按下B键盘

网络安全基础篇之Linux基础知识

第四步,输入“passed root”,重新设置新密码

网络安全基础篇之Linux基础知识

第五步,输入新密码登录即可

网络安全基础篇之Linux基础知识

4.系统目录结构

Linux目录结构如下图所示,其中最顶层“/”是根目录。熟悉Linux目录非常重要,不同的目录有不同的作用。比如,搭建网站有对应的目录,代码审计同样需要熟悉目录,文件扫描更需要知道不同目录存放的文件及相关信息。

网络安全基础篇之Linux基础知识

Linux根目录中输入“ls”可以查看目录结构。

网络安全基础篇之Linux基础知识

各目录的功能及含义如下:

  • bin:Binary的缩写,存放普通用户可执行的一些命令,命令是以文件形式存储,如cat、ls、pwd等。

网络安全基础篇之Linux基础知识
  • boot:存放系统装载引导程序、设备启动核心文件,如内核、initrd以及grub。

  • dev:Device(设备)的缩写,存放Linux的外部设备,包括光盘、硬盘、U盘,dev/sr0代表光驱。在Linux中访问设备的方式和访问文件的方式是相同的。

网络安全基础篇之Linux基础知识
  • etc:

    非常重要的一个目录,存放所有系统管理所需要的配置文件和子目录。

网络安全基础篇之Linux基础知识

  • home:非常重要的一个目录,存放普通用户的家目录,该目录名通常以用户的账号命名的,相当于Windows系统的用户目录。

  • root:专门存放管理员用户的信息目录,也称作超级权限者的用户主目录。

  • lib:存放系统最基本的动态连接共享库文件,类似于Windows里的DLL文件,比如静态库“.aa”、动态库“.dll”、“.so”(share object共享库)、/lib/modules内核模块文件等。几乎所有的应用程序都需要用到这些共享库。

  • lost+found:这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。

网络安全基础篇之Linux基础知识

  • media:挂载外部存储介质,比如移动设备、光驱等。linux会把识别的设备挂载到这个目录下
    mnt:挂载额外的临时文件,比如将光驱挂载在/mnt上,然后进入该目录查看光驱里的内容。
    opt:可选目录,用于安装第三方软件或程序。比如你安装一个ORACLE数据库则就可以放到这个目录下,默认是空的。


  • proc:伪文件系统,生成开机临时文件。它是系统内存的映射,可以通过直接访问这个目录来获取系统信息。


网络安全基础篇之Linux基础知识
  • sbin:Super User的缩写,存放管理员可执行命令。

  • srv:存放一些服务启动之后需要提取的数据。

网络安全基础篇之Linux基础知识
  • sys:文件系统的访问,用于查看内核态的一些驱动或设备等。

  • usr:非常重要的一个目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。

– /usr/bin:系统用户使用的应用程序。

– /usr/sbin:超级用户使用的比较高级的管理程序和系统守护程序。

– /usr/src:内核源代码默认的放置目录。

  • tmp:存放一些临时文件的。

  • var:非常重要的一个目录,存放系统库、系统日志(/var/message)、网站根目录(/var/www/html/)等。我们习惯将那些经常被修改的目录放在这个目录下。

  • run:临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向run。

网络安全基础篇之Linux基础知识


接着我们补充一个知识点:在命令行中“#”和“$”表示什么意思呢?

它表示管理员用户,而 $ 表示非管理员或普通用户。比如我们创建一个普通用户就是 $ ,在Web渗透中,比如反弹shell后面是 $ ,接着我们需要提权变成#,提升成管理员权限进行后续操作

创建用户
adduser eatmount
使用用户
su - eastmount
查看id
cd /etc
id

我们创建的eastmount用户对应的符号为 $ ,并且对应的id值为1000

如果提权成功变为管理员,则对应的id值就是0,如下图所示:



END