podes usar a função getch() que não retorna output para o stdin nem precisa de ser pressionado ENTER para ser guardado o caracter....
A cada caracter que seja introduzido, imprimes um '*'
Na implementação podes usar um ciclo que acaba apenas quando o código ASCII do caracter corresponde ao de carriage return (ENTER):
Decimal: 13
Hexadecimal: 0D