yzdily / yzdily.github.io

22 stars 1 forks source link

第二章操作系统基础之Linux基础 #12

Open yzdily opened 3 years ago

yzdily commented 3 years ago

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

系统管理 服务搭建 渗透测试 网络维护

如何学习Linux呢?

从命令开始打好基础 选择一本好书,如《Linux鸟哥私房菜》 养成在命令行下工作的习惯 学习shell命令解释器 在Linux论坛获取帮助 结合Web渗透学习专业英语

Linux安装 1.版本及磁盘分区 Linux内核版本由团队统一发布,其格式为:

XX.YY.XX:主版本号.次版本号.修复次数 次版本号为偶数表示稳定版,奇数表示开发版(修复BUG)

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

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

/dev/hda5 dev表示:硬件设备文件所在目录 hd表示IDE设备 硬盘顺序号以字母开头a...... 5表示分区的顺序号1.......

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

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

EXT4:第3代扩展(Extended)文件系统 SWAP:交换文件系统 Linux支持的其他文件系统类型包括:

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

2.安装Linux系统 安装步骤为:

插入安装光盘,引导安装程序(设置主机引导设备为光盘驱动且从光盘启动主机) 检测安装光盘的完整性 配置安装程序(显示语言、键盘类型、磁盘初始化、分区、时区、管理员口令等) 复制文件并完成安装过程 初始化Linux系统 作者建议采用虚拟机安装Linux镜像。

初始化Linux系统操作包括:

用户许可协议 网络防火墙配置 SELinux配置 Kdump配置 系统日期和时间设置 添加系统用户 声卡测试

三.Linux系统基础设置 注意:作者虽然使用Kali系统,但其语法和命令均是Linux,读者也可以安装RedHat等。

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

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

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

df - T 查看光驱挂载目录 mount /dev/sr0 /media 挂载Linux系统外的文件 umount /dev/sr0 卸载Linux系统外的文件,即光驱 cd /mdeia 访问指定目录 ls 文件查看,发现其是一个压缩文件

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

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

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

cd vmware-tools-distrib/ ls ./vmware-install.pl

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

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

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

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

第一步,调用命令查看开放端口,发现22远程连接端口未开放,安装SSH并开放端口。 注意,yum是Centos上的包管理,kali需要使用apt-get进行软件安装。

netstat -tnlp 查看开tcp端口 apt-get install openssh-server 安装ssh /etc/init.d/ssh start 开启ssh

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

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

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

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

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

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

/etc/init.d/ssh start

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

/etc/init.d/ssh status

接着设置开机自动启动。

update-rc.d ssh enable

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

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

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

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

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

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

第三步,选择第二个,按下B键盘。 第四步,输入“passed root”,重新设置新密码。

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

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

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

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

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

boot:存放系统装载引导程序、设备启动核心文件,如内核、initrd以及grub。 dev:Device(设备)的缩写,存放Linux的外部设备,包括光盘、硬盘、U盘,dev/sr0代表光驱。在Linux中访问设备的方式和访问文件的方式是相同的。

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

home:非常重要的一个目录,存放普通用户的家目录,该目录名通常以用户的账号命名的,相当于Windows系统的用户目录。 root:专门存放管理员用户的信息目录,也称作超级权限者的用户主目录。 lib:存放系统最基本的动态连接共享库文件,类似于Windows里的DLL文件,比如静态库“.aa”、动态库“.dll”、“.so”(share object共享库)、/lib/modules内核模块文件等。几乎所有的应用程序都需要用到这些共享库。 lost+found:这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件.

media:挂载外部存储介质,比如移动设备、光驱等。linux会把识别的设备挂载到这个目录下。 mnt:挂载额外的临时文件,比如将光驱挂载在/mnt上,然后进入该目录查看光驱里的内容。 opt:可选目录,用于安装第三方软件或程序。比如你安装一个ORACLE数据库则就可以放到这个目录下,默认是空的。 proc:伪文件系统,生成开机临时文件。它是系统内存的映射,可以通过直接访问这个目录来获取系统信息。

sbin:Super User的缩写,存放管理员可执行命令。 srv: 存放一些服务启动之后需要提取的数据。

