实训第一天 GRUB2的使用 1.忘记root密码怎么办? 首先,我们先把root密码忘了,然后重启(reboot)
在GRUB2启动屏显时,按下e键进入编辑模式
然后我们定位到linux16开头的行,按下end键直接来这段命令的末尾, 并增加 rd.break,ctrl+x一下
进入emergency mode界面 我有个信息收集的习惯,先fuzz一下 命令如下:
 
可以发现的是,当前是无用户情况的系统调试界面,而且xfs是只读
那就以读写的形式挂载给我改下密码:
1 2 mount -o remount,rw /sysroot      #以读写方式重新挂载系统分区至/sysroot chroot /sysroot       #改变根目录至/sysroot
 
可以发现,我们通过改变根目录方式来使用root用户,那么改变密码也成为可能 本菜鸡只会两种改变密码的命令:
1 2 echo 123 | passwd --stdin root         //本次实训所用 passwd root
 
SELinux 它是一个安全增强系统, 其内部有许多安全策略 针对一些操作, 如果你做了这些操作, 没有得到策略的放行, 它会给你禁止掉 比如你使用单用修改root密码是不被策略放行的 怎么让 SELinux 策略放行呢?
1 2 "touch /.autorelabel" 创建这样一个文件其实就是在告诉SELinux放行这个策略,就是通知一下 直接关闭掉 SELinux
 
参考:https://blog.csdn.net/songhaixing2/article/details/109780512 
由于使用了SElinux,必须运行:
 
否则系统无法正常使用
退出当前用户,重启system 登录root,密码123(原密码为:qiye)
可以发现成功登录root,ya☆da☆ze!
2.加把安全锁 用安全角度来看,能够使用GRUB2直接修改root密码,无疑是一种提权方法,是一种安全漏洞 这就相当于,只要别人知道你家地址,便能直接进你家,所以就常识而言,为了安全,加把锁很重要
使用grub2-mkpasswd-pbkdf2  命令生成加密口令 这里密码为:qiye
既然是通过grub2修改的密码,那就修改他的配置文件/boot/grub2/grub.cfg 为了方便操作,新开一个终端窗口:
1 vim /boot/grub2/grub.cfg
 
可以看到,配置文件已经注释出界面顺序(太贴心了,嘤嘤嘤),我们把锁加到### BEGIN /etc/grub.d/10_linux ###下面,menuentry那一行的上面:
保存退出,一样reboot重启,再次进入gurb2界面
发现可以打开GURB2命令行界面,ya☆da☆ze!
3.修复MBR 主引导记录,也叫主引导扇区
Linux是文件型的操作系统,所有的信息和数据都以文件形式保存于系统中,但是并不是所有的数据,主 引导记录就不是以文件的形式保存,无法进行备份,只能通过 dd 命令备份 
1 2 3 4 5 6 7 8 9 10 11 # 备份  [root@localhost ~]# dd if=/dev/sda of=/root/mbr.bak count=1 bs=512 1+0 records in 1+0 records out 512 bytes (512 B) copied, 0.000676292 s, 757 kB/s# 破坏  [root@localhost ~]# dd if=/dev/zero of=/dev/sda count=1 bs=446 1+0 records in 1+0 records out 446 bytes (446 B) copied, 0.000305554 s, 1.5 MB/s
 
重启后,发现无法正常启动 
连接镜像光盘,在光盘引导界面选择 Troubleshooting  连接镜像: 使用Troubleshooting: 
 
选择救援模式 Rescue a Centos system  
 
grub2-install 命令重建 Bootloader,随后 sync 写入硬盘,reboot 重启系统
进入挂载文档,重新安装 Bootloader,sync写入硬盘,reboot重启system
1 2 3 4 5 sh-4.2 chroot /mnt/sysimage   sh-4.2 grub2-install /dev/sda  sh-4.2 sync  sh-4.2 exit  sh-4.2 reboot
 
完成!(我好菜,都是跟着文档来着)
4.修复GRUB 我们设想,有没有一种可能,grub配置文件丢失,开机直接登录,但显然这是不可能的,它会直接进入grub界面, 直接让你调试解决 
总之,乱来前能快照就快照(不能过度依靠),然后必须备份 
1 2 3 4 5 6 7 8 9 10 11 # 备份  [root@localhost ~] mkdir grub2.bak [root@localhost ~] chmod 777 grub2.bak/ [root@localhost ~] cp -rp /boot/grub2/* ./grub2.bak/ [root@localhost ~] ls grub2.bak/ device.map  fonts  grub.cfg  grubenv  i386-pc  locale  themes [root@localhost ~]# # 删除  [root@localhost ~] rm /boot/grub2/grub.cfg  rm: remove regular file ‘/boot/grub2/grub.cfg’? y [root@localhost ~] reboot
 
最好在确认一下,磁盘分区:
 
 重启后,进入grub状态,一下调试参数: 小心版本问题啊,建议linux16  /vm   直接Tab出来就行
initrd16 /init  也一样
1 2 3 4 5 6 7 8 9 10 11 grub>  insmod xfs  grub>  set  root='hd0,msdos1'      grub>  linux16 /vmlinuz-3.10.0-123.el7.x86_64   root=/dev/sda3grub>  initrd16 /initramfs-3.10.0-123.el7.x86_64.img  grub>  boot 
 
关于root=/dev/sda3: 我的系统分区位于/dev/sda3,不能搞错绝对路径!!!! 
恢复Grub
1 2 3 [root@localhost ~] cp ./grub2.bak/grub.cfg /boot/grub2/  [root@localhost ~] reboot
 
