Соединение только через VPN [Linux]

Дропаем прямые соединения если VPN упал (соединение только через VPN):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# запрещаем все входящие и исходящие
iptables -P INPUT DROP
iptables -P OUTPUT DROP

# разрешаем уже установленные соединения и локалхост
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# разрешаем соединения до VPN (VPN_IP заменить на ip вашего VPN сервера)
iptables -A OUTPUT -d VPN_IP -j ACCEPT

# разрешаем любые соединения через VPN
iptables -A OUTPUT -i tun+ -j ACCEPT

Аnonabox — хардварный TOR-роутер [Scam]

Ananobox портативное сетевое устройство, которое позволяет подключатся к сети анонимно. Обычно, когда мы серфим и-нет, то оставляем много информации о себе и компьютере, такие как:
— IP компа;
— MAC адрес;
— открытые порты;
— список запущенных программ;
— операционная система;
— используемый браузер и его версию;
— физическое местоположение и т.п.

Ananobox все эти данные скрывает через сети TOR. Так же позволяет получить доступ к заблокированным ресурсом (PoCкомнадзор, привет).

Сайт проекта http://anonabox.com/

Continue reading «Аnonabox — хардварный TOR-роутер [Scam]»

Cryptocat [Android version]

Cryptocat for android
Cryptocat for android

11 декабря свет увидели сорцы Cryptocat под Android. Пока еще нет какого-то официального билда, но можно собрать и самому.
Что я и сделал на этих выходных. Работает пока конечно сыро, нет фингерпринта для приватных бесед. Бывает вылетает при выходе из приложения.
Кому интересно потестить — приложу готовый .APK.  Нужен android версии не ниже 4й.

Cryptocat.apk

UPD 15.12.2013: Пофиксили мелкие баги, добавили фингерпринты.

Cryptocat.apk

UPD2 06.01.2014 

Cryptocat

База WPS pin-кодов

Ниже представлена база WPS pin-кодов, в зависимости от MAC-адреса точки доступа. Это всего лишь возможные значения, которые находились эмпирическим путем и были выдернуты мной из программы WPScrackGUI v1.1.8

 

