vi是一个较大的unix命令,在启动的时候也有它自己的选项和参数
基本语法:
vi [-options] [+[n]] [file]
常用选项有:-r , -R
-r用于恢复系统突然崩溃时正在编辑的文件
-R用于以只读方式打开文件
+n用来指明进入vi后直接位于文件的第n行,如果不指定n,则位于最后一行
# cp /etc/resolv.conf ss
# cat ss
# vi +3 ss --光标停在第3行
# vi ss --光标停在第1行
必须用一些命令来操作
命令模式
按dd --删除本行
按D --删除从光标到行尾
按p --就粘贴回来
按i --在光标前面插入
按A --在行尾插入
按R --在行首插入
按o --在下一行插入
按O --在上一行插入
按u --返回上一步操作
按22 + dd --删除22行 --
插入模式
按a --进入插入模式
按ESC --退回原始模式
就可以编辑了
按ESC+shift+; --进入底行模式
(输入一些字符命令进行操作)
输入q+回车 --退出模式(q+!)(强制退出)
输入wq --保存并退出
输入w --保存
文本插入:
在命令方式下使用某些命令会导致vi马上进入文本插入方式,这些命令包括:i,I,a,A,o,O等
在这种方式下用户的任何输入都被当做是文件的内容看待,并将其显示在屏幕上
a:在光标后附加文本
A:在本行行末附加文本
i:在光标前插入文本
I:在本行开始插入文本
o:在光标下插入新行
O:在光标上插入新行
搜索和替换:
/string --向前搜索指定字符串,搜索时忽略大小写:set ic
n --搜索指定字符串的下一个出现位置
:%s/old/new/g --全文替换字符串
:n1,n2s/old/new/g --在一定范围内替换指定字符串
按shift+:
输入set nu --显示行号
/内容+回车 --搜索"内容"
按n --向下搜索
?内容 --向上搜索
按n --向上搜索
:%s/old内容/new内容/g --全文替换
:1,5s/old内容/new内容/g --1,5行替换
重复前一命令:.
取消上一命令:u
退出vi:行方式下使用q,行命令x相当于:wq命令.在命令方式下使用命令ZZ等效于:x命令
如果由于读写权限或是更新方面的问题,导致vi拒绝执行保存文件或退出vi的命令,那么可以在命令后加一个!号表示强制执行
cat命令:
cat --显示出文件的全部内容
-n --给输出的所有行加上编号
cat 1 2 > 3 --合并文件
将文件1和2合并到3,如cat 1 2 3...>n
# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
用户名:x代表影子密码,密码放在其他位置:UID号0基本代表管理员:GID号(组id)
:所在分组名称(家目录) /bin/bash:所使用的shell,bin下或bash下都能登录这个终端
像sbin,nologin是不能登录终端的.
密码存放位置:
# cat /etc/shadow
!! 代表没有密码 有密码的就MD5加密了
用which命令查看cat命令在哪一目录下
# which cat
/bin/cat --普通用户都能用
# cat -n ss
# date --显示日期
# date > 1 --将date信息导入到1
# cat 1
# cat 1 ss
# cat 1 ss > 2
# cat 2
wc 统计文件中的单次数量 字节数 行数
-l 统计行数
-w 统计单词数
-c 统计字符数
wc sdxh.txt 会出现 2 4 26
2是行数 4是单词数 26是字符数
history查看历史命令
# wc -l ss
归档和压缩命令 gzip bzip2
(多个文件归成1个文件)
只针对单个文件压缩或
-9 显示高压缩比
-d 释放压缩文件
gzip 文件名 压缩文件 格式为后缀有.gz
bzip2 文件名 压缩成的文件名 格式为 文件名.bz2 它相对于gzip压缩率更高
# ls -lh
# gzip install.log install.log.gz
(或者高压缩)
# gzip -9 install.log install.log.gz
# ls -lh
# gzip -d install.log.gz
# ls -lh
# bzip2 install.log install.log.bz2
# ls -lh
tar(归档命令)(释放归档文件)(没有压缩功能)
格式 tar 选项 归档文件名 源文件或目录
-c 创建归档文件 扩展名为.tar
-v 输出详细信息
-f 表示使用归档文件 如 -cvf 创建归档文件
tar -cvf 4.tar 1 2 3 将文件1 2 3 打包归档为4.tar
tar -xvf 4.tar --解包归档文件4.tar --xvf 解包归档文件
-x 解开归档文件
-t 列表查看包内的文件
tar -tvf 4.tar -r --追加TAR文件至归档结尾
tar -rvf 4.tar 5 --把5加入4.tar
-p --解包时保留原始文件及目录的权限
-C --解包时指定释放的目录文件夹
-z --调用gzip程序,进行解压或压缩 -j 调用bzip2 程序进行压缩或解压
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 3.tar 1 2 ss
-cvf创建一个归档 归档名为3.tar 将 1 2 ss归档到一起
(先归档再压缩)
# gzip 3.tar 3.tar.gz
# ll
# rm -rf 1 2 ss
# tar zxvf 3.tar.gz (归档的文件一般用tar解压)
# ll
# tar jxvf 4.tar.bz2 (用jxvf解压bz2,用zxvf解压gz)
安装,升级,卸载RPM软件包 2-1
安装或升级RPM软件
格式:rpm [选项] RPM包文件
用法:不同选项适用于不同情况
-i:安装一个新的rpm软件包
-U:升级某个rpm软件,若原本未装,则进行安装
-F:更新某个rpm软件,若原本未装,则放弃安装
卸载指定的RPM软件
格式:rpm -e 软件名
辅助选项
--force:强制安装所指定的rpm软件包
--nodeps:安装,升级或卸载软件时,忽略依赖关系
-h:以"#"号显示安装的进度
-v:显示安装过程中的详细信息
RPM软件包封装的,需要安装RPM
# cd /media
# cd VMware\ Tools/
# ls
# tar zxvf VMwareTools-9-9.2-2496486.tar.gz -C /root/
# cd
# ls
# cd vmare-tools-distrib/
(./ --代指运行)
(# ll 文件末尾要有-x,才是有权限 有权限才能添加)
# ./ vmware-install.pl
# chmod 644 vmware-install.pl
失去权限
# ./vmware-install.pl
# chmod 755 vmware-install.pl
添加权限
-rwxr-xr-x.
rwx 用户权限
r-x 分组权限
每一个权限加起来是7
rwx
421
rwxrwxrwx
777
rwxr-x--x
751
# chmod u-w vmware-install.pl u:所有者,g:组,o:其他人 -w 失去w功能
安装要装载CD
# umount /dev/sr0 --先卸载一下
# mount /dev/sr0 /media
# ls /media
# ls /media/Packages/
# ls /media/Packages/ >12
# wc -l 12
安装man软件(# rpm -ivh /media/Packages/man-1.6....rpm)
# cd /media
# cd Packages/
# rpm -ivh man-1.6f...rpm
# man ls
# rpm -e man --卸载man
# clear
查看已安装软件
# rpm -qa
# rpm -qa man --查看有没有安装man
# rpm -qi man --查看详细信息
# rpm -ql man --查看安装目录
第二种方法:
编译安装过程
下载源代码安装包文件
源代码:1.tar.gz 2.自带安装程序 3.编译配置才能安装的
步骤1:tar解包
步骤2:./configure配置
用途:设置安装目录,安装模块等选项
步骤3:make编译
用途:生成可执行的二进制文件
步骤4:make install安装
用途:复制二进制文件到系统,配置应用环境 --测试及应用,维护软件
首选安装方法:
依赖关系的软件安装:
# yum -y install firefox --安装一些软件
# vi /etc/yum.repos.d/rhel-source.repo --通过vi编辑它
区分:firefox的就可以直接安装,make的需要配置,
修改的地方:
[rhel-source-beta]
底行模式:
.,$d
.:光标所在行
,:到
$:最后
d:删除
[rhel-source]
enabled=0->enabled=1
按r再按1 --替换
baseurl=f->按D,之后的全部删除
按a
baseurl=file:///media/Server --路径
复制gpgkey里面的->/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
wq
导入秘钥
# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
# yum -y install firefox
必须指定位置,yum才能安装成功
apt-get --kali安装方法,需要保证联网
apt-get install xxx.
dpkg
dpkg -i xx
dpkg -l
dpkg -r xx
添加用户账号:
useradd命令:
格式:useradd [选项]... 用户名
常用命令选项:
-u:指定UID标记号
-d:指定宿主目录,缺省为 /home/用户名
-e:指定账号失效时间
-g:指定用户的基本组名(或UID号)
-G:指定用户的附加组名(或GID号)
-M:不为用户建立并初始化宿主目录
-s:指定用户的登录shell
<!--
# yum -y remove man --卸载
-->
# useradd cracer
# ls /home
# su - cracer --切换用户
# passwd cracer --更改密码
123
123
用户添加示例:
指定mike的基本组为mike,并加入到ftpuser组;指定主目录为/ftphome/mike;不允许mike通过本地登录服务器
[root@localhost~]# useradd -d /ftphome/mike -g mike -G ftpuser -s /sbin/nologin mike
--对应的基本组,附加组必须存在
删除用户账号--userdel
userdel命令:
格式:userdel [-r] 用户名
添加 -r 选项时,表示连用户的宿主目录一并删除
[root@localhost~]# useradd stu01
[root@localhost~]# ls -ld /home/stu01/
drwx-----2 stu01 stu01 4096 09-09 12:38 /home/stu01/
[root@localhost~]# userdel -r stu01 --加-r会把家目录也删除
[root@localhost~]# ls -ld /home/stu01/
ls:/home/stu01/:没有那个文件或目录
Linux系统网路配置:
查看网络接口信息--ifconfig
查看所有活动网络接口的信息
执行ifconfig命令
查看指定网络接口信息
格式:ifconfig 网络接口名
[root@localhost~]# ifconfig eth0 --eth0:代指网卡名,自己写
eth0 Link encap:Ethernet HWaddr 00:0C:29:57:8B:DO
inet addr:192.168.4.11 Boast:192.168.4.255 Mask:255.255.255.0
......
网卡类型:
名称 类型
eth0 以太网
lo (虚拟)回环设备
ppp0 使用PPP协议打的串口设备(通常指调制解调器)
tr0 令牌环(Token Ring)
fddi0 光纤
查看主机名称--hostname
hostname命令
查看或设置当前主机名;
格式:hostname
查看路由表条目---route
route命令
查看或设置主机中路由表信息
格式:route [-n]
# route -n
查看网络连接情况--netstat
netstat命令
查看系统的网络连接状态,路由表,接口统计等信息
格式:netstat [选项]
常用选项:
-a:显示所有活动连接
-n:以数字形式显示
-p:显示进程信息
-t:查看TCP协议相关信息
-u:查看UDP协议相关信息
-r:显示路由表信息
# netstat -anpt | grep:21
设置路由记录---route
删除路由表中的默认网关记录
格式:route del default gw IP地址
向路由表中添加默认网关记录
格式:route add default gw IP地址
添加到指定网段的路由记录
格式:route add -net 网段地址/24 gw IP地址
删除到指定网段的路由记录
格式:route del -net 网段地址
网络接口配置文件
/etc/sysconfig/network-scripts/目录下的
ifcfg-eth0:第1块以太网卡的配置文件
ifcfg-eth1:第2块以太网卡的配置文件
...
# ls /etc/sysconfig/network-scripts/ifcfg-*
# ls /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes --
BOOTPROTO=static
IPADDR=192.168.4.1 --IP
NETMASK=255.255.255.0 --子网掩码
GATEWAY=192.168.4.2 --网关
静态改IP(改东西必须用vi命令)
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
启用,禁用网络接口配置
重启network网络服务
# service network restart
正在关闭接口 eth0: [确定]
关闭环回接口: [确定]
弹出环回接口: [确定]
弹出界面eth0: [确定]
禁用,启用网络接口
# ifdown eth0
# ifup eth0
域名解析配置文件
/etc/resolv.conf文件
用途:保存本机需要使用的DNS服务器的IP地址
# vi /etc/resolv.conf
search localdomain
nameserver 202.106.0.20 --DNS的IP地址
实战:
linux安装apache,搭建网站,....
(需要安装5个软件包)
(可以直接安装多个软件包)
# yum -y install httpd php mysql mysql-server php-mysql
(httpd:代表apache)
(mysql-server:mysql服务器)
(php-mysql:两者连接的软件)
->
给网站权限
# ls /var/www/html/
启动服务
# service httpd start
# service mysqld start
设置mysql密码
# mysqladmin -uroot password 123456
登录mysql
# mysql -uroot -p123456
mysql> show databases
mysql> use mysql;
mysql> select * from admin;
mysql> show tables;
mysql> select * from user;
退出
mysql> quit;
访问192.168.80.140
访问不到
将防火墙配置到最低,将防火墙策略清空
# iptables -F
复制测试平台->var->www->html->复制过去
[root@cracer var]# chown -R root www
改权限,递归改
apache是程序用户,安装完成之后自动添加
[root@cracer var]# chown -R apache www
复制测试平台->var->www->html->复制过去
login->admin+回车
修改数据库->
jian root 123456
查找网站漏洞->
http://192.168.80.138/article.php?id=5
http://192.168.80.138/article.php?id=5 and 1=1
(此测试网站已被审计改过)
手动修改成有漏洞的网站->
[www]# cd html/
[html]# vi article.php
删除if(id==''){};这一条
在下一个if里面找
WHERE id='".#_REQUEST['id']."',#db --将" "删除
http://192.168.80.138/article.php?id=5 and 1=1
如果网站没有变化,则说明有漏洞
->把1改成2 测试
注入->
复制http://192.168.80.138/article.php?id=5 and 1=1
到Pangolin
->将木马cc(2).php放入到网站,改名为cc.php
http://192.168.80.138/cc.php
提权->
先将防火墙关闭
win_cmd->nc.exe -l -n -v -p 12666 --12666是端口
在网站木马执行命令:
uname -r --查看内核版本
exp->linux->3.2->2.6.32.c复制
或者直接在网站木马上传 上面输入/tmp/,选择文件,上传
win->
cd tmp
gcc 2.6.32.c
找a.out (xxx.out文件)
->执行a.out
a.out