Krautkanal.com

Veröffentlicht am 2016-06-12 12:11:24 in /prog/

/prog/ 8944: Gibt es hier Assembilierer-Bernds oder nur Web-Schuchte...

georgedyjr Avatar
georgedyjr:#8944

Gibt es hier Assembilierer-Bernds oder nur Web-Schuchtelei?

Bernd hat vor Kurzem https://microcorruption.com/cpu/debugger entdeckt und ist begeistert. Davor hat Bernd nur in C programmiert.

dpg Avatar
dpg:#8947

Web-Schuchtel reportiert ein
>https://www.npmjs.com/package/assembler-cli

iamkeithmason Avatar
iamkeithmason:#8951

Nur Web-Schuchteln. /faden

rangafangs Avatar
rangafangs:#8953

Assembler braucht man so gut wie nicht, daher sehe ich das als weitgehend nutzlos an. Webprogrammierung hingegen ist nützlich, wie man hier am Brett sieht.

falvarad Avatar
falvarad:#8956

>>8953
Bernd findet Rückwärtsingeneuren interessant. Webzeug ist langweilig. Bin aber irgendwie zu duhm für Assembler.

fffabs Avatar
fffabs:#8970

>>8944
Professioneller Rückwärtsingenieur reportiert ein. Auch wenn Ida Pro es einfacher macht, ASM bedeutet eigentlich immer unheimlich viel Arbeit. War aber bisher immer interessanter als Web-Schuchteley.

llun Avatar
llun:#8971

>>8970
Erzähl mal ein bisschen von deinem Dschop :3

Wie waren deine Anfänge? Welche Bildung? Was du auf der Weide so machst...

t. interessierter Bernd

joe_black Avatar
joe_black:#8972

Der Elitismus mancher Assembler-Programmierer ist schon süß, wenn man bedenkt, dass beispielsweise x86-Assembler fickend einfach ist, wenn man verstanden hat, wie der Stapel funktioniert.

Auch: Kann RE-Bernd eine gute Ressource zu radare2 liefern?

linux29 Avatar
linux29:#8975

>>8972
>wenn man verstanden hat, wie der Stapel funktioniert
>wenn man verstanden hat, wie der Stapel funktioniert
>wenn man verstanden hat, wie der Stapel funktioniert
Ist jetzt kein Ding der Unmöglichkeit, aber ist schon relativ komplex. So viel, wie sich gegenseitig aufhebt und dann wieder doch nicht ist ein wenig Hirnakrobatik. Das dann alles in kurzer Zeit entziffern ist die nächste Herausforderung, weil man wirklich alles gleichzeitig beachten muss.

Und dann gibts noch das ganze Exception-Handling und anderen modernen Scheiß. Deswegen: Wenn du zum vierten Mal glaubst es jetzt endgültig verstanden zu haben, reichen deine Kenntnisse vielleicht für recht zuverlässiges MSDOS-Reverse-Engineering.

Ist aber überall so, wenns tiefer in die Materie geht, auch bei Webkram wie JS. Wer glaubt, JS ganz gut zu können soll mal diese Tests hier machen:
http://perfectionkills.com/javascript-quiz/
http://perfectionkills.com/javascript-quiz-es6/
http://web.archive.org/web/20100818145532/http://dmitry.baranovskiy.com/post/91403200
Lösung mit Erklärung von letztem:
https://www.nczonline.net/blog/2010/01/26/answering-baranovskiys-javascript-quiz/

jitachi Avatar
jitachi:#8981

>>8975
>Wer glaubt, miserable Krebssprache ganz gut zu können
Nein danke Bernd, in wenigen, wohl gewählten Fällen ist Ignoranz die bessere Option.

davidtoltesy Avatar
davidtoltesy:#8982

