Sehr schrecklich schlechter Hack [geschlossen]

7

Als ich einen meiner neuesten schmutzigen, schmutzigen Hacks beobachtete, fragte ich mich, welche Art von schmutzigen Hacks du erstellt hast, die so schlecht sind, dass sie fantastisch sind.

Wir haben alle ein paar davon in unserer Vergangenheit - und sie laufen wahrscheinlich noch irgendwo in der Produktion und tuckern irgendwie immer noch mit.

Das erinnert mich an den Hack, den wir beim Umzug von Rechenzentren durchführen mussten. Unsere IVRs mussten weiterlaufen, da das Rechenzentrum, von dem wir umzogen, der primäre DC war und der neue primäre nicht ganz bereit war, Datenverkehr aufzunehmen. Also, was machen wir. Nun, wir beantworten die Anrufe in DC1 und senden dann den Schluck-Stream über das Internet an DC2 in 1900 Meilen Entfernung ... das fühlte sich einfach so falsch an.

Die Frage ist also, was ist einer (oder mehrere) Ihrer unglaublich schlechten Hacks?

Zypher
quelle
Und was hast du gemacht? Waren die Anrufe erfolgreich? Keine Probleme wie Jitter oder so?
@Marcel: Oh ja, überraschend gut, natürlich hatten wir einen gebrochenen DS3 an einem Ende und einen vollen DS3 am anderen Ende ... Zumindest gab es nicht genug Jitter für unsere Überwachungslösung, um ihn aufzunehmen. Auch keine unterbrochenen Anrufe.
Zypher
Wirklich fantastisch ... es sind Dinge wie diese, die den Job lohnenswert machen

Antworten:

7

Eine Firma, bei der ich vor einigen Jahren gearbeitet habe, hatte auf allen unseren Computern eingeschränkten Netzwerkzugriff. Sie können auf 1 Terminalserver und jede Seite in 1 Domäne (dem Intranet) zugreifen. Das war's. Dies war lange bevor ich meine Arbeit in der IT begann und ich wurde von der IT-Abteilung als niedriger als niedrig eingestuft.

Dies machte es uns unmöglich, unsere Arbeit zu erledigen, und nachdem wir uns monatelang beim Management beschwert hatten (ich liebe Beaurocracy), gaben sie uns endlich EINEN Computer mit uneingeschränktem Zugriff, den wir alle 12 bei der "seltenen Gelegenheit" teilen mussten musste außerhalb der Domain gehen (was fast die ganze Zeit war).

Also brachte ich einen Ersatz-Switch mit 24 Ports mit, steckte das Netzwerkkabel von diesem Computer in den Switch und kaufte dann Dutzende von NICs mit zwei Ports und verkabelte alle Computer stillschweigend mit dem zweiten Switch und richtete auf jedem Computer benutzerdefinierte Routen ein dass die Menschen immer noch auf das getrennte Netzwerk zugreifen können. Ich habe dann alle Kabel und Schalter versteckt, damit niemand es herausfindet.

Ich war 6 Monate lang jedermanns Held, sie konnten endlich Zugang zum Internet haben, solange der Chef nicht hinschaute.

Da dies ein Serverfehler ist, wird sich natürlich jeder diesen Beitrag ansehen, HORRIFIED, dass ich so etwas tun könnte. Nun, wenn Sie sich dadurch besser fühlen, als sie herausfanden, dass ich sofort entlassen wurde, aber ich denke, dass ich mich dann entschlossen habe, an die Uni zu gehen und eine bessere Ausbildung zu erhalten, damit ich in der Lage bin, sicherzustellen, dass andere Menschen dies nicht tun muss das durchmachen.

(Und wenn ich feststellen würde, dass jemand dies in einem meiner Netzwerke getan hat, würde ich nachdrücklich auf einen offiziellen Verweis drängen. Hey, ich war jung).

Mark Henderson
quelle
1
Genial. Schön zu sehen, dass Sie von der dunklen Seite herübergegangen sind. Ich hatte einen technischen Support-Mitarbeiter (der von einem Job kam, bei dem er vordefinierte Sicherheitsskripte ausführte), der mir in seiner ersten Woche bei der Arbeit mitteilte, dass er mein Netzwerk prüfen würde. Ich sagte ihm, dass dies wahrscheinlich das Letzte sein würde, was er jemals in unserer Firma getan hat. ;)
Joeqwerty
Natürlich hätten heutzutage Dinge wie die Konfiguration von Cisco Smart Ports diese schändliche Aktivität gestoppt;)
paxos1977
Gekreuzt von der dunklen Seite oder auf sie? Ich bin mir immer noch nicht sicher.
John Gardeniers
3
Husten Dies geschah, als ich bei Cisco Husten arbeitete
Mark Henderson
1
Ihre Geschichte erinnert mich an eine Zeit, in der ein Supervisor es satt hatte, nicht genügend Ports im Schulungsraum zu haben und einen billigen Linksys-Switch gekauft hat ... eine Spanning Tree-Schleife in den Unternehmensbüros ausgelöst hat ... das war ein lustiger Anruf, als Der Netzwerkdirektor nahm schließlich den Hörer ab.
Zypher
7