sys:文件系统的访问,用于查看内核态的一些驱动或设备等。 usr:非常重要的一个目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。 – /usr/bin:系统用户使用的应用程序。 – /usr/sbin:超级用户使用的比较高级的管理程序和系统守护程序。 – /usr/src:内核源代码默认的放置目录。 tmp:存放一些临时文件的。 var:非常重要的一个目录,存放系统库、系统日志(/var/message)、网站根目录(/var/www/html/)等。我们习惯将那些经常被修改的目录放在这个目录下。 run:临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向run。

接着我们补充一个知识点:在命令行中“#”和“$”表示什么意思呢? 它表示管理员用户,而 $ 表示非管理员或普通用户。比如我们创建一个普通用户就是 $ ,在Web渗透中,比如反弹shell后面是 $ ,接着我们需要提权变成#,提升成管理员权限进行后续操作。

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

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

如果提权成功变为管理员,则对应的id值就是0,自己操作:

四.常用命令 写到这里,我们就开始详细讲解Linux的常用命令,接下来希望大家每个命令是实践下,为后续Web渗透打下扎实基础。Let’s GO!

1.命令格式和基础命令 Linux命令是用于实现某一类功能的指令或程序,其命令的执行依赖于解释器程序,如/bin/bash。

内部命令:安装系统能执行的命令,shell解析器部分,比如ls、cat、cd。 外部命令:安装Web应用程序产生的命令,大部分是对安装程序进行操作的。 Linux命令的通用格式为:

命令关键字 [选项] [参数] 选项及参数含义:

  • 选项:用于调节命令的具体功能
  • 以“-”引导短格式选项(单个字符),比如“-l”
  • 以“--”引导长格式选项(多个字符),比如“--color”
  • 多个段格式选项可以写在一起,用一个“-”引导,比如“-al” 参数:命令操作的对象,如文件、目录名等

举个例子,“ls -al /home”查看home目录信息。

Linux命令行编辑的几个辅助操作包括:

Tab键:自动补全 反斜杠“\”:强制换行 快捷键Ctrl+U:清空至行首 快捷键Ctrl+K:清空至行尾 快捷键Ctrl+L:清屏,类似于clear 快捷键Ctrl+C:取消本次命令编辑,强制中断程序的执行 快捷键Ctrl+Z:强制中断任务

下面我先讲解几个Linux的基础命令。

命令:help Linux内部帮助命令是help,其基本使用方法如下:

help 查看Bash内部命令的帮助信息 命令 --help 查看外部命令帮助信息,适合大多数外部命令 使用man命令阅读手册页 使用“↑”、“↓”方向键滚动文本,使用Page Up和Page Down键翻页,按Q或q键退出阅读环境,按“/”键后查看内容。

命令:uname 查看系统相关信息,常用命令选项:

-a:显示主机名、内核版本、硬件平台等详细信息 -r:显示内核版本号 该命令非常重要,我们在提权中可能会碰到uname命令。提权一般基于内核的本地溢出提权,如果想本地溢出,首先需要看到本地版本号。

命令:hostname 查看系统主机名,包括主机名称、所在域的名称。

命令:ifconfig 查看系统IP信息。

命令:cat /proc/cpuinfo 查看CPU信息。

命令:cat /proc/meminfo 查看内存信息。

命令:shutdown \ poweroff 关机操作,比如“shutdown -h now”。

命令:reboot \ shutdown 重启操作,比如“shutdown -r now”。

2.目录操作命令 ls\cd\du\mkdir 命令:pwd 查看工具目录(Print Working Directory)。

命令:cd 切换工作目录(Change Directory),其格式为:cd [目录位置]。

命令:ls

用途:列表(List)显示目录内容 格式:ls [选项]… [目录或文件名] 常用格式选项: -l:以长格式显示 -a:显示所有子目录和文件的信息,包括隐藏文件 -A:类似于“-a”,但不显示“.”和“…”目录的信息 -d:显示目录本身的属性 -h:以更易读的字节单位(K、M等)显示信息 -R:递归显示内容 –color:以颜色区分不同类型文件 常用组合:ls -al 在Linux系统中,ls相当于DOS命令的dir,Linux的隐藏文件前面有个点“.test”,具体示例如下:

