แกแแแแฃแแแ แแ แแ แแก, แ แแ แแแขแแ แแแขแ แซแแแแแ แแขแ แฃแแ แแแ แแแแ. แ แแแแ แช แแ แกแแ แแแ แก แแแแแฆแแแแ, แแก แแงแแกแแแ แแ แแฅแแแแแแแแ แแแ แแแกแแฃแ แจแแขแแแแแก แแ แแ แแแแแฏแแ แแ แกแแแแแ แแแแก. แฒแแแแแแแแ
Tarpit แแ แแก แฎแแคแแแแแก แแแ แขแ, แ แแแแแแช แแแแแแงแแแแแ แจแแแแแแแแแ แแแแจแแ แแแแก แจแแกแแแแแแแแแ. แแฃ แแแกแแแ แแฎแแ แแก แกแแกแขแแแ แแแฃแแแแจแแ แแแแ แแ แแแ แขแก, แแฅแแแ แแแ แจแแซแแแแ แกแฌแ แแคแแ แแแฎแฃแ แแ แแแแจแแ แ. แแแก แแแฃแฌแแแก แคแฃแญแแ แแแฎแแ แฏแแก แแแแแกแ แกแแกแขแแแแก แ แแกแฃแ แกแแแ แแ แแแแแแแ แแแแจแแ แแก แแ แแแก แแแแฌแฃแ แแแก, แแ แฎแแแแ แจแแฌแงแแแขแแก แแแ.
แงแแแแแแ แฎแจแแ แแ, แขแแ แแแขแแแ แแแแแแงแแแแแ แแแชแแแกแแแแก. แขแแฅแแแแ แแแ แแแแแ แจแแแฅแแแ แแแแแแฃแขแแ แฃแแ แญแแแแแกแแแ แแแกแแชแแแแ. แแฎแแ แแ แแแกแ แแแแแงแแแแแ แจแแกแแซแแแแแแแ แกแแแแแ แแแแกแ แแ แแแแแแแแ แแแแก แกแแชแแชแฎแแแก แแแกแแคแฃแญแแแแแ, แ แแแแแแแช แแแแแแแแฃแแแ แแ แแแ แแแแแแแ แงแแแแ IP แแแกแแแแ แแแก แคแแ แแ แกแแแแแ แแแแ (แแแแแแแแแแ Habrรฉ-แแ:
แกแแกแขแแแแก แแ แ-แแ แ แแแแแแแกแขแ แแขแแ แก, แกแแฎแแแแ แแ แแก แแแแแแกแก, แ แแแแ แช แฉแแแก, แแแแแแ แแ แแ แกแแ แชแฎแแแแแก แงแฃแ แแแ - แแ แแแ แแแฌแแ แ แแแขแแ แ แแ แแแ แแแ
แแแแฃแแแแฃแ แ แแ แแแ แแแแก แแแงแแแแแ:
$ make
$ ./endlessh &
$ ssh -p2222 localhost
แกแฌแแ แแ แแแแฎแแ แชแแแแแแฃแแ แขแแ แแแขแ แแแแแแแกแฎแแแแก แฃแคแ แ แแแข แ แแกแฃแ แกแก แฌแแแ แแแแแก, แแแแ แ แแฅแแแแแแ. แแแแ แแ แกแแฅแแ แ แแกแฃแ แกแแแแแช แแ แแ แแ แแก. แแแขแแ แ
แแแแ แแชแแฃแ แ แแแแแจแ, Endlessh แกแแ แแแ แ แฃแแแ แแงแแก แแแแแกแขแแแแ แแแฃแแ แฉแแแฃแแแแ แแ แแแ แข 22-แแ, แกแแแแช แฎแฃแแแแแแแ แแแกแแแ แแแแ แแแแแฃแแแแก. แฃแกแแคแ แแฎแแแแแก แกแขแแแแแ แขแฃแแ แ แแแแแแแแแชแแแแ แงแแแแแแแแก แแแแ แฉแแแแ SSH-แก แกแฎแแ แแแ แขแจแ แแแแแขแแแแก, แ แแช แแแฃแงแแแแแแแแ แแแชแแ แแแก แแฃแ แแแแแแแก แแแแแก แกแแแแแแก แ แแแแแแแแ.
แแ แแก แฃแแแแแกแ แแแแแแก, แ แแ แแแกแ แแ แแแ แแแ แแงแแแแแก แกแแแชแแคแแแแชแแแก แแ แ แแฃแแฅแขแก SSH-
.
แแก แแ แแก แแฃแกแขแแ แแก, แ แแกแแช Endlessh แแ แแแ แแแ แแแแแแแก: แแก แแแแแแแแก แแแฃแแแแแแแแ แจแแแแฎแแแแแ แแแแแ แแ แแแฃแแ แแแแแชแแแแแแก แแแแแแ, แ แแแแแแแช แจแแแกแแแแแแแ RFC 4253-แก, แแแฃ แแแแแแแแแ แแแขแแ แแแแชแแแแแ แแ แแแแแแฃแแ แฎแแแ แแฌแงแแแ SSH-
แแ แแ แแฆแแแแขแแแ 255 แกแแแแแแแก, แฎแแแแก แแแแ แกแแแแแแแก แฉแแแแแแ. แแแแแแแ, แงแแแแแคแแ แ แกแขแแแแแ แขแแก แแแฎแแแแแแแ.
แแแแฃแแแกแฎแแแแแ, แแ แแแ แแแ แแแแแแแ 10 แฌแแแก แแแแแขแแแแก แแแแแแแแแก แจแแ แแก. แแก แฎแแแก แฃแจแแแก แแแแแแขแแก แแ แแแก แแแแฌแฃแ แแแก, แแกแ แ แแ แแแแแแขแ แกแแแฃแแแแแ แแแ แฉแแแ แฎแแคแแแแจแ.
แแแแแแแแ แแแแแชแแแแแ แแแแแแแแแ แแ แแแขแแแ แแคแแแก แแแแแงแแแแแแแแ, แแ แแแ แแแ แซแแแแแ แแแ แขแแแแ. แแแก แแ แกแญแแ แแแแ แ แแแแ แจแแคแ แแแแก แแแแแ แแแ แแ แแฎแแ แก แฃแญแแ แก แแ แแแแ แแ แแขแแแแแก.
แแแขแแ แ แชแแแแแแแ แฃแแ แฃแแแแแงแแก, แ แแ แแแแฃแแแแฃแ แ แแ แแแ แแแ แแแแฎแแแ แก แแแแแแแแฃแ แ แแกแฃแ แกแแแก แแ แกแ แฃแแแแ แจแแฃแแฉแแแแแแ แแฃแจแแแแก แแแแฅแแแแแ. แแแแแแแแ แแแ แแแขแแแแ แฃแกแแแแกแแแ แแ แกแฎแแ โแฃแกแแคแ แแฎแแแแแก แกแแกแขแแแแแแกแแแโ แแแแกแฎแแแแแแแ, แแแ แแ แฃแแแ แจแแแแแแแก แแฅแแแแ แแแแแแฃแขแแ แ. แแแ แแแแฎแแ แฎแ แขแ แแคแแแแก แแ แแแฎแกแแแ แแแแก แแแฎแแแ แแแแก แแแแแแฃแแแแแ แจแแแชแแ แแแ แแแแแ แฃแคแ แ แแแแแแ แฃแแ แแ แแแ แแแฃแแ แฃแแ แฃแแแแแงแแคแแก แแแแแ แแแแก แแแแ. แแฃ แแก แฃแแ แแแแ แฌแแแแแฌแงแแแแ แชแแแแ แแ แแชแแกแก แแฎแแ แแแแจแแ แแ, แแแจแแ แแแขแแแชแแฃแ แแแแแแแกแฎแแแแแแก แจแแฃแซแแแแ แแแแแฎแแ แชแแแแแ DDoS แจแแขแแแ แแ แแแแแ แแแแจแแ แแก แแแฎแกแแแ, แ แแแ แแแแแฌแฃแ แแ แ แแกแฃแ แกแแแ แแแแฅแแแแแ. แแ แแ แซแแคแ แแแแ แแแแจแแ แแ แแกแแแ แแ แแ แแก แกแแฃแแแแแกแ แแแ แแแแขแ, แ แแแแแ แแแ แแแ แฎแแ แฏแแแก แ แแกแฃแ แกแแแก แซแแคแแแแก แแแ แแแแจแ.
แแแแขแแแแช แแ แแก แฃแแแแแกแแ แแแ แฉแแ แงแแแแแแ แแกแฃแแฃแฅแ แแแ แแแแขแ Endlessh-แแกแแแแก: แแ แแแแแแแแแแ แกแแ แแแ แ poll(2)
, แกแแแแช แฎแแคแแแแจแ แแงแแคแ แแแแแแขแแแ แแ แแฅแขแแแฃแแแ แแ แแแแฎแแแ แแ แแแแแขแแแแ แ แแกแฃแ แกแแแก, แแ แฉแแแแแแแ แกแแแแขแแก แแแแแฅแขแก แแแ แแแจแ แแ แแแแแ 78 แแแแขแก Endlessh-แจแ แแ แแฅแแแแแกแแแแก. แแแแแแฃแแ แแแแแแขแแกแแแแก แแแฆแแแแกแ แแ แแแแแแแแแก แแฃแคแแ แแแแก แแแแแงแแคแแก แแแแแแแ แแกแแชแแแแแแแ, Endlessh แฎแกแแแก แแแ แแแแแ แ แฌแแแแแแก แกแแแแขแก แแ แแแ แแแแแ แแแ แแแแแก TCP แแแแแขแแแก, แแแแ แแแก แแแแแ แแแแฅแแแก แแแแแ แแแแ แแชแแฃแแ แกแแกแขแแแแก TCP/IP แแแกแขแแก. แจแแแแแแแแแ แแฃแคแแ แ แกแแแ แแแ แแ แแ แแก แกแแญแแ แ, แ แแแแแ แฉแแแ แแ แแแแแแขแแ แแกแแแก แจแแแแแแแแแ แแแแแชแแแแแ.
แแแแก แแแขแแ แ แแแกแ แแแแแชแแแแก แแ แแก แแแแแแก
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 แแแแแแฃแ แแ แขแแ แแแขแแแแก แแแกแแฌแแ แแ. แแแแแแแแแ, แแก แฐแฃแ แแแงแแแแแก Firefox-แก, Chrome-แก แแ แแแแแกแแแแ แกแฎแแ แแแแแแขแก, แ แแแแแแช แชแแแแแแก แแแฃแแแแจแแ แแแก แแฅแแแแก HTTP แกแแ แแแ แก แแ แแแแแ แกแแแแแก แแแแแแแแแแแจแ:
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 แแ แแก แจแแกแแแแจแแแแ แแแกแขแ แฃแแแแขแ แแแแแแ แแฃแแแแแแก แแแกแฏแแกแแแแก. แแแ แแแแแ, แแ แกแแแแแก แแแ แแแแฃแแ แ แแกแแ, แแแ แแฅแแ, แแแแ แงแฃแ แแแฆแแแแก แแแฅแชแแแ แแแแแ แแขแฃแแ แกแแ แแแ แแก แฃแฉแแแฃแแ แฅแชแแแแแ. แแแแแแก
แฐแแแแแ:
แแแแแแ, แแแคแแ แแแชแแแก แฃแกแแคแ แแฎแแแแ, แแ แแแ แแแฃแแ แฃแแ แฃแแแแแงแแคแ, แกแแกแขแแแแก แแแแแแแกแขแ แแ แแแ
Tags:
SSH, Endlessh, tarpit, tarpit, trap, asycio
แฎแแคแแแแ (tarpit) แจแแแแแแแแแ SSH แแแแจแแ แแแแกแแแแก
แกแแแแฃแแแ แแ แแ แแก, แ แแ แแแขแแ แแแขแ แซแแแแแ แแขแ แฃแแ แแแ แแแแ. แ แแแแ แช แแ แกแแ แแแ แก แแแแแฆแแแแ, แแก แแงแแกแแแ แแ แแฅแแแแแแแแ แแแ แแแกแแฃแ แจแแขแแแแแก แแ แแ แแแแแฏแแ แแ แกแแแแแ แแแแก. แฒแแแแแแแแ
Tarpit แแ แแก แฎแแคแแแแแก แแแ แขแ, แ แแแแแแช แแแแแแงแแแแแ แจแแแแแแแแแ แแแแจแแ แแแแก แจแแกแแแแแแแแแ. แแฃ แแแกแแแ แแฎแแ แแก แกแแกแขแแแ แแแฃแแแแจแแ แแแแ แแ แแแ แขแก, แแฅแแแ แแแ แจแแซแแแแ แกแฌแ แแคแแ แแแฎแฃแ แแ แแแแจแแ แ. แแแก แแแฃแฌแแแก แคแฃแญแแ แแแฎแแ แฏแแก แแแแแกแ แกแแกแขแแแแก แ แแกแฃแ แกแแแ แแ แแแแแแแ แแแแจแแ แแก แแ แแแก แแแแฌแฃแ แแแก, แแ แฎแแแแ แจแแฌแงแแแขแแก แแแ.
แงแแแแแแ แฎแจแแ แแ, แขแแ แแแขแแแ แแแแแแงแแแแแ แแแชแแแกแแแแก. แขแแฅแแแแ แแแ แแแแแ แจแแแฅแแแ แแแแแแฃแขแแ แฃแแ แญแแแแแกแแแ แแแกแแชแแแแ. แแฎแแ แแ แแแกแ แแแแแงแแแแแ แจแแกแแซแแแแแแแ แกแแแแแ แแแแกแ แแ แแแแแแแแ แแแแก แกแแชแแชแฎแแแก แแแกแแคแฃแญแแแแแ, แ แแแแแแแช แแแแแแแแฃแแแ แแ แแแ แแแแแแแ แงแแแแ IP แแแกแแแแ แแแก แคแแ แแ แกแแแแแ แแแแ (แแแแแแแแแแ Habrรฉ-แแ:
แกแแกแขแแแแก แแ แ-แแ แ แแแแแแแกแขแ แแขแแ แก, แกแแฎแแแแ แแ แแก แแแแแแกแก, แ แแแแ แช แฉแแแก, แแแแแแ แแ แแ แกแแ แชแฎแแแแแก แงแฃแ แแแ - แแ แแแ แแแฌแแ แ แแแขแแ แ แแ แแแ แแแ
แแแแฃแแแแฃแ แ แแ แแแ แแแแก แแแงแแแแแ:
$ make
$ ./endlessh &
$ ssh -p2222 localhost
แกแฌแแ แแ แแแแฎแแ แชแแแแแแฃแแ แขแแ แแแขแ แแแแแแแกแฎแแแแก แฃแคแ แ แแแข แ แแกแฃแ แกแก แฌแแแ แแแแแก, แแแแ แ แแฅแแแแแแ. แแแแ แแ แกแแฅแแ แ แแกแฃแ แกแแแแแช แแ แแ แแ แแก. แแแขแแ แ
แแแแ แแชแแฃแ แ แแแแแจแ, Endlessh แกแแ แแแ แ แฃแแแ แแงแแก แแแแแกแขแแแแ แแแฃแแ แฉแแแฃแแแแ แแ แแแ แข 22-แแ, แกแแแแช แฎแฃแแแแแแแ แแแกแแแ แแแแ แแแแแฃแแแแก. แฃแกแแคแ แแฎแแแแแก แกแขแแแแแ แขแฃแแ แ แแแแแแแแแชแแแแ แงแแแแแแแแก แแแแ แฉแแแแ SSH-แก แกแฎแแ แแแ แขแจแ แแแแแขแแแแก, แ แแช แแแฃแงแแแแแแแแ แแแชแแ แแแก แแฃแ แแแแแแแก แแแแแก แกแแแแแแก แ แแแแแแแแ.
แแ แแก แฃแแแแแกแ แแแแแแก, แ แแ แแแกแ แแ แแแ แแแ แแงแแแแแก แกแแแชแแคแแแแชแแแก แแ แ แแฃแแฅแขแก SSH-
.
แแก แแ แแก แแฃแกแขแแ แแก, แ แแกแแช Endlessh แแ แแแ แแแ แแแแแแแก: แแก แแแแแแแแก แแแฃแแแแแแแแ แจแแแแฎแแแแแ แแแแแ แแ แแแฃแแ แแแแแชแแแแแแก แแแแแแ, แ แแแแแแแช แจแแแกแแแแแแแ RFC 4253-แก, แแแฃ แแแแแแแแแ แแแขแแ แแแแชแแแแแ แแ แแแแแแฃแแ แฎแแแ แแฌแงแแแ SSH-
แแ แแ แแฆแแแแขแแแ 255 แกแแแแแแแก, แฎแแแแก แแแแ แกแแแแแแแก แฉแแแแแแ. แแแแแแแ, แงแแแแแคแแ แ แกแขแแแแแ แขแแก แแแฎแแแแแแแ.
แแแแฃแแแกแฎแแแแแ, แแ แแแ แแแ แแแแแแแ 10 แฌแแแก แแแแแขแแแแก แแแแแแแแแก แจแแ แแก. แแก แฎแแแก แฃแจแแแก แแแแแแขแแก แแ แแแก แแแแฌแฃแ แแแก, แแกแ แ แแ แแแแแแขแ แกแแแฃแแแแแ แแแ แฉแแแ แฎแแคแแแแจแ.
แแแแแแแแ แแแแแชแแแแแ แแแแแแแแแ แแ แแแขแแแ แแคแแแก แแแแแงแแแแแแแแ, แแ แแแ แแแ แซแแแแแ แแแ แขแแแแ. แแแก แแ แกแญแแ แแแแ แ แแแแ แจแแคแ แแแแก แแแแแ แแแ แแ แแฎแแ แก แฃแญแแ แก แแ แแแแ แแ แแขแแแแแก.
แแแขแแ แ แชแแแแแแแ แฃแแ แฃแแแแแงแแก, แ แแ แแแแฃแแแแฃแ แ แแ แแแ แแแ แแแแฎแแแ แก แแแแแแแแฃแ แ แแกแฃแ แกแแแก แแ แกแ แฃแแแแ แจแแฃแแฉแแแแแแ แแฃแจแแแแก แแแแฅแแแแแ. แแแแแแแแ แแแ แแแขแแแแ แฃแกแแแแกแแแ แแ แกแฎแแ โแฃแกแแคแ แแฎแแแแแก แกแแกแขแแแแแแกแแแโ แแแแกแฎแแแแแแแ, แแแ แแ แฃแแแ แจแแแแแแแก แแฅแแแแ แแแแแแฃแขแแ แ. แแแ แแแแฎแแ แฎแ แขแ แแคแแแแก แแ แแแฎแกแแแ แแแแก แแแฎแแแ แแแแก แแแแแแฃแแแแแ แจแแแชแแ แแแ แแแแแ แฃแคแ แ แแแแแแ แฃแแ แแ แแแ แแแฃแแ แฃแแ แฃแแแแแงแแคแแก แแแแแ แแแแก แแแแ. แแฃ แแก แฃแแ แแแแ แฌแแแแแฌแงแแแแ แชแแแแ แแ แแชแแกแก แแฎแแ แแแแจแแ แแ, แแแจแแ แแแขแแแชแแฃแ แแแแแแแกแฎแแแแแแก แจแแฃแซแแแแ แแแแแฎแแ แชแแแแแ DDoS แจแแขแแแ แแ แแแแแ แแแแจแแ แแก แแแฎแกแแแ, แ แแแ แแแแแฌแฃแ แแ แ แแกแฃแ แกแแแ แแแแฅแแแแแ. แแ แแ แซแแคแ แแแแ แแแแจแแ แแ แแกแแแ แแ แแ แแก แกแแฃแแแแแกแ แแแ แแแแขแ, แ แแแแแ แแแ แแแ แฎแแ แฏแแแก แ แแกแฃแ แกแแแก แซแแคแแแแก แแแ แแแแจแ.
แแแแขแแแแช แแ แแก แฃแแแแแกแแ แแแ แฉแแ แงแแแแแแ แแกแฃแแฃแฅแ แแแ แแแแขแ Endlessh-แแกแแแแก: แแ แแแแแแแแแแ แกแแ แแแ แ poll(2)
, แกแแแแช แฎแแคแแแแจแ แแงแแคแ แแแแแแขแแแ แแ แแฅแขแแแฃแแแ แแ แแแแฎแแแ แแ แแแแแขแแแแ แ แแกแฃแ แกแแแก, แแ แฉแแแแแแแ แกแแแแขแแก แแแแแฅแขแก แแแ แแแจแ แแ แแแแแ 78 แแแแขแก Endlessh-แจแ แแ แแฅแแแแแกแแแแก. แแแแแแฃแแ แแแแแแขแแกแแแแก แแแฆแแแแกแ แแ แแแแแแแแแก แแฃแคแแ แแแแก แแแแแงแแคแแก แแแแแแแ แแกแแชแแแแแแแ, Endlessh แฎแกแแแก แแแ แแแแแ แ แฌแแแแแแก แกแแแแขแก แแ แแแ แแแแแ แแแ แแแแแก TCP แแแแแขแแแก, แแแแ แแแก แแแแแ แแแแฅแแแก แแแแแ แแแแ แแชแแฃแแ แกแแกแขแแแแก TCP/IP แแแกแขแแก. แจแแแแแแแแแ แแฃแคแแ แ แกแแแ แแแ แแ แแ แแก แกแแญแแ แ, แ แแแแแ แฉแแแ แแ แแแแแแขแแ แแกแแแก แจแแแแแแแแแ แแแแแชแแแแแ.
แแแแก แแแขแแ แ แแแกแ แแแแแชแแแแก แแ แแก แแแแแแก
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 แแแแแแฃแ แแ แขแแ แแแขแแแแก แแแกแแฌแแ แแ. แแแแแแแแแ, แแก แฐแฃแ แแแงแแแแแก Firefox-แก, Chrome-แก แแ แแแแแกแแแแ แกแฎแแ แแแแแแขแก, แ แแแแแแช แชแแแแแแก แแแฃแแแแจแแ แแแก แแฅแแแแก HTTP แกแแ แแแ แก แแ แแแแแ แกแแแแแก แแแแแแแแแแแจแ:
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 แแ แแก แจแแกแแแแจแแแแ แแแกแขแ แฃแแแแขแ แแแแแแ แแฃแแแแแแก แแแกแฏแแกแแแแก. แแแ แแแแแ, แแ แกแแแแแก แแแ แแแแฃแแ แ แแกแแ, แแแ แแฅแแ, แแแแ แงแฃแ แแแฆแแแแก แแแฅแชแแแ แแแแแ แแขแฃแแ แกแแ แแแ แแก แฃแฉแแแฃแแ แฅแชแแแแแ. แแแแแแก
แฌแงแแ แ: www.habr.com