Wahrscheinlich nicht das, wonach Sie suchen, aber ein bisschen zurück hatte ich ein paar Maschinen der Commodore 264-Serie. Speziell die Plus / 4 und C16. Ich brauche einen Assembler, kann aber keinen für die Maschinen finden, die ich erstellen möchte. Wie kompilieren Sie einen Assembler, wenn Sie noch keinen haben? Schreiben Sie zuerst eine einfache in BASIC, übersetzen Sie sie dann Zeile für Zeile in Assembly, sobald sie funktioniert, und kompilieren Sie sie mit sich selbst.

John Gardeniers
quelle
5

Ich habe zwischen 2003 und 2005 Dutzende von HP ProLiant ML370 G3-Servern verkauft. Der Fehlermodus dieser Hardware war sehr interessant, da die Lüftersensoren auf der Systemplatine nach 5 Jahren schließlich ausfallen würden. Das System würde beim POST keine Lüfterpräsenz oder keinen Spin / Speed-Status erkennen. Daher wäre ein Shop-Vac (Vakuum) erforderlich, um die Systemlüfter zu zwingen, sich während des Startvorgangs mit einer ausreichend hohen Drehzahl zu drehen, damit der Server nach dem POST eingeschaltet bleibt . Danach wurde die Kühlung mit einem externen Lüfter erreicht ... Die Verfügbarkeit von Ersatzplatinen von HP war schlecht und es gab auch einen Mangel bei Teilehändlern.

Das Setup musste 5 Tage dauern, während ich versuchte, Vorkehrungen zu treffen, um während der Dezember-Ferienzeit mit neuer Hardware zum 2000 Meilen entfernten Kundenstandort zu fliegen. Wir haben es aber geschafft!

Alt-Text

ewwhite
quelle
4

Ich erinnere mich, dass ich einen Hack zusammengestellt habe, um einen Drucker über eine DFÜ-VPN-Verbindung über eine AS400 \ JDE-Implementierung zum Laufen zu bringen. Mein Gedächtnis ist ein wenig verschwommen, aber es ging ungefähr so:

Um von JDEdwards aus zu drucken, muss ein Windows-Drucker einem AS400-Druckerobjekt zugeordnet werden, das dann einem JDEdwards-Druckerobjekt zugeordnet werden muss. Normalerweise funktioniert dies recht gut, wenn Sie über einen zentralen Druckserver und dedizierte Punkt-zu-Punkt-WAN-Verbindungen für Remotestandorte verfügen, die über JDE drucken müssen.

In diesem Fall fiel eine unserer WAN-Verbindungen aus, was natürlich bedeutete, dass Druckaufträge vom zentralen Druckserver nicht an die Remote-Netzwerkdrucker im betroffenen Remote-Lager gesendet werden konnten. Das Remote-Lager musste Packzettel von JDE drucken, um Sendungen aus der Tür zu holen. Daher stellte ich eine DFÜ-VPN-Verbindung auf einem Lagercomputer mit einem lokal angeschlossenen Drucker her, gab den lokal angeschlossenen Drucker frei und konfigurierte den VPN-Client für die Verwendung eine bestimmte IP-Adresse anstelle der VPN-zugewiesenen IP-Adresse, dann habe ich den lokal angeschlossenen Drucker über die statische VPN-IP-Adresse dem Druckserver zugeordnet, diesen Drucker dem AS400-Druckerobjekt zugeordnet und dann das AS400-Druckerobjekt zugeordnet das JDE-Druckerobjekt und voila, Packzettel, die im Remote-Lager gedruckt werden.

Joeqwerty
quelle
1
Woah ... Das ist definitiv ein "Hack"!
Rob Golding
4

Ich würde sagen, einer der lächerlichsten, an denen ich beteiligt war, war ein physischer Hack.