Кто не знает, эти pin-коды нужно использовать с программой reaver [http://code.google.com/p/reaver-wps/], читаем по ссылке как ее готовят и с чем едят.

UPD1 19.11.2013:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
00:14:D1 26848185 1234XXXX
00:18:E7 15537782
00:19:15 12345670 63396638
00:19:70 4286XXXX 6496XXXX
00:21:29 64637129 22310298 64103747 95891705
00:24:17 31011193
00:26:44 7820XXXX 78202962 49780871
00:38:72 1562XXXX 18836486
00:48:7A 15471628
00:0C:F1 30447028
00:1A:2B 15624697 8847XXXX
00:1D:19
00:1D:7E 66026402
00:1D:73 88420707
00:4F:62 21207136
7C:4F:B5 75332662 72688656
A0:21:87 92442559
A0:21:B7 63825XXX 0634XXXX 01318104 6557XXXX 0669XXXX 5400XXXX 1441XXXX
5C:33:8E 82848439 11765592 43154XXX 1111XXXX 9901XXXX
84:A8:E4 7996XX00
30:46:9A 9754XXXX 95221XXX 3444XXXX 344449XX 1504XXXX 19482417 95221021 2170XXXX
30:39:F2 1670XXXX 16538061 4329XXXX 1340XXXX 1835XXXX 8820XXXX
50:67:F0 20064525 26599625 146076XX 1452XXXX 18674095 91726681 44947477 05884889 8253600 52594809 51660567 95048147 19634173 72344071 03419724 11288879 67971862 23380622 42768777 04898702 09165847
F4:3E:61
58:6D:8F 47158382 69382161
94:44:52 93645348 2444XXXX 5319XXXX 26023809
08:86:3B 21250491
40:4A:03 11866428 79205177
64:68:0C 7996XXXX
88:25:2C 7654XXXX 03526859 7442XXXX 74425648 3565XXXX 0452XXXX
04:C0:6F 0751XXXX
20:4E:7F 45197079
20:2B:C1 1957XXXX
F8:D1:11 4867XXXX
F4:C7:14
C4:3D:C7 5141XXXX 51419981 6810XXXX
B0:48:7A 0055XXXX 54335677 8667XXXX
1C:7E:E5 6041XXXX 22609298 60418579
38:60:77
CC:96:77
C0:C1:C0 78985933 7898XXXX
C0:AC:54
C0:3F:0E 8345XXXX 2585XXXX 2503XXXX
34:08:04 36022656 93395274
74:44:01 3555XXXX 00446747 2761XXXX 27615126 4522XXXX 4545XXXX
BC:76:70 6326XXXX 6343XXXX 63431919 6431XXXX
00:1D:CE 85560130
58:98:35 53890894
DC:0B:1A 1653XXXX 18355604 88202907 13409708 43297917 21158766
38:72:C0 12345678 2017XXXX
72:C0:6F 3863XXXX
6A:C7:14 3205XXXX 3227XXXX 3365XXXX 3495XXXX CO:3F:0E 8321XXXX 25032918
72:A8:E4 3357XXXX
62:C0:6F 3663XXXX 3442XXXX 3304XXXX
00:0B:3B 3814XXXX
00:24:01 97744757
E0:CB:4E 62987523
00:26:CE
00:11:6B 3042XXXX
5C:35:3B 64874487 6487XXXX 9575XXXX
00:26:24 95374611
68:C0:6F 41719565
00:26:5A 76971464
1A:0B:40 17068161
6A:C0:6F 3722XXXX 3539XXXX
6A:A8:E4 3416XXXX 5198XXXX
54:E6:FC 5325XXXX 53256XXX 9999XXXX
E0:69:95
00:22:F7 2456XXXX
CC:96:A0 5051XXXX 5090XXXX 1623XXXX
00:18:02 16546615
2C:B0:5D 5482XXXX 5535XXXX
08:10:74 20956455
00:22:3F 48247818
C8:3A:35 11195207
00:1F:1F 85521162 85521261 85544482
D8:5D:4C 7452XXXX
D0:AE:EC 2417XXXX 0934XXXX 5089XXXX
80:B6:86 4049XXXX 3632XXXX
90:F6:52 15094148 61296879 26412948
22:4E:7F 1558XXXX
94:0C:6D 3795XXXX
74:EA:3A 8388XXXX
1C:AF:F7 0630XXXX DC:OB:1A
00:A0:26 8224XXXX
00:1F:A4
C8:60:00 46264848
F8:3D:FF 25905892
A0:0B:BA 00000000
72:3D:FF 50540686
50:7E:5D 8840XXXX 8846XXXX
E4:7C:F9
00:12:FB
72:C7:14 33614XXX
C0:EF:0E 11034XXX 29159XXX
59:98:35 34739XXX
00:0A:52
5C:33:E8
94:FE:F4 43944552
53:33:8E 9924XXXX
62:55:9C 0111XXXX
6A:55:9C 9957XXXX
00:1D:1A 2053XXXX
38:72:0C
1C:C6:3C 1860XXXX
72:E8:7B 1478XXXX
74:31:70 7776XXXX
10:C6:1F 22643223
98:FC:11 55132909 93532655
00:23:08
14:D6:4D 20700737 64535203
54:6E:FC 02917092
C8:D5:FE
00:22:6B 59900887
AC:E8:7B 77502896
00:4F:67 13648947
19:15:C1
E0:91:15 42764199
00:05:59 2519XXXX
08:76:FF 79412988
00:11:22 6541XXXX
14:D6:D4 31008167
14:E6:E4 8118XXXX
00:1D:D1 37272937
00:B0:0C 1924XXXX
E8:40:F2 4676XXXX
8C:CA:32 71259987
00:30:4F 8764XXXX
00:26:5B 28390046
00:1D:CD 9839XXXX
F4:6D:21 8XXXXXXX
5C:4C:A9 1234567X
1C:BD:B9 55349758 70313376
4C:17:EB
00:19:18
00:25:9C 78091597
4C:60:DE 42473534 22958143 53550866
6A:1D:67 04161608
00:1D:D2 49143836 58542132 14550126
B4:74:9F 23659391
E0:91:F5 49945386
62:C7:14 32184129
84:1B:5E 78100053 1354XXXX
00:23:69 51348014
80:1F:02
00:24:A5 44960452
00:23:CD 54080812
50:46:5D 21101021 46540010
B8:A3:86 19217581
B8:9B:C9 41613849
54:04:A6 31028325 3211XXXX

Ubuntu 11.04 чиним меню «Переход»

После обновления на новую версию с Unity и последующим переключением на среду Gnome, перестали открываться директории которые находились в меню «Переход». Лечиться следующим образом:

1
gedit ~/.local/share/applications/mimeapps.list

Далее ищем строки:

1
2
x-scheme-handler/file
x-scheme-handler/trash

И приводим их к следующему виду:

1
2
x-scheme-handler/file=nautilus.desktop
x-scheme-handler/trash=nautilus.desktop

Сохраняем файл. Все.

Creepy — парсер геолокаций в соц.сетях

Creepy — это релевантный парсер геолокаций в соц.сетях, сейчас доступны twitter и flickr, координаты берутся как из самих статусов сообщений так и из EXIF информации в фотографиях. Сайт разработчика — http://ilektrojohn.github.com/creepy/

Установка в Ubuntu:

1
2
3
sudo add-apt-repository ppa:jkakavas/creepy
sudo apt-get update
sudo apt-get install creepy

Программа написана на Python. Может понадобиться дополнительная установка модулей.
Проверил ее на профиле Олега Тинькова (@olegtinkov в твиттере). Получил в итоге следующую картину его передвижений по планете Земля ) (масштаб увеличил чтоб захватить все точки). Карты которые можно использовать это гугл, опенстрит и другие. Continue reading «Creepy — парсер геолокаций в соц.сетях»

