Mailei (tapa) mo so'oga SSH o'o mai

E le o se mea lilo o le Initaneti o se siʻosiʻomaga e sili ona leaga. O le taimi lava e te siiina ai se 'auʻaunaga, e faʻafuaseʻi lava ona tuʻuina atu i osofaʻiga tetele ma le tele o suʻega. Faataitaiga honeypot mai leoleo puipui e mafai ona e fa'atatauina le fua o lenei ta'avale lapisi. O le mea moni, i luga o le averesi server, 99% o fefaʻatauaiga atonu e leaga.

O le tapoleni o se uafu mailei e fa'aaogaina e fa'agesegese ai feso'ota'iga sau. Afai e feso'ota'i atu se vaega lona tolu i lenei uafu, e le mafai ona vave tapunia le feso'ota'iga. E tatau ona ia fa'aumatia ana puna'oa fa'aoga ma fa'atali se'ia uma le taimi o feso'ota'iga, pe fa'amutaina ma le lima.

O le tele lava o taimi, e fa'aaoga ai tapoleni mo le puipuiga. O le metotia na muamua fausia e puipuia mai anufe komepiuta. Ma o lea e mafai ona faʻaaogaina e faʻaleagaina ai olaga o tagata faʻasalalau ma tagata suʻesuʻe o loʻo galulue i le suʻesuʻeina lautele o tuatusi IP uma i se laina (faʻataʻitaʻiga i Habré: Austria, Ukraine).

O se tasi o pule o le polokalama e igoa ia Chris Wellons e foliga mai ua fiu e matamata i lenei faalumaina - ma na ia tusia se polokalama laitiiti Le gata, o se tapoleni mo SSH e faʻagesegese ai fesoʻotaʻiga ulufale mai. O le polokalame e tatalaina se taulaga (o le faʻaogaina o le taulaga mo suʻega o le 2222) ma faʻafoliga o se SSH server, ae o le mea moni e faʻavaeina se fesoʻotaʻiga e le gata ma le tagata o loʻo sau seia oʻo ina fiu. E mafai ona fa'aauau pea mo ni nai aso pe sili atu se'ia pa'u le tagata o tausia.

Fa'apipi'i o le fa'aoga:

$ make
$ ./endlessh &
$ ssh -p2222 localhost

O le fa'atinoina lelei o le tapoleni o le a tele atu alagaoa mai le tagata osofa'i nai lo oe. Ae e le o se mataupu o punaoa. Tusitala Na ia tusiao le polokalame e fai ma vaisu. I le taimi nei e 27 tagata faʻatau na puʻeina, o nisi o latou na fesoʻotaʻi mo vaiaso. I le tumutumuga o gaoioiga, e 1378 tagata na saisaitia mo le 20 itula!

I le faʻaogaina o le faʻaogaina, e manaʻomia le faʻapipiʻiina o le Endlessh server i luga o le taulaga masani 22, lea e tuʻituʻi ai le au faomea. O fautuaga mo le saogalemu masani e fautuaina i taimi uma le siitia o le SSH i se isi taulaga, lea e vave faʻaitiitia ai le tele o ogalaau i se faʻatonuga o le tele.

Fai mai Chris Wellons o lana polokalame e faʻaaogaina se parakalafa o le faʻamatalaga RFC 4253 i le SSH protocol. A mae'a loa ona fa'atūina se feso'ota'iga TCP, ae a'o le'i fa'aogaina fa'amatalaga, e tatau i itu e lua ona lafo se manoa fa'amaonia. Ma e iai foʻi se faʻamatalaga: "E MAFAI ona auina atu e le server isi laina o faʻamatalaga aʻo leʻi tuʻuina atu le laina faʻasologa". Ma leai se tapulaa i luga o le tele o nei faʻamatalaga, e tatau lava ona e amata laina taʻitasi ma SSH-.

O le mea tonu lea e fai e le polokalama Endlessh: o auina atu leai se gataaga tafega o fa'amaumauga fa'afuase'i, lea e ogatasi ma le RFC 4253, o lona uiga, lafo a'o le'i fa'amaonia, ma laina ta'itasi e amata ile SSH- ma e le sili atu i le 255 mataitusi, e aofia ai le uiga faaiu laina. I se tulaga lautele, o mea uma e tusa ai ma le tulaga masani.