能够正常重启!
DHCP服务器的配置与使用 1.安装DHCP服务 检查是否有安装DHCP,若无提示,则未安装
 
关闭防火墙及SELinux策略
1 2 3 [root@localhost ~] systemctl stop firewalld.service  [root@localhost ~] setenforce 0
 
安装dhcp服务
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 # 挂载镜像  [root@localhost ~] mkdir /mnt/cdrom [root@localhost ~] mount /dev/cdrom /mnt/cdrom/ mount: /dev/sr0 is write-protected, mounting read-only  [root@localhost ~] cd /mnt/cdrom/ [root@localhost cdrom] ls CentOS_BuildTag  GPL       LiveOS    RPM-GPG-KEY-CentOS-7 EFI              images    Packages  RPM-GPG-KEY-CentOS-Testing-7 EULA             isolinux  repodata  TRANS.TBL [root@localhost cdrom] cd Packages/# 在包内查找dhcp安装包  [root@localhost Packages] ls | grep  dhcp dhcp-4.2.5-27.el7.centos.x86_64.rpm dhcp-common-4.2.5-27.el7.centos.x86_64.rpm dhcp-devel-4.2.5-27.el7.centos.i686.rpm dhcp-devel-4.2.5-27.el7.centos.x86_64.rpm dhcp-libs-4.2.5-27.el7.centos.i686.rpm dhcp-libs-4.2.5-27.el7.centos.x86_64.rpm # 安装dhcp  [root@localhost Packages] rpm -ivh dhcp-4.2.5-27.el7.centos.x86_64.rpm  warning: dhcp-4.2.5-27.el7.centos.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY Preparing...                          ################################# [100%] Updating / installing...    1:dhcp-12:4.2.5-27.el7.centos      ################################# [100%] [root@localhost Packages] rpm -qa dhcp dhcp-4.2.5-27.el7.centos.x86_64# yum下载安装也行  wget -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo yum install dhcp
 
再次检查dhcp
1 2 [root@localhost Packages] rpm -qa dhcp dhcp-4.2.5-27.el7.centos.x86_64
 
2.DHCP的配置 更新本地网卡ip配置(我这网卡名就很离谱。)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 [root@localhost Packages]# dhclient [root@localhost Packages]# ifconfig eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500         inet 192.168.241.144  netmask 255.255.255.0  broadcast 192.168.241.255         ether 00:0c:29:e0:c1:21  txqueuelen 1000  (Ethernet)         RX packets 631  bytes 40374 (39.4 KiB)         RX errors 0  dropped 0  overruns 0  frame 0         TX packets 18  bytes 3110 (3.0 KiB)         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536         inet 127.0.0.1  netmask 255.0.0.0         inet6 ::1  prefixlen 128  scopeid 0x10<host>         loop  txqueuelen 0  (Local Loopback)         RX packets 930  bytes 80828 (78.9 KiB)         RX errors 0  dropped 0  overruns 0  frame 0         TX packets 930  bytes 80828 (78.9 KiB)         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
 
找到dhcp配置文件
1 2 [root@localhost Packages] find /* -name dhcpd.conf /etc/dhcp/dhcpd.conf
 
然后出了一堆问题,解决起来真的是。。。怀疑人生啊
1.配置静态ip 
vim /etc/sysconfig/network-scripts/ifcfg-eno16777736
1 2 3 4 5 6 7 8 9 10 # 检查ip是否正确  [root@localhost ~]# ifconfig eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500         inet 192.168.111.111  netmask 255.255.255.0  broadcast 192.168.111.255         inet6 fe80::20c:29ff:fee0:c121  prefixlen 64  scopeid 0x20<link>         ether 00:0c:29:e0:c1:21  txqueuelen 1000  (Ethernet)         RX packets 34  bytes 2994 (2.9 KiB)         RX errors 0  dropped 0  overruns 0  frame 0         TX packets 34  bytes 4361 (4.2 KiB)         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
 
2.配置dhcp文件 
在/etc/dhcp/dhcpd.conf增加以下:
1 2 3 4 5 6 7 8 9 subnet 192.168.111.0 netmask 255.255.255.0 {     range 192.168.111.100 192.168.111.200;     option domain-name-servers 192.168.111.1;     option domain-name "qiye";     option routers 192.168.111.1;     option broadcast-address 192.168.111.255;     default-lease-time 600;     max-lease-time 7200; }
 
subnet 后面接是的是你ip的网段,不是你的ip,且后面数值都应该是跟你同个网段的ip
1 2 # 启动dhcp服务  systemctl status dhcpd
 
1 2 3 4 5 6 7 #  重启DHCP服务   [root@localhost ~] systemctl restart dhcpd.service #  查看DHCP状态   [root@localhost ~] netstat -luntp | grep dhcp udp        0      0 0.0.0.0:67              0.0.0.0:*                           12514/dhcpd   
 
修改虚拟网络配置 
在一台被我渗透了无数遍的靶机win7上,终于。。。。。
 给win7配置一个nice的IP地址(192.168.111.144)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 subnet 192.168.111.0 netmask 255.255.255.0 {     range 192.168.111.100 192.168.111.200;     option domain-name-servers 192.168.111.1;     option domain-name "qiye";     option routers 192.168.111.1;     option broadcast-address 192.168.111.255;     default-lease-time 600;     max-lease-time 7200; }#  增加一行   host boss {      hardware ethernet 00:0C:29:5A:D5:EB;      fixed-address 192.168.111.144;  }
 
重启服务
1 [root@localhost ~] systemctl restart dhcpd.service
 
 未完待续~~