While writing some code, I stumbled across a API documentation, that only had curl examples (prefer to have curl examples over no examples at all) but I had some troubles converting it to proper python code and a friend recommended a page called: https://curl.trillworks.com/
There are a whole bunch of articles outlining the talent gap in security related positions. More and more jobs require IT skills and IT systems are more and more integrated in all areas of our life with an dramatic increase of open positions in security and privacy.
People living in areas like SF / silicon valley, New York or Zurich can find easily new jobs within days, but those locations are also very expensive and some companies can not hire there.
There is a good opportunity to fight the talent gap: hiring remote
This post is not to outline the benefits of shortcomings of working / hiring remote but the fact that it is very hard for candidates to find companies welcoming remote security minded people.
On the other side, companies have a hard job, market themselves against the big brands to attract remote people.
That combined is the reason I created yet another list on github, called companies-hiring-security-remote. It is a curated list and open for issues / pull requests to act as a platform for job seeking people and companies to give them a little more visibility.
I really hope that this will help people and I am happy to receive feedback.
Investigation bad people might involve bitcoin, the blockchain technology is very popular among criminals, as it is easy to use and „untraceable“ . E.g. in most ransomware cases like „Ryuk“  the company Crowdstrike has listed several bitcoin wallets, that they attribute to the threat actor.
How can that information help your investigation / your intelligence gathering? IN certain ways, you could track your own wallets for transactions to these wallets. Another aspect, that this blogpost will cover on is the timeline aspect of it.
As bitcoin transactions make use of the blockchain, who is public by design, it is possible to:
tell, how many bitcoins a certain wallet currently holds
see transactions from the past
The second aspect is what I want to focus on, because if we have a look at the transactions, we might be able to identify the point in time a certain group was active and enhance our other DFIR activities enriched with that information. The transaction log is like your journal of your bank account, it tells basically who is transferring money to a wallet and where the bitcoins are transferred to.
In the example above, the bitcoin wallets we are interested in are (Source Crowdstrike Blog post):
Total Value (USD)
Source of transaction information
There is a whole bunch of public webpages who give transaction history for a given wallet, but as it should be an automated step, the goal is to have a page with an API, after some searching I found: https://chain.so/api .
Making the call
Doing the API call to get transaction information is pretty simple:
Which is exactly what we need, with some Python JSON parsing, it is easy to get the info we want – the code I am using is available on https://github.com/deralexxx/osint_to_timesketch
After that we have an CSV with the date, the transaction happened, the raw information from the API and some meta data, enough to bake into a timeline.
The script is already made to output CSV files ready for importing them into Timesketch, as I found it to be the ideal tool to work with data points related to timestamps. Importing the CSV is straight forward and explained in the official documentation page .
The timeline csv looks like the following:
Making it pretty
Importing it into Timesketch, the timeline looks very nice:
Now what is the added value for investigations? The above is another layer of data points /evidence. It can be used to weight limit findings in your organisation, e.g. you assume you are hit by a phishing campaign, if your phishing campaign was seen a lot earlier or a lot later than the transactions above display, it is unlikely you are hit by the same campaign. It can also be used to make a case against individuals if enriched by host forensics – your imagination is the limit.
I hope the article is helpful and the scripts can be used, let me know via comments within the blog, issues on github or twitter messages https://twitter.com/alexanderjaeger if you have any questions, improvements.
As you might know, I love to combine several OpenSource tools to get things done. One thing I wanted to play for some weeks is Autotimeliner by Andrea Fortuna.This tool is made to extract events from an Memory Image to combine it into a timeline. If you have a timeline, what comes next? Of course, putting it into Timesketch. So let’s give it a try.
We start with a memory dump from a Stuxnet infection from https://github.com/ganboing/malwarecookbook. Download the four files, extract them and you are good to go.
Installation is pretty easy, install Volatility either via pre-compiled binary or install it manually, see the Volatility installation wiki for further information.
From the CSV that was generated, use your favourite tool to extract the first column of the csv which should look like that:
Tue Oct 20 2009 12:08:04
Tue Oct 20 2009 12:08:04
Tue Oct 20 2009 12:08:06
Tue Oct 20 2009 12:08:06
Tue Oct 20 2009 12:08:06
Tue Oct 20 2009 12:08:06
Tue Oct 20 2009 12:08:06
Tue Oct 20 2009 12:08:06
Tue Oct 20 2009 21:21:26
Wed Oct 21 2009 00:02:28
Playing with Timesketch for a while and working on some OSINT timelines I was tired to investigate MD5 and domains / ips all manually so I tried to automate some of the work. Why is that important? If you have a list of hashes, domains and IPs, you of course can check your SIEM, EDR solution etc – but what if you have a hit? Would it benefit your investigation to at least have an idea of the timeframe something was used by attackers or seen in the wild?
Most shared indicators are lacking the timeframe, so we need to add those values by external information on our own.
There is no need to further explain Virustotal, it is basically a huge dataset of malware and information about domains and ips.
In particular information about a specific point in time a domain was seen to point to an IP and back is good to know to build your timeline.
E.g. if you have verymalicious.com pointing to 127.0.0.1 all the time, only on one day it was pointing to 22.214.171.124 – hits in your infrastructure should be higher escalated if seen during that day, out of that time window it might still be important, but not as urgent as during that day.
In regards to hash intelligence, Virustotal is nice, because if you add the info, when the last scan date of a file was, you can at least tell, that the file was known after that day.
I asked Virustotal to add more information they already have to the API and we will have wait till it is exposed:
First seen in the wild
First uploaded to VT
PE compile time
Alexandre Dulaunoy and Eireann Leverett have given a talk at the FIRST conference in Berlin back in 2015, which took my attention, but it took some time till I really had time to implement something to use the idea.
The basic idea is that, out of several sources, passive ssl services such as CIRCL passiveSSL collect certificates and expose information via API.
For timeline analysis in particular, the following dates are important as they might shine some light of attacker activity:
first seen in the wild
last seen in the wild
not use before
not use after
If you now add all of the information above, you might be able to get a better idea, when an IP / Domain / File was active.
This information should then be fed into a Timesketch investigation.
Using some sample data from APT33: https://github.com/deralexxx/osint-timelines/blob/master/2018/2018-12-21.OVERRULED:-Containing-a-Potentially-Destructive-Adversary-APT33.csv
Combining with the python script below with the following indicators:
So pycypher does kill the posibility to use Timesketch on a raspberry at the moment:
Getting page https://www.piwheels.org/simple/pycypher/ Looking up "https://www.piwheels.org/simple/pycypher/" in the cache Current age based on date: 30 Freshness lifetime from request max-age: 600 The response is "fresh", returning cached response 600 > 30 Analyzing links from page https://www.piwheels.org/simple/pycypher/ Could not find a version that satisfies the requirement pycypher (from versions: ) Cleaning up... No matching distribution found for pycypher
Das perfekte Weihnachtsgeschenk wäre doch ein digitaler Bilderrahmen der sich aktuelle Fotos immer aus der cloud zieht sodass man ganz einfach neue Bilder mit den Eltern oder Großeltern teilen kann.
Genau dieses Ziel hatte ich, möglichst günstig und anwenderfreundlich sollte es sein. Meine Wahl fiel dabei auf die Fire HD Tablets von Amazon. Diese sind nicht nur schön günstig, sondern von der Ausstattung auch ausreichend.
Nach dem Kauf und der Lieferung muss eine Aktualisierung der Amazon Fire OS durchgeführt werden. Das dauert ein paar Minuten.
Google Play Store
Der nächste Schritt ist das installieren von Google Play Store bzw. einigen notwendigen Abhängigkeiten, ich habe mich dabei an die folgende Anleitung gehalten:
Hat man das gemacht kann man sich die App „Fotoo“ im Google Play Store installieren.
Es ist zu empfehlen, die Premium-Variante als InApp Kauf zu erwerben, es schaltet einige coole Features frei und hat keinen Session Blocker (heißt nach einiger Zeit bekommt ihr einen zwei Minuten delay, in denen kein neues Bild angezeigt wird)
Es ist Empfehlenswert, sich Fotoo in der Premium Variante zu kaufen. Nutzt man den gleichen Google Account auf mehreren Fire Tables, muss man die Premium Variante auch nur einmal kaufen.
Die Einstellungen in Fotoo selbst sind in dem folgenden Artikel schön beschrieben
Einziger Stolperstein dabei, wie man den Developer Mode im FireHD aktiviert:
In Android: Settings –> Device Options –> Tap Serial Number Field 7 times
Jetzt ist der developer mode aktiviert und man kann das Display auf „stay awake“ schalten.
Ab dann hat der Bilderrahmen folgende Eigenschaften
Schaltet sich automatisch bei Anschluss des Ladekabels an
Bilder werden automatisch gewechselt
Bilder werden über die Cloud verwaltet
Stolperstein in Google Photos
Einziger Wermutstropfen, Google Fotos erlaubt es aktuell noch nicht, geteilte Alben über Apps abzurufen, d.h. ihr müsst die Alben in euer lokales Album kopieren, oder eben auf einen Dropbox oder Google Drive Ordner zurück greifen.
Ein vergleichbarer fertiger Bilderrahmen wäre z.B. der NIXPLAY Seed Digitaler Bilderrahmen WLAN 8 Zoll W08D Schwarz, aktueller Preis sieht man im unteren Banner.
Dem gegenüber hier ein paar Amazon Fire HD Angebote, welche auch für andere Zwecke genutzt werden könnten.
Ablauf um Bilder mit der Familie zu teilen
Wir gehen mal von drei Familien aus, bei der Familie A Bilder mit Familien B und C teilen wollen.
Familie A macht Fotos wie es ihnen gefällt, laden die schönen Fotos in Google Photos hoch, arbeiten gemeinsam an einem Album. Irgendwann sagt Familie A, wir wollen diese Fotos jetzt Familie B und C zeigen, also teilen sie das Album mit Google Account 1 und Google Account 2 von Familie B und dem / den Google Accounts von Familie C.
Google Account 1 bekommt jetzt einen Hinweis, dass er neue Fotos freigegeben bekommen hat, er öffnet die Einladung, sieht die Fotos und klickt auf „Add to library“ (siehe Screenshot). Dadurch wird das Bild in eure eigene Library kopiert und Fotoo kann auf diese nun zugreifen.
Danach öffnet Account 1 Person sein Fire HD Tablet, öffnet Fotoo (sofern noch nicht geöffnet), öffnet die Settings und fügt das neue Album zur Fotoo Show hinzu – fertig.
Wenn jetzt neue Bilder zu dem geteilten Album hinzugefügt werden, muss der Empfänger erneut den Button zur lokalen Library hinzufügen durchführen, man kann sich also überlegen, immer das gleiche zu nutzen oder immer neue Alben zu teilen.
Amazon Account entfernen
Wenn man das Fire HD Tablet verschenkt, muss in den bisherigen Schritten ein Amazon Konto hinterlegt sein, um die Apps zu installieren usw. Wenn man bis zu diesem Schritt gekommen ist, kann gefahrlos der Amazon Account von dem Fire HD entfernt werden. Solange der Google Play Store mit Google Installiert bleibt, bleibt auch die Fotoo App bestehen.
Den Amazon Account entfernt man über Einstellungen –> Mein Konto –> Abmelden
Dann kann das Tablet gefahrlos verschenkt werden, ohne, dass das Tablet Einkäufe im eigenen Namen machen könnte.
Amazon Werbung entfernen
Wurde ein Fire HD Tablet mit „Spezialangeboten“ gekauft um etwas Geld zu sparen, kann man getrost einfach das Amazon Konto entfernen, damit entfallen auch die Werbeangebote.
Out of my attempt to reverse engineer the Komand API (a security orchestration tool) I found myself writing some python helper to use the API. Maybe it is useful for some people, so I decided to OpenSource it.
It is hard to understand why a tool, thats main purpose it to connect APIs does not have an API documentation / client itself.
Usage should be pretty simple, clone the repository and good to go:
usage: komand-tools.py [-h] [-v] [-wm] [-j JOB]
-h, --help show this help message and exit
-v, --verbose increase output verbosity
-wm, --workflow_map show workflow map
-j JOB, --job JOB show job status
There is this thing looking back after 100 days of starting a new challenge. This post is doing the share my perspective on my 100 days on the board of directors of FIRST (Forum of Incident Response and Security Teams).
On June 28th, 2018 the annual general meeting of FIRST elected five people to serve on the board of directors for a two year term and I was one of the five individuals.
Still remember the day as it was yesterday, I was very nervous going into the AGM knowing that outstanding people throwing their hat into the ring. In my diary I wrote the great relieve I felt after the results where called out.
Right after the election the first board meeting was called to order from the chair Thomas Schreck and we had to elect the new officers and start think about different tasks to be taken by the new elected people. Been a guest to board meetings before, I thought I am use to the structure and Robert’s rules that are used to run the meeting – but it is a different story calling out „aye“ and „nay“ to reflect your position when a decision is needed. Being new on the board means you will get an adhoc bootcamp of „duties and obligations of the board of directors by the FIRST lawyer and also some organisational topics and infrastructure to get you up to speed, such as a @first.org mail address and access to various only tools, all within hours.
This first physical board meeting was a new experience, so let me share it with you.
I have never been to San Fransisco before, so that alone was mind blowing to be at the center of the digital revolution. Anyway the reason or that trip in September was to bring 8 people (two board members joined virtually) from around the globe together to meet, discuss and work on FIRST and for the community that FIRST is representing.
Let me say those meetings are intense, I am use to attend meetings – in most meetings you either need to concentrate for an hour or two and then the meeting is closed or it is a workshop setup where most of the content is already agreed / prepared in advance. For FIRST board meetings, you have to pay attention for eight hours straight, most coffee breaks are exploited with continuing the conversation and lunch is also about FIRST. As a non native speaker that is even more intense to follow. But we did get things done, we worked on topics that will enable FIRST to further grow and also using the resources we get from members and participants of our events even more targeted.
Even on the travel days, we managed to squeeze in some 1on1 meetings to brainstorm on topics on a detailed level that will sooner or later be proposed to the board of directors and the members.
That trip showed me how much enthusiasm every individual on the board has, they are truly committed which is great to see and also a prerequisite, as everyone has his tasks and duties to keep FIRST running.
Recognition of FIRST
Before joining the board, I truly believed the fact that FIRST is a key player in addressing some of the challenges global population is facing, e.g. fake news, cyber warfare and privacy. After 100 days, I can now say that it is a matter of fact that more and more organisations value FIRST by asking for our opinion, input or expertise by training policy makers and our efforts with our valued partner organisations. We are still on a long journey to prepare for that and be able to answer all that demand on a level that we feel comfortable with.
If you read thus far and think serving on the board is a tough job, you are right, but I haven’t covered one particular aspect which is the central point of every meeting: Nora Duhig.
Every meeting has an agenda (obviously) and needs to have minutes. Imagine 10 adults who are experts in their professional area discussing and arguing on all aspects starting from finance over contracts to nifty details of infrastructure (hosting infrastructure on prem. or in the cloud, which technology to use…). For transparency reasons, every meeting has to have meetings, so someone must keep track of everything, and that is Nora. It is impressive to observe her ability to follow the discussions, writing minutes while keeping the ability to be pulled into the discussion out of the blue at any time – because she has been attending board meetings way longer then most current members combined and it is critical to get the reason a certain decision was taken in the past to make decisions for the future by either stick to that decisions or change the strategy, having that context is gold.
It is hard to imagine how complex an not-for-profit-organisation that „only“ enables a community is. This organisation has 30 years of history, that includes some small things that we as a board need to work on to transform things we have done in the past into a modern way to operate an organisation. FIRST is doing business with entities literally all around the globe because of the membership spreading and the events we host or co-host.
I am in no way saying I am now settled at the board as the planning phase for the FIRST conference 2019 and already 2020 and 2021 (yes not a typo!) are increasingly taking more time on board calls and the other communication channels that we use almost on a daily base. So I am looking forward to the challenges we have to tackle as a group and I am thankful for that opportunity.
Statistics last 100 days
– 2 board meetings in Kuala Lumpur
– 3 virtual board meetings
– 1 physical board meeting in San Fransisco (3 days + various side meetings).
– 2 virtual meetings with the membership committee
– 3 calls as the liaison for special interest groups (SIGs)
– was active on 16 of the last 30 days in our internal chat
– 50+ mails written to the board mailing list
– 300 mails received via board mailing list