Если хочешь напрямую забиндить свой бекдор на какой то порт, то гугли как работать с сокетами. Вкрацте, биндишь сокет на выбраный порт, делаешь в бесконечном цикле обработчик событий, пишешь клиентскую часть, которая будет посылать команды. Только проверь, что б входящий траффик на твой порт был разрешен в фаерволе. Часто бывает, что входящий траффик разрешен только на основные порты(22,80,443 и тд), остальное дропается, поэтому легче юзать реверс шелл, все таки исходящий траффик блокируется реже.