Ona o le faaletonu, e faatali le polokalame mo le 10 sekone i le va o le auina atu o pepa. Ole mea lea e taofia ai le tagata o tausia mai le fa'agata, o lea o le a maileia e fa'avavau.

Talu ai ona o faʻamatalaga e tuʻuina atu aʻo leʻi faʻaogaina le cryptography, o le polokalame e matua faigofie lava. E le manaʻomia le faʻatinoina o soʻo se siphers ma lagolagoina le tele o protocols.

Na taumafai le tusitala e faʻamautinoa o loʻo faʻaaogaina e le faʻaogaina le itiiti ifo o punaoa ma galue atoatoa i luga o le masini. E le pei o antivirus faʻaonaponei ma isi "security system," e le tatau ona faʻagesegese lau komepiuta. Na mafai ona ia faʻaitiitia le faʻaogaina o feoaiga ma le mafaufau ona o le faʻaogaina o polokalama faʻapitoa. Afai na o le faʻalauiloaina o se isi faiga i luga o se fesoʻotaʻiga fou, ona mafai lea e le au osofaʻi osofaʻi ona faʻalauiloa se osofaʻiga DDoS e ala i le tatalaina o le tele o fesoʻotaʻiga e faʻaumatia punaoa i luga o le masini. E tasi le filo i le fesoʻotaʻiga e le o se filifiliga sili lea, aua o le fatu o le a faʻaumatia punaoa e pulea ai filo.

O le mafuaaga lena na filifilia ai e Chris Wellons le filifiliga sili ona mama mo Endlessh: o se server e tasi le filo poll(2), lea o loʻo faʻaaogaina e tagata o loʻo i totonu o le mailei toetoe lava a leai ni punaoa faʻaopoopo, e le faitaulia le mea autu i totonu o le fatu ma isi 78 paita mo le siakiina i Endlessh. Ina ia aloese mai le faʻasoaina o le mauaina ma le lafoina o pa puipui mo tagata taʻitoʻatasi, Endlessh tatala se socket avanoa tuusaʻo ma faʻaliliu saʻo TCP paʻu, faʻafefe toetoe o le TCP/IP faʻapipiʻi uma. E le manaʻomia lava le paʻu ulufale mai, aua matou te le fiafia i faʻamatalaga o loʻo oʻo mai.

Fai mai le tusitala i le taimi o lana polokalame leiloa e uiga i le i ai o le Python's asycio ma isi tapoleni. Afai na te iloa e uiga i le asycio, e mafai ona ia faʻaaogaina lona aoga i na o 18 laina i le Python:

import asyncio
import random

async def handler(_reader, writer):
try:
while True:
await asyncio.sleep(10)
writer.write(b'%xrn' % random.randint(0, 2**32))
await writer.drain()
except ConnectionResetError:
pass

async def main():
server = await asyncio.start_server(handler, '0.0.0.0', 2222)
async with server:
await server.serve_forever()

asyncio.run(main())

Asyncio e lelei mo le tusiaina o tapoleni. Mo se faʻataʻitaʻiga, o lenei matau o le a faʻamalo Firefox, Chrome, poʻo soʻo se isi tagata o loʻo taumafai e faʻafesoʻotaʻi i lau HTTP server mo le tele o itula:

import asyncio
import random

async def handler(_reader, writer):
writer.write(b'HTTP/1.1 200 OKrn')
try:
while True:
await asyncio.sleep(5)
header = random.randint(0, 2**32)
value = random.randint(0, 2**32)
writer.write(b'X-%x: %xrn' % (header, value))
await writer.drain()
except ConnectionResetError:
pass

async def main():
server = await asyncio.start_server(handler, '0.0.0.0', 8080)
async with server:
await server.serve_forever()

asyncio.run(main())

Tarpit o se meafaigaluega sili mo le faʻasalaina o tagata taufaaleaga i luga ole laiga. E moni, o loʻo i ai se tulaga lamatia, i se isi itu, o le tosina atu o latou mafaufau i amioga le masani a se server faapitoa. O se tasi atonu e mafaufau i le tauimasui ma se osofaʻiga DDoS faʻatatau i lau IP. Ae ui i lea, e oʻo mai i le taimi nei e leʻi i ai ni tulaga faʻapea, ma o tapoleni e aoga tele.

Hubs:
Python, Saogalemu faʻamatalaga, Polokalama, Faʻatonuga faʻaoga

