WerkzeugKastenMitwoch 08

Im #WerkzeugKastenMittwoch gibt es diese Woche ein Tool aus der Kategorie, sollte man kennen.

Ich selbst bin tatsächlich relativ spät in meiner IT-Karriere über dieses sehr nützliche Tool gestolpert. Ich würde sagen es ist so das Schweizer Taschenmesser Tool für Networking.

Mit Netcat oder kurz nc lassen sich Daten aus der Standardein- / Ausgabe über Netzwerkverbindungen via TCP oder UDP senden. Klingt erst einmal unspektakulär, bietet aber sehr viele Möglichkeiten!

Ein paar Beispiele.

Man kann z.B. testen ob ein Webserver erreichbar ist indem ich ihm eine Anfrage sende.

❯ 𝚙𝚛𝚒𝚗𝚝𝚏 "𝙶𝙴𝚃 / 𝙷𝚃𝚃𝙿/𝟷.𝟶\𝚛\𝚗\𝚛\𝚗" | 𝚗𝚌 𝚐𝚘𝚘𝚐𝚕𝚎.𝚍𝚎 𝟾𝟶

𝙷𝚃𝚃𝙿/𝟷.𝟶 𝟸𝟶𝟶 𝙾𝙺
𝙳𝚊𝚝𝚎: 𝚃𝚞𝚎, 𝟶𝟺 𝙹𝚞𝚕 𝟸𝟶𝟸𝟹 𝟷𝟶:𝟶𝟻:𝟸𝟶 𝙶𝙼𝚃
𝙴𝚡𝚙𝚒𝚛𝚎𝚜: -𝟷
𝙲𝚊𝚌𝚑𝚎-𝙲𝚘𝚗𝚝𝚛𝚘𝚕: 𝚙𝚛𝚒𝚟𝚊𝚝𝚎, 𝚖𝚊𝚡-𝚊𝚐𝚎=𝟶
𝙲𝚘𝚗𝚝𝚎𝚗𝚝-𝚃𝚢𝚙𝚎: 𝚝𝚎𝚡𝚝/𝚑𝚝𝚖𝚕; 𝚌𝚑𝚊𝚛𝚜𝚎𝚝=𝙸𝚂𝙾-𝟾𝟾𝟻𝟿-𝟷
𝚂𝚎𝚛𝚟𝚎𝚛: 𝚐𝚠𝚜
𝚇-𝚇𝚂𝚂-𝙿𝚛𝚘𝚝𝚎𝚌𝚝𝚒𝚘𝚗: 𝟶
𝚇-𝙵𝚛𝚊𝚖𝚎-𝙾𝚙𝚝𝚒𝚘𝚗𝚜: 𝚂𝙰𝙼𝙴𝙾𝚁𝙸𝙶𝙸𝙽
𝙷𝚝𝚝𝚙𝙾𝚗𝚕𝚢; 𝚂𝚊𝚖𝚎𝚂𝚒𝚝𝚎=𝚕𝚊𝚡
𝙰𝚌𝚌𝚎𝚙𝚝-𝚁𝚊𝚗𝚐𝚎𝚜: 𝚗𝚘𝚗𝚎
𝚅𝚊𝚛𝚢: 𝙰𝚌𝚌𝚎𝚙𝚝-𝙴𝚗𝚌𝚘𝚍𝚒𝚗𝚐

<!𝚍𝚘𝚌𝚝𝚢𝚙𝚎 𝚑𝚝𝚖𝚕><𝚑𝚝𝚖𝚕 𝚒𝚝𝚎𝚖𝚜𝚌𝚘𝚙𝚎="" 𝚒𝚝𝚎𝚖𝚝𝚢𝚙𝚎="𝚑𝚝𝚝𝚙://𝚜𝚌𝚑𝚎𝚖𝚊.𝚘𝚛𝚐/𝚆𝚎𝚋𝙿𝚊𝚐𝚎" 𝚕𝚊𝚗𝚐="𝚍𝚎"><𝚑𝚎𝚊𝚍>
...

Testen ob ein SMTP Server funktioniert.

❯ 𝚗𝚌 𝚜𝚖𝚝𝚙.𝚐𝚘𝚘𝚐𝚕𝚎.𝚌𝚘𝚖 𝟸𝟻

𝟸𝟸𝟶 𝚖𝚡.𝚐𝚘𝚘𝚐𝚕𝚎.𝚌𝚘𝚖 𝙴𝚂𝙼𝚃𝙿
𝙷𝙴𝙻𝙾 𝚝𝚎𝚜𝚝𝚖𝚡.𝚋𝚘𝚎𝚛𝚣𝚎𝚕.𝚒𝚝
𝟸𝟻𝟶 𝚖𝚡.𝚐𝚘𝚘𝚐𝚕𝚎.𝚌𝚘𝚖 𝚊𝚝 𝚢𝚘𝚞𝚛 𝚜𝚎𝚛𝚟𝚒𝚌𝚎
𝙼𝙰𝙸𝙻 𝙵𝚁𝙾𝙼:<𝚍𝚎𝚖𝚘@𝚋𝚘𝚎𝚛𝚣𝚎𝚕.𝚒𝚝>
𝟸𝟻𝟶 𝟸.𝟷.𝟶 𝙾𝙺
𝚁𝙲𝙿𝚃 𝚃𝙾:<𝚋𝚘𝚎𝚛𝚣𝚎𝚕𝚍𝚎𝚖𝚘@𝚐𝚖𝚊𝚒𝚕.𝚌𝚘𝚖>
𝟸𝟻𝟶 𝟸.𝟷.𝟻 𝙾𝙺
...

Als Telnet Ersatz nutzen

❯ 𝚗𝚌 𝟿𝟻[.]𝟷𝟽𝟻[.]𝟷𝟸𝟺[.]𝟾𝟺 𝟸𝟹

Netcat kann sich jedoch nicht nur zu Server verbinden sondern auch als Server lauschen. So kann man z.B. eine Verbindung Troubleshooten ob ein Port auf einer Firewall blockiert wird oder doch nur die Serverapplikation keine richtige Antwort liefert.... Ihr kennt die Problemchen ;)

Auf dem Server

❯ 𝚗𝚌 -𝚕𝚗𝚟𝚙 𝟷𝟸𝟹𝟺

𝚕𝚒𝚜𝚝𝚎𝚗𝚒𝚗𝚐 𝚘𝚗 [𝚊𝚗𝚢] 𝟷𝟸𝟹𝟺 ...
𝚌𝚘𝚗𝚗𝚎𝚌𝚝 𝚝𝚘 [𝟷𝟸𝟽.𝟶.𝟶.𝟷] 𝚏𝚛𝚘𝚖 (𝚄𝙽𝙺𝙽𝙾𝚆𝙽) [𝟷𝟸𝟽.𝟶.𝟶.𝟷] 𝟹𝟹𝟺𝟷𝟾
𝙳𝚒𝚎𝚜 𝚒𝚜𝚝 𝚎𝚒𝚗 𝚃𝚎𝚜𝚝

auf dem Client

❯ 𝚗𝚌 𝟷𝟸𝟽.𝟶.𝟶.𝟷 𝟷𝟸𝟹𝟺

𝙳𝚒𝚎𝚜 𝚒𝚜𝚝 𝚎𝚒𝚗 𝚃𝚎𝚜𝚝

Beim Pentesting kann man Netcat z.B. verwenden um eine Reverse Shell aufzubauen. Man kann sich also quasi interaktiv auf dem Server anmelden obwohl gar kein SSH / Telnet oder ähnliches läuft.

Vorheriger Artikel Nächster Artikel