ls
查看当前目录
ls / 
查看根目录或文件
ls -al
查看文件所有信息,包括隐藏文件,并以长格式显示
ls -lh /
查看文件大小,以长格式显示

在Web渗透中,我们常用“ls -al”命令查看文件的权限信息。

命令:du

用途:主要用于查看文件大小,统计目录及文件的空间占用情况(Eatimate file space usage)。 格式:du [选项]… [目录或文件名] 常用格式选项: -a:统计时包括所有的文件,而不仅仅只统计目录 -h:以更易读的字节单位(K、M等)显示信息 -s:只统计每个参数所占用空间总的大小 常用组合:du -sh 当我们拿到服务器之后,需要对源码进行打包或数据库进行脱库,如果库太大,Sqlmap可能会跑崩,可以尝试du查看大小“du -sh /”,再用“gzip”压缩打包下载。

命令:mkdir

用途:常用命令,用于创建新的目录(Make Directory) 格式:mkdir [-p] [/路径/]目录名 常用命令:递归创建目录 mkdir -p /csdn/eastmount 当我们调用“mkdir /cdsn/eastmount”时会报错,因为根目录下没有“csdn”目录。如果想要连续递归创建多个目录,则需要增加“-p”参数,即“mkdir -p /csdn/eastmount”。

3.文件操作命令touch\vi\cp\rm\mv\find 命令:touch

