Категория > Новости > GSM Ducky. Делаем BadUSB с управлением по сотовой связи - «Новости»

GSM Ducky. Делаем BadUSB с управлением по сотовой связи - «Новости»


18-06-2021, 00:00. Автор: Тимур
Злой HID» и «Злая утка с дис­танци­онным управле­нием» дают исчерпы­вающее руководс­тво, как соб­рать и зап­рограм­мировать BadUSB и модифи­циро­вать его, добавив ESP8266. Модуль Wi-Fi пре­дос­тавля­ет нам огромное пре­иму­щес­тво в виде уда­лен­ного управле­ния устрой­ством и соз­дания скрип­тов на лету. Бес­спор­но, управле­ние через веб‑интерфейс — это кру­тая модифи­кация. Но за удобс­тво нуж­но пла­тить, в этом слу­чае скрыт­ностью. Соз­данная устрой­ством точ­ка дос­тупа может выдать факт работы устрой­ства, а бетон­ные сте­ны и малый ради­ус зоны Wi-Fi не дадут поль­зовате­лю уда­лить­ся на рас­сто­яние боль­ше ста мет­ров от девай­са (это в луч­шем слу­чае). В сегод­няшней статье мы раз­дви­нем физичес­кие гра­ницы исполь­зования BadUSB.
 

Выбор железа


Что, если обо­рудо­вать Arduino модулем не ESP8266, а SIM800L? Конеч­но, суть BadUSB оста­нет­ся неиз­менной: устрой­ство под­клю­чает­ся к пор­ту USB компь­юте­ра для выпол­нения команд скрип­та. Одна­ко отли­чие от прос­того BadUSB зак­люча­ется в том, что пос­ле при­соеди­нения скрипт не выпол­нится. Его необ­ходимо будет пос­лать в виде SMS. Это даст пре­иму­щес­тво не толь­ко в дис­танции, c которой мож­но управлять устрой­ством уда­лен­но, но и в исполь­зуемом обо­рудо­вании: хва­тит кно­поч­ного телефо­на с SIM-кар­той. Что­бы еще нем­ного сни­зить себес­тоимость устрой­ства, мож­но заказать все необ­ходимые детали с AliExpress.


Нам понадо­бят­ся сле­дующие вещи:




  • SIM800L,


  • Arduino Pro Mirco,


  • пе­реход­ник USB — microUSB.


SIM800L
Arduino Pro Mirco
GSM Ducky. Делаем BadUSB с управлением по сотовой связи - «Новости»
USB — microUSB

Те­перь давай прис­тупим к сбор­ке самого устрой­ства.


 

Работаем ручками


Схе­ма соеди­нения кон­тактов двух плат про­вода­ми выг­лядит сле­дующим обра­зом:


ARDUINO <---->SIM800L
RAW <----->VCC
GND <----->GND
15 <----->TXD
14 <----->RXD

Ан­тенна из ком­плек­та SIM800L подой­дет любая. Если это антенна‑спи­раль, то ее необ­ходимо при­паять к кон­такту NET модема. Что­бы сэконо­мить мес­то, я выберу плос­кую антенну и прик­реплю ее к кон­такту IPX.



info


Пи­тание модуля SIM800L очень кап­ризно. Раз­решен­ное нап­ряжение сос­тавля­ет от 3,4 до 4,4 В. Поэто­му, если ты исполь­зуешь не Arduino Pro Micro или выход­ное нап­ряжение не попада­ет в про­межу­ток зна­чений, ука­зан­ный выше, советую озна­комить­ся со стать­ей Robotchip. В ней под­робно опи­сано, как кор­рек­тно под­вести питание к модулю SIM800L.



Соб­ранное устрой­ство

Ос­танав­ливать­ся на сбор­ке под­робно я не буду. Уве­рен­но ору­дуя паяль­ником, цеп­ляем про­вода к обе­им пла­там по схе­ме. Ска­жу лишь одно: если ты даль­ше собира­ешь­ся про­дол­жать свои экспе­римен­ты с BadUSB, то луч­ше вос­поль­зовать­ся макет­ной пла­той. Тог­да сбор­ка устрой­ства прев­ратит­ся в игру с конс­трук­тором Lego. Дос­таточ­но будет при­паять нож­ки к исполь­зуемым кон­тактам Arduino и SIM800L, уста­новить девай­сы на макет­ную пла­ту и соеди­нить их меж­ду собой про­вода­ми.


 