>>8971
Angefangen habe ich als Entwickler parallel zum Informatikstudium, da habe ich über die Jahre ein Gefühl dafür bekommen wo ich nach Fehlern suchen muss. Dann aus Spaß Security-Vorlesungen besucht, gut abgeschnitten, mit Freunden bei Wettbewerben angetreten und gewonnen und jetzt mache ich das halt beruflich.

Derzeit ist mein Berufsalltag so, dass ich ein Produkt vorgesetzt bekomme und es auf Schwachstellen abklopfen soll, dabei habe ich üblicherweise kaum Informationen über das Produkt zur Verfügung. Es kann sich dabei um Web-Schuchtelei, irgendetwas decompilierbares wie Java oder .NET, ausführbare Binärdateien oder ein Embedded System mit exotischer Hardware handeln. Ich habe dann irgendwo zwischen 1 und 4 Wochen Zeit das Ding auseinanderzunehmen und nachzusehen was ich so finde. Danach schreibe ich einen Report und muss natürlich für alle gefundene Schwachstellen kleine Proof-of-Concept Programme abliefern, die die Schwachstellen ausnutzen.
Meiner Erfahrung nach sind nicht-decompilierbare Binärdateien unheimlich viel Arbeit, lohnen aber auch sehr oft. Im Gegenzug dazu sind Web-Applikationen oft Banal und weitestgehend sicher, bis auf das neue Feature das erst seit 3 Monaten drin ist und leider alle Sicherheitsmaßnahmen umgehen muss. Javaanwendungen sind üblicherweise KrebsFactories. Oft gut abgesichert, aber riesige Komplexitätsmonster, über Jahre gewachsen und auch öfters mal mit groben Designfehlern was Sicherheit angeht.

Besonders ins Detail gehen kann ich leider nicht, da sind Verschwiegenheitsklauseln eigentlich immer im Spiel... Aber grob umschreiben geht.

Ich habe mir mal ein Produkt angesehen, das Backups von allen Rechnern zieht und auf einem dedizierten Server speichert. Das heißt, die Clientsoftware musste natürlich mit sehr hohen Rechten laufen um Zugriff auf alles zu haben. Der Auftraggeber hatte das Produkt bereits mehrere Jahre im Einsatz und wollte eigentlich nur Sichergehen, dass alles in Ordnung ist. Ich habe einen Fehler im Kommunikationsprotokoll gefunden und hatte damit auf einen Schlag Adminzugriff auf alle Rechner der Firma. Aufgrund der Art wie dieses Protokoll in der Software umgesetzt war müsste man eigentlich die gesamte Produktlinie einstampfen, einfach Fehler fixen geht in dem Fall wohl kaum.

Ein anderes Mal sollte ich mir ein Embedded System ansehen und eine Aussage darüber treffen wie sicher das Ding ist. Es hatte den Speicher separat vom Prozessor (also kein komplettes SoC), und die Verschlüsselung war einfach auszuhebeln. Dadurch hatte ich Zugriff auf das zugrundeliegende Linux-Image und konnte u.a. alle VPN-Passwörter auslesen. Fazit: Diese Hardwarerevision kann nicht ausreichend abgesichert werden, aber es sind zu viele Geräte in Umlauf für einen Austausch.

Und deshalb, liebe Entwicklerbernds, solltet ihr externen Rat am besten zur Designphase, aber spätestens vor Deployment einholen. Das kostet zwar nicht wenig, aber wenn ihr es nicht tut wird's oft richtig teuer. Bisher haben wir immer etwas gefunden, zu ca. 70% waren es grobe Mängel.

>>8972
Sorry, keine Ahnung, wir nutzen Ida Pro. Hat zwar einiges an Problemchen und ist teuer, aber es ist einfach der Industriestandard.

bnquoctoan Avatar
bnquoctoan:#8999

>>8972
https://www.gitbook.com/book/radare/radare2book/details

starburst1977 Avatar
starburst1977:#9000

>>8982

Bitpriemeler dem man Fähigkeit nicht glaubt hier.

