Социальная инженерия встречается с ботом (часть 3) — все раскрыто
Все раскрыто
Я остановился во второй части статьи как раз на том месте, где мы преобразовали «ASM» в то, чем он является на самом деле, то есть в сценарий PERL. Этот скрипт, как мы видели, фактически создал сокет на локальном компьютере, который, в свою очередь, подключился к IRC-серверу. Конечная цель этого? По всей вероятности, для создания армии ботов, которые, вероятно, будут использоваться в DDoS-атаке на какой-либо сайт или онлайн-пользователя.
При выполнении такого анализа всегда убедитесь, что вы регистрируете сами пакеты. С этой целью я бы рекомендовал использовать Windump для Win32 или tcpdump для Linux. Если вы используете эти программы, не забудьте также загрузить и установить соответствующую библиотеку winpcap или libpcap. Ссылки на эти библиотеки вы найдете на страницах обеих вышеупомянутых программ перехвата пакетов. Это очень важно, так как позже вы захотите просмотреть, что именно произошло на уровне пакетов.
Наконец, я бы посоветовал вам всегда регистрировать свои пакеты в двоичном формате, а не в формате ascii. Почему? Просто потому, что вход в двоичный файл дает вам больше возможностей. Snort IDS с открытым исходным кодом будет обрабатывать двоичный ввод, но не ASCII. То же самое можно сказать и о windump и tcpdump, которые также будут обрабатывать двоичные журналы. Однако, как уже упоминалось, они не будут обрабатывать плоские журналы ascii. Суть в том, что вы всегда можете вывести ascii-файл из бинарного. Однако вы не можете создать двоичный журнал из файла ascii.
Все это, как насчет того, чтобы мы начали смотреть на трассировку пакета, которая была сгенерирована, когда я выполнил код эксплойта. Я прокомментирую пакеты, которые мы видим ниже, прямо под самими пакетами. Первый увиденный пакет действительно является самым первым пакетом, сгенерированным троянским скриптом PERL.
linux:/home/Don/Documents # tcpdump -nXvSs 0 ip и хост 192.168.1.102
tcpdump: прослушивание на eth0, тип ссылки EN10MB (Ethernet), размер захвата 65535 байт
Выше показаны параметры командной строки, которые я дал tcpdump для сбора этого трафика.
10:46:36.797201 IP (tos 0x10, ttl 64, id 50697, смещение 0, флаги [DF], длина: 55) 192.168.1.102.1037 > 24.153.22.67.53: [udp sum ok] 42190+ A? ir3ip.net. (27)
0x0000 4510 0037 c609 4000 4011 83b2 c0a8 0166 [электронная почта защищена]@……f
0x0010 1899 1643 040d 0035 0023 18bd a4ce 0100 …C…5.#……
0x0020 0001 0000 0000 0000 0569 7233 6970 036e ………ir3ip.n
0x0030 6574 0000 0100 01 и др…..
Мой лабораторный блок отправляет запрос на DNS-сервер моего интернет-провайдера для разрешения адреса
10:46:41.797473 IP (tos 0x10, ttl 64, id 55698, смещение 0, флаги [DF], длина: 55) 192.168.1.102.1038 > 24.153.23.66.53: [udp sum ok] 42190+ A? ir3ip.net. (27)
0x0000 4510 0037 d992 4000 4011 6f2a c0a8 0166 [электронная почта защищена]@.o*…f
0x0010 1899 1742 040e 0035 0023 17bd a4ce 0100 …B…5.#……
0x0020 0001 0000 0000 0000 0569 7233 6970 036e ………ir3ip.n
0x0030 6574 0000 0100 01 и др…..
Мой лабораторный блок снова обращается к другому DNS-серверу моего интернет-провайдера, чтобы разрешить адрес. Был отправлен еще один точно такой же пакет, но я вырезал его из соображений краткости.
10:46:54.087925 IP (tos 0x0, ttl 248, id 19941, смещение 0, флаги [DF], длина: 149) 24.153.23.66.53 > 192.168.1.102.1038: [udp sum ok] 42190 1/2/ 2 ir3ip.net. А 212.210.194.124 (121)
0x0000 4500 0095 4de5 4000 f811 4289 1899 1742 E…[электронная почта защищена]…B….B
0x0010 c0a8 0166 0035 040e 0081 85e8 a4ce 8180 …f.5……….
0x0020 0001 0001 0002 0002 0569 7233 6970 036e ………ir3ip.n
0x0030 6574 0000 0100 01c0 0c00 0100 0100 0002 et…………..
0x0040 5800 04d4 d2c2 7cc0 0c00 0200 0100 0002 X…..|………
0x0050 5800 1003 6e73 3207 7068 6f65 6e69 7802 X…ns2.phoenix.
0x0060 6974 00c0 0c00 0200 0100 0002 5800 0603 это……….X…
0x0070 6e73 31c0 3bc0 5300 0100 0100 0009 6400 ns1.;.S…….d.
0x0080 043e a921 0ac0 3700 0100 0100 0009 6300.>.!..7…….c.
0x0090 043e a920 0a.>…
DNS моего провайдера отвечает ответом на запрос, который ему отправил ноутбук.
10:46:54.088752 IP (tos 0x0, ttl 64, id 2073, смещение 0, флаги [DF], длина: 60) 192.168.1.102.1063 > 212.210.194.124.6667: S [сумма TCP] 1976828302:1976828302( 0) win 5840 <mss 1460,sackOK,timestamp 5245335 0,nop,wscale 0>
0x0000 4500 003c 0819 4000 4006 d945 c0a8 0166 E..<[email protected]@..E…f
0x0010 d4d2 c27c 0427 1a0b 75d4 018e 0000 0000 …|.'..u…….
0x0020 a002 16d0 385e 0000 0204 05b4 0402 080a ….8^……….
0x0030 0050 0997 0000 0000 0103 0300.P……….
Теперь, когда имя преобразовано в IP-адрес, мой лабораторный блок приступает к настройке соединения. Приведенный выше пакет является первым шагом в трехстороннем рукопожатии TCP/IP и также известен как пакет синхронизации. Это используется для синхронизации порядковых номеров. Вы можете видеть в этом пакете, что мой лабораторный ноутбук действительно инициирует связь с удаленным сервером IRC после того, как на нем был выполнен троянский код.
10:46:57.088090 IP (tos 0x0, ttl 64, id 2074, смещение 0, флаги [DF], длина: 60) 192.168.1.102.1063 > 212.210.194.124.6667: S [сумма TCP] 1976828302:1976828302( 0) win 5840 <mss 1460,sackOK,timestamp 5248335 0,nop,wscale 0>
0x0000 4500 003c 081a 4000 4006 d944 c0a8 0166 E..<[email protected]@..D…f
0x0010 d4d2 c27c 0427 1a0b 75d4 018e 0000 0000 …|.'..u…….
0x0020 a002 16d0 2ca6 0000 0204 05b4 0402 080a ….,………..
0x0030 0050 154f 0000 0000 0103 0300.PO……..
Выше мы видим, что мой лабораторный ноутбук отправляет еще один синхропакет на IRC-сервер. Это странно или нет? На самом деле совсем не странно. Что здесь происходит, так это то, что IRC-сервер не ответил в течение трех секунд, поэтому мой ноутбук отправил еще один пакет синхронизации. Для тех из вас, кто этого не понимает, это называется повторной попыткой. Легальный пакет, поскольку он следует соглашениям TCP/IP.
10:46:57.761177 IP (tos 0x0, ttl 42, идентификатор 0, смещение 0, флаги [DF], длина: 60) 212.210.194.124.6667 > 192.168.1.102.1063: S [сумма TCP] 3389802460:3389802460( 0) ack 1976828303 win 5792 <mss 1460,nop,nop,timestamp 67593225 5245335,nop,wscale 0>
0x0000 4500 003c 0000 4000 2a06 f75e d4d2 c27c E..<[email protected]*..^…|
0x0010 c0a8 0166 1a0b 0427 ca0c 47dc 75d4 018f …f…'..Gu…
0x0020 a012 16a0 c184 0000 0204 05b4 0101 080a …………….
0x0030 0407 6409 0050 0997 0103 0300..d..P……
Ах ха! Наконец, IRC-сервер просыпается и отвечает моему лабораторному ноутбуку следующим шагом рукопожатия TCP/IP, т. е. синхронизацией/подтверждением.
10:46:57.761259 IP (tos 0x0, ttl 64, id 2075, смещение 0, флаги [DF], длина: 52) 192.168.1.102.1063 > 212.210.194.124.6667:. [tcp sum ok] ack 3389802461 win 5840 <nop,nop,timestamp 5249008 67593225>
0x0000 4500 0034 081b 4000 4006 d94b c0a8 0166 [электронная почта защищена]@..K…f
0x0010 d4d2 c27c 0427 1a0b 75d4 018f ca0c 47dd …|.'..u…..G.
0x0020 8010 16d0 debf 0000 0101 080a 0050 17f0 ………….P..
0x0030 0407 6409..d.
Затем мой ноутбук завершает рукопожатие, отправляя IRC-серверу пакет подтверждения, показанный выше. Теперь два компьютера готовы к обмену данными.
10:46:57.761562 IP (tos 0x0, ttl 64, id 2076, смещение 0, флаги [DF], длина: 76) 192.168.1.102.1063 > 212.210.194.124.6667: P [tcp sum ok] 1976828303:1976828327( 24) ack 3389802461 win 5840 <nop,nop,timestamp 5249008 67593225>
0x0000 4500 004c 081c 4000 4006 d932 c0a8 0166 [электронная почта защищена]@..2…f
0x0010 d4d2 c27c 0427 1a0b 75d4 018f ca0c 47dd …|.'..u…..G.
0x0020 8018 16d0 74ca 0000 0101 080a 0050 17f0 ….t……..P..
0x0030 0407 6409 5553 4552 206b 202b 6920 6b20..d.USER.k.+ik
0x0040 3a6b 7631 0a4e 4943 4b20 6b0a:kv1.NICK.k.
Потратив немного времени, мой теперь уже зараженный троянами ноутбук подключается к IRC-серверу с ником K. Мы видим, что это содержимое ascii справа от пакета. Для краткости я вырезал оставшиеся пакеты, которыми обменивались во время входа на IRC-сервер. Все, что отсутствует, — это оставшаяся часть обычного ведения журнала при входе на сервер IRC.
10:48:31.900760 IP (tos 0x0, ttl 64, id 2081, смещение 0, флаги [DF], длина: 77) 192.168.1.102.1063 > 212.210.194.124.6667: P [tcp sum ok] 1976828327:1976828352( 25) ack 3389804070 win 8688 <nop,nop,timestamp 5343162 67602681>
0x0000 4500 004d 0821 4000 4006 d92c c0a8 0166 [электронная почта защищена]@..,…f
0x0010 d4d2 c27c 0427 1a0b 75d4 01a7 ca0c 4e26 …|.'..u…..N&
0x0020 8018 21f0 8abc 0000 0101 080a 0051 87ba..!……….Q..
0x0030 0407 88f9 4a4f 494e 2023 3078 0a50 5249 ….JOIN.#0x.PRI
0x0040 564d 5347 2023 3078 203a 4869 0a VMSG.#0x.:Привет.
Теперь мы рассмотрим, где мой троянский ноутбук фактически присоединяется к определенной комнате чата на IRC-сервере. Затем мой ноутбук отправляет слова «Привет», о чем свидетельствует «PRIVMSG». Это будет чат, созданный человеком, написавшим этот троян, чтобы посмотреть, как продвигается его/ее армия ботов.
10:48:32.043346 IP (tos 0x0, ttl 42, id 9116, смещение 0, флаги [DF], длина: 163) 212.210.194.124.6667 > 192.168.1.102.1063: P [tcp sum ok] 3389804070:33818041(381980411) 111) ack 1976828327 win 5792 <nop,nop,timestamp 67602700 5343111>
0x0000 4500 00a3 239c 4000 2a06 d35b d4d2 c27c E…#[email protected]*..[…|
0x0010 c0a8 0166 1a0b 0427 ca0c 4e26 75d4 01a7 …f…'..N&u…
0x0020 8018 16a0 45d8 0000 0101 080a 0407 890c ….E………..
0x0030 0051 8787 7365 7276 2068 656c 700d 0a3a.Q..serv.help..:
0x0040 6972 3369 702e 616d 7072 2e6f 7267 2033 ir3ip.ampr.org.3
0x0050 3732 206b 203a 2d20 0d0a 3a69 7233 6970 72.k.:-…:ir3ip
0x0060 2e61 6d70 722e 6f72 6720 3337 3220 6b20.ampr.org.372.k.
0x0070 3a2d 200d 0a3a 6972 3369 702e 616d 7072:-…:ir3ip.ampr
0x0080 2e6f 7267 2033 3736 206b 203a 456e 6420.org.376.k.:Конец.
0x0090 6f66 202f 4d4f 5444 2063 6f6d 6d61 6e64 оф./MOTD.команда
0x00a0 2e0d 0a …
Это просто сообщение от IRC-сервера. Следующие два пакета я вырезал, так как в них не было важной информации.
10:48:32.279645 IP (tos 0x0, ttl 42, id 9118, смещение 0, флаги [DF], длина: 230) 212.210.194.124.6667 > 192.168.1.102.1063: P [tcp sum ok] 3389804181:338980435(338980435) 178) ack 1976828352 win 5792 <nop,nop,timestamp 67602723 5343344>
0x0000 4500 00e6 239e 4000 2a06 d316 d4d2 c27c E…#[электронная почта защищена]*……|
0x0010 c0a8 0166 1a0b 0427 ca0c 4e95 75d4 01c0 …f…'..Nu…
0x0020 8018 16a0 639f 0000 0101 080a 0407 8923 ….c……….#!! Эти строки были вырезаны из соображений конфиденциальности !!
0x0070 6d20 4a4f 494e 203a 2330 780d 0a3a 6972 m.JOIN.:#0x..:ir
0x0080 3369 702e 616d 7072 2e6f 7267 2033 3533 3ip.ampr.org.353
0x0090 206b 2040 2023 3078 203a 6b20 404b 2d4c [электронная почта защищена]#0x.:[электронная почта защищена]
0x00a0 4f52 5420 404b 696e 6120 4057 6172 4368 [электронная почта защищена]@WarCh
0x00b0 696c 6420 0d0a 3a69 7233 6970 2e61 6d70 ild…:ir3ip.amp
0x00c0 722e 6f72 6720 3336 3620 6b20 2330 7820 r.org.366.k.#0x.
0x00d0 3a45 6e64 206f 6620 2f4e 414d 4553 206c:End.of./NAMES.l
0x00e0 6973 742e 0d0a ист…
Именно здесь, в этом пакете, мой ноутбук раскрывается каналу, поэтому я вырезал оскорбительные строки. Это было сделано из соображений конфиденциальности. Также в пакете выше мы видим, что это модераторы чата, например: @K-LORT @Kina и @WarChild. Это могут быть люди, которые пытаются собрать армию ботов. Я подчеркиваю, возможно часть. Вслед за этим я вырезал еще около полудюжины пакетов, так как в них нет ничего интересного.
115) 192.168.1.102.1063 > 212.210.194.124.6667: P [tcp sum ok] 1976828352:1976828415(63) ack 3389804429 win 11584 <nop,nop,timestamp 5353340 627603700
0x0000 4500 0073 0825 4000 4006 d902 c0a8 0166 E..s.%@[email protected]……f
0x0010 d4d2 c27c 0427 1a0b 75d4 01c0 ca0c 4f8d …|.'..u…..O.
0x0020 8018 2d40 4705 0000 0101 080a 0051 af7c [электронная почта защищена] ……..Ql
0x0030 0407 8cf6 5052 4956 4d53 4720 2330 7820 ….PRIVMSG.#0x.
0x0040 3a75 6964 3d30 2872 6f6f 7429 2067 6964:uid=0(root).gid
0x0050 3d30 2872 6f6f 7429 2067 726f 7570 733d = 0 (корень). группы =
0x0060 3028 726f 6f74 292c 3634 2870 6b63 7331 0 (корень), 64 (pkcs1
0x0070 3129 0a 1).
По-видимому, в этом пакете мой ноутбук сообщает в чат, что у него есть root-доступ на ноутбуке. Это видно по uid=0 и gid=0
Именно в этот момент я вырезал оставшуюся часть журнала трафика, который я пронюхал. Я сделал это в основном для любых возможных юридических вопросов. Хотя я не юрист, я практикую CYA в определенных областях. Причина, по которой это вырезано, заключается в том, что в этот момент явные модераторы этой группы начинают болтать о взломанных ящиках. Наконец, есть и другие ящики, на которые я не хочу нарушать конфиденциальность. Итак, выяснив, что происходит именно в этот момент, я сам отключаю эту затею и просто отключаю разъем CAT 5.
Подводя итог, я надеюсь, что вы извлекли здесь несколько ценных уроков. Можно поиграть с кодом эксплойта, так как это законное упражнение в компьютерной безопасности. Принимая во внимание то, что я только что записал, было бы разумно сделать это в безопасной лабораторной среде. Когда что-то кажется слишком хорошим, чтобы быть правдой, вероятно, это потому, что так оно и есть. Авторы троянца воспользовались желанием людей получить код эксплойта нулевого дня. Все говорили, что это полуэффективная уловка, но она только одурачит начинающего пользователя компьютера. Я искренне надеюсь, что этот цикл статей был вам полезен. Если у вас есть какие-либо вопросы, пожалуйста, не стесняйтесь обращаться ко мне.