Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Strony: 1





Cenzor wirtualnego świata
W tym wątku został poruszony ciekawy temat dotyczący generowania losowego adresu MAC. W skrócie, generowanie losowego MAC sprowadza się do wpisania w terminalu tego poniższego:
macaddr=$(dd if=/dev/random bs=1024 count=1 2>/dev/null|md5sum|sed 's/^\(..\)\(..\)\(..\)\(..\)\(..\)\(..\).*$/\1:\2:\3:\4:\5:\6/') echo $macaddr
Problem z tym losowym MAC jest taki, że jest on "zbyt losowy". xD I czasem przy przypisywaniu go dostaje się taki komunikat:
# echo $macaddr 07:d4:51:9f:50:6c # ip link set dev wlan0 address $macaddr RTNETLINK answers: Cannot assign requested address
Chodzi generalnie o to, że:
MAC addresses have two special bits in the first byte:
Bit 0 is the "multicast" bit, noting that the address is a multicast or broadcast address
Bit 1 is the "local" bit, indicating that the MAC address was not assigned by the vendor and might not be entirely unique.
You are trying to set an address that has the multicast bit set, which does not work because any reply to your host would be interpreted as a multicast packet.
-- http://superuser.com/questions/725467/set-mac-addre … ested-address

Zatem, jak powinno się tę powyższą linijkę od generowania adresu przepisać, by MAC zawsze był poprawny? xD
Ostatnio edytowany przez morfik (2016-05-02 10:24:24)
Offline





Cenzor wirtualnego świata
Ok mam: xD
#! /bin/sh macaddr=$(dd if=/dev/urandom bs=1024 count=1 2>/dev/null|md5sum|sed 's/^\(..\)\(..\)\(..\)\(..\)\(..\)\(..\).*$/\1:\2:\3:\4:\5:\6/') lastfive=$( echo "$macaddr" | cut -d: -f 2-6 ) firstbyte=$( echo "$macaddr" | cut -d: -f 1 ) # make sure bit 0 (broadcast) of $firstbyte is not set, # and bit 1 (local) is set. # i.e. via bitwise AND with 254 and bitwise OR with 2. firstbyte=$( printf '%02x' $(( 0x$firstbyte & 254 | 2)) ) newmac="$firstbyte:$lastfive" ip link set dev wlan0 address $newmac
Offline







Podobno człowiek...;)








Ale gimnastyka u Cieb xD
perl -e 'for ($i=0;$i<6;$i++){@m[$i]=int(rand(256));} printf "%X:%X:%X:%X:%X:%X\n",@m;'Przy okazji, /dev/urandom nie generuje liczb losowych, tylko ujawnia tajne dane o ruchach myszki na monitorze. :DDD
Ostatnio edytowany przez Jacekalex (2016-04-29 17:46:50)
Offline





Cenzor wirtualnego świata
MAC nie jest żadnym krytycznym punktem, by generować go z /dev/random . Jest o wiele większe prawdopodobieństwo, że dopasują ruch sieciowy do ciebie właśnie po tych losowych adresach, bo sporo z nich nigdy nie miało przypisanego vendorID. Teraz taki ty się loguje 20 razy i co za problem powiązać takie adresy albo skutecznie okroić poszczególnych użytkowników? xD Jest w debianie macchanger, on ma kilka ciekawych ficzerów, min. potrafi generować losowy adres tego samego vendora. Może także generować MAC z tej samej klasy urządzeń, np. masz kartę wifi, to przydzieli ci vendorów, którzy produkują wifi i inne takie ciekawe rzeczy, które w o wiele lepszym stopniu nadają się do wykorzystania przy darmowych sieciach wifi. Także znowu sam losowy MAC czasem może tylko więcej szkody narobić niż pożytku. xD
Poza tym, przetestował ten twój nowy tasiemiec:
for i in `seq 1 10`
do
macaddr=$(perl -e 'for ($i=0;$i<6;$i++){@m[$i]=int(rand(256));} printf "%X:%X:%X:%X:%X:%X\n",@m;')
ip link set dev wlan0 address $macaddr
done
exit 0I co? xD
# /opt/skrypty/genmac RTNETLINK answers: Cannot assign requested address RTNETLINK answers: Cannot assign requested address RTNETLINK answers: Cannot assign requested address RTNETLINK answers: Cannot assign requested address RTNETLINK answers: Cannot assign requested address RTNETLINK answers: Cannot assign requested address
6 adresów z 10 jest nieprawidłowych. Ja wolę poćwiczyć jednak wygibasy xD
Offline