Der Server eines Kunden hatte sein Netzteil durchgebrannt, tatsächlich das zweite, da redundante Netzteile vorhanden waren und das erste bereits weg war.

Dies war ein altes Chassis einer der Marken "Build Your Own Server", und das Ersatznetzteil würde mehrere hundert Dollar kosten, um es zu ersetzen.

Sie waren nicht bereit, das für die Stromversorgung zu bezahlen oder die Maschine auszutauschen.

Und natürlich haben sie von jemand anderem "Einblick" bekommen, dass man Netzteile für etwa 50 US-Dollar im Laden kaufen kann, keine große Sache.

Also ... haben wir ein Standardnetzteil mit ausreichend langen Kabeln erhalten, um an der Außenseite des Gehäuses zu sein und nach innen zu greifen, um es an die Platine und die Geräte anzuschließen. Dann wurde das Netzteil mit Klebeband und Reißverschluss an der Rückseite befestigt.

Und das Schlimmste ist, obwohl wir ihnen gesagt haben, dass sie es nicht so lassen sollen, es Zeit ist, mit der Budgetierung zu beginnen, um die Maschine zu ersetzen. Ich glaube, dass sie ein gutes Jahr später noch so in Betrieb ist.

ManiacZX
quelle
1
Das ist eine Sache von Schönheit für mich. Krank, aber wunderschön ... Alles, was mit Kabelbindern zu tun hat, zieht mich am Herzen und erinnert mich an meine frühen Tage als PC-Techniker.
Evan Anderson
2
Nicht so schlimm wie zu der Zeit, als ich in einem Unternehmen ankam, um zwei Server nebeneinander zu finden, wobei die Stromversorgung von einem die Festplatten in beiden versorgt.
WheresAlice
3

Proprietäres Flat-File-Datenbankmodul, geschrieben in Perl für eine Reihe von CGI-Apps, die ich damals hatte. Heiliger Strohsack......

Squillman
quelle
Hallo! Ich habe so etwas auch gemacht.
kbyrd
2

Parsers in Awk geschrieben, dies getan haben viele Male, schrieb ein Freund sogar eine (einfache) arbeiten C - Compiler in awk.

Ich habe einen anderen Freund, der einen Freenet-Client (einschließlich der Netzwerkbits) in Bash geschrieben hat.

LapTop006
quelle
Deshalb habe ich angefangen, Debian nicht zu mögen - es verhindert, dass du Spaß mit Bash und seinen hast /dev/tcp.
user1686
Ich nehme an, dass es früher in Debian funktioniert hat, wie es mein Freund getan hat, als er es gebaut hat.
LapTop006
2

Es ist eine Art Hardware-Hack und zum Glück keine dauerhafte Lösung.

An einem heißen Sommertag geht mein Pager mit schnell steigenden Temperaturen in unserem Rechenzentrum los, "nicht schon wieder!". Mit unseren auf dem Dach montierten Kühlern ist etwas funky, und es ist wieder Zeit, die Leute zu rufen, die tatsächlich über dieses Zeug Bescheid wissen. Leider ist es mitten im Sommer, wenn Leute entweder im Urlaub sind oder irgendwo grillen, so dass es ein paar Stunden dauern würde, jemanden zum Anschauen zu bringen. Was ich angesichts des aktuellen Trends zu steigenden Temperaturen im Rechenzentrum nicht habe. Ich hatte auch keine besondere Lust, den Rest des warmen Sommerabends damit zu verbringen, ein paar tausend Server herunter und wieder hoch zu bringen und mich bei unseren Produktionsmitarbeitern dafür zu entschuldigen, dass ihre Computerjobs gestoppt wurden.

Es ist nicht alles schlecht, da es immer noch funktioniert, aber es scheint, dass ein Teil der Logik einige schlechte Entscheidungen trifft, da nur 2-4 von 8 Kompressoren gleichzeitig laufen. Also ein paar Telefonanrufe und ein paar Schnorrungen später: Klebeband und kleine Steine ​​zur Rettung.

Dort habe ich es repariert!

Kjetil Jörgensen
quelle
2

Vor langer Zeit arbeitete ich für ein "Telekommunikationsunternehmen", das Prepaid-GSM-Karten verwendete, um Anrufe, die über VOIP eingehen, mit lokalen kolumbianischen Nummern zu verbinden. (einfaches Geschäftsmodell, Verkauf von US-> Kolumbien für 10 Cent pro Minute, während wir nur 1 Cent für den gleichen Anruf zahlen mussten Kolumbien GSM-> Kolumbien GSM).


