[网络安全自学篇] 六十.Cracer第八期——(2)五万字总结Linux基础知识和常用渗透命令

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

虽然自己的安全技能非常菜,但还是希望通过不断学习、不断交流、不断分享来提升自己,也希望读者喜欢我的“网络安全自学篇”系列文章,也欢迎大家点赞、评论和关注。这篇文章是作者学习Cracer老师视频和文章的观后感,并结合自己的理解及实践做的在线笔记,特分享出来与博友们学习,希望你们喜欢,一起进步。也推荐读者学习Cracer老师的视频教程。非常基础的一篇文章,希望能够帮助到您!

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

PS:本文参考了安全网站和参考文献中的文章及视频(详见参考文献),并结合自己的经验和实践进行撰写,也推荐大家阅读参考文献。

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


声明:本人坚决反对利用教学方法进行犯罪的行为,一切犯罪行为必将受到严惩,绿色网络需要我们共同维护,更推荐大家了解它们背后的原理,更好地进行防护。

前文学习:
[网络安全自学篇] 一.入门笔记之看雪Web安全学习及异或解密示例
[网络安全自学篇] 二.Chrome浏览器保留密码功能渗透解析及登录加密入门笔记
[网络安全自学篇] 三.Burp Suite工具安装配置、Proxy基础用法及暴库示例
[网络安全自学篇] 四.实验吧CTF实战之WEB渗透和隐写术解密
[网络安全自学篇] 五.IDA Pro反汇编工具初识及逆向工程解密实战
[网络安全自学篇] 六.OllyDbg动态分析工具基础用法及Crakeme逆向
[网络安全自学篇] 七.快手视频下载之Chrome浏览器Network分析及Python爬虫探讨
[网络安全自学篇] 八.Web漏洞及端口扫描之Nmap、ThreatScan和DirBuster工具
[网络安全自学篇] 九.社会工程学之基础概念、IP获取、IP物理定位、文件属性
[网络安全自学篇] 十.论文之基于机器学习算法的主机恶意代码
[网络安全自学篇] 十一.虚拟机VMware+Kali安装入门及Sqlmap基本用法
[网络安全自学篇] 十二.Wireshark安装入门及抓取网站用户名密码(一)
[网络安全自学篇] 十三.Wireshark抓包原理(ARP劫持、MAC泛洪)及数据流追踪和图像抓取(二)
[网络安全自学篇] 十四.Python攻防之基础常识、正则表达式、Web编程和套接字通信(一)
[网络安全自学篇] 十五.Python攻防之多线程、C段扫描和数据库编程(二)
[网络安全自学篇] 十六.Python攻防之弱口令、自定义字典生成及网站暴库防护
[网络安全自学篇] 十七.Python攻防之构建Web目录扫描器及ip代理池(四)
[网络安全自学篇] 十八.XSS跨站脚本攻击原理及代码攻防演示(一)
[网络安全自学篇] 十九.Powershell基础入门及常见用法(一)
[网络安全自学篇] 二十.Powershell基础入门及常见用法(二)
[网络安全自学篇] 二十一.GeekPwn极客大赛之安全攻防技术总结及ShowTime
[网络安全自学篇] 二十二.Web渗透之网站信息、域名信息、端口信息、敏感信息及指纹信息收集
[网络安全自学篇] 二十三.基于机器学习的恶意请求识别及安全领域中的机器学习
[网络安全自学篇] 二十四.基于机器学习的恶意代码识别及人工智能中的恶意代码检测
[网络安全自学篇] 二十五.Web安全学习路线及木马、病毒和防御初探
[网络安全自学篇] 二十六.Shodan搜索引擎详解及Python命令行调用
[网络安全自学篇] 二十七.Sqlmap基础用法、CTF实战及请求参数设置(一)
[网络安全自学篇] 二十八.文件上传漏洞和Caidao入门及防御原理(一)
[网络安全自学篇] 二十九.文件上传漏洞和IIS6.0解析漏洞及防御原理(二)
[网络安全自学篇] 三十.文件上传漏洞、编辑器漏洞和IIS高版本漏洞及防御(三)
[网络安全自学篇] 三十一.文件上传漏洞之Upload-labs靶场及CTF题目01-10(四)
[网络安全自学篇] 三十二.文件上传漏洞之Upload-labs靶场及CTF题目11-20(五)
[网络安全自学篇] 三十三.文件上传漏洞之绕狗一句话原理和绕过安全狗(六)
[网络安全自学篇] 三十四.Windows系统漏洞之5次Shift漏洞启动计算机
[网络安全自学篇] 三十五.恶意代码攻击溯源及恶意样本分析
[网络安全自学篇] 三十六.WinRAR漏洞复现(CVE-2018-20250)及恶意软件自启动劫持
[网络安全自学篇] 三十七.Web渗透提高班之hack the box在线靶场注册及入门知识(一)
[网络安全自学篇] 三十八.hack the box渗透之BurpSuite和Hydra密码爆破及Python加密Post请求(二)
[网络安全自学篇] 三十九.hack the box渗透之DirBuster扫描路径及Sqlmap高级注入用法(三)
[网络安全自学篇] 四十.phpMyAdmin 4.8.1后台文件包含漏洞复现及详解(CVE-2018-12613)
[网络安全自学篇] 四十一.中间人攻击和ARP欺骗原理详解及漏洞还原
[网络安全自学篇] 四十二.DNS欺骗和钓鱼网站原理详解及漏洞还原
[网络安全自学篇] 四十三.木马原理详解、远程服务器IPC$漏洞及木马植入实验
[网络安全自学篇] 四十四.Windows远程桌面服务漏洞(CVE-2019-0708)复现及详解
[网络安全自学篇] 四十五.病毒详解及批处理病毒制作(自启动、修改密码、定时关机、蓝屏、进程关闭)
[网络安全自学篇] 四十六.微软证书漏洞CVE-2020-0601 (上)Windows验证机制及可执行文件签名复现
[网络安全自学篇] 四十七.微软证书漏洞CVE-2020-0601 (下)Windows证书签名及HTTPS网站劫持
[网络安全自学篇] 四十八.Cracer第八期——(1)安全术语、Web渗透流程、Windows基础、注册表及黑客常用DOS命令
[网络安全自学篇] 四十九.Procmon软件基本用法及文件进程、注册表查看
[网络安全自学篇] 五十.虚拟机基础之安装XP系统、文件共享、网络快照设置及Wireshark抓取BBS密码
[网络安全自学篇] 五十一.恶意样本分析及HGZ木马控制目标服务器
[网络安全自学篇] 五十二.Windows漏洞利用之栈溢出原理和栈保护GS机制
[网络安全自学篇] 五十三.Windows漏洞利用之Metasploit实现栈溢出攻击及反弹shell
[网络安全自学篇] 五十四.Windows漏洞利用之基于SEH异常处理机制的栈溢出攻击及shell提取
[网络安全自学篇] 五十五.Windows漏洞利用之构建ROP链绕过DEP并获取Shell
[网络安全自学篇] 五十六.i春秋老师分享小白渗透之路及Web渗透技术总结
[网络安全自学篇] 五十七.PE文件逆向之什么是数字签名及Signtool签名工具详解(一)
[网络安全自学篇] 五十八.Windows漏洞利用之再看CVE-2019-0708及Metasploit反弹shell
[网络安全自学篇] 五十九.Windows漏洞利用之MS08-067远程代码执行漏洞复现及shell深度提权


