Windows Security

MBR Lab
Lab Objectives:
  • Create a bootable MBR drive in Windows 10
  • Copy boot files to the drive from Windows
  • Examine boot files in Windows
  • Examine the MBR in Linux
1.  Open a command prompt as an Administrator
2. Enter: diskpart
  Microsoft DiskPart version 10.0.19041.964

  Copyright (C) Microsoft Corporation.
  On computer: DESKTOP-8M0RP18

  DISKPART>
3.  Enter:
 
	list disk  
  DISKPART> list disk

  Disk ###  Status         Size     Free     Dyn  Gpt
  --------  -------------  -------  -------  ---  ---
  Disk 0    Online           60 GB  1024 KB
  Disk 1    Online           57 GB      0 B
4.  Enter:
 
	select disk <number>
Where <number> is the number of the disk you are going to partition.
Ensure you select the correct disk or you may destroy your filesystem!
  Disk 1 is now the selected disk.
5.  Enter:
 
	clean
To erase the disk.
  DiskPart succeeded in cleaning the disk.
6. Enter:
 
	create partition primary
To create a new primary partition.
  DiskPart succeeded in creating the specified partition.
7. Enter:
 
	select partition 1
To select the newly created partition.
  Partition 1 is now the selected partition.
8.  Enter:
 
	format fs=ntfs quick
To format the new partition with the New Technology File System. (NTFS)
  100 percent completed

  DiskPart successfully formatted the volume.
9.  Enter:
 
	active
To set the partition as active (bootable)
  DiskPart mark the current partition as active.
10.  Enter:
 
	assign letter=B
To assign a drive letter mount point for the partition.
  DiskPart successfully assigned the drive letter or mount point.
11. Enter:
 
	exit
To return to the command prompt. We will now copy the Windows boot files to the partition using bcdboot.

12.  Enter:
 
	bcdboot C:\Windows /s B: /f BIOS  
To copy system files to the B: drive for BIOS booting (assuming Windows is installed to C:\)
  Boot files successfully created.
13.  Enter:
 
	B: 
To switch to the B: drive.

14.  Enter:
 
	dir 
To get a directory listing.
  Directory of B:\

   File Not Found
Notice that no files are listed. Why is this?

15. Enter:
 
	dir /as 
To list hidden system files (dir /ah also works).
  Directory of B:\

 02/04/2022  05:11 PM    <DIR>          Boot
 02/01/2022  03:22 PM           413,786 bootmgr
 12/07/2019  01:08 AM                 1 BOOTNXT
 02/04/2022  04:18 PM    <DIR>        System Volume Information
                2 File(s)        413,787 bytes
                2 Dir(s)  61,388,775,424 bytes free
Notice that bootmgr has been copied from our Windows 10 system to the drive. Windows 10 does not provide the tools necessary to work directly with the MBR, so we will need to switch to a Linux system to examine our drive there.

16.  After connecting the drive to the Linux machine enter:
 
	lsblk 
To list block storage devices.
	NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
	sda           8:0    0 465.8G  0 disk
	|-sda1        8:1    0   512M  0 part /boot/efi
	|-sda2        8:2    0 464.3G  0 part /
	`-sda3        8:3    0   976M  0 part [SWAP]
	sdb           8:16   1  57.3G  0 disk
	`-sdb1        8:17   1  57.3G  0 part
	nvme0n1     259:0    0   3.7T  0 disk
	|-nvme0n1p1 259:1    0   190M  0 part
	|-nvme0n1p2 259:2    0   128M  0 part
	|-nvme0n1p3 259:3    0   3.7T  0 part
	|-nvme0n1p4 259:4    0   990M  0 part
	|-nvme0n1p5 259:5    0  17.3G  0 part
	`-nvme0n1p6 259:6    0   1.4G  0 part
On this machine, sdb is the attached drive we created. Note: Since the MBR exists outside of the NTFS filesystem partition, we won't be mounting the drive to examine it. Instead we must work directly with the block device sdb. We need to copy the first 512 bytes from sdb in to a file so we can examine the MBR.

17.  Enter:
 
	sudo dd if=/dev/sdb of=~/MBR.bin bs=512 count=1  
This will copy 1 block that is 512bytes in size.
	1+0 records in
	1+0 records out
	512 bytes copied, 0.00198152 s, 258 kB/s
Now we can examine the MBR.bin file to see the contents of the MBR.
18.  Enter:
 
	vim ~/MBR.bin 
To open the file in vim.

Notice the output is not legible. This is because we are trying to view binary data as ASCII text. We need to view it as hexadecimal.
19.  Enter:
 
	:%!xxd 
To filter the entire file with the xxd hexdump utility
	00000000: 33c0 8ed0 bc00 7c8e c08e d8be 007c bf00  3.....|......|..
	00000010: 06b9 0002 fcf3 a450 681c 06cb fbb9 0400  .......Ph.......
	00000020: bdbe 0780 7e00 007c 0b0f 850e 0183 c510  ....~..|........
	00000030: e2f1 cd18 8856 0055 c646 1105 c646 1000  .....V.U.F...F..
	00000040: b441 bbaa 55cd 135d 720f 81fb 55aa 7509  .A..U..]r...U.u.
	00000050: f7c1 0100 7403 fe46 1066 6080 7e10 0074  ....t..F.f`.~..t
	00000060: 2666 6800 0000 0066 ff76 0868 0000 6800  &fh....f.v.h..h.
	00000070: 7c68 0100 6810 00b4 428a 5600 8bf4 cd13  |h..h...B.V.....
	00000080: 9f83 c410 9eeb 14b8 0102 bb00 7c8a 5600  ............|.V.
	00000090: 8a76 018a 4e02 8a6e 03cd 1366 6173 1cfe  .v..N..n...fas..
	000000a0: 4e11 750c 807e 0080 0f84 8a00 b280 eb84  N.u..~..........
	000000b0: 5532 e48a 5600 cd13 5deb 9e81 3efe 7d55  U2..V...]...>.}U
	000000c0: aa75 6eff 7600 e88d 0075 17fa b0d1 e664  .un.v....u.....d
	000000d0: e883 00b0 dfe6 60e8 7c00 b0ff e664 e875  ......`.|....d.u
	000000e0: 00fb b800 bbcd 1a66 23c0 753b 6681 fb54  .......f#.u;f..T
	000000f0: 4350 4175 3281 f902 0172 2c66 6807 bb00  CPAu2....r,fh...
	00000100: 0066 6800 0200 0066 6808 0000 0066 5366  .fh....fh....fSf
	00000110: 5366 5566 6800 0000 0066 6800 7c00 0066  SfUfh....fh.|..f
	00000120: 6168 0000 07cd 1a5a 32f6 ea00 7c00 00cd  ah.....Z2...|...
	00000130: 18a0 b707 eb08 a0b6 07eb 03a0 b507 32e4  ..............2.
	00000140: 0500 078b f0ac 3c00 7409 bb07 00b4 0ecd  ......<.t.......
	00000150: 10eb f2f4 ebfd 2bc9 e464 eb00 2402 e0f8  ......+..d..$...
	00000160: 2402 c349 6e76 616c 6964 2070 6172 7469  $..Invalid parti
	00000170: 7469 6f6e 2074 6162 6c65 0045 7272 6f72  tion table.Error
	00000180: 206c 6f61 6469 6e67 206f 7065 7261 7469   loading operati
	00000190: 6e67 2073 7973 7465 6d00 4d69 7373 696e  ng system.Missin
	000001a0: 6720 6f70 6572 6174 696e 6720 7379 7374  g operating syst
	000001b0: 656d 0000 0063 7b9a 85f2 195a 0000 8020  em...c{....Z...
	000001c0: 2100 07fe ffff 0008 0000 00f8 2807 0000  !...........(...
	000001d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
	000001e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
	000001f0: 0000 0000 0000 0000 0000 0000 0000 55aa  ..............U.

Is this drive marked as bootable? How can you tell?