Настраиваем окружение


Linux или Windows? Решать тебе! Arduino IDE есть под обе опе­раци­онные сис­темы. В моем слу­чае при под­клю­чении Arduino опре­дели­лось как SparkFun LilyPad USB.


Оп­ределе­ние Arduino в ОС Linux

Да­лее ска­чива­ем Arduino IDE с офи­циаль­ного сай­та под свою ОС (в моем слу­чае это Kali Linux). Пос­ле уста­нов­ки необ­ходимо выб­рать устрой­ство, которое мы будем прог­рамми­ровать, и порт, к которо­му оно под­клю­чено. Сра­зу ска­жу, что, если ты исполь­зуешь Linux, заг­рузить код на пла­ту с пер­вого раза может и не получить­ся. Тог­да необ­ходимо про­писать в коман­дной стро­ке Linux сле­дующее (где username — имя поль­зовате­ля):


Вы­бор пла­ты для пра­виль­ной ком­пиляции кода
Вы­бор пор­та, к которо­му под­клю­чено устрой­ство

Пос­ле под­клю­чения устрой­ства к USB-пор­ту модем ищет бли­жай­шую базовую стан­цию опе­рато­ра SIM-кар­ты, которую ты исполь­зуешь в SIM800L (в вер­хнем углу модуля SIM800L находит­ся све­тоди­од, который показы­вает сос­тояние сотовой сети). Есть три сос­тояния инди­като­ра: мига­ет раз в 1 с — модуль работа­ет, но еще не под­клю­чил­ся к сотовой сети; мига­ет раз в 2 с — зап­рошен­ное соеди­нение для переда­чи дан­ных GPRS активно; мига­ет раз в 3 с — модуль уста­новил связь с сотовой сетью и может отправ­лять или получать голосо­вые сооб­щения и SMS.


 

Прогаем мозги


В отли­чие от девай­са с модулем Wi-Fi, в нашей вер­сии BadUSB будет прог­рамми­ровать­ся толь­ко модуль Arduino. SIM800L выс­тупит как часть канала переда­чи, которая обра­баты­вает получа­емые от базовой стан­ции сиг­налы GSM. Резуль­татом работы (в зависи­мос­ти от отправ­ленной модулю SIM800L коман­ды) будет тек­сто­вая информа­ция, выведен­ная в COM-порт. Рас­смот­рим основные коман­ды биб­лиоте­ки это­го модуля, с которы­ми будем работать.


Об­щать­ся с модулем SIM800L мож­но через COM-порт с помощью тек­сто­вых команд. Их перечень огро­мен, поэто­му при­веду в качес­тве при­мера толь­ко те, которые будут задей­ство­ваны.




  • AT — нас­трой­ка ско­рос­ти обме­на дан­ными;


  • AT+CMGDA="DEL ALL" — уда­ление всех SMS из памяти сим­ки;


  • AT+CMGDA="DEL READ" — уда­ление всех про­читан­ных SMS;


  • AT+CLIP=1 — вклю­чение AOH;


  • AT+DDET=1 — вклю­чение воз­можнос­ти исполь­зования тональ­ного набора;


  • AT+CMGF=1;&W — вклю­чение тек­сто­вого режима SMS с сох­ранени­ем зна­чения;


  • AT+CMGL="REC UNREAD",1 — зап­рос на чте­ние неп­рочитан­ных SMS;


  • AT+CMGR="index",1 — получе­ние тек­ста SMS по индексу (index);


  • AT+CMGR="index" — отме­тить по индексу SMS как про­читан­ное.


info


Datasheet по SIM800L



Итак, прис­тупим к соз­данию кода. Логичес­ки его мож­но раз­делить на две час­ти. Пер­вая — обра­бот­ка дан­ных, получа­емых от модуля SIM800L, и «выужи­вание» полез­ной наг­рузки из SMS. Вто­рая — эму­ляция модулем Arduino нажатий кла­виш, отправ­ляемых через USB-порт компь­юте­ру. Осно­ву вто­рой час­ти сос­тавил код, написан­ный Spacehuhn и перера­ботан­ный мной.



Перейти обратно к новости