Webapplikationen sind okee?
Da sollte doch einmal alles verkackt sein, vom IP-Stäck über PHP und dann die üblichen XSS-Spielchen und so weiter.

Natürlich ist es relativ ermüdend, das dann zu demonstrieren, aber grundsätzlich ist das einfach ein Haufen Schlamm. Weil man Idioten an Compiler gelassen hat, ist das Web kaputt. Und wenn man es fixieren will, plärrt 90% der Userbase daß Krebster nicht meer geht.

Was sind eigentlich so die besten Bug bounty programme finanziell? Oder ist das alles Abzocke wenn man durch Arbeitsaufwand teilt?

joe_black Avatar
joe_black:#9003

>>8999
Ist radare2 besser als ida pro?
hab bis jetzt immer ida pro verwendet wenn ich ein binary ankucken wollte.
oder olly dbg wenn mit debugging

turkutuuli Avatar
turkutuuli:#9006

>>9000
>
>Bitpriemeler dem man Fähigkeit nicht glaubt hier.

Was?

>Webapplikationen sind okee?
>Da sollte doch einmal alles verkackt sein, vom IP-Stäck über PHP und dann die üblichen XSS-Spielchen und so weiter.
Das kann durchaus an unseren Kunden liegen. Wer >20kNG für ein Audit ausgibt setzt kaum auf PHP-Mist.

>Natürlich ist es relativ ermüdend, das dann zu demonstrieren
Die PoCs sind eigentlich der spaßigste Teil, erst wenn das geschafft ist setzt das überwältigende Erfolgsgefühl ein.

>Was sind eigentlich so die besten Bug bounty programme finanziell? Oder ist das alles Abzocke wenn man durch Arbeitsaufwand teilt?
Ein 8h Tag kostet irgendwo zwischen 1300-1600NG, Aufträge unter 10 Tage sind üblicherweise uninteressant. Es ist meistens rentabler Aufträge anzunehmen als auf Bug-Bounties abzuzielen. Einzige Ausnahme ist falls man sich ohnehin in ein Produkt eingearbeitet hat und der Aufwand für eine Bug-Bounty relevante Schwachstelle entsprechend niedriger ist.

danro Avatar
danro:#9008

>>Bitpriemeler dem man Fähigkeit nicht glaubt hier.
>Was?

Hab schon assembliert als die Dinger noch 8 mal weniger Bits hatten als heute. CV spiegelt dies nicht wieder und das ist alles worauf es heute ankommt.


>Wer >20kNG für ein Audit ausgibt setzt kaum auf PHP-Mist.

Ja dies ist einleuchtend.

>Die PoCs sind eigentlich der spaßigste Teil, erst wenn das geschafft ist setzt das überwältigende Erfolgsgefühl ein.

Kenne das Fühl.
Aber irgendwie ist ja das Ziel Sicherheit herzustellen. Und da gibts halt so das Fühl Wenn das Haus aus Balsa und Gaffatape gebaut ist, wird es Termiten kriegen. Auch wenn man das jetzt schlecht demonstrieren kann.

Oder ich mach jetzt 5 Demonstrationen und er baut ein paar stärkere Balken ein. Hätten wir uns alles von Anfang an sparen können, Haus aus Stein bauen, Ende.

madhan4uu Avatar
madhan4uu:#9009

Habe mal vor längerer Zeit eine persistente XSS-Schwachstelle beim Webseiten-Betreiber gemeldet. Für insgesamt zwei Tage Aufwand bekam ich 75 Dollar und ein T-Shirt. :^)

carlosgavina Avatar
carlosgavina:#9028

>real programmers code in binary
Ja, natürlich. Hab Spaß dabei, 10 Minuten in binär zu programmieren, um das Äquivalent von "int i = 10;" zu schreiben.

vickyshits Avatar
vickyshits:#9030

i: dq 10

Neuste Fäden in diesem Brett: