作为Web渗透的初学者,Linux基础知识和常用命令是我们的必备技能,本文详细讲解了Linux相关知识点及Web渗透免了高龄。如果想玩好Kali或渗透,你需要学好Linux及相关命令,以及端口扫描、漏洞利用、瑞士军刀等工具。安全领域通常分为网络安全(Web渗透)和系统安全(PWN逆向)两个方向。Web安全想要入门容易,想成为大佬难,通常分为三个阶段,第一个阶段是脚本小子,通过弱口令等操作拿权;第二个阶段是代码审计或自己写代码进行Web渗透;第三个阶段是进行漏洞挖掘,通过更深入的分析发现0day漏洞或APT攻击,以及提交安全报告获得奖金等。

文章目录
一.Linux介绍
二.Linux安装
1.版本及磁盘分区
2.安装Linux系统
三.Linux系统基础设置
1.安装虚拟工具及文件共享
2.远程连接
3.登录密码爆破
4.系统目录结构
四.常用命令
1.命令格式和基础命令
2.目录操作命令 ls\cd\du\mkdir
3.文件操作命令touch\vi\cp\rm\mv\find
4.文本编辑查看命令vi\cat\wc
5.压缩文件命令gzip\bzip2\tar
6.安装升级软件rpm\yum\apt-get
7.用户账号命令useradd\userdel
8.网络配置ifconfig\hostname\route\netstat
9.权限控制chmod
五.LAMP网站搭建
六.总结

作者作为网络安全的小白,分享一些自学基础教程给大家,主要是关于安全工具和实践操作的在线笔记,希望您喜欢。同时,更希望您能与我一起操作和进步,后续将深入学习网络安全和系统安全知识并分享相关实验。总之,希望该系列文章对博友有所帮助,写文不易,大神们不喜勿喷,谢谢!如果文章对您有帮助,将是我创作的最大动力,点赞、评论、私聊均可,一起加油喔~

如果对软件测试有兴趣,想了解更多的测试知识,解决测试问题,以及入门指导,
帮你解决测试中遇到的困惑,我们这里有技术高手。如果你正在找工作或者刚刚学校出来,
又或者已经工作但是经常觉得难点很多,觉得自己测试方面学的不够精想要继续学习的,
想转行怕学不会的,都可以加入我们644956177。
群内可领取最新软件测试大厂面试资料和Python自动化、接口、框架搭建学习资料!

安全工具:https://github.com/eastmountyxz/NetworkSecuritySelf-study

一.Linux介绍

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

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

常见的操作系统包括:

  • Windows
  • Linux
  • Unix
  • Mac OS

Unix是由美国电话电报公司AT&T贝尔实验室的两个工程师所创造的操作系统,它允许计算机同时处理多用户和程序。目前大型政府单位、大型企业、航空公司、金融机构多在使用该操作系统,但其价钱昂贵,但性能和稳定性非常好。

为什么世界上有了很棒的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为什么会引起如此强烈的反响呢?因为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比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中将硬盘、分区等设备均表示为文件,磁盘分区表示如下图所示:

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

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

  • EXT4:第3代扩展(Extended)
  • 文件系统 SWAP:交换文件系统

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

  • FAT16、FAT32、NTFS
  • XFS、JFS

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

2.安装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状态,此时处于激活状态。

接着设置开机自动启动。

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命令的通用格式为:


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