Podobno człowiek...;)








Fakt, ale to nie problem:
cat `which genmac`
#!/bin/bash
for i in `seq 1 10`;
do
macaddr=$(perl -e 'for ($i=0;$i<6;$i++){@m[$i]=int(rand(256));} printf "%X:%X:%X:%X:%X:%X\n",@m;');
ip link set dev lan address $macaddr 2>/dev/null && exit 0;
done;time genmac real 0m0.042s user 0m0.008s sys 0m0.012s
Chyba, że <0.1 sekundy to jakiś straszny problem. XD
SOA#1
Ostatnio edytowany przez Jacekalex (2016-04-29 19:55:14)
Offline





Cenzor wirtualnego świata







Podobno człowiek...;)








Na jedno wychodzi.
Przewaga mojego nad macchanger jest taka, że mac-addres jest całkowicie z dupy wzięty.
Odchodzi ryzyko, że przez pomyłkę ustawisz macchangera na vendora, który wyprodukował w swojej historii tylko jedną kartę wifi. xD
Offline




Imperator





http://www.debian.pl/viewtopic.php?f=28&t=33748
apt-get install macchanger
polecenie które ustawią nam losowy adres MAC dla interfejsu eth0
ifdown eth0
macchanger -r eth0
ifup eth0
Offline



Użytkownik
tak z ciekawości - to generujecie maki losowo, potem czytacie dokumentację...
typowe przypadki studentów uczelni prywatnych...
do cholery, ja bym się nie tyle nie przyznawał co raczej wstydził... ale jak wam pasuje bycie głąbem co trzech literek typu rfc nie rozumie to życzę powodzenia.
Offline





Cenzor wirtualnego świata
@ethanak, no ale z czym masz problem? xD Ja tylko się zainteresowaniem tym tematem generowania losowych MAC, bo się przydaje. A, że na necie było szereg linijek generujących adresy, to ja to postanowiłem zweryfikować sobie. Okazało się, co się okazało, czyli wszystkie są do dupy. To próbowałem wymyślić jakieś rozwiązanie alternatywne. Wyszedł skrypt, potem zastąpiłem go przez macchanger i w sumie tylko dla interfejsów, które są dla publicznych sieci, np. ten wwan0. W sumie mam już coś takiego.
allow-hotplug wwan0
iface wwan0 inet dhcp
dns-nameservers 127.0.0.1
pre-up macchanger -a $IFACE
pre-up sleep 1
pre-up echo -e "AT+CFUN=1\r" > /dev/huawei-E3372-0
pre-up sleep 1
pre-up echo -e "AT^SYSCFGEX=\"03\",3FFFFFFF,1,2,800C5,,\r" > /dev/huawei-E3372-0
pre-up sleep 1
pre-up echo -e "AT^NDISDUP=1,1,\"internet\"\r" > /dev/huawei-E3372-0
pre-down echo -e "AT^NDISDUP=1,0\r" > /dev/huawei-E3372-0
pre-down sleep 1
pre-down echo -e "AT^SYSCFGEX=\"030201\",3FFFFFFF,1,2,800C5,,\r" > /dev/huawei-E3372-0
pre-down sleep 1
post-down echo -e "AT+CFUN=0\r" > /dev/huawei-E3372-0
post-down macchanger -p $IFACETakże, kokodżambo i do przodu, nie ma się znowu co dąsać. xD
A i jeszcze, kluczowe macchanger -a , a nie macchanger -r .
Ostatnio edytowany przez morfik (2016-04-29 20:55:02)
Offline
Strony: 1