Yes, it is possible to clone from a USB stick to an internal drive, and in most PC computers it will work well. But it depends also on the UEFI-BIOS system of the computer, if the computer will accept it. (Maybe you must modify some setting in an UEFI-BIOS menu).
You can use mkusb to do the cloning in a safe way (mkusb helps you identify and select the correct target drive).
An alternative is to use Clonezilla to perform the cloning. See also this link about Clonezilla.
Edit: Thanks for the heads up, mpboden :-)
The partitions of the drives to be cloned should not be mounted, not the source (and not the target). If mounted, things might change (or be overwritten) during the cloning process and cause corruption of the file system.
It is easiest to clone when booted from a third drive, not the source and not the target. It is also possible to boot from a live drive with the boot option toram, which means that the live system is no longer depending on the boot drive (everything is read into RAM). Then you can check that no partition on the drive to be cloned is mounted and unmount and swapoff if necessary.
So, if you have an Ubuntu iso file, I would recommend to create a[nother] USB boot drive and install mkusb into it. The other alternative is to download a current Clonezilla iso file (for legacy BIOS boot) or zip file (for UEFI boot) and create a USB boot drive, that will boot into a dialogue to clone, create an image or restore an image.