Posted on 1 Comment

iOS 14.5.1 Camera and Flashlight Issues

Apple Fruit

Apple has recently released the iOS 14.5.1. Unfortunately after upgrading, my Cameras and Flashlight, stopped working on my iPhone 12 Pro.

Apple haven’t acknowledged this issue is a bug with the update, however it does appear to be affecting numerous users who have updated.

I had this issue earlier today and the fix was a quick and easy, all that was required was to perform a “force restart”. I did notice that a normal restart did not resolve the issue, and it required a forced restart using the method below.

On iPhone X, iPhone XS, iPhone XR, iPhone 11, or iPhone 12:

  • Press volume up
  • press volume down
  • Press and hold the power button and release when the Apple logo appears

Your iPhone should now boot up and once fully loaded the camera and flashlight should now work correctly.

Posted on Leave a comment

May the 4th be with you

May the force be with you

The 4th of May, is the day when it is completely normal to geek out and celebrate Star Wars!

This year I used an Ardunio Uno to play “The Imperial March” and display “May the 4th be with you!” on an LCD display.

Wiring schematics:

Ardunio Uno Wiring diagram

Project source code:

// Script Name: May the 4th be with you - 2021
// Created By: Woodward.Digital
// Credit to: Nick James, https://gist.github.com/nicksort for The Imperial March code
// Website: https://woodward.digital
// Email: [email protected]

#include <LiquidCrystal.h>

// Set pins for LCD interface
// Details the pin on the LCD = the Arduino pin
const int rs = 12;
const int en = 11;
const int d4 = 5;
const int d5 = 4;
const int d6 = 3;
const int d7 = 2;

LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
 
// Initialize all the notes for the Imperial March
const int c = 261;
const int d = 294;
const int e = 329;
const int f = 349;
const int g = 391;
const int gS = 415;
const int a = 440;
const int aS = 455;
const int b = 466;
const int cH = 523;
const int cSH = 554;
const int dH = 587;
const int dSH = 622;
const int eH = 659;
const int fH = 698;
const int fSH = 740;
const int gH = 784;
const int gSH = 830;
const int aH = 880;
int counter = 0;

// Set the pin for the buzzer
const int buzzerPin = 9;

void setup() {
lcd.begin (16,2); //Initialize the LCD
lcd.home ();
pinMode(buzzerPin, OUTPUT);
}
 
void loop() {
delay(1000);
lcd.setCursor(0,0);
lcd.print("May the 4th");
lcd.setCursor(0,1);
lcd.print("Be with you!");

//Play first section
firstSection();

//Play second section
secondSection();

//Variant 1
beep(f, 250);  
beep(gS, 500);  
beep(f, 350);  
beep(a, 125);
beep(cH, 500);
beep(a, 375);  
beep(cH, 125);
beep(eH, 650);

delay(500);

//Repeat second section
secondSection();

//Variant 2
beep(f, 250);  
beep(gS, 500);  
beep(f, 375);  
beep(cH, 125);
beep(a, 500);  
beep(f, 375);  
beep(cH, 125);
beep(a, 650);  
 
delay(650);
delay(10000);
}
 
void beep(int note, int duration)
{
//Play tone on buzzerPin
tone(buzzerPin, note, duration);

delay(duration); 
 
//Stop tone on buzzerPin
noTone(buzzerPin);
 
delay(50);
 
//Increment counter
counter++;
}
 
void firstSection()
{
beep(a, 500);
beep(a, 500);    
beep(a, 500);
beep(f, 350);
beep(cH, 150);  
beep(a, 500);
beep(f, 350);
beep(cH, 150);
beep(a, 650);
 
delay(500);
 
beep(eH, 500);
beep(eH, 500);
beep(eH, 500);  
beep(fH, 350);
beep(cH, 150);
beep(gS, 500);
beep(f, 350);
beep(cH, 150);
beep(a, 650);

delay(500);
}
 
void secondSection()
{
beep(aH, 500);
beep(a, 300);
beep(a, 150);
beep(aH, 500);
beep(gSH, 325);
beep(gH, 175);
beep(fSH, 125);
beep(fH, 125);    
beep(fSH, 250);

delay(325);
 
beep(aS, 250);
beep(dSH, 500);
beep(dH, 325);  
beep(cSH, 175);  
beep(cH, 125);  
beep(b, 125);  
beep(cH, 250);  

delay(350);
}

// Credit to: Nick James, https://gist.github.com/nicksort for The Imperial March code

For full parts list please visit: https://create.arduino.cc/projecthub/woodwarddigital/may-the-4th-be-with-you-325946

Please contact me if you have any comments or suggestions: [email protected]

Posted on Leave a comment

Public IP Address Changes Alert – PowerShell

PowerShell Logo