pine:
SSH, Le gata, tapoleni, tapoleni, mailei, asycio
Mailei (tapa) mo so'oga SSH o'o mai

E le o se mea lilo o le Initaneti o se siʻosiʻomaga e sili ona leaga. O le taimi lava e te siiina ai se 'auʻaunaga, e faʻafuaseʻi lava ona tuʻuina atu i osofaʻiga tetele ma le tele o suʻega. Faataitaiga honeypot mai leoleo puipui e mafai ona e fa'atatauina le fua o lenei ta'avale lapisi. O le mea moni, i luga o le averesi server, 99% o fefaʻatauaiga atonu e leaga.

O le tapoleni o se uafu mailei e fa'aaogaina e fa'agesegese ai feso'ota'iga sau. Afai e feso'ota'i atu se vaega lona tolu i lenei uafu, e le mafai ona vave tapunia le feso'ota'iga. E tatau ona ia fa'aumatia ana puna'oa fa'aoga ma fa'atali se'ia uma le taimi o feso'ota'iga, pe fa'amutaina ma le lima.

O le tele lava o taimi, e fa'aaoga ai tapoleni mo le puipuiga. O le metotia na muamua fausia e puipuia mai anufe komepiuta. Ma o lea e mafai ona faʻaaogaina e faʻaleagaina ai olaga o tagata faʻasalalau ma tagata suʻesuʻe o loʻo galulue i le suʻesuʻeina lautele o tuatusi IP uma i se laina (faʻataʻitaʻiga i Habré: Austria, Ukraine).

O se tasi o pule o le polokalama e igoa ia Chris Wellons e foliga mai ua fiu e matamata i lenei faalumaina - ma na ia tusia se polokalama laitiiti Le gata, o se tapoleni mo SSH e faʻagesegese ai fesoʻotaʻiga ulufale mai. O le polokalame e tatalaina se taulaga (o le faʻaogaina o le taulaga mo suʻega o le 2222) ma faʻafoliga o se SSH server, ae o le mea moni e faʻavaeina se fesoʻotaʻiga e le gata ma le tagata o loʻo sau seia oʻo ina fiu. E mafai ona fa'aauau pea mo ni nai aso pe sili atu se'ia pa'u le tagata o tausia.

Fa'apipi'i o le fa'aoga:

$ make
$ ./endlessh &
$ ssh -p2222 localhost

O le fa'atinoina lelei o le tapoleni o le a tele atu alagaoa mai le tagata osofa'i nai lo oe. Ae e le o se mataupu o punaoa. Tusitala Na ia tusiao le polokalame e fai ma vaisu. I le taimi nei e 27 tagata faʻatau na puʻeina, o nisi o latou na fesoʻotaʻi mo vaiaso. I le tumutumuga o gaoioiga, e 1378 tagata na saisaitia mo le 20 itula!

I le faʻaogaina o le faʻaogaina, e manaʻomia le faʻapipiʻiina o le Endlessh server i luga o le taulaga masani 22, lea e tuʻituʻi ai le au faomea. O fautuaga mo le saogalemu masani e fautuaina i taimi uma le siitia o le SSH i se isi taulaga, lea e vave faʻaitiitia ai le tele o ogalaau i se faʻatonuga o le tele.

Fai mai Chris Wellons o lana polokalame e faʻaaogaina se parakalafa o le faʻamatalaga RFC 4253 i le SSH protocol. A mae'a loa ona fa'atūina se feso'ota'iga TCP, ae a'o le'i fa'aogaina fa'amatalaga, e tatau i itu e lua ona lafo se manoa fa'amaonia. Ma e iai foʻi se faʻamatalaga: "E MAFAI ona auina atu e le server isi laina o faʻamatalaga aʻo leʻi tuʻuina atu le laina faʻasologa". Ma leai se tapulaa i luga o le tele o nei faʻamatalaga, e tatau lava ona e amata laina taʻitasi ma SSH-.

O le mea tonu lea e fai e le polokalama Endlessh: o auina atu leai se gataaga tafega o fa'amaumauga fa'afuase'i, lea e ogatasi ma le RFC 4253, o lona uiga, lafo a'o le'i fa'amaonia, ma laina ta'itasi e amata ile SSH- ma e le sili atu i le 255 mataitusi, e aofia ai le uiga faaiu laina. I se tulaga lautele, o mea uma e tusa ai ma le tulaga masani.

