One approach is this: That a matrix $C$ is singular gives us in particular that its null space is non-trivial, that is, for some vector $x\ne0$ we have $Cx=0$. That $C$ is nonsingular, on the other hand, gives us in particular that the column space of $C$ has full rank, that is, for any vector $b$ there is a vector $a$ such that $Ca=b$.
Now, suppose $A$ is singular. If $B$ is also singular, then for some $x\ne 0$ we have $Bx=0$, but then $(AB)x=A(Bx)=A0=0$, and we conclude that $AB$ is also singular.
If, on the other hand, $B$ is nonsingular, use that $A$ is singular to find $b\ne 0$ such that $Ab=0$. Now, use that $B$ is nonsingular to find $a$ such that $Ba=b$. Clearly $a\ne0$ since $b\ne0$. But now we have that $(AB)a=A(Ba)=Ab=0$, and we conclude (again) that $AB$ is singular.
This completes the proof. Notice, by the way, that we also showed that 1) $AB$ is singular if $B$ is the one assumed singular. On the other hand, since $A,B$ being nonsingular gives us that $AB$ is nonsingular, then we also have that 2) if $AB$ is singular, then at least one of $A$ and $B$ must be singular as well.