Receive an email notification every time your Public IP Address changes. The Public IP Address Check script is a free and easy to use PowerShell script that can be ran as a schedule task using Task Scheduler within Windows.

Why would I use this?
Most Public IP Addresses for home broadband connections are normally dynamic IP Addresses and depending on the ISP they can change frequently. While there are solutions such as Dynamic DNS, In some cases it can’t be used.

This is a quick and easy way to be notified if your IP Address changes, if you need to be notified when your IP address changes as you might be unable to use Dynamic DNS or would prefer not to.

Included in the download is a template which you can import in the Task Scheduler within Windows.

The Public IP Address Check has been written and developed by Woodward.Digital and is distributed freely under the MIT License.

Please contact me if you have any comments or suggestions: [email protected]

MIT License

Copyright (c) 2021 woodward.digital

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Posted on Leave a comment

Arduino UNO SMD Missing Drivers

Arduino UNO SMD

With Arduino being an open-source electronics platform, their PCB designs freely available which means it is possible to get a generic Arduino board for much less than the branded boards.

Like when I purchased a 4WD chassis. Which also came with an unbranded Arduino UNO SMD. What’s the difference with Arduino UNO SMD?

The Arduino UNO SMD, uses a surface mount version of the ATmega328P instead of the though hole version.

Arduino UNO SMD

But I noticed when I came to use the board that I wasn’t able to communicate with the board via the Arduino IDE.

When I opened Device manager to double-check I was connecting using the correct COM port, it became clear that there was a missing driver as it was showing as “USB Serial”.

Device Manager

For any missing drivers that Windows isn’t able to automatically find and install, and it isn’t clear where to get the drivers from as this was an unbranded board.

The first step is to find the Hardware IDs of the device by right-clicking on the device > Details and Selecting Hardware IDs. In this instance I could search for the Hardware ID and see that it was for a “CH340 Serial to USB Adapter” which had the Hardware ID “USB\VID_1A86&PID_7523”.

Hardware IDs

It turns out it is very common for the generic Arduino UNO SMD’s to require this driver. For convenience please see below for a download of the driver.

To install this driver, right-click on the missing device and select “update driver”. Then select “browse my computer for drivers” and select the folder where you have downloaded and extracted the above download.

Install Wizard
Install Wizard

Once installation is complete the device is ready to use.


Please get in touch if you have any comments or suggestions via email: [email protected]

Posted on Leave a comment

Update HTML 5 Remote Desktop Web Client

PowerShell Hero

The HTML 5 Remote Desktop Web Client for Windows RDS Deployments is regularly updated by Microsoft. However, the HTML 5 Web Client updates are not available through Windows Updates and have to be manually installed.

To see the latest release notes for the Latest HTML 5 Remote Desktop Client please visit:
https://docs.microsoft.com/en-us/windows-server/remote/remote-desktop-services/clients/web-client-whatsnew

Once you have installed the HTML 5 Web Client it is important that it is regularly updated following your patching policy.

To update the HTML 5 Web Client:

1. Open a PowerShell console as Administrator (Right-click run as Administrator) on the Server running the RD Web Access role. Run the command below which will download the latest available version of the web client.

Install-RDWebClientPackage

2. Now that the latest web client has been downloaded. It can be published by running the command below which will replace the client for all users.

Publish-RDWebClientPackage -Type Production -Latest
Posted on Leave a comment

Install HTML 5 Web-Client for RDS Server

RDS HTML5 Client

The HTML 5 Remote Desktop Web-Client is available for Windows Server 2016/2019 that is configured as a Remote Desktop Services Deployment at no additional cost.

This allows for devices with a modern web browser to access an RDS server without having to use any additional apps. Which is a perfect solution for Mac and Chrome Book users as it will allow them to use the deployment without needing to install the Microsoft RDP App.

HTML 5 Remote Desktop Login Box

Prior to installation of the HTML 5 Web-Client, please ensure that the RDS infrastructure meets the requirements below:

  • RDS deployment has an RD Gateway, RD Connection Broker, and RD Web Access roles are installed on Windows Server 2016 or later.
  • RDS licensing must be configured for per-user client access licenses rather than per-device.
  • Ensure the RDS Deployment servers have the latest Windows updates installed.
  • RDS deployment must have valid SSL certificates issued by a trusted CA on the server containing the Gateway and Web Access roles. (Self-signed certificates do not work!)

Before starting the installation, we need to export the SSL certificate that is used by the RD Web Access role.

  1. Launch MMC as an administrator and add the certificates “Snap-In” and select “Computer Account” as shown below.
MMC Certificate managment

2. Once the Snap-In has loaded, navigate to > Certificates > Personal > Certificates.

3. On the valid certificate that is used for the Web Access role, right-click and select All Tasks > Export.