举个例子,“ls -al /home”查看home目录信息。![在这里插入图片描述](https://img-blog.csdnimg.cn/20200806195224790.png)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键退出阅读环境,按“/”键后查看内容。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200806195413581.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTEyOTg3Ng==,size_16,color_FFFFFF,t_70)
**命令:uname**
查看系统相关信息,常用命令选项:- -a:显示主机名、内核版本、硬件平台等详细信息- -r:显示内核版本号该命令非常重要,我们在提权中可能会碰到uname命令。提权一般基于内核的本地溢出提权,如果想本地溢出,首先需要看到本地版本号。![在这里插入图片描述](https://img-blog.csdnimg.cn/20200806195507594.png)命令:hostname
查看系统主机名,包括主机名称、所在域的名称。![在这里插入图片描述](https://img-blog.csdnimg.cn/20200806200110299.png)命令:ifconfig
查看系统IP信息。在这里插入图片描述命令:cat /proc/cpuinfo
查看CPU信息。命令:cat /proc/meminfo
查看内存信息。![在这里插入图片描述](https://img-blog.csdnimg.cn/20200806201049630.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTEyOTg3Ng==,size_16,color_FFFFFF,t_70)命令:shutdown \ poweroff
关机操作,比如“shutdown -h now”。命令:reboot \ shutdown
重启操作,比如“shutdown -r now”。## 2.目录操作命令 ls\cd\du\mkdir
命令:pwd
查看工具目录(Print Working Directory)。命令:cd
切换工作目录(Change Directory),其格式为:cd [目录位置]。![在这里插入图片描述](https://img-blog.csdnimg.cn/20200806201107373.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTEyOTg3Ng==,size_16,color_FFFFFF,t_70)**命令:ls**```php- 用途:列表(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
    创建用户命令如下图所示:

修改密码及查看本机有哪些用户如下图所示,包括uid和gid。

查看密码调用“cat /etc/shadow”,注意密码和用户名是分开的。

命令: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。

如下图所示,第一个7表示用户具有读、写、执行的权限,用户组和其他人都只有读和执行的权限。

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

1  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。

1   service apache2 start
2   service apache2 status

第二步,启动mysql

1   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文件。
注意,下面第二行代码少了一个“;",作者已修改。

<?phpecho "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渗透等知识。

六.总结

如果对软件测试有兴趣,想了解更多的测试知识,解决测试问题,以及入门指导,
帮你解决测试中遇到的困惑,我们这里有技术高手。如果你正在找工作或者刚刚学校出来,
又或者已经工作但是经常觉得难点很多,觉得自己测试方面学的不够精想要继续学习的,
想转行怕学不会的,都可以加入我们644956177。
群内可领取最新软件测试大厂面试资料和Python自动化、接口、框架搭建学习资料!

写到这里,第二篇文章就介绍完毕,主要包括三部分内容:

  • 第一部分Linux基础知识,包括Linux安装、Linux介绍、版本及磁盘分区、安装虚拟工具及文件共享、远程连接、登录密码爆破、系统目录结构。
  • 第二部分详细讲解Web渗透常用的Linux命令,包括命令格式和基础命令、目录操作命令
    ls\cd\du\mkdir、文件操作命令touch\vi\cp\rm\mv\find、文本编辑查看命令vi\cat\wc、压缩文件命令gzip\bzip2\tar、安装升级软件rpm\yum\apt-get、用户账号命令useradd\userdel、网络配置ifconfig\hostname\route\netstat、权限控制chmod。
  • 第三部分讲解LAMP搭建网站。

希望这系列文章对您有所帮助,真的感觉自己技术好菜,要学的知识好多。这是第60篇原创的安全系列文章,从网络安全到系统安全,从木马病毒到后门劫持,从恶意代码到溯源分析,从渗透工具到二进制工具,还有Python安全、顶会论文、黑客比赛和漏洞分享。未知攻焉知防,人生漫漫其路远兮,作为初学者,自己真是爬着前行,感谢很多人的帮助,继续爬着,继续加油!

总结Linux基础知识和常用渗透命令!!!相关推荐

  1. 【Java从0到架构师】Linux 基础知识、常用命令

    Linux 基础知识.常用命令 Linux 基础知识 内核和发行版 常见的 Linux 发行版 Linux 的应用领域 Linux 与 Windows 的区别 Linux 常用命令 *系统目录结构 s ...

  2. Linux 基础操作、常用shell命令、vi常用命令、man帮助手册

    Linux 基础操作.常用shell命令.vi常用命令.man帮助手册 一.简述 记录简单的Linux 基础操作.常用shell命令.vi编辑器常用命令.man帮助手册的使用. 二.Linux 基础操 ...

  3. Linux基础知识、常用命令

    一.Linux文件与目录管理 绝对路径: 路径的写法,由根目录 / 写起,例如: /usr/share/doc 这个目录. 相对路径: 路径的写法,不是由 / 写起,例如由 /usr/share/do ...

  4. linux 基础知识及命令总结

    1.mkdir   创建目录 -p 创建多级目录  mkdir -p /data/test -m, --mode=模式 设置权限模式(类似chmod),而不是rwxrwxrwx 减umask -p, ...

  5. Linux基础系统优化及常用命令

    # Linux基础系统优化及常用命令 [TOC] ## Linux基础系统优化 Linux的网络功能相当强悍,一时之间我们无法了解所有的网络命令,在配置服务器基础环境时,先了解下网络参数设定命令. - ...

  6. Day 01嵌入式学习之Linux基础知识和命令操作

    学习嵌入式开发的随堂笔记 Day 01嵌入式学习之linux基础知识和命令操作 1.英文: read:读,r字母 write:写,w字母 execute:执行,运行,x字母 directory:目录, ...

  7. Linux基础概念及常用命令

    Linux基础概念及常用命令 文章目录 Linux基础概念及常用命令 1 Linux概述 1.1 为什么要学Linux 1.2 Linux简介 1.3 Linux 发行版 1.4 Linux 应用领域 ...

  8. linux 筛选文件,「Linux基础知识」grep文件内容筛选命令的使用

    原标题:「Linux基础知识」grep文件内容筛选命令的使用 grep命令用于从文档中抓取显示包含指定字符的行,grep命令的使用格式如下: grep [选项] 匹配模式 文件1 文件2 ...... ...

  9. Linux基础知识与命令

    目录 一.Shell 1.Shell定义 2.不同的Shell环境 二.Linux命令的分类 1.Shell与内部命令.外部命令 2.help命令可以查看内部命令 3.使用type命令来区分内外部命令 ...

最新文章

  1. pandas删除dataframe列名称中包含特定字符串的数据列(dropping columns contains specifiec substring in dataframe)
  2. Gartner 「RPA市场竞争格局」:中国厂商首次进入国际视野
  3. FPGA篇(八)FPGA学习经典网站推荐 (转)
  4. 使用自己的数据集训练GoogLenet InceptionNet V1 V2 V3模型(TensorFlow)
  5. mac配置supervisor笔记
  6. TensorFlow tf.expand_dims
  7. js密码强度正则表达式_相信我,这20个正则表达式,能让你少写1000多行代码,建议收藏...
  8. Linux下Oracle的启动登陆命令、单实例启动、多实例启动
  9. 汇编语言属于计算机科学,汇编语言是一种依赖于计算机的低级程序设计语言吗...
  10. 【踩坑】XML转JSON中如何把单个元素转成数组
  11. Excel怎么求和?5大常用的Excel求和公式
  12. Json文件简单读写
  13. matlab怎么算不定积分,matlab计算不定积分
  14. Go语言中的Map和List实现有序Map
  15. 【贪心】 大天使之剑
  16. CRT8.5.4.zip包
  17. 谷歌浏览器上传文件就无响应20180822更新
  18. Linux安装PHP(最新版)
  19. STM32H750 QSPI FLASH使用小结
  20. 用二维码工坊怎么在线制作条形码

热门文章

  1. 青灯教育python视频教程_PHD的生涯
  2. Redis-高可用方案
  3. 【安全知识分享】《关注消防 珍爱生命》消防安全主题教育课件(附下载)
  4. 小猫爬山(dfs剪枝)
  5. uniapp运行小程序教程
  6. Java汉字转为拼音工具类
  7. Apk通过安卓修改大师加固的内部逻辑揭秘
  8. 小白学云:阿里云ECS实例
  9. java 查看堆外内存占用_Java堆外内存排查小结
  10. Java面向对象-final类和final方法、final变量(常量)