Anrufverlauf : USA initiiert Anruf-> VOIP (kostenlos) -> Kolumbien GSW Gateway mit kolumbianischen Prepaid-Karten gefüllt -> Tatsächliche kolumbianische Nummer, die von den USA gewählt wurde.

Um diese 1c pro Minute Rate zu erhalten, mussten wir die Karte mittels eines IVR aktivieren. Anfangs hatten wir ein paar Dutzend wunderschöne nackte Frauen, die jede Karte durchgingen und sie einzeln in einem Telefon aktivierten. Ziemlich bald wurde klar, dass dies angesichts der schieren Anzahl von Karten, die pro Woche aktiviert werden mussten, nicht skalierbar war. Das Management war daher der Meinung, dass wir den Mädchen helfen sollten, da die IT-Abteilung viel Freizeit hatte.

Das haben wir also getan:
- Die Karten in ein VOIP-GSM-Gateway gelegt, den IVR automatisch mit Asterisk gewählt und das Menü durch Senden des entsprechenden DTMF-Codes durchlaufen, um diese spezielle 1c / min-Aktion zu aktivieren. Das hat eine Weile ganz gut geklappt.

Unsere größte Sorge war, und hier kommt der Hack, dass wir die Karten jedes Mal auf denselben GSM-Zellen (Antennenstandort) aktivierten und der lokale Telekommunikationsbetreiber, der nicht bereit war, unsere Sache zu unterstützen und einen Teil seiner Einnahmen mit uns zu teilen, dies bemerkt hatte Die Anzahl der Kartenaktivierungen in diesen bestimmten Zellen stieg an und die Karten wurden aus ihrem Netzwerk verbannt, bevor wir tatsächlich die Möglichkeit hatten, sie zu verwenden.

Unsere Lösung bestand darin, ein Telekommunikations-SIM-Aktivierungsfahrzeug zu erstellen, ein VOIP-GSM-Gateway mit 32 SIM-Karten zusammen mit einem drahtlosen Modem in einem Auto zu installieren und dabei ironischerweise das EVDO-Netzwerk desselben Telekommunikationsgiganten zu verwenden, der in der Gewinnbeteiligungsvereinbarung enthalten war Rufen Sie bei uns und unter Verwendung desselben Asterisk-Servers den IVR für jede Karte an, die ihn aktiviert.
Der offensichtliche Vorteil war, dass das fahrende Auto uns helfen würde, die Last zwischen den Turmzellen zu verteilen, um sicherzustellen, dass wir das Netzwerk unseres Telekommunikationspartners nicht belasten, was unser Hauptanliegen war :-)

Zu diesem Zeitpunkt mussten die wunderschönen Frauen ungeachtet unserer Wünsche entlassen werden. Oh wie ich geweint habe aber trotzdem habe ich meinen Job geliebt :)! Die Vorteile der Arbeit in einem Land der 3. Welt! (Ich scherze Kolumbien ....)

user126330
quelle
1

Als ich in Oracle PL / SQL programmierte, hatten wir ein "Listener" -Programm, um auf der Grundlage einer Clientabfrage eine Berichtsausgabe auf dem Server zu generieren.

Es war eine Frankenstein-Zusammenstellung verschiedener SQL-Skripte, eines 1000-Zeilen-C-Shell-Skripts, Unix-Pipe-Objekten und eines Cron-Jobs. Der Cron-Job führte das c-Skript etwa alle 5 Sekunden aus, wodurch ein SQL-Skript ausgeführt wurde, um eine Tabelle nach Einträgen abzufragen, die den Wert an stdout übergeben würden. Das Skript würde dann das Programm basierend auf den in die Tabelle eingefügten Details und Parametern ausführen.

Das Ganze war wahnsinnig komplex und wurde ursprünglich in den frühen 80ern geschrieben.

Schließlich haben wir einen Kunden, der unsere App unter NT anstelle von Unix ausführen wollte, und so haben wir es geschafft, sie in einer kommerziellen Variante von Cygwin zum Laufen zu bringen (anstatt das ganze Durcheinander neu zu definieren).

Dan
quelle
1

Letzte Woche, oder vielleicht war es letzten Monat ... Ich habe ein paar Anwendungen geschrieben (hilfreich mit den Namen f5 und f11), die X-Bibliotheken verwenden, um Tastaturtasten zu emulieren ... um ein Browserfenster auf einem Computer in unserem Büro zu aktualisieren und im Vollbildmodus anzuzeigen Es wurde eine Status-Board-Seite ausgeführt.