4. Export the certificate using the following options:
Select the format you want to use > “DER Encoded Binary X.509 (*.cer)”
File Name > Save in an easy to reference location i.e. C:\Temp\webaccesscert.cer

Export Certificate Wizard

Now that we have exported the certificate as a .cer file, we can begin the installation of the HTML 5 Web-Client.

1. Open a Powershell console as Administrator (Right-click run as Administrator) and run the command:

Install-Module -Name PowerShellGet –Force

2. Restart your Powershell console for this to take effect. (Close the console and re-launch it as Administrator and run the command:

Install-Module -Name RDWebClientManagement

4. Run the command below which will download and install the latest version of the Remote Desktop Web-Client.

Install-RDWebClientPackage

5. Using the certificate we exported earlier, run the command below and include the full path and name of the certificate.

Import-RDWebClientBrokerCert "C:\Temp\<Path to file>.cer"
HTML 5 Remote Desktop Client Install

6. Now that the client has be installed, run the command below to publish the client.

Publish-RDWebClientPackage -Type Production –Latest

7. The HTML 5 Web-Client is now accessible by using the URL below.

https://<Your FQDN>/RDWeb/webclient/index.html
i.e. https://remote.woodward.digital/RDWeb/webclient/index.html

8. This step is completely optional however, for ease of use for the end-user you can configure IIS to redirect users to the HTML 5 Web-Client.

Launch IIS Managnger on the server that has the RD Web Access role installed and select Sites > Default Website. Once selected then select the “HTTP Redirect” option located under the IIS Section.

Once selected, configure the HTTP Redictet using the options below:

Enable the option for “Redirect requests to this destination”
In the destination field enter the following URL: https://<Your FQDN>/RDWeb/webclient/index.html
Enable the option for “Redirect all requests to exact destination”

Once the options have been saved you can test the redirect is working as expected by navigating to your FQDN. You should then be presented with the HTML5 Web-Client and the installation is completed.

One key point to mention is that the Web-Client is not automatically updated through Windows update and a manual update is required. A further guide on how to do this is available:
https://woodward.digital/update-html-5-remote-desktop-web-client/

Posted on 1 Comment

Network Monitor – PowerShell Ping Script

Network Monitor - PowerShell Ping Script
Network Monitor a Network Monitoring Tool - PowerShell Ping Script

The Network Monitor is a simple PowerShell Ping Script that acts as a Network Monitoring Tool. That imports a CSV file which contains a list IP address and the names of the devices you would like to monitor. The script runs every 60 seconds, importing the list and testing the connection of every device to ensure it is online. Alerting you to any devices which are unavailable.

The Network Monitor has been written and developed by Woodward.Digital and is distributed freely under the MIT License.

Please contact me if you have any comments or suggestions: [email protected]

MIT License

Copyright (c) 2021 woodward.digital

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Posted on

Infection Monkey – Network penetration testing

Infection Monkey Logo

Infection Monkey is a free open-source, network penetration testing tool. It is a breach and attack simulator that uses real-world attack techniques and known vulnerabilities.

Evaluating your security is easy with Infection Monkey and takes 3 simple steps:

Step 1 – Simulate
Download and run Infection monkey from a machine. Installation is simple, to download Infection Monkey please complete the download request form located: https://www.guardicore.com/infectionmonkey/

The download link is then emailed to you. Once downloaded, run the installation.
Note: Depending on your Anti-Virus solution, you may need to disable it in order to run Infection Monkey. Dissapointily during my Tests, Windows Defender was oblivious to Infection Moneky and didn’t detect or stop any of the exploits on the local machine I was running it from.

Once installed open Infection Monkey and review the configuration. A key area is to add your internal IP Range which is located under Configuration > Network.

Now that Infection Monkey is configured and installed, you can run it from the Machine it is installed on by selecting “From Island”.

Run Infection Monkey

Step 2 – Evaluate
Watch as Infection Monkey runs and tests your network for any weakness. While it is running, Infection monkey will start to draw out a diagram detailing its “Victims” and whether it was able to exploit the victim.

Infection Monkey, Infection Map

Step 3 – Remediate
Act on the reports that Infection Monkey provides you with. If Infection Monkey reports that it wasn’t able to carry out any known exploits. You can use the information and its recommendations it provides to secure your network further. For example, you may want to consider segregating your network into separate VLANs or implementing an isolated guest network.

Using infection monkey correctly and on a regular basis can assist in securing your network. From my experience using Infection Monkey, I have found it works best by trying different scenarios. For example, Connected to a Guest network to simulate a visitors device that is infected and to confirm that the Guest network is correctly isolated.

Hopefully, you have found this to be a useful tool, I have only just scratched the surface explaining Infection Monkey. If you would like to know more please visit the official documentation: https://www.guardicore.com/infectionmonkey/docs/