• 03.Linux基础操作


    我学到了以下几点

    01Linux系统介绍
    02系统安装,密码啊破解
    03Linux常用命令
    04LAMP

    01LINUX


    windows: win03 8 12 16 19
    配置不繁琐

    Linux:redhat,centos(红帽社区版),Ubuntu server,suse

    unix:金融机构,证券,银行,根据硬件配套区卖的

    比较出名的lamp平台:Linux+apache+MySQL+php
    lnmp平台:Linux+nginx+mysql+php

    Liux重要的东西(内核):
    在Linux提权的时候,内核exp利用,kernel
    例如:内核2.6.32 就去百度谷歌分析发现该内核版本的漏洞进行本地提权。
    查询漏洞的网站①:exploit-db.com,windows和Linux都有
    exploit-db.com:该网站发布了4个类型的漏洞
    dos
    local:本地提权
    remote:远程代码执行,远程漏洞
    webapps:web漏洞

    查询漏洞的网站②:github
    还有③:用工具包去提权

    Linux常见发行版本:
    RedHat Linux 服务器
    centos 服务器
    SuSE Linux 服务器
    Ubuntu Linux 服务器
    Mandrake Linux
    Caldera Linux
    Turbolinux
    Debian GNU/Linux
    Gentoo Linux
    Linpus Linux
    红旗 Liunx 服务器

    Kali 基于 debian 发行的

    Linux的优点:
    开源:全世界的安全人员都能去测试系统
    免费
    稳定:刷新不会卡,安装不重启
    安全:病毒少
    高性能

    如何 学习Linux
    从命令开始打好基础
    选择一本好书
    养成命令下工作的习惯
    学习shell命令解释器
    不要死记硬背,多实战
    学会使用文档
    在Linux论坛获得帮助
    学习专业英文

    PART 2: Linux安装、密码破解

    系统安装搭建:
    内核版本的区分:
    xx.yy.zz
    2.5.7:2是主版本号,5是次版本号,7是补丁次数
    主版本号:代表内核是哪个版本
    次版本号:代表内核是开发版本还是稳定版本
    奇数开发版本,偶数稳定版本

    磁盘分区标识:
    Linux中将硬盘,分区等设备均表示为文件:
    目前所有的设备都是使用hd(表示IDE设备),sd(表示SCSI设备)

    /dev/hda5
    /dev/ 硬件设备所在的目录,硬盘光驱
    hd,sd:根据硬盘接口来定的
    a:硬盘的顺序号以字母a,b,c表示
    5代表分区的顺序号:1.2.3.4.5

    硬盘分区结构:
    一块硬盘可以分为4个主分区,前四个数字都是主分区
    第一个逻辑分区都是从5开始计数的
    一个逻辑分区要占一个主分区用来扩展分区

    文件系统类型:
    Linux中默认使用的文件系统类型:
    EXT4,第3代扩展(Extended)文件系统
    SWAP,交换文件系统
    Linux支持的其他文件系统类型
    FAT16,FAT32,NTFS windows系统盘就是NTFS的
    XFS,JFS


    小结,请思考
    01:Linux内核版本号的命名有什么特点
    答:hd,sd是根据硬盘接口来定的,a就表示硬盘的顺序号,数字表示分区的顺序号
    第2块SCSI硬盘的第3个逻辑分区如何表示
    答: /dev/sdb7
    RHEL6默认使用的文件系统是什么类型
    答:除了SWAP以外都可以使用,例如EXT4

    安装RHEL6系统:
    安装步骤
    插入RHEL6安装光盘,引导安装程序
    设置主机引导设备为光盘驱动器
    从安装光盘启动主机
    检测安装光盘的完整性
    配置安装程序
    选择安装过程显示语言、键盘类型、初始化磁盘、分区
    设置网络地址、系统时区、管理员口令
    定制要安装的软件包 复制文件并完成安装过程
    需15~30分钟

    新建虚拟机---典型---稍后安装操作---名称rhel6.2---路径---E盘-虚拟-rhel62---给20g--
    虚拟设置,去掉打印机之类的节省资源,内存2g---DVD镜像---rhel-server-6.2---

    确定开启---第一个(安装升级现有操作系统)---检测no----简体中文---美式键盘---Basicxxx(普通磁盘)
    ---丢弃所有磁盘---主机名x.com---上海时区---管理员密码123123---create custom layout(创建一个分区安装)---选择分区---创建---挂载点/boot(负责引导装载)---大小200mb
    空闲分区---挂载点不选---文件系统类型swap---大小2048---确定
    空闲创建----挂载点:/---ext4---使用所有的空间---确定---下一步---格式化---写入改变的磁盘---改设备的时候不要插u盘-
    服务器:最小---现在定制---装桌面kde(暂时)x窗口---开发(开发工具)---下一步等待安装

    重新引导---下一步启动---前进---不用创建普通用户---前进---完成---密码登录
    进去后无法适应虚拟机大小,所以,先在选项列表安装虚拟机工具。

    虚拟机工具下载完成后
    先设置一下字体大小粗体
    桌面下右键运行命令---设置---外观---编辑字体,加粗


    虚拟机工具安装: 不然无法适应大小
    df -T 查看挂载的位置

    mount /dev/sr0 /media 挂载到media目录下(只读)
    ls /media 查看目录下的文件
    cd /media 进入media目录
    tar zxvf VMwareTOOS补全键 -C /root 解压该文件到root
    cd 进入系统目录
    clear 清屏
    cd wmware-tools-distrib/ 进入该目录
    ls查看文件
    ./wmware-install.pl (安装程序)
    问的问题回车默认
    安装完成后reboot(重启下)
    还是安装失败!!

    打开Red Hat Enterprise Linux6
    修改命令行的字体大小

    重点!!登录密码破解

    不知道服务器密码情况下
    e e 空格 s b
    passwd
    reboot

    1、在开机自检后,出现grub引导界面时,按E键进入编辑模式
    2、把光标移到带有“kernel”字样的那一行,然后按E键编辑
    3、在末尾输入:空格 s 回车不要动
    4. b键进入打印模式
    5.passwd
    6.输入新的密码:qwertyu qwertyu
    7.reboot重启

    黑客为什么会改自己服务器密码?
    因为能够增加跟多的控制权限时间


    Linux 没有C盘,D盘,E盘,他的分区可以理解为目录分区

    所有的目录都在根下,所有的分区也都在根下
    bin:普通用户管理员都能执行的命令
    dev:磁盘硬盘存储的
    home:存放用户加目录,犹如windows下的user目录
    lost+found:相当于挂载到硬盘上的东西
    mut: 用来挂载光驱用的
    media:用来挂载光驱用的,光驱不能挂载,要使用必须复制到media下
    proc:开机之前不存在,是开机之后生成的系统临时文件
    sbin:是用来存放root(管理员)所执行的系统命令的,sbin里的命令是普通用户无法执行的
    重点!!!但有一种权限叫suid,作用是嫁接提权
    例如: ①文件A被赋予suid权限只有root权限才能使用。
    ②谁调用A文件谁就是所有者,文件A原来的所有者是root
    ③普通用户xy通过命令行给A文件发送指令创建一个用户,这时候A文件时按照root所有者权限去执行的。
    ④只有设置suid权限的才能这样操作
    哪些有suid权限呢?例如nmap能调用bash来执行命令,这时候权限就是root

    srv:存放一些服务的
    tmp:放一些临时文件,这个目录下拥有X编译权限,根目录下并没有x编译权限
    重点:比如要提权
    例如:uname -r 查看内核
    2.6.32内核
    找到利用脏牛 a.c
    li用webshell把a.c上传到根目录
    在用根目录命令拷贝到/tmp下
    在/tmp进行gcc a.c进行编译,生成a.out
    运行./a.out

    var:放些日志文件,网站根目录源代码的
    selinux:服务防御的目录
    sys:存放系统文件
    usr:重要,外部源代码会放在usr,相当于windows的program files

    如何推理linux的根目录:
    例如使用的lamp平台
    apache中间件
    有数据库,要不放在/usr/lpcal/ 要不就放在/usr/src/下
    在命令行执行:select @@basedir;可以看到mysql数据库的安装路径
    假设:安装路径在/usr/local/mysql-5.5.1/
    那他的apache就会在/usr/local/apache/conf/http.conf,配置文件也在这里
    在有权限的情况下,读取配置文件http.conf里的dirctoryroot /var/www/html/ 通过读取配置文件找到根目录的信息

    boot:存放linux装载程序的
    etc:存放配置文件的
    lib:库文件
    opt:存放外部的应用程序
    root:管理员目录

    小结:

    请思考: 根目录下包括哪些常见子目录?作用是什么?
    命令行提示符中“#”表示什么意思?
    答:#代表管理员,系统识别管理员是通过#来识别的,普通用户是$。可以通过id来查询是否是管理员,如果是0是管理员,500是普通用户
    RHEL6中默认安装的桌面环境是什么?
    答:kde界面,gnome(系统默认)
    如何从字符界面切换到图形界面?
    答:shift+ctrl+f1


    PART 3:Linux常用命令
    Linux命令的分类
    Linux命令
    用于实现某一类功能的指令或程序
    命令的执行依赖于解释器程序(例如:/bin/bash)
    Linux命令的分类
    内部命令:属于Shell解释器的一部分
    外部命令:独立于Shell解释器之外的程序文件 ,安装应用程序产生的命令,大部分是实现功能的

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


    Linux系统命令重要:
    uname 查看系统内核信息 -r查看内核版本号 -a 显示详细信息 提权重要
    hostname 查看或临时修改主机名称 修改:hostname 123.com 内网分析会用到
    ifconfig 查看系统ip网卡信息, eth0本地连接信息。 lo回环接信息,检查tcpip是否正常工作
    dhclient eth0 重新获取ip信息
    cat /proc/cpuinfo 查看系统cpu信息 面试会考
    cat /proc/meminfo 查看系统内存信息 面试会考
    halt 关机
    reboot 重启
    pwd 查看工作目录 查看目前所在路径 上传文件的时候会用到
    cd 切换目录
    cd ..返回上一级
    cd - 后退
    du 统计目录及文件空间占用情况 -sh统计目录大小 例如:du -sh /etc 意义文件太大会被管理员发现。
    useradd:创建用户 例如:useradd xy
    ifconfig:
    HWaddr:mac地址
    inrt addr:ip地址
    Bcast:广播地址
    Mask:子网掩码


    ls命令 用途:列表(List)显示目录内容
    格式:ls [选项]... [目录或文件名]
    常用命令选项
    -l :以长格式显示
    -a:显示所有子目录和文件的信息,包括隐藏文件
    -A:类似于“-a”,但不显示“.”和“..”目录的信息
    -d:显示目录本身的属性
    -h:以更易读的字节单位(K、M等)显示信息
    -R:递归显示内容
    --color:以颜色区分不同类型文件,蓝色目录,白色文件

    权限设置命令
    Chmod
    U 是所有者用户 g 是组 o其他人 a所有人
    R读 w写 x可执行
    用法
    Chmod u+w 给所有者用户添加写入权限
    Chmod g-r 给所在分组去掉读取权限
    权限用数字代替
    R=4 w=2 x=1 权限值等于每个权限数字相加
    Chmod 777 给所有权限设置为可读可写可执行
    Chown 设置所有者和所在分组用户
    Chown Apache:Apache test 登录吧test目录所有者和所组设置为Apache用户

    -rw-r--r--. 1 root root 7.2K 2月 11 2019 install.log.syslog
    权限位置 所有者,分组,大小,最好一次修改时间, 文件

    重要,文件权限设置:弄清楚三种用户
    用户---u:所有者 g:所在分组 o:其他人
    权限---r:可读 w:可写 x:可执行 也可以用数字里进行代替,相叠加。

    chomd:权限设置 例如:chomd u+x a 文件a,用户所有者,可执行权限
    chomd p+w a
    chomd a+x 123.txt 把123.txt文件,让所有用户部分都有可执行权限
    chomd a-x 123.txt 把123.txt文件,让所有用户部分都去掉可执行权限
    还可以chomd 755 123.txt 用相加的方式把权限赋予了

    设权限也可以通过所有者来是文件变权限例如刚开始是,root:root
    变化后 chown xy:xy

    touch 创建文件或跟新文件时间标记 如果创建的文件存在了就会更新。
    重点: 黑客子对文件动完手脚后可以用toch * 把所有文件时间都统一。
    mkdir 创建目录命令 -p递归创建目录
    例如:mkdir x 创建x目录。 mkdir -p y/x 在y目录下创建x目录。 ls -r y
    cp 复制文件或目录 -r递归复制 -f强制覆盖 -p保持源文件属性不变
    例如:cp install.txt / 拷贝install.txt到根目录下。 ls / 查看根目录
    例如;cp -rf x / 强制复制x目录到根下
    -i覆盖文件目录提醒
    rm 删除文件或目录 -r递归删除 -f 强制删除不提醒 -i 删除时用户提醒
    例如:rm -rf /install.txt 删除文件。 rm -rf /x 删除根目录下的x文件夹
    例如:rm -rf / --no-preserve-root
    mv 移动文件或目录
    wc 统计文件中出现的单词数量字节数量和行数
    例如:wc install.log
    806 1625 34469 行,单词,字符
    Cat 查看文件内容命令 more 分屏显示
    例如:cat install.log 查看文本内容 more install.log 分屏显示

    find命令
    主要是查看你24小时之类修改过的文件之类的
    用途:用于查找文件或目录
    格式:find [查找范围] [查找条件]
    常用查找条件
    -name:按文件名称查找
    -size:按文件大小查找
    -user:按文件属主查找
    -type:按文件类型查找
    例如:find / -name "re*.conf" 查找根下所有名称,大概是re开头,com结尾的
    ficd / -user xy 查找根目录下xy权限的文件

    root@localhost ~]# find /etc -name "resol*.conf"
    /etc/resolv.conf
    /etc/sysconfig/networking/profiles/default/resolv.conf


    Vi编辑器
    vi是一个较大的UNIX命令,在启动的时候也有它自己的选项和参数
    基本语法:
    vi [-options] [+[n]] [file]
    常用选项有:-r, -R
    -r用于恢复系统突然崩溃时正在编辑的文件
    -R用于以只读方式打开文件
    +n用来指明进入vi后直接位于文件的第n行,如果不指定n,则位于最后一行

    vi有三种模式:
    ①命令模式:可以输入一些命令对文本进行操控
    G 进入文本尾部
    gg 返回文首
    ctrl+g代表显示信息行号之类的
    dd 删除光标所在行
    D 删除光标所在位置到行尾
    yy 复制光标所在行
    p 粘贴
    r替换
    R替换整行

    5dd 删除5行
    5yy 复制光标所在位置往下5行

    ②插入模式:a i o 当做记事本用 编辑文本
    ③低行模式 :按住esc进入到命令模式下,在shift+:才能进入低行模式
    set nu低行模式下加载编号
    %s/Installing/cracer/ 百分号是搜索,s是全文
    /搜索 /fanghan 回车
    20 就会进入到20行
    10,20s/fanghan/hacker/
    按u 返回上一层操作
    w 保存 退出q 保存退出wq
    !sh回车: 在文本执行命令
    执行完后exit 返回到编辑的模式


    压缩命令 gzip bzip2

    只针对单个文件压缩或
    -9 显示高压缩比
    -d 释放压缩文件
    gzip 文件名 压缩文件 格式为后缀有.gz
    bzip2 文件名 压缩成的文件名 格式为 文件名.bz2 它相对与gzip 压缩率更高

    tar cvf 压缩名.tar 压缩文件名1 压缩文件名2 //压缩文件名1 压缩文件名2 打包起名为压缩名
    tar tvf 打包名 //查看压缩包内有哪些东西
    tar rvf 打包名 压缩文件名3 // 在打包名里,在追加压缩文件名3
    tar xvf 打包名 //解压缩
    gzip 打包名 二次打包名.tar.gz //把压缩包在次压缩。容量变小
    gzip -d 二次打包名 //解压
    tar zxvf 二次打包名字 //一步解压
    bzip2 打包名 二次打包名字tar.bz2 //把压缩包再次压缩。容量变小
    tar jxvf 二次打包名字 //一步解压

    tar -xvzf test.tar.gz -C /usr/src 解压释放归档到 /usr/src 里面
    tar -xvjf test.tar.bz2 -C /usr/src 解压释放归档到 /usr/src 里面

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


    cat /etc/passwd //查看所有账号在哪里以及权限
    cat /etc/shadow //查看所有密码存放地方,密码经过加密用john或者hashcat工具破解

    useradd 用户名 //创建用户
    passwd 用户名 //设用户名密码 123123
    userdel -r 用户名 //删除用户
    su - 用户名 //进入该用户
    exit // 退出用户
    ls /home //查看文件夹下的用户


    查看进程
    Ps -aux 查看系统进程
    Top 动态查看系统进程
    Kill 1234 杀死进程1234
    netstat -tnlp //查看tcp端口以及id
    netstat -utnlp //查看udp端口
    netstat -ano
    netstat -ao

    kill 进程编号 //杀死对应进程
    kill -9 进程编号//强制杀死

    软件安装
    安装或升级RPM软件
    格式:rpm [选项] RPM包文件...
    用法:不同选项适用于不同情况
    -i:安装一个新的rpm软件包
    -U:升级某个rpm软件,若原本未装,则进行安装
    -F:更新某个rpm软件,若原本未装,则放弃安装
    卸载指定的RPM软件
    格式:rpm -e 软件名

    配置yum源
    1、挂着系统安装盘
    2、配置yum配置文件Vi /etc/yum.repos.d/rhel*
    3、导入yum密钥
    4、yum clean all 清空yum缓存
    5、yum -y install httpd 使用yum安装httpd软件包
    6、yum –y remove httpd 使用yum移除httpd软包

    配置方法:yum
    01.cat /etc/yum.repos.d/rhel-source.repo //可以从baseurl=ftp的源,但是我们要使用光盘源
    02.df -T //查看挂载 sr0未挂载
    03.mount /dev/sr0 media // 加载一下
    04.ls /media 查看挂载的是哪个文件
    05.umount /dev/sr0 //卸载下sr0
    06.电脑右下角,断开一下设置---找到光驱,确定,已连接,启动时链接---确定
    07.电脑弹出红帽安装镜像
    08.mount /dev/sr0 /media //重新挂载
    09.df -T //挂载一下 一挂载sr0
    10.ls /media //已存在Server
    11.vi /etc/yum.repos.d/rhel-source.repo //编辑一下
    12.删掉lease往后的那一段,enabled=0(不启用)修改成1启用
    13.baseurl=ftp 修改为baseurl=file///media/Server
    14.复制gpgkey=file://往后的那一段秘钥
    15.rpm --import 粘贴刚才复制的秘钥
    16.yum -y install man //就可以安装了
    17.yum clean all // 不能安装就清理下缓存


    Deb软件包安装
    Dpkg –i xxx.deb 安装软件包
    Dpkg –r xxx.deb 移除软件包

    源代码安装 (后期再讲)

    网络配置


    虚拟机右下角编辑链接---点击选项---编辑---ipv4---
    手动添加ip192.168.8.114.
    子网24.
    网关192.168.8.2
    DNS服务器:8.8.8.8
    Ifconfig eth0 192.168.1.20/24 临时修改eth0 网卡ip
    vi /etc/sysconfig/network-scripts/ifcfg-eth0 //配置文件,记得保存
    service network restart 重启网关
    Route –n 查看系统路由信息
    Netstat 查看网络连接情况
    netstat命令
    查看系统的网络连接状态、路由表、接口统计等信息
    格式:netstat [选项]
    常用选项:
    -a:显示所有活动连接
    -n:以数字形式显示
    -p:显示进程信息
    -t:查看TCP协议相关信息
    -u:查看UDP协议相关信息
    -r:显示路由表信息


    域名解析配置文件

    /etc/resolv.conf 文件 用途:保存本机需要使用的DNS服务器的IP地址


    LAMP平台搭建配置

    LAMP 环境搭建及配置 用yum环境去搭建
    1、配置好yum环境
    2、挂着光驱
    3、yum安装lamp环境 Yum –y install httpd php php-mysql mysql mysql-server
    4、启动apache和mysql服务 Service httpd start Service mysqld start
    5、配置mysql root账号密码 Mysqladmin –uroot password 123456
    6、关闭防火墙和seLinux Iptables –F Setenforce 0 Chown –R apache:apache /var/www/html 修改网站根目录配置权限
    7、访问测试

    lanm平台:Linux php mysql apache
    安装:
    ①yum -y install httpd php-mysql mysql mysql-server
    ②service httpd start //安装完后启动网站
    ③service mysqld start // 启动数据库
    ④netstat -tnlp //查看服务端口 80启动 3306
    ⑤mysqladmin -u root password 123123 mysql设置密码
    ⑥mysql -uroot -p //登录数据库
    ⑦show databases; //查看有多少个库
    ⑨exit //退出
    ⑩ vi /etc/httpd/conf/httpd.conf //编辑文件顺便查找网站根目录,侦听的端口

    切记:apache的配置文件路径:/etc/httpd/conf/httpd.conf
    Listen 80
    Directory //网站的根目录
    Directoryindx //index.html 网站首页
    ServerName www.baidu.com:80 域名

    /Listen //搜索下试试
    /Directory //搜索下试试
    #注释,没起作用

    找到网站根目录就---文件管理---根---var---www---html(源码拖动进来就可以)


    写个测试页面例如: echo "this is 80 site" > /var/www/html/index.html
    打开浏览器输入127.0.0.1 测试页面

    建第二个站:


    !v调用刚才的配置文件
    G调到行尾


    配置文件底部#<VirtualHost *:80> 虚拟主机配置,如果只通过端口搭建网站,只需要配置这里。
    #ServerAdmin(设置虚拟主机邮箱)
    #DocumentRoot (根目录网站放源码的地方)
    #ServerName (域名)
    #ErrorLog logs(错误日志)
    #CustomLog logs(自定义日志)

    现在去掉两个日志,域名,邮箱剩余,去掉#号,启用功能,端口改为81,根目录设置,在加一个Listen 81端口。yy复制p粘贴。保存退出
    <VirtualHost *:81>
    DocumentRoot /var/www/81
    </VirtualHost>

    mkdir /var/www/81 //创建一个81目录
    echo "this is 81 site" > /var/www/81/index.html
    Iptables –F //关闭防火墙

    setenforce 0 //关闭seLinux

    service httpd restart //启用网站

    chown -R apache:apache /var/www/html //写入权限


    渗透路慢慢,那个人叫方寒
  • 相关阅读:
    手机的基本功能测试情景模式
    C#.net技术内幕04集合
    .net 发送电子邮件
    SQL:select case when(转)
    《 C#技术内幕》学习01IDisposable
    C#.net技术内幕03字符串
    点击确定后页面跳转
    SQL注入式攻击
    C#.NET技术内幕 02表达式
    window xp自带的功能之繁体字
  • 原文地址:https://www.cnblogs.com/fanghan/p/13616604.html
Copyright © 2020-2023  润新知