Ich habe auch eine Python-App geschrieben, um den Mauszeiger an Position 1441x901 (nur außer Sichtweite) kontinuierlich zu bewegen, aber nur während der Bürozeiten, damit der Bildschirmschoner den Rest der Zeit ausgeführt werden kann.

Ich denke, das sind ziemlich schmutzige Hacks. Nicht mein schlimmstes, aber ziemlich grimmig: P.

Tom O'Connor
quelle
Interessant. Wäre es nicht einfacher gewesen, beispielsweise den Bildschirmschoner zu deaktivieren? Zumindest für Firefox gibt es verschiedene Erweiterungen, um den Start im Vollbildmodus zu ermöglichen, und Aktualisierungen können serverseitig ausgelöst werden. Trotzdem ein geschickter Hack :-).
Sleske
Wir haben das versucht. Es schien das Monitor-Blanking-Ding nicht zu deaktivieren.
Tom O'Connor
1

Ich schrieb ein Bash-Skript, das ein nummeriertes Menü anzeigte, und bat den Benutzer, die Menünummer einzugeben. Es verwendete $ (read -n 1), um einzelne Tastenanschläge zu ziehen und sie einzeln zu verarbeiten - einschließlich der Rücktaste, die ich aus $ (stty -a) gezogen habe.

Es gab Sonderfälle für die Behandlung mehrstelliger Antworten, z. B. wenn 9 Optionen vorhanden waren, wurde 1-9 als jede Menüoption interpretiert. Wenn jedoch 11 Optionen vorhanden waren, wurde nach Erhalt einer 1 abgewartet, ob es 10 wurde oder 11 oder [return] für 1.

Ich habe das alles ohne Fluchrufe gemacht (nur viele gesprochene Flüche).

2 Tage später erfuhr ich von $ (auswählen)

Shewfig
quelle
tput könnte auch nützlich gewesen sein
1

Mein schlimmstes war wahrscheinlich ein Netzwerk-Hack. Dies war um 2000 oder 2001. Ich war bei einem ISP, der einen festen drahtlosen Internetzugang bereitstellte. Die von uns verwendete drahtlose Ausrüstung war in Bezug auf die Routing-Fähigkeiten ziemlich primitiv. Das Client-Radio war im Grunde nur eine Wireless-to-Ethernet-Brücke, sodass Kunden ihren eigenen Router benötigten. Kunden, die einen öffentlichen Block wollten, benötigten einen Dual-Ethernet-Router, der NAT nicht erzwang (was die meisten "Breitband" -Router damals taten). Dies bedeutete normalerweise so etwas wie einen Cisco 2514 oder einen 2611/2621, von denen keiner damals besonders billig war.

Wie auch immer, der Router eines Kunden ist gestorben. Sie waren nicht in der Lage, einen neuen (oder sogar gebrauchten) Cisco zu kaufen, und wir hatten keinen zur Hand. Was wir hatten, waren einige alte Ascend Pipeline 130 T1-Router. Am Ende hatte der Kunde also ...

wireless --/-- radio --- eth                eth ----- LAN
                       router1            router2
                          T1 --- x-over --- T1

Glücklicherweise lief die drahtlose Verbindung mit weniger als 1 Mbit / s, sodass die "T1" -Verbindung zwischen Routern kein Engpass war.

James Sneeringer
quelle
1

Ich habe als Systemadministrator in einem Büro mit Windows NT 4.0 SP6-Workstations gearbeitet. Im wahrsten Sinne des Wortes versuchten alle zu sehen, wie das Administratorkennwort lautet, als ich es auf ihren Computern eingab. Schließlich habe ich es satt und habe begonnen, eine Diskette mit einem Exploit zu verwenden, der eine cmd.exe-Instanz mit Administratorrechten gestartet hat, ohne dass ich das Administratorkennwort eingeben muss.

halp
quelle
0

Nicht einer von mir, aber ich bin einmal in einem Unternehmen angekommen, um eine schreckliche Microsoft Access-Datenbank mit Dutzenden von Abfragen zu sehen, nur um einen einzigen Wert aus der MsSQL-Datenbank herauszuholen, mit der sie verknüpft ist. Ich habe ein paar Stunden damit verbracht, es zu optimieren und auf eine einzige Abfrage zu reduzieren, und dann herausgefunden, warum sie so schreckliche Abfragen hatten - die letzte Abfrage, die ich letztendlich erstellt habe, war zu lang für Microsoft Access und sie kannten keine andere Möglichkeit Laufen, außer um es so zu teilen.

WheresAlice
quelle