Ubuntu: Убираем розовую пелену на Youtube

розовый youtube fixed
розовый youtube fixed

Пару дней назад, при просмотре роликов непосредственно на Youtube, появилась розовая пелена через которую, мягко говоря, ничего не видно. Как временное решение (пока не пофиксит «труба», что маловероятно, либо adobe) можно попросту заблокировать прием кукисов.
На скрине показано как это сделать. (Заходим в «Настройки», далее все понятно).

Чистим javascript файлы от вирусов (заметка)

В основном заражают javascript файлы, как правило код пропущен через обфускатор (base64, japan utf-8 etc).
Очень легко в таких заражениях найти уникальную сигнатуру, и почистить все одним махом.
И так:

1
grep -rl 'hVu6r#r#iFy#eVtV' ./ | xargs sed -i '/hVu6r#r#iFy#eVtV/d'

hVu6r#r#iFy#eVtV — это и есть наша уникальная сигнатура.

Linux keylogger — консольный кейлогер (заметка)

Logkeys — очень простой и в тоже время удобный кейлогер(клавиатурный шпион) для линукс машин.
Доступен в репозиториях многих дистрибутивов linux, так же доступен и в сорсах. Адрес проекта на google-code -> http://code.google.com/p/logkeys/.
Установка на ubuntu|debian:

1
sudo apt-get install logkeys

Примеры запуска:

1
logkeys -s -o log_keys.txt

-s — запускаем кэйлогер
-o пишем в файл
-k — убить процесс
Чтоб в файл не попадали функциональные клавиши, а только буквы нужно запустить с параметром —no-func-keys

1
logkeys -s --no-func-keys -o log_key.txt

TOR на Ubuntu (заметка)

https://addons.mozilla.org/firefox/2275/ — Torbutton Fx

1
2
3
4
5
6
7
8
#!/bin/sh
echo "deb http://deb.torproject.org/torproject.org maverick main" >> /etc/apt/sources.list
gpg --keyserver keys.gnupg.net --recv 886DDD89
gpg --export A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89 | sudo apt-key add -
sudo apt-get update && sudo apt-get install privoxy tor tor-geoipdb
echo "forward-socks4a / 127.0.0.1:9050 ." >> /etc/privoxy/config
/etc/init.d/tor start
/etc/init.d/privoxy start

Firesheep: Firefox addon

firesheep
firesheep