Ona o le faaletonu, e faatali le polokalame mo le 10 sekone i le va o le auina atu o pepa. Ole mea lea e taofia ai le tagata o tausia mai le fa'agata, o lea o le a maileia e fa'avavau.

Talu ai ona o faʻamatalaga e tuʻuina atu aʻo leʻi faʻaogaina le cryptography, o le polokalame e matua faigofie lava. E le manaʻomia le faʻatinoina o soʻo se siphers ma lagolagoina le tele o protocols.

Na taumafai le tusitala e faʻamautinoa o loʻo faʻaaogaina e le faʻaogaina le itiiti ifo o punaoa ma galue atoatoa i luga o le masini. E le pei o antivirus faʻaonaponei ma isi "security system," e le tatau ona faʻagesegese lau komepiuta. Na mafai ona ia faʻaitiitia le faʻaogaina o feoaiga ma le mafaufau ona o le faʻaogaina o polokalama faʻapitoa. Afai na o le faʻalauiloaina o se isi faiga i luga o se fesoʻotaʻiga fou, ona mafai lea e le au osofaʻi osofaʻi ona faʻalauiloa se osofaʻiga DDoS e ala i le tatalaina o le tele o fesoʻotaʻiga e faʻaumatia punaoa i luga o le masini. E tasi le filo i le fesoʻotaʻiga e le o se filifiliga sili lea, aua o le fatu o le a faʻaumatia punaoa e pulea ai filo.

O le mafuaaga lena na filifilia ai e Chris Wellons le filifiliga sili ona mama mo Endlessh: o se server e tasi le filo poll(2), lea o loʻo faʻaaogaina e tagata o loʻo i totonu o le mailei toetoe lava a leai ni punaoa faʻaopoopo, e le faitaulia le mea autu i totonu o le fatu ma isi 78 paita mo le siakiina i Endlessh. Ina ia aloese mai le faʻasoaina o le mauaina ma le lafoina o pa puipui mo tagata taʻitoʻatasi, Endlessh tatala se socket avanoa tuusaʻo ma faʻaliliu saʻo TCP paʻu, faʻafefe toetoe o le TCP/IP faʻapipiʻi uma. E le manaʻomia lava le paʻu ulufale mai, aua matou te le fiafia i faʻamatalaga o loʻo oʻo mai.

Fai mai le tusitala i le taimi o lana polokalame leiloa e uiga i le i ai o le Python's asycio ma isi tapoleni. Afai na te iloa e uiga i le asycio, e mafai ona ia faʻaaogaina lona aoga i na o 18 laina i le Python:

import asyncio
import random

async def handler(_reader, writer):
try:
while True:
await asyncio.sleep(10)
writer.write(b'%xrn' % random.randint(0, 2**32))
await writer.drain()
except ConnectionResetError:
pass

async def main():
server = await asyncio.start_server(handler, '0.0.0.0', 2222)
async with server:
await server.serve_forever()

asyncio.run(main())

Asyncio e lelei mo le tusiaina o tapoleni. Mo se faʻataʻitaʻiga, o lenei matau o le a faʻamalo Firefox, Chrome, poʻo soʻo se isi tagata o loʻo taumafai e faʻafesoʻotaʻi i lau HTTP server mo le tele o itula:

import asyncio
import random

async def handler(_reader, writer):
writer.write(b'HTTP/1.1 200 OKrn')
try:
while True:
await asyncio.sleep(5)
header = random.randint(0, 2**32)
value = random.randint(0, 2**32)
writer.write(b'X-%x: %xrn' % (header, value))
await writer.drain()
except ConnectionResetError:
pass

async def main():
server = await asyncio.start_server(handler, '0.0.0.0', 8080)
async with server:
await server.serve_forever()

asyncio.run(main())

Tarpit o se meafaigaluega sili mo le faʻasalaina o tagata taufaaleaga i luga ole laiga. E moni, o loʻo i ai se tulaga lamatia, i se isi itu, o le tosina atu o latou mafaufau i amioga le masani a se server faapitoa. O se tasi atonu e mafaufau i le tauimasui ma se osofaʻiga DDoS faʻatatau i lau IP. Ae ui i lea, e oʻo mai i le taimi nei e leʻi i ai ni tulaga faʻapea, ma o tapoleni e aoga tele.

Mailei (tapa) mo so'oga SSH o'o mai

puna: www.habr.com

Faaopoopo i ai se faamatalaga