Hello, Worm!: bash 스크립트로 SSH 프로브 매핑
TLDR Pages에 기여하면서
lastb
와 같은 흥미롭고 유용한 수많은 명령을 소개받았습니다. 이 명령은 실패한 로그인 시도의 세부 정보를 보여줍니다. 물론 익숙하지 않은 자료에 대해 좋은 지침을 작성할 수 없기 때문에 AWS VM 중 하나에서 실행lastb -iw
하고 다소 불쾌한 놀라움을 얻었습니다.AWS_VM: sudo lastb -iw | wc -l
967
967 로그인 실패? 나는 공개 키로 인증하기 때문에 이것이 내가 아니라는 것을 압니다. 이 VM에는 애프터마켓 CNAME 또는 공개된 IP 주소가 없기 때문에 이것이 표적 공격인지 의심스럽습니다. 비행 중에 정말 이렇게 많은 봇넷이 있습니까?
GCP의 좋은 사람들은 문자열이 없는 마이크로 VM을 무료로 제공합니다. 하나를 프로비저닝하고 SSH에 대해 프로브되기 전에 방해받지 않는 시간을 확인하십시오.
GCP_VM: uptime
22:21:47 up 5 min, 1 user, load average: 0.00, 0.00, 0.00
GCP_VM: lastb | wc -l
2
글쎄, 이것은 암울한 발전입니다: 첫 번째 SSH 프로브까지 5분 남았습니다. 나는 이 사람들이 어디에서 왔는지 알고 싶지만 전용 허니팟에 내 (매우) 제한된 리소스를 낭비하고 싶지 않습니다. 이미 실행 중인 VM에서 가벼운 데이터 수집을 시도해 보겠습니다.
너의 무기를 골라라
• bash 및 awk는 Linux 기반의 일부로 간주될 수 있습니다.
• curl은 대화형 VM에서 매우 흔합니다.
• https://mapbox.io 무료 등급으로 SVG 매핑 API를 기꺼이 제공합니다.
• https://ipstack.com 무료 등급으로 IP 주소 지리적 위치 API를 제공합니다.
이러한 API 공급자의 선의를 압도하지 않도록 지난 24시간 동안 VM을 검색한 IP로 쿼리를 제한합니다.
#!/bin/bash
# Set token data here. Because requests want a token in the URL,
# a .netrc file can't be used to store credentials
#
IPSTACK_TOKEN=""
MAPBOX_TOKEN=""
# Get a timestamp of 24 hours ago in epoch seconds
#
STANDOFF=$(date -d "24 hours ago" +%s)
# Capture failed logins with a timestamp < 24-hours-ago to a buffer file
#
sudo lastb -i | awk '{ print $3,$5,$6,$7 }' | while read ip datum
do
[[ "$(date -d "$datum" +%s)" -gt "$STANDOFF" ]] && echo -e "$ip"
done > /tmp/LASTB_IP_BUFFER
# Get the top 150 IPs by connection count
sort /tmp/LASTB_IP_BUFFER | uniq -c | sort -rnk1 | awk '{ print $2,$1 }' | head -150 | while read IP time
do
# Get Lat/Long data
curl -s "http://api.ipstack.com/$IP?access_key=$IPSTACK_TOKEN&fields=longitude,latitude" | python -m json.tool | awk '/longitude|latitude/ { printf $NF" " }' | tr -d "," | awk '$1 != "null" { print "pin-s+0FF("$2","$1")," }'
# Smush all coordinates into a string to make a single call to Mapbox.io
done | tr -d "\n" | sed -e 's/,$//g' > /tmp/coords
curl -s "https://api.mapbox.com/styles/v1/mapbox/dark-v10/static/"$(cat /tmp/coords)"/0,40,1.35,0/1280x1024?access_token=$MAPBOX_TOKEN" > worms.png
rm /tmp/LASTB_IP_BUFFER /tmp/coords
그리고 여기 우리는 모든 프로빙 봇넷의 소스 IP 위치에 핀이 꽂혀 있는 멋진 세계 지도가 있습니다. 상사를 프레이밍하거나 겁주기에 적합합니다.
Reference
이 문제에 관하여(Hello, Worm!: bash 스크립트로 SSH 프로브 매핑), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/lbonanomi/hello-worm-mapping-ssh-probes-with-a-bash-script-3if7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)