ืขืก ืืื ืงืืื ืกืื ืึทื ืืขืจ ืืื ืืขืจื ืขืฅ ืืื ืึท ืืืืขืจ ืคืืึทื ืืืขื ืกืืืืืืข. ืืื ืืึทืื ืืื ืืืจ ืืึทืคึผื ืึท ืกืขืจืืืขืจ, ืขืก ืืื ืืืืื ืืื ืืขืจืืขื ืืง ืฆื ืืึทืกืืื ืื ืคืืื ืืื ืงืืืคื ืกืงืึทื ื. ืคึฟืึทืจ ืืืึทืฉืคึผืื
Tarpit ืืื ืึท ืืจืึทืคึผ ืคึผืึธืจื ืืขื ืืฆื ืฆื ืคึผืึทืืขืืขื ืื ืงืึทืืื ื ืงืึทื ืขืงืฉืึทื ื. ืืืื ืึท ืืจืื-ืคึผืึทืจืืื ืกืืกืืขื ืงืึทื ืขืงืฅ ืฆื ืืขื ืคึผืึธืจื, ืืืจ ืืืขื ื ืืฉื ืงืขื ืขื ืฆื ืืขืฉืืืื ื ืคืึทืจืืึทืื ืื ืงืฉืจ. ืื ืืืขื ืืึธืื ืฆื ืืืืกื ืืืจ ืกืืกืืขื ืจืขืกืืจืกื ืืื ืืืึทืจืื ืืื ืื ืงืฉืจ ืืืืืึทืืฅ, ืึธืืขืจ ืืึทื ืืืึทืื ืคืึทืจืขื ืืืงื.
ืจืืึฟ ืึธืคื, ืืึทืจืคึผืืฅ ืืขื ืขื ืืขื ืืฆื ืคึฟืึทืจ ืฉืืฅ. ืื ืืขืื ืืง ืืื ืืขืืืขื ืขืจืฉืืขืจ ืืขืืืขืืึธืคึผืขื ืฆื ืืึทืฉืืฆื ืงืขืื ืงืึธืืคึผืืืืขืจ ืืืึธืจืืก. ืืื ืืืฆื ืขืก ืงืขื ืขื ืืืื ืืขื ืืฆื ืฆื ืฆืขืฉืืขืจื ืื ืืขืื ืคืื ืกืคึผืึทืืืขืจืก ืืื ืจืืกืขืจืืฉืขืจื ืืืึธืก ืืขื ืขื ืคืึทืจืงื ืึทืกื ืืื ืืจืืื ืกืงืึทื ืื ื ืคืื ืึทืืข IP ืึทืืจืขืกืขืก ืืื ืึท ืจืืืขืจื ( ืืืืฉืคืืื ืืืืฃ Habrรฉ:
ืืืื ืขืจ ืคืื ืื ืกืืกืืขื ืึทืืืื ืืกืืจืึทืืึธืจืก ืืืื ื ืึธืืขื Chris Wellons ืืื ืืฉืืขืืช ืืื ืคืื ืืืึทืืฉืื ื ืืขื ืฉืึทื ื - ืืื ืขืจ ืืขืฉืจืืื ืึท ืงืืืื ืคึผืจืึธืืจืึทื
ืื ืกืืึทืืืจืื ื ืคืื ืื ืึทืคึผืืึทืงืืืฉืึทื:
$ make
$ ./endlessh &
$ ssh -p2222 localhost
ื ืจืขืื ืืืคึผืืึทืืขื ืึทื ืืึทืจืคึผืื ืืืขื ื ืขืืขื ืืขืจ ืจืขืกืืจืกื ืคืื ืื ืึทืืึทืงืขืจ ืืื ืคืื ืืืจ. ืืืขืจ ืขืก ืืื ื ืืฉื ืืคืืื ืึท ืขื ืื ืคืื ืจืขืกืืจืกื. ืืืืจ
ืืื ืึทืคึผืขืจืืืืื ื ืืึธืืข, ืื Endlessh ืกืขืจืืืขืจ ืืึทืจืฃ ืืืื ืืื ืกืืึทืืืจื ืืืืฃ ืื ืืขืืืืื ืืืขื ืคึผืึธืจื 22, ืืื ืืืืืืึทื ืก ืงืืึทืคึผื ืืึทืกืืื. ื ืึธืจืืึทื ืืืืขืจืืืื ืจืขืงืึทืืึทื ืืืืฉืึทื ื ืฉืืขื ืืืง ืจืขืงืึธืืขื ืืืจื ืฆื ืึทืจืืืขืจืคืืจื SSH ืฆื ืึท ืึทื ืืขืจืฉ ืคึผืึธืจื, ืืืึธืก ืืื ืจืึทืืืกืึทื ืื ืืจืืืก ืคืื ืืึธืืก ืืื ืึท ืกืืจ ืคืื ืืึทืื ืึทืืื.
Chris Wellons ืืืื ืึทื ืืืื ืคึผืจืึธืืจืึทื ื ืืฆื ืืืื ืคึผืึทืจืึทืืจืึทืฃ ืคืื ืื ืืึทืฉืจืืึทืืื ื SSH-
.
ืืึธืก ืืื ืคึผืื ืงื ืืืึธืก ืื Endlessh ืคึผืจืึธืืจืึทื ืืื: ืขืก ืกืขื ืื ืกืึธืฃ ืืืึทื ืคืื ืจืึทื ืืึทืืื ืืืฉืขื ืขืจืืืืึทื ืืึทืื, ืืืึธืก ื ืึธืืงืืืขื ืืื RFC 4253, ืืึธืก ืืื, ืฉืืงื ืืืืืขืจ ืึธืืขื ืืึทืงืืืฉืึทื, ืืื ืืขืืขืจ ืฉืืจื ืืืืื ืืื SSH-
ืืื ืืื ื ืืฉื ืืงืกืื 255 ืืืชืืืช, ืึทืจืืึทื ืืขืจืขืื ื ืื ืฉืืจื ืกืึธืฃ ืืึทืจืึทืงืืขืจ. ืืื ืึทืืืขืืืื, ืึทืืฅ ืืื ืืืื ืื ื ืึธืจืืึทื.
ืืืจื ืคืขืืืงืืึทื, ืื ืคึผืจืึธืืจืึทื ืืืืืฅ 10 ืกืขืงืื ืืขืก ืฆืืืืฉื ืฉืืงื ืคึผืึทืงืืฅ. ืืึธืก ืคึผืจืืืืขื ืฅ ืืขื ืงืืืขื ื ืฆื ืืืื ืืืืื ืืืืก, ืึทืืื ืืขืจ ืงืืืขื ื ืืืขื ืืืื ืืจืึทืคึผื ืืืืฃ ืืืืืืง.
ืืื ื ืื ืืึทืื ืืขื ืขื ืืขืฉืืงื ืืืืืขืจ ืงืจืืคึผืืึธืืจืึทืคื ืืื ืืขืืืขื ืื, ืื ืคึผืจืึธืืจืึทื ืืื ืืึธืจ ืคึผืฉืื. ืขืก ืืื ื ืืฉื ืืึทืจืคึฟื ืฆื ืื ืกืืจืืืขื ื ืงืืื ืกืืคืขืจืก ืืื ืฉืืืฆื ืงืืืคื ืคึผืจืึธืืึธืงืึธืืก.
ืืขืจ ืืืืจ ืืขืคืจืืืื ืฆื ืขื ืฉืืจ ืึทื ืื ื ืืฆื ืงืึทื ืกืืื ืึท ืืื ืืืื ืคืื ืจืขืกืืจืกื ืืื ืึทืจืืขื ืืึธืจ ืึทื ื ืึธืืืืกื ืืืืฃ ืื ืืึทืฉืื. ื ืื ืขื ืืขื ืืึธืืขืจื ืึทื ืืืืืืจืืก ืืื ืื ืืขืจืข "ืืืืขืจืืืื ืกืืกืืขืืขื," ืขืก ืืึธื ื ืืฉื ืคึผืึทืืขืืขื ืืืื ืงืึธืืคึผืืืืขืจ. ืขืจ ืืขืจืืื ืฆื ืืื ืึทืืืื ืืืืืข ืคืึทืจืงืขืจ ืืื ืืึผืจืื ืงืึทื ืกืึทืืฉืึทื ืจืขืื ืฆื ืึท ืืืกื ืืขืจ ืืืืจืข ืืืคึผืืึทืืขื ืืืืฉืึทื ืคืื ืืืืืืืืืจื. ืืืื ืขืก ืคืฉืื ืืึธื ืืฉื ืึท ืืึทืืื ืืขืจ ืคึผืจืึธืฆืขืก ืืืืฃ ืึท ื ืืึทืข ืงืฉืจ, ืคึผืึธืืขื ืฆืืขื ืึทืืึทืงืขืจื ืงืขื ืงืึทืืขืจ ืึท DDoS ืืึทืคืึทืื ืืืจื ืขืคื ืงืืืคื ืงืึทื ืขืงืฉืึทื ื ืฆื ืืืกืืึทืืขืจื ืจืขืกืืจืกื ืืืืฃ ืื ืืึทืฉืื. ืืืื ืคืึธืืขื ืคึผืขืจ ืงืฉืจ ืืื ืืืื ื ืืฉื ืืขืจ ืืขืกืืขืจ ืึธืคึผืฆืืข, ืืืืึทื ืื ืงืขืจื ืืืขื ืืืืกื ืจืขืกืืจืกื ืฆื ืคืืจื ืคึฟืขืืขื.
ืึทื ืก ืืืึธืก Chris Wellons ืืืืกืืขืจืืืืืื ืื ืืขืจืกื ืืืืืืืืื ืึธืคึผืฆืืข ืคึฟืึทืจ Endlessh: ืึท ืืืื-ืืจืขืืื ืกืขืจืืืขืจ poll(2)
, ืืื ืื ืงืืืืึทื ืฅ ืืื ืื ืืจืึทืคึผ ืคืึทืจื ืืฆื ืืืขื ืงืืื ืขืงืกืืจืข ืจืขืกืืจืกื, ื ืื ืจืขืื ื ืื ืืึธืืขื ืืืืคืขืฅ ืืื ืื ืงืขืจื ืืื ื ืึธื 78 ืืืืขืก ืคึฟืึทืจ ืืจืึทืงืื ื ืืื ืขื ืืืขืกืฉ. ืฆื ืืืกืืืืื ืฆื ืึทืืึทืงืืื ืืึทืงืืืขื ืืื ืฉืืงื ืืึทืคืขืจื ืคึฟืึทืจ ืืขืืขืจ ืงืืืขื ื, Endlessh ืึธืคึผืขื ืก ืึท ืืืจืขืงื ืึทืงืกืขืก ืืึธืืขื ืืื ืืจืึทื ืกืืืืฅ ืืงืคึผ ืคึผืึทืงืืฅ ืืืืึทื, ืืืืคึผืึทืกืื ื ืึผืืขื ืื ืืื ืฆืข ืึธืคึผืขืจืืืืื ื ืกืืกืืขื ืืงืคึผ / 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 ืืื ืืืขืึทื ืคึฟืึทืจ ืฉืจืืืื ืืึทืจืคึผืืฅ. ืคึฟืึทืจ ืืืึทืฉืคึผืื, ืืขื ืงืจืืง ืืืขื ืคืจืืจื ืคืืจืขืคืึธืงืก, ืงืจืึธืื ืึธืืขืจ ืงืืื ืื ืืขืจืข ืงืืืขื ื ืืืึธืก ืืื ืืจืืื ื ืฆื ืคืึทืจืืื ืื ืฆื ืืืื ืืืืคึผ ืกืขืจืืืขืจ ืคึฟืึทืจ ืคืืืข ืฉืขื:
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 ืืื ืึท ืืจืืืก ืืขืฆืืึทื ืคึฟืึทืจ ืืึทืฉืืจืึธืคื ืึธื ืืืื ืืืืื. ืืืช, ืขืก ืืื ืขืืืขืืข ืจืืืืงืืจื, ืืืืฃ ืื ืคืึทืจืงืขืจื, ืฆื ืฆืืขื ืืืืขืจ ืืคืืขืจืงืืึทืืงืืื ืฆื ืื ืืืืขืืืืื ืืืขื ื ืึทืืืจ ืคืื ืึท ืืึทืืื ืืขืจ ืกืขืจืืืขืจ. ืขืืขืฆืขืจ
ืืึทืื:
ืคึผืืืืึธื, ืืื ืคึฟืึธืจืืึทืฆืืข ืืืืขืจืืืื, ืืืืืืืืืจื, ืกืืกืืขื ืึทืืืื ืืกืืจืึทืฆืืข
ืืึทืืก:
SSH, Endlessh, Tarpit, Tarpit, Trap, Asycio
ืืจืึทืคึผ (ืืึทืจืคึผืื) ืคึฟืึทืจ ืื ืงืึทืืื ื SSH ืงืึทื ืขืงืฉืึทื ื
ืขืก ืืื ืงืืื ืกืื ืึทื ืืขืจ ืืื ืืขืจื ืขืฅ ืืื ืึท ืืืืขืจ ืคืืึทื ืืืขื ืกืืืืืืข. ืืื ืืึทืื ืืื ืืืจ ืืึทืคึผื ืึท ืกืขืจืืืขืจ, ืขืก ืืื ืืืืื ืืื ืืขืจืืขื ืืง ืฆื ืืึทืกืืื ืื ืคืืื ืืื ืงืืืคื ืกืงืึทื ื. ืคึฟืึทืจ ืืืึทืฉืคึผืื
Tarpit ืืื ืึท ืืจืึทืคึผ ืคึผืึธืจื ืืขื ืืฆื ืฆื ืคึผืึทืืขืืขื ืื ืงืึทืืื ื ืงืึทื ืขืงืฉืึทื ื. ืืืื ืึท ืืจืื-ืคึผืึทืจืืื ืกืืกืืขื ืงืึทื ืขืงืฅ ืฆื ืืขื ืคึผืึธืจื, ืืืจ ืืืขื ื ืืฉื ืงืขื ืขื ืฆื ืืขืฉืืืื ื ืคืึทืจืืึทืื ืื ืงืฉืจ. ืื ืืืขื ืืึธืื ืฆื ืืืืกื ืืืจ ืกืืกืืขื ืจืขืกืืจืกื ืืื ืืืึทืจืื ืืื ืื ืงืฉืจ ืืืืืึทืืฅ, ืึธืืขืจ ืืึทื ืืืึทืื ืคืึทืจืขื ืืืงื.
ืจืืึฟ ืึธืคื, ืืึทืจืคึผืืฅ ืืขื ืขื ืืขื ืืฆื ืคึฟืึทืจ ืฉืืฅ. ืื ืืขืื ืืง ืืื ืืขืืืขื ืขืจืฉืืขืจ ืืขืืืขืืึธืคึผืขื ืฆื ืืึทืฉืืฆื ืงืขืื ืงืึธืืคึผืืืืขืจ ืืืึธืจืืก. ืืื ืืืฆื ืขืก ืงืขื ืขื ืืืื ืืขื ืืฆื ืฆื ืฆืขืฉืืขืจื ืื ืืขืื ืคืื ืกืคึผืึทืืืขืจืก ืืื ืจืืกืขืจืืฉืขืจื ืืืึธืก ืืขื ืขื ืคืึทืจืงื ืึทืกื ืืื ืืจืืื ืกืงืึทื ืื ื ืคืื ืึทืืข IP ืึทืืจืขืกืขืก ืืื ืึท ืจืืืขืจื ( ืืืืฉืคืืื ืืืืฃ Habrรฉ:
ืืืื ืขืจ ืคืื ืื ืกืืกืืขื ืึทืืืื ืืกืืจืึทืืึธืจืก ืืืื ื ืึธืืขื Chris Wellons ืืื ืืฉืืขืืช ืืื ืคืื ืืืึทืืฉืื ื ืืขื ืฉืึทื ื - ืืื ืขืจ ืืขืฉืจืืื ืึท ืงืืืื ืคึผืจืึธืืจืึทื
ืื ืกืืึทืืืจืื ื ืคืื ืื ืึทืคึผืืึทืงืืืฉืึทื:
$ make
$ ./endlessh &
$ ssh -p2222 localhost
ื ืจืขืื ืืืคึผืืึทืืขื ืึทื ืืึทืจืคึผืื ืืืขื ื ืขืืขื ืืขืจ ืจืขืกืืจืกื ืคืื ืื ืึทืืึทืงืขืจ ืืื ืคืื ืืืจ. ืืืขืจ ืขืก ืืื ื ืืฉื ืืคืืื ืึท ืขื ืื ืคืื ืจืขืกืืจืกื. ืืืืจ
ืืื ืึทืคึผืขืจืืืืื ื ืืึธืืข, ืื Endlessh ืกืขืจืืืขืจ ืืึทืจืฃ ืืืื ืืื ืกืืึทืืืจื ืืืืฃ ืื ืืขืืืืื ืืืขื ืคึผืึธืจื 22, ืืื ืืืืืืึทื ืก ืงืืึทืคึผื ืืึทืกืืื. ื ืึธืจืืึทื ืืืืขืจืืืื ืจืขืงืึทืืึทื ืืืืฉืึทื ื ืฉืืขื ืืืง ืจืขืงืึธืืขื ืืืจื ืฆื ืึทืจืืืขืจืคืืจื SSH ืฆื ืึท ืึทื ืืขืจืฉ ืคึผืึธืจื, ืืืึธืก ืืื ืจืึทืืืกืึทื ืื ืืจืืืก ืคืื ืืึธืืก ืืื ืึท ืกืืจ ืคืื ืืึทืื ืึทืืื.
Chris Wellons ืืืื ืึทื ืืืื ืคึผืจืึธืืจืึทื ื ืืฆื ืืืื ืคึผืึทืจืึทืืจืึทืฃ ืคืื ืื ืืึทืฉืจืืึทืืื ื SSH-
.
ืืึธืก ืืื ืคึผืื ืงื ืืืึธืก ืื Endlessh ืคึผืจืึธืืจืึทื ืืื: ืขืก ืกืขื ืื ืกืึธืฃ ืืืึทื ืคืื ืจืึทื ืืึทืืื ืืืฉืขื ืขืจืืืืึทื ืืึทืื, ืืืึธืก ื ืึธืืงืืืขื ืืื RFC 4253, ืืึธืก ืืื, ืฉืืงื ืืืืืขืจ ืึธืืขื ืืึทืงืืืฉืึทื, ืืื ืืขืืขืจ ืฉืืจื ืืืืื ืืื SSH-
ืืื ืืื ื ืืฉื ืืงืกืื 255 ืืืชืืืช, ืึทืจืืึทื ืืขืจืขืื ื ืื ืฉืืจื ืกืึธืฃ ืืึทืจืึทืงืืขืจ. ืืื ืึทืืืขืืืื, ืึทืืฅ ืืื ืืืื ืื ื ืึธืจืืึทื.
ืืืจื ืคืขืืืงืืึทื, ืื ืคึผืจืึธืืจืึทื ืืืืืฅ 10 ืกืขืงืื ืืขืก ืฆืืืืฉื ืฉืืงื ืคึผืึทืงืืฅ. ืืึธืก ืคึผืจืืืืขื ืฅ ืืขื ืงืืืขื ื ืฆื ืืืื ืืืืื ืืืืก, ืึทืืื ืืขืจ ืงืืืขื ื ืืืขื ืืืื ืืจืึทืคึผื ืืืืฃ ืืืืืืง.
ืืื ื ืื ืืึทืื ืืขื ืขื ืืขืฉืืงื ืืืืืขืจ ืงืจืืคึผืืึธืืจืึทืคื ืืื ืืขืืืขื ืื, ืื ืคึผืจืึธืืจืึทื ืืื ืืึธืจ ืคึผืฉืื. ืขืก ืืื ื ืืฉื ืืึทืจืคึฟื ืฆื ืื ืกืืจืืืขื ื ืงืืื ืกืืคืขืจืก ืืื ืฉืืืฆื ืงืืืคื ืคึผืจืึธืืึธืงืึธืืก.
ืืขืจ ืืืืจ ืืขืคืจืืืื ืฆื ืขื ืฉืืจ ืึทื ืื ื ืืฆื ืงืึทื ืกืืื ืึท ืืื ืืืื ืคืื ืจืขืกืืจืกื ืืื ืึทืจืืขื ืืึธืจ ืึทื ื ืึธืืืืกื ืืืืฃ ืื ืืึทืฉืื. ื ืื ืขื ืืขื ืืึธืืขืจื ืึทื ืืืืืืจืืก ืืื ืื ืืขืจืข "ืืืืขืจืืืื ืกืืกืืขืืขื," ืขืก ืืึธื ื ืืฉื ืคึผืึทืืขืืขื ืืืื ืงืึธืืคึผืืืืขืจ. ืขืจ ืืขืจืืื ืฆื ืืื ืึทืืืื ืืืืืข ืคืึทืจืงืขืจ ืืื ืืึผืจืื ืงืึทื ืกืึทืืฉืึทื ืจืขืื ืฆื ืึท ืืืกื ืืขืจ ืืืืจืข ืืืคึผืืึทืืขื ืืืืฉืึทื ืคืื ืืืืืืืืืจื. ืืืื ืขืก ืคืฉืื ืืึธื ืืฉื ืึท ืืึทืืื ืืขืจ ืคึผืจืึธืฆืขืก ืืืืฃ ืึท ื ืืึทืข ืงืฉืจ, ืคึผืึธืืขื ืฆืืขื ืึทืืึทืงืขืจื ืงืขื ืงืึทืืขืจ ืึท DDoS ืืึทืคืึทืื ืืืจื ืขืคื ืงืืืคื ืงืึทื ืขืงืฉืึทื ื ืฆื ืืืกืืึทืืขืจื ืจืขืกืืจืกื ืืืืฃ ืื ืืึทืฉืื. ืืืื ืคืึธืืขื ืคึผืขืจ ืงืฉืจ ืืื ืืืื ื ืืฉื ืืขืจ ืืขืกืืขืจ ืึธืคึผืฆืืข, ืืืืึทื ืื ืงืขืจื ืืืขื ืืืืกื ืจืขืกืืจืกื ืฆื ืคืืจื ืคึฟืขืืขื.
ืึทื ืก ืืืึธืก Chris Wellons ืืืืกืืขืจืืืืืื ืื ืืขืจืกื ืืืืืืืืื ืึธืคึผืฆืืข ืคึฟืึทืจ Endlessh: ืึท ืืืื-ืืจืขืืื ืกืขืจืืืขืจ poll(2)
, ืืื ืื ืงืืืืึทื ืฅ ืืื ืื ืืจืึทืคึผ ืคืึทืจื ืืฆื ืืืขื ืงืืื ืขืงืกืืจืข ืจืขืกืืจืกื, ื ืื ืจืขืื ื ืื ืืึธืืขื ืืืืคืขืฅ ืืื ืื ืงืขืจื ืืื ื ืึธื 78 ืืืืขืก ืคึฟืึทืจ ืืจืึทืงืื ื ืืื ืขื ืืืขืกืฉ. ืฆื ืืืกืืืืื ืฆื ืึทืืึทืงืืื ืืึทืงืืืขื ืืื ืฉืืงื ืืึทืคืขืจื ืคึฟืึทืจ ืืขืืขืจ ืงืืืขื ื, Endlessh ืึธืคึผืขื ืก ืึท ืืืจืขืงื ืึทืงืกืขืก ืืึธืืขื ืืื ืืจืึทื ืกืืืืฅ ืืงืคึผ ืคึผืึทืงืืฅ ืืืืึทื, ืืืืคึผืึทืกืื ื ืึผืืขื ืื ืืื ืฆืข ืึธืคึผืขืจืืืืื ื ืกืืกืืขื ืืงืคึผ / 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 ืืื ืืืขืึทื ืคึฟืึทืจ ืฉืจืืืื ืืึทืจืคึผืืฅ. ืคึฟืึทืจ ืืืึทืฉืคึผืื, ืืขื ืงืจืืง ืืืขื ืคืจืืจื ืคืืจืขืคืึธืงืก, ืงืจืึธืื ืึธืืขืจ ืงืืื ืื ืืขืจืข ืงืืืขื ื ืืืึธืก ืืื ืืจืืื ื ืฆื ืคืึทืจืืื ืื ืฆื ืืืื ืืืืคึผ ืกืขืจืืืขืจ ืคึฟืึทืจ ืคืืืข ืฉืขื:
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