Firesheep дополнение к Firefox, которое перехватывает сессии(cookies) пользователей в открытых Wi-Fi сетях, если используется подключение по HTTP без использования SSL соединения.
В дополнения включен перехват сессий из популярных социальных сетей и сервисов, таких как: Vkontakte, Flickr, FaceBook, Twitter, Amazon, Dropbox и т.д.
В архиве выкладываю исходный код версии для Linux-x86. Для пользователей Windows и MacOS уже есть рабочий вариант дополнения здесь (пользователи windows сразу должны установить WinPcap).
Для компиляции необходимо наличие установленных библиотек xulrunner.

1
sudo apt-get install xulrunner-dev

.
Компиляция:

1
2
//ваша версия xulrunner может отличаться, следует поправить под свою версию путь
./autogen.sh --with-xulrunner-sdk=/usr/lib/xulrunner-devel-1.9.2.12 && CPATH=/usr/include/nspr make

После сборки проекта, аддон для Firefox будет находиться в директории build под названием firesheep.xpi, для его установки достаточно «закинуть» файл в окно Firefox, потом перезапустить последний.
Перед первым запуском firesheep, следует дать определенные права файлу.

1
2
cd ~/.mozilla/firefox/YOUR_PROFILE_ID.default/extensions/firesheep@codebutler.com/platform/Linux_x86-gcc3/
sudo ./firesheep-backend --fix-permissions

На этом приложения готово к использованию. В настройках следует выбрать интерфейс который будем «слушать».

Firesheep Linux-x86 (source code) Скачать
Firesheep готовый аддон для Linux-x86 Скачать

Linux: Opera Passwords Recovery

Пароли в Opara лежат в файле wand.dat, который расположен в директории ~/.opera/. Немного полазив по сайтам сделал собирательный пример выуживания паролей. В основе пример из этой статьи, 2005 года еще, http://www.reteam.org/blog/archives/00000012.htm. Причина написания поста, в том, что софт который есть в сети, почему-то, стоит денег, многие некорректно декриптуют содержимое, и так, ближе к теме:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
// sna@reteam.org  - 6th of April 2005
// unwand.cpp //
#include <iostream>
#include <string.h>

#include <openssl/md5.h>
#include <openssl/des.h>


const unsigned char opera_salt[11] =
{
    0x83, 0x7D, 0xFC, 0x0F, 0x8E, 0xB3, 0xE8, 0x69, 0x73, 0xAF, 0xFF
};

