These characters are color-changing control sequences. These sequences don't work in emacs *shell* buffers: instead they are displayed almost directly.
You should change your shell startup file (probably ~/.bashrc) so that ls uses colors only in terminals that support them. In practice, this is likely to mean on every terminal type other than dumb (which is the terminal type provided in *shell* buffers). The terminal type is indicated in the TERM environment variable, so you can do something like this:
if [ "$TERM" != "dumb" ]; then
alias ls='ls --color=auto'