前文欣赏:
[渗透&攻防] 一.从数据库原理学习网络攻防及防止SQL注入
[渗透&攻防] 二.SQL MAP工具从零解读数据库及基础用法
[渗透&攻防] 三.数据库之差异备份及Caidao利器
[渗透&攻防] 四.详解MySQL数据库攻防及Fiddler神器分析数据包



一.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镜像。推荐作者前文:
[网络安全自学篇] 十一.虚拟机VMware+Kali安装入门及Sqlmap基本用法

在这里插入图片描述

初始化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

创建用户命令如下图所示:

在这里插入图片描述

修改密码及查看本机有哪些用户如下图所示,包括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。

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

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

在这里插入图片描述

修改文件或者目录的权限,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渗透等知识。



六.总结

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

  • 第一部分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安全、顶会论文、黑客比赛和漏洞分享。未知攻焉知防,人生漫漫其路远兮,作为初学者,自己真是爬着前行,感谢很多人的帮助,继续爬着,继续加油!

欢迎大家讨论,是否觉得这系列文章帮助到您!同时再次推荐Cracer教程和Fox老师的文章,任何建议都可以评论告知读者,共勉。下次我再写这么长的文章或总结,我是狗!!!太难了~

武汉加油!湖北加油!中国加油!!!

(By:Eastmount 2020-03-19 下午6点写于贵阳 http://blog.csdn.net/eastmount/ )


参考文献:
[1] cracer第八期视频 - B站(强推)
[2] 百度百科 https://baike.baidu.com/item/linux/27050
[3] xshell连接虚拟机中的Kali系统 - Yasuo
[4] https://www.runoob.com/linux/linux-system-contents.html
[5] linux服务器搭建之路12-修改文件/文件夹属性和权限 - 追蜗牛的coder
[6] Web安全1.2:LAMP、LNMP环境搭建(Kali、宝塔、phpstudy)+wordpress站点搭建 - Slash · Young

发布了449 篇原创文章 · 获赞 6210 · 访问量 495万+
App 阅读领勋章
微信扫码 下载APP
阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 书香水墨 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览