int main(int argc, char **argv)
{
    if(argc != 2)
    {
        std::cout << "Usage: unwand <opera wand file>" << std::endl;
        return 1;
    }

    FILE *fdWand = fopen(argv[1], "rb");

    if(NULL == fdWand)
    {
        perror("Failed to open file");
        return 1;
    }

    fseek(fdWand, 0, SEEK_END);
    unsigned long fileSize = ftell(fdWand);

    unsigned char *wandData = (unsigned char *)malloc(fileSize);

    if(NULL == wandData)
    {
        fclose(fdWand);
        perror("Memory allocation failed");
        return 1;
    }

    rewind(fdWand);
    fread(wandData, fileSize, 1, fdWand);
    fclose(fdWand);

    unsigned long wandOffset = 0;

    //
    // main loop, find and process encrypted blocks
    //

    while(wandOffset < fileSize)
    {
        // find key length field at start of block
        unsigned char *wandKey = (unsigned char *)
            memchr(wandData + wandOffset, DES_KEY_SZ, fileSize - wandOffset);

        if(NULL == wandKey)
        {
            break;
        }

        wandOffset = ++wandKey - wandData;
        // create pointers to length fields
        unsigned char *blockLengthPtr = wandKey - 8;
        unsigned char *dataLengthPtr = wandKey + DES_KEY_SZ;

        if(blockLengthPtr < wandData || dataLengthPtr > wandData + fileSize)
        {
            continue;
        }

        // convert big-endian numbers to native
        unsigned long
            blockLength  = *blockLengthPtr++ << 24;
            blockLength |= *blockLengthPtr++ << 16;
            blockLength |= *blockLengthPtr++ <<  8;
            blockLength |= *blockLengthPtr;

        unsigned long
            dataLength  = *dataLengthPtr++ << 24;
            dataLength |= *dataLengthPtr++ << 16;
            dataLength |= *dataLengthPtr++ <<  8;
            dataLength |= *dataLengthPtr;

        // as discussed in the article
        if(blockLength != dataLength + DES_KEY_SZ + 4 + 4)
        {
            continue;
        }

        // perform basic sanity checks on data length
        if(dataLength > fileSize - (wandOffset + DES_KEY_SZ + 4)
            || dataLength < 8 || dataLength % 8 != 0)
        {
            continue;
        }

        unsigned char
            hashSignature1[MD5_DIGEST_LENGTH],
            hashSignature2[MD5_DIGEST_LENGTH],
            tmpBuffer[512];

        //
        // hashing of (salt, key), (hash, salt, key)
        //

        memcpy(tmpBuffer, opera_salt, sizeof(opera_salt));
        memcpy(tmpBuffer + sizeof(opera_salt), wandKey, DES_KEY_SZ);

        MD5(tmpBuffer, sizeof(opera_salt) + DES_KEY_SZ, hashSignature1);

        memcpy(tmpBuffer, hashSignature1, sizeof(hashSignature1));
        memcpy(tmpBuffer + sizeof(hashSignature1),
            opera_salt, sizeof(opera_salt));

        memcpy(tmpBuffer + sizeof(hashSignature1) +
            sizeof(opera_salt), wandKey, DES_KEY_SZ);

        MD5(tmpBuffer, sizeof(hashSignature1) +
            sizeof(opera_salt) + DES_KEY_SZ, hashSignature2);

        //
        // schedule keys. key material from hashes
        //

        DES_key_schedule key_schedule1, key_schedule2, key_schedule3;

        DES_set_key_unchecked((const_DES_cblock *)&hashSignature1[0],
            &key_schedule1);

        DES_set_key_unchecked((const_DES_cblock *)&hashSignature1[8],
            &key_schedule2);

        DES_set_key_unchecked((const_DES_cblock *)&hashSignature2[0],
            &key_schedule3);

        DES_cblock iVector;
        memcpy(iVector, &hashSignature2[8], sizeof(DES_cblock));

        unsigned char *cryptoData = wandKey + DES_KEY_SZ + 4;

        //
        // decrypt wand data in place using 3DES-CBC
        //

        DES_ede3_cbc_encrypt(cryptoData, cryptoData, dataLength,
            &key_schedule1, &key_schedule2, &key_schedule3, &iVector, 0);

        if(0x00 == *cryptoData || 0x08 == *cryptoData)
        {
            std::wcout << L"<null>" << std::endl;
        }
        else
        {
            // remove padding (data padded up to next block)
            unsigned char *padding = cryptoData + dataLength - 1;
            memset(padding - (*padding - 1), 0x00, *padding);
                    //uncomment if Windows platform
            //std::wcout << (wchar_t *)cryptoData << std::endl;
           
            // dump byte-aligned data[dataLength] little endian UTF-16 as UTF-8. (c) Madhu
            for (unsigned int i = 0; i < dataLength; i+=2) {
                int uch = cryptoData[i];
                uch = uch | cryptoData[i+1];
                if (uch == 0) break;
                if (uch > 0x7FF)
                    std::cout << (unsigned char) (((uch >> 12) & 0xF) | 0xE0)
                            << (unsigned char) (((uch >> 6) & 0x3F) | 0x80)
                            << (unsigned char) ((uch & 0x3F) | 0x80);
                else if (uch > 0x7F)
                    std::cout << (unsigned char) (((uch >> 6) & 0x1F) | 0xC0)
                            << (unsigned char) ((uch & 0x3F) | 0x80);
                else std::cout << (unsigned char) uch;             
            }                      
        }
        std::cout << std::endl;;
        wandOffset = wandOffset + DES_KEY_SZ + 4 + dataLength;
    }

    free(wandData);
    return 0;
}

Компиляция:

1
g++ -Wall -o unwand -lssl unwand.cpp

Запуск программы:

1
./unwand ~/.opera/wand.dat