渗透学习总结-Linux基础

2021/10/27 7:13:00

本文主要是介绍渗透学习总结-Linux基础,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • Linux文件系统和分区
    • 磁盘分区原理介绍
    • 使用lsblk指令(逻辑磁盘分区)
    • 磁盘查询指令
    • 磁盘挂载指令
  • Linux文件和目录重要介绍
    • 文件和目录的权限:
  • Linux用户类型和组
  • Linux服务管理
    • 服务管理指令
    • 端口审计手段
    • Vim编译器
    • Linux防火墙
    • Linux日志信息
    • 命令


Linux文件系统和分区

磁盘分区原理介绍

  • 分区是逻辑上的概念。Linux分区和Windows分区不同,Windows一个分区对应一个盘符,Linux一个分 区对应一个目录。

  • 对Linux来说无论有几个分区,分给哪一目录使用,它归根结底就只有一个目录,是一个独立且唯一的文件结构,Linux中每个分区都是用来组成整个文件系统的一部分。

  • Linux采用了一种叫“挂载”的处理方法,它的整个文件系统中包含了一整套的文件和目录,使得一个分区和一个目录联系起来,当要载入一个分区时它的存储空间就在一个目录下获得并使用。

使用lsblk指令(逻辑磁盘分区)

在这里插入图片描述

磁盘查询指令

查询磁盘使用情况
df -lh(文件系统层的分层)
在这里插入图片描述

du -h /目录(每个文件和目录的磁盘使用)
在这里插入图片描述

磁盘挂载指令

  • linux下几乎把一切都看成文件,例如当一个新设备(比如USB,光盘)连上电脑后,把此设备挂载到一个文件夹下才能管理.使用挂载命令控制硬盘分区和挂载点

  • mount命令: mount -t文件系统类型-o选项参数device(设备)dir(挂载点)

  • umount命令: umount dir(挂载点)或者umount dev(所挂载的设备)

  • remount命令: 重新挂载分区或者目录,用法和umount是一样的

Linux文件和目录重要介绍

  • /∶根目录,位于Linux文件目录结构的顶层,一般根目录下只存放目录,不存放文件,/etc、/bin、/dev、/lib、/sbin应该和根目录放置在一个分区中
  • /home:普通用户主目录,当新建账户时,都会分配这个用户目录,建议单独分区,并分配额外空间用于存储用户数据
  • /boot:用于存放系统启动引导文件,内核文件
  • /root:该目录是linux系统管理员(超级用户) root的宿主目录
  • /tmp:存放系统运行过程中使用的一些临时文件
  • /var:存放系统中经常需要变化的一些文件,如系统日志文件,用户邮箱目录等
  • /etc:存放linux系统及各种程序的配置文件,配置文件比较多的程序在”/etc”目录中建立独立的子目录,用于存放程序的配置文件

查看文件的属性权限以及文件所属的用户和组
命令: ls -l

文件和目录的权限:

  • linux对普通文件的权限说明

  • [r]可读;对文件有阅读的权限

  • [w]可写;对文件有修改内容的权限(删除文件自身受父目录权限的影响)·

  • [x]可执行;对文件表示具有执行文件的权限

  • Linux对目录的权限说明
    [r]可读;表示具有浏览目录的权限
    [w]可写;表示具有修改目录内文件的权限
    [x]可执行;表示具有进入目录的执行权限

设置文件权限
Linux有两种设置文件权限的方式,一种是数字,一种是符号。
Linux文件的基本权限有是三种身份read/write/execute,每种身份都有对应的权限且都是r(可读)w(可写)x(可执行)
r(read)=4,w(可写)=2,x(可执行)=1
再用数字赋权限的时候叠加。
例如:
owner:rw=4+2=6,group=r=4,others=r=4
也就是定义-rw-r–r--权限命令为:
chmod 644 1.txt
在这里插入图片描述更改文件属组

  • chgrp:更改文件属组.
  • 语法: chgrp [-R]属组名文件名(加上-R参数,该目录下的所有文件的属组都会更改).
  • chown:更改文件属主,也可以同时更改文件属组
    .语法: chown [-R]属主名文件名
  • chown[-R]属主名:属组名文件名chmod:更改文件9个权
  • 语法: chmod [-R] xyz文件或目录

文件和目录的特殊权限:
SUID和SGID,设置了SUID和SGID的文件可以被其他不同组的用户继承改文件或者目录的属组权限。
例子:当一个执行文件被设置成了SUID权限,属于root用户,此时普通用户可以暂时取得root权限来执行该文件。SGID相同。
两者不同点:
SUID:对属主加权限只能针对文件
SGID:对属组加权限可以对文件和目录
命令:
chmod u+s filename(suid)
chmod g+s filename(sgid)
chmod 4777 filename(suid)针对属主

Linux用户类型和组

用户分为3类:
root(超级用户):啥都能干
普通用户:root创建的用户,一般只能操作自己的目录。
虚拟用户:程序运行等情况下创建的用户,无法登录和使用
用户组
具有相同特征的用户的集合。一个组可以包含多个用户,每个用户也可以属于不同的组。
用户组的目的方便管理员对用户进行集中管理。用户组也分为三类:系统组、私有组和标准组。

用户及用户组配置文件
/etc/passwd:记录操作系统用户及其属性信息
/etc/shadow: 记录所有用户的密码信息
/etc/group: 记录用户组及其属性的信息
/etc/gshadow:记录用户组及其相关属性的密码信息

UID和GID
概念:

  • 在我们登录主机时我们输入用户名,但系统里不会认识用户名的,而是通过/etc/passwd文件里用户名对应的UID和 GID识别的。
  • UID:每个用户对应一个UID号,UID在本机的操作系统里是唯一的。
  • GID∶每个组用户会对应一个GID号,GID在本机的操作系统里是唯一的。
  • UID的限制:

利用id显示用户的UID和GID
在这里插入图片描述

0:当uid是0时,代表这个用户是管理员,当你想把某个用户设置成管理员时,直接修改uid就可以了。也就是说,系统中管理员用户不一定是root
1~499:系统默认保留用户,和其他用户没什么不一样的,只是一些服务默认用户
500~65535:手动创建的一般用户

其他命令
su 用户名:切换用户
whoami:显示当前用户名称
groups:显示当前用户所属组
sudo :临时使用root权限

Linux服务管理

服务管理指令

service管理指令:
在Centos7.0以前:

  • service服务名start | stop | restart / reload | status

Centos7.0后不再使用service,而是systemctl,systemctl [command] [unit]

  • command主要有:
  • start : 立刻启动后面接的unit. stop :立刻关闭后面接的unit
  • restart:立刻关闭后启动后面接的unit,亦即执行stop 再start的意思
  • reload :不关闭后面接的unit的情况下,重新载入配置文件,让设置生效
  • enable :设置下次开机时,后面接的unit会被启动
  • disable :设置下次开机时,后面接的unit不会被启动
  • status :目前后面接的这个unit的状态,会列出有没有正在执行、开机默认执行否、登录等信息等!
  • is-active :目前有没有正在运行中

端口审计手段

系统自带的:netstat
系统外部工具:Nmap:端口扫描

Vim编译器

VIM命令使用

Linux防火墙

开启iptables:
systemctl start iptables
关闭iptables:
systemctl stop iptables
查看iptables现有的规则:
iptables -L -n
开放22端口
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
禁用23端口
iptables -A INPUT -p tcp --dport 23 -j DROP
添加信任网络
iptables -A INPUT -p tcp -s 1.1.1.1 -j ACCEPT
删除某个信任ip
iptables -D INPUT -p tcp -s 1.1.1.1 -j ACCEPT

Linux日志信息

Linux日志大多是以明文存储,一般存储在/var/log目录中,linux系统主要有三个日志子系统:
连接时间日志,进程统计日志,错误日志。
linux中可以配置日志文件,需要修改日志文件syslog.conf的配置,通常是不用配置,除非特殊
使用人群。

日志文件介绍:

  • boot.log:录了系统在引导过程中发生的事件,就是Linux系统开机自检过程显示的信息
  • lastlog :记录最后一次用户成功登陆的时间、登陆IP等信息
  • messages:记录Linux操作系统常见的系统和服务错误信息
  • secure : Linux系统安全日志,记录用户和工作组变坏情况、用户登陆认证情况
  • btmp:记录Linux登陆失败的用户、时间以及远程IP地址
  • syslog:只记录警告信息,常常是系统出问题的信息,使用lastlog查看
  • wtmp:该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件

命令

cp命令
参数:
-a: archive的意思,若要复制的文件为目录,则复制整个目录
-d:若源文件为连接文件(link file),则复制连接文件属性而非文件本身
-f:强制(force),若有重复或其它疑问时,不会询问用户,而强制复制
-i:若目标文件(destination)已存在,在覆盖时会先询问是否真的操作-:建立硬连接(hard link)的连接文件,而非复制文件本身
-p:与文件的属性—起复制,而非使用默认属性
-r:递归复制,用于目录的复制操作
-s:复制成符号连接文件(symbolic link),即“快捷方式”文件
-u:若目标文件比源文件旧,更新目标文件

mv命令
参数:
-f: force,强制直接移动而不询问
-i:若目标文件(destination)已经存在,就会询问是否覆盖
-u:若目标文件已经存在,且源文件比较新,才会更新

>/>>命令
>:输出重定向,会覆盖文件内容,要是没有那个文件会创建该文件在写入。(渗透过程中,拿到权限隐藏木马的时候除了写一个木马子程序之外,可以在其他位置写一个木马父程序,在子木马被删除时,及时在其它或者相同位置写入子木马)
>>:输出重定向,不会覆盖文件内容,而是追加到文件内容尾部。

ln命令
描述:创建链接文件
参数:
-i:交互模式,文件存在则提示用户是否覆盖。
-s:软链接(符号链接)。
-d:允许超级用户制作目录的硬链接。
-b:删除,覆盖以前建立的链接
软链接(符号链接): In -s source target
硬链接(实体链接): In source target
在这里插入图片描述也就是说在调用ln命令之后它会在当前目录建立一个软/硬链接,我们就可以在当前目录访问其他目录下的文件。
有一个跟它很像的符号可以用来绕过渗透过程中对cat的过滤:nl

ps命令
描述:查看进程信息参数:
-A∶所有的进程均显示出来,与-e具有同样的效用;
-a :显示现行终端机下的所有进程,包括其他用户的进程;
-u∶以用户为主的进程状态;
x ︰通常与a这个参数一起使用,可列出较完整信息。
在这里插入图片描述还有其他的一些命令就不一一说明

将脚本(木马)开机自启动这里具一个例子
1、赋予脚本可执行权限(/opt/script/shell.sh是你的脚本路径)chmod +x /opt/script/shell.sh
2、打开/etc/rc.d/rc.local或/etc/rc.local文件,在末尾增加如下内容su - user -c ‘/opt/script/shell.sh’
3、在centos7中,/etc/rc.d/rc.local的权限被降低了,所以需要执行如下命令赋予其可执行权限chmod +x /etc/rc.d/rc.local
其他对于木马的隐藏操作见下文。



这篇关于渗透学习总结-Linux基础的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程