用途:新建空文件,或更新文件时间标记 格式:touch 文件名… 如果文件不存在则创建文件;如果文件存在,该命令的另一个作用是更新日期。在Web渗透中,该命令可以硬核的帮助我们创建文件或隐藏东西。比如我们上传了一个木马,它会有相应的新建日期,管理员很容易发现这些异常文件或信息。我们可以尝试将所有文件都更新到最新日期,调用“touch /var/www/html/*”命令实现,但其效果肯定不好,后面随着深入,会分享更好的方法。

命令:ln

用途:为文件或目录创建链接(Link),即快捷方式 格式:ln [-s] 源文件或目录… 链接文件或目标目录 常用格式选项: -s:建立符号链接文件(省略此项则建立硬链接)

br />

命令:cp

用途:复制(Copy)文件或目录 格式:cp [选项]… 源文件或目录… 目标文件或目标目录 常用格式选项: -r:递归复制整个目录树 -p:保持源文件的属性不变 -f:强制覆盖目标同名文件或目录 -i:需要覆盖文件或目录时进行提醒 复制文件至指定位置:cp test.txt /var/www/html/

如果我们需要复制目录的话,需要增加一个递归复制参数“-r”,比如:cp -r csdn /var/www/html/

参数“-f”表示强制复制,根目录是略过目录时使用。

命令:rm

用途:删除(Remove)文件或目录 格式:rm [选项]… 文件或目录 常用格式选项: -f:强制删除文件或目录,不进行提醒 -i:删除文件或目录时提醒用户确认 -r:递归删除整个目录树 常用命令:递归强制删除整个目录 rm -rf,但需慎用

命令:mv

用途:移动(Move)文件或目录,相当于剪切,如果目标位置与源位置相同,相当于重命名 格式:mv [选项]… 源文件或目录… 目标文件或目录 移动至“csdn”文件夹,如:mv test.txt /csdn

重命名文件,如:mv test.txt yxz.txt

命令:find

用途:用于查找文件或目录,取证也常用该命令 格式:find [查找范围] [查找条件] 常用格式选项: -name:按文件名称查找 -size:按文件大小查找 -user:按文件属性查找 -type:按文件类型查找 通过名字查某目录下所有文件,如:find /etc -name “m.conf”,注意“”表示通配符。

查找网站根目录下哪些文件是root,如:find / -user root 在Web渗透中,当某人上传文件并修改为root权限,我们管理员可以通过该命令查找来发现可疑文件,判断服务器是否被攻击。

4.文本编辑查看命令vi\cat\wc 命令:vi

用途:该命令是一个较大的UNIX命令,在启动时存在,用于编辑文件修改 格式:vi [-options] [+[n]] [file] 常用格式选项: -r:用于恢复系统突然崩溃时正在编辑的文件 -R:用于以只读方式打开文件 +n:用来指明进入vi后直接位于文件的第n行,如果不指定n,则位于最后一行 首先,作者将帮助信息插入“eastmount.txt”文件,如下图所示: ls --help > eastmount.txt

从第10行开始编辑,如:vi +10 eastmount.txt

如何查看行号呢,设置命令:set nu

注意,当我们输入vi进入的就是命令模式,无法进行修改。按下命令键“i”进入插入模式才能编辑,按esc退出当前模式。

在命令方式下使用某些命令会导致vi马上进入文本插入方式。在这种方式下用于的任何输入都被当作是文件的内容看待,并将其显示在屏幕上。命令包括:

a:在光标后附加文本 A:在文本行末附加文本 i:在光标前插入文本 I:在文本开始插入文本 o:在光标下插入新行 O:在光标上插入新行 查看某个文字,如:/backups。停留在某行,按两次“D”键表示删除该行内容。“6DD”表示从当前行开始删除6行内容,比如10-15行。“YY”是复制,“P”是粘贴,“U”是撤销。

底行模式:按下“ESC”键退出插入模式,在命令模式中输入“shift+:”进入底行模式,输入“10d”表示删除第10行内容,“10.15d”表示删除10-15行内容。“:10”表示光标跳转到第10行,“:…$d”表示从当前光标位置删除到最后,“ $ ”表示最后一行。

搜索和替换:

/string:向前搜索指定字符串,搜索时忽略大小写 :set ic n:搜索指定字符串的下一个出现位置 :%s/old/new/g:全文替换指定字符串 :n1,n2s/old/new/g:在一定范围内替换指定字符串 我们将“command”替换成“eastmount”,命令为:%s/command/eastmount/g 如果需要10至19行替换,命令为:10.19s/command/eastmount

行命令下使用“q”命令退出vi,如果文件做过修改, 系统将作出提示并取消此次退出操作。行命令“x”相当于“:wq”命令,在命令方式下使用命令“ZZ”等效于“:x”命令。如果由于读写权限或是更新问题,导致vi拒绝执行保存文件或退出vi的命令,那么可以在命令后加一个“!”表示强制命令。

当我们vi完成修改,需要输入“:wq!”强制保存退出。

命令:cat

用途:显示出文件的全部内容 常用格式选项: -n:给输出的所有行加上编号 合并文件:cat 1 2 > 3 将文件1和文件2合并到文件3中 命令:head 显示前10行内容

命令:tail 显示倒10行内容

命令:more 分屏查看内容,空格翻页

命令:wc

用途:统计文件中的单词数量、字节数和行数 常用格式选项: -l:统计行数 -w:统计单词数 -c:统计字符数 输出结果中105位行数、628位单词数、6502为字符数。

命令:history 查看历史命令

5.压缩文件命令gzip\bzip2\tar 命令:gzip\bzip2

用途:归档和压缩命令,只针对单个文件压缩 格式:gzip 文件名 压缩文件,格式后缀为.gz 格式:bzip2 文件名 压缩成的文件名,格式后缀为.bz2,它相对于gzip压缩率更高 常用格式选项: -9:显示高压缩比 -d:释放压缩文件 输入命令“gzip -9 eastmount.txt eastmount.txt.gz”进行高度压缩,可以看到“eastmount.txt”已经不存在,新增加“eastmount.txt.gz”大小变小。

解压缩命令:gzip -d eastmount.txt.gz

命令:tar

用途:归档命令,打包文件,释放归档文件,没有压缩功能 格式:tar 选项 归档文件名 源文件或目录 常用格式选项: -c:创建归档文件,扩展名为.tar -v:输出详细信息 -f:表示使用归档文件 -x:解开归档文件 -t:列表查看包内文件(不释放解包) -p:解包时保留原始文件及目录的权限 -C:解包时指定释放的目录文件夹 -z:调用gzip程序进行解压或压缩 -j:调用bzip2程序进行压缩或解压 -cvf:创建归档文件 -xvf:解包归档文件 tar命令类似于Windows压缩工作WinRAR,但Linux压缩(gzip\bzip2)和打包(tar)文件是分开的。常用命令如下:

tar -cvf 4.tar 1 2 3 将文件1、2、3打包归档为4.tar tar -xvf 4.tar 解压归档文件4.tar tar -tvf 4.tar -r 追加tar文件至归档结尾 tar -rvf 4.tar 5 把文件5加入4.tar -tar -cvzf test.tar.gz 被压缩的文件1、文件2创建归档压缩文件,后缀为.gz -tar -cvjf test.tar.bz2 被压缩的文件1、文件2创建归档压缩文件,后缀为.bz2 tar -xvzf test.tar.gz -C /usr/src 解压释放归档文件到/usr/src中 tar -xvjf test.tar.bz2 -C /usr/src 解压释放归档文件到/usr/src中 调用“tar -cvf test.tar yxz.txt eastmount.txt”命令将“yxz.txt”和“eastmount.txt”文件进行打包。

删除源文件,我们再调用“tar -xvf test.tar”解开文档。

接着往里面增加内容,命令为:tar -rvf test.tar csdn.txt

通常我们会先打包文件,在对其进行压缩,命令为:gzip test.tar test.tar.gz

删除文件之后解压,命令为:tar -zxvf test.tar.gz

6.安装升级软件rpm\yum\apt-get 命令:rpm

用途:安装、升级、卸载RPM软件 格式:rpm [选项] RPM包文件 常用格式选项: -i:安装一个新的rpm软件包 -U:升级某个rpm软件,若原本未装,则进行安装 -f:更新某个rpm软件,若原本未装,则放弃安装 -e:卸载指定的rpm软件 辅助选项 -force:强制安装所指定的rpm软件包 -nodeps:安装、升级或卸载软件包时,忽略依赖关系 -h:以“#”号显示安装的进度 -v:显示安装过程中的详细信息 在Web渗透中,安装扫描器、后门常用安装软件包命令。

安装:rpm -ivh man*.rpm

卸载:rpm -e man

命令:yum

用途:样本源安装,比如:yum -y install man

命令:apt-get

用途:网络源下载软件,用法:apt-get install xxx 比如按照SSH,则输入“apt-get install openssh-server”命令。

命令:dpkg

用途:它是Debian的一个命令行工具,它可以用来安装、删除、构建和管理Debian的软件包。 安装软件命令行:dpkg -i <.deb file name> 示例:dpkg -i avg71flm_r28-1_i386.deb、 删除软件包(保留其配置信息)命令行:dpkg -r <.deb file name> 示例:dpkg -r avg71flm

补充一个命令,查看开启的服务,比如ssh,则输入“ls /etc/init.d”。

7.用户账号命令useradd\userdel 命令:useradd

用途:添加用户账号 格式:useradd [选项] 用户名 常用命令选项: -u:指定UID标记号 -d:指定宿主目录,缺省为 /home/用户名 -e:指定账号失效时间 -g:指定用户的基本组名(或UID号) -G:指定用户的附加组名(或GID号) -M:不为用户建立并初始化宿主目录 -s:指定用户的登录Shell

命令:userdel

用途:删除用户账号 格式:useradd [-r] 用户名 添加“-r”选项时,表示连用户的宿主目录一并删除

8.网络配置ifconfig\hostname\route\netstat 命令:ifconfig

用途:查看网络接口信息 查看所有活动网络接口的信息格式:ifconfig 命令 查看指定网络接口的信息格式:ifconfig 网络接口名

修改ip地址,临时修改用于调试,重启后ip会恢复。其中,eth0以太网。

关闭接口:ifconfig eth0 down

开启接口:ifconfig eth0 up

自动获取ip:dhclient eth0

创建多个IP逻辑接口:ifconfig eth0:1 192.168.44.140/24

接着我们补充网卡类型。

eth0:以太网 lo:虚拟回环设备 ppp0:使用PPP协议的串口设备,通常指调制解调器 tr0:令牌环(Token Ring) fddi0:光纤

命令:hostname

用途:查看或设置当前主机名 格式:hostname

命令:route

用途:查看或设置主机中路由表信息 格式:route [-n] 查看网关,其中0.0.0.0表示访问任何地址。

命令:netstat

用途:查看系统的网络连接状态、路由表、接口统计等信息 格式:netstat [选项] 常用选项: -a:显示所有活动连接 -n:以数字形式显示 -p:显示进程信息 -t:查看TCP协议相关信息 -u:查看UDP协议相关信息 -r:显示路由表信息 netstat是Web渗透中非常重要的一个命令,查看tcp协议的网关信息:netstat -tnlp。注意,“netstat -utnlp”相当于Windows的“netstat -an”命令。

网络接口配置文件为“/etc/sysconfig/network-scripts/目录下的”,其中“ifcfg-eth0”表示第1块以太网卡的配置文件,“ifcfg-eth1”表示第2块以太网卡的配置文件,可以对网络进行配置。

命令:network

用途:启用、禁用网络接口配置 重启network格式:service network restart 命令:ifdown eth0 禁用网络接口

命令:ifup eth0 启用网络接口

域名解析配置文件为“/etc/resolv.conf”,保存本机需要使用的DNS服务器的IP地址。

9.权限控制chmod 命令:chmod

用途:权限控制命令 Linux系统下文件权限显示如下图所示,第一个数字,数字代表的意义为:

– 普通文件 d 目录 s socket套接字 l 软链接 p 管道 c 字符设备 b 块设备

权限分为读、写、执行,分别用一个数字代表。同时三个数字组合为一组分别表示用户、用户组、其他人的权限。显示的时候r表示文件可以被读(read),w表示文件可以被写(write),x表示文件可以被执行(如果它是程序的话)。修改的时候用数字,三位二进制刚好组成8进制。从右向左,x为第一位,十进制数字为1,w是第二位,十进制为2,r第三位,十进制为4。

权限 | 文件 | 文件夹 r 读 | 查看文件内容 | 列出文件夹内容 w 写 | 修改文件内容 | 可以在文件夹创建删除文件内容 x 执行 | 执行文件 | 可以进入文件夹

修改文件或者目录的权限,change permissions mode of a file简称chmod命令。这里设置每个人都有读写和执行权限。

chmod 777 rdp

在Web渗透中,上传木马可能会显示403,因为这个目录设置权限了,此时就需要使用该命令,如chmod 744 mm.jpg。如果需要设置某个目录下所有文件权限,则使用chmod -R 777 /csdn。

五.LAMP网站搭建 LAMP(Linux+Apache+MySQL+PHP)搭建网站通常需要安装5个包,即调用“yum -y install httpd php php-mysql mysql mysq-server”。下面详细讲解在Kali中搭建LAMP网站的过程。

第一步,启动apache。

service apache2 start service apache2 status

第二步,启动mysql

service mysql start

第三步,验证数据库操作。

修改数据库密码 mysqladmin -uroot password 123456 访问数据库 mysql -uroot -p123456 查询数据库 show databases;

使用数据库 use mysql; 查询表 show tables; 查询数据 select * from user;

第四步,使用cd命令切到网站目录,并插入HTML代码。

cd /var/www/html ls echo "Hello, this is eastmount CSDN" > index.html cat index.html

第五步,如果外网无法访问,需要关闭防火墙“iptables -F”,比如XP访问。

第六步, leafpad编辑index.html文件,修改为PHP文件。 注意,下面第二行代码少了一个“;",作者已修改。

<?php echo "Hi, My name is eastmount."; phpinfo(); ?>

phpinfo函数是读取网站的基本信息,之后保存并退出。接着修改后缀为php,使用mv命令,即:mv index.html index.php。

之后用火狐浏览器访问,就会出现以下界面:

注意,作者的Win10主机同样可以访问虚拟机中的该网站。

此时说明LAMP环境运行成功,可以使用命令 netstat -ant 查看端口状态:80端口为apache所使用,而3306端口为数据库mysql所使用。

第七步,读者如果想搭建更好的网站,可以直接拖动已经创建好的网站模板至“/var/www/html”文件夹。

如下图所示:

如果提示权限不足,则使用“chmod -R 777 /var/www/html/xxx”即可。

第八部,读者如果想搭建多个网站,设置多个端口即可。

通过不同端口访问不同的网站。

后续深入会分享各个CMS模版,以及phpstudy和wordpress站点